CriAtomAwb API


マクロ定義

#define CRIATOMAWB_WORKSIZE_FOR_LOADFROMMEMORY   (64)
 オンメモリAWBハンドルの作成に必要なワーク領域サイズ
#define CRIATOM_DEFAULT_DBAS_MAX_BPS
 D-BAS作成用のデフォルト初期化最大ビットレート値

型定義

typedef CriAtomAwbTag * CriAtomAwbHn
 AWBハンドル
typedef enum CriAtomAwbStatusTag CriAtomAwbStatus
 AWBステータス
typedef enum CriAtomAwbTypeTag CriAtomAwbType
 AWBの種別

列挙型

enum  CriAtomAwbStatusTag { CRIATOMAWB_STATUS_STOP = 0, CRIATOMAWB_STATUS_LOADING, CRIATOMAWB_STATUS_COMPLETE, CRIATOMAWB_STATUS_ERROR }
 AWBステータス [詳細]
enum  CriAtomAwbTypeTag { CRIATOMAWB_TYPE_TOC = 0, CRIATOMAWB_TYPE_ONMEMORY, CRIATOMAWB_TYPE_ERROR }
 AWBの種別 [詳細]

関数

CriSint32 CRIAPI criAtomAwb_CalculateWorkSizeForLoadToc (CriSint32 num)
 AWBファイルのTOC情報ロード用ワーク領域サイズの計算
CriAtomAwbHn CRIAPI criAtomAwb_LoadToc (CriFsBinderHn binder, const CriChar8 *path, void *work, CriSint32 work_size)
 AWBファイルのTOC情報ロード(同期版)
CriAtomAwbHn CRIAPI criAtomAwb_LoadTocById (CriFsBinderHn binder, CriUint16 id, void *work, CriSint32 work_size)
 ID指定によるAWBファイルのTOC情報ロード(同期版)
CriAtomAwbHn CRIAPI criAtomAwb_LoadTocAsync (CriFsBinderHn binder, const CriChar8 *path, void *work, CriSint32 work_size)
 AWBファイルのTOC情報ロード(非同期版)
CriAtomAwbHn CRIAPI criAtomAwb_LoadTocAsyncById (CriFsBinderHn binder, CriUint16 id, void *work, CriSint32 work_size)
 ID指定によるAWBファイルのTOC情報ロード(非同期版)
CriAtomAwbHn CRIAPI criAtomAwb_LoadFromMemory (void *awb_mem, CriSint32 awb_mem_size, void *work, CriSint32 work_size)
 オンメモリAWBハンドルの作成
CriAtomAwbType CRIAPI criAtomAwb_GetType (CriAtomAwbHn awb)
 AWBハンドルの種別を示す値を取得
CriBool CRIAPI criAtomAwb_GetWaveFileInfo (CriAtomAwbHn awb, CriSint32 id, CriSint64 *offset, CriUint32 *size)
 AWBのTOC情報から波形データのファイル情報を取得
void CRIAPI criAtomAwb_GetWaveDataInfo (CriAtomAwbHn awb, CriSint32 id, void **wave_data_start, CriUint32 *size)
 オンメモリAWBから波形データの情報を取得
CriUint16 CRIAPI criAtomAwb_GetNumContents (CriAtomAwbHn awb)
 AWBハンドルを介してAWBファイルに含まれるコンテンツ数を取得
void CRIAPI criAtomAwb_Release (CriAtomAwbHn awb)
 AWBハンドルの解放
CriBool CRIAPI criAtomAwb_IsReadyToRelease (CriAtomAwbHn awb)
 AWBハンドルが即時解放可能かどうかのチェック
CriAtomAwbStatus CRIAPI criAtomAwb_GetStatus (CriAtomAwbHn awb)
 AWBハンドルのステータス取得

マクロ定義

#define CRIATOMAWB_WORKSIZE_FOR_LOADFROMMEMORY   (64)

オンメモリAWBハンドルの作成に必要なワーク領域サイズ

説明:
オンメモリAWBハンドルの作成に必要なワーク領域サイズです。
参照:
criAtomAwb_LoadFromMemory

#define CRIATOM_DEFAULT_DBAS_MAX_BPS

値:

(criAtom_CalculateAdxBitrate(CRIATOM_DEFAULT_INPUT_MAX_CHANNELS,\
                                 CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE)\
                                 * CRIATOM_DEFAULT_DBAS_MAX_STREAMS)
D-BAS作成用のデフォルト初期化最大ビットレート値

説明:
D-BAS作成用のデフォルト初期化パラメーター値定義です。
各プラットフォームで定義しているデフォルトの最大ストリーム本数分、 ステレオADXデータをストリーミング再生する前提で計算しています。
参照:
criAtomDbas_Create, criAtomDbas_CalculateWorkSize, criAtom_CalculateAdxBitrate


型定義

typedef struct CriAtomAwbTag* CriAtomAwbHn

AWBハンドル

説明:
再生データが含まれているAWBファイルのTOC情報を示すハンドルです。
criAtomAwb_LoadToc 関数で取得します。
参照:
criAtomAwb_LoadToc

typedef enum CriAtomAwbStatusTag CriAtomAwbStatus

AWBステータス

説明:
AWBの準備状態を示す値です。
criAtomAwb_GetStatus 関数で取得します。
参照:
criAtomAwb_GetStatus

typedef enum CriAtomAwbTypeTag CriAtomAwbType

AWBの種別

説明:
AWBハンドルがTOC情報のみのハンドルなのか、メモリ上にロードされたAWBハンドルなのかを示す値です。 criAtomAwb_GetType 関数で取得します。
参照:
criAtomAwb_GetType


列挙型

enum CriAtomAwbStatusTag

AWBステータス

説明:
AWBの準備状態を示す値です。
criAtomAwb_GetStatus 関数で取得します。
参照:
criAtomAwb_GetStatus
列挙型の値:
CRIATOMAWB_STATUS_STOP  停止中
CRIATOMAWB_STATUS_LOADING  ロード中
CRIATOMAWB_STATUS_COMPLETE  ロード完了
CRIATOMAWB_STATUS_ERROR  ロード失敗

enum CriAtomAwbTypeTag

AWBの種別

説明:
AWBハンドルがTOC情報のみのハンドルなのか、メモリ上にロードされたAWBハンドルなのかを示す値です。 criAtomAwb_GetType 関数で取得します。
参照:
criAtomAwb_GetType
列挙型の値:
CRIATOMAWB_TYPE_TOC  TOC情報のみのAWBハンドル
CRIATOMAWB_TYPE_ONMEMORY  オンメモリAWBハンドル
CRIATOMAWB_TYPE_ERROR  無効なAWBハンドル


関数

CriSint32 CRIAPI criAtomAwb_CalculateWorkSizeForLoadToc ( CriSint32  num  ) 

AWBファイルのTOC情報ロード用ワーク領域サイズの計算

引数:
[in] num AWBファイルに含まれるコンテンツ数
戻り値:
CriSint32 ワーク領域サイズ
戻り値:
0以上 正常に処理が完了
-1 エラーが発生
説明:
AWBファイルのTOC情報をロードするために十分なワーク領域のサイズを取得します。

ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。
ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
注意:
本関数を実行する前に、ライブラリを初期化しておく必要があります。
参照:
criAtomAwb_LoadToc, criAtomAwb_LoadTocAsync

CriAtomAwbHn CRIAPI criAtomAwb_LoadToc ( CriFsBinderHn  binder,
const CriChar8 *  path,
void *  work,
CriSint32  work_size 
)

AWBファイルのTOC情報ロード(同期版)

引数:
[in] binder バインダーハンドル
[in] path AWBファイル名
[in] work AWBファイルのTOC情報ロード用ワーク領域
[in] work_size ワーク領域サイズ
戻り値:
CriAtomAwbHn AWBハンドル
説明:
音声再生の音源として使用するAWBファイルのTOC情報をロードします。
ロード完了まで本関数は復帰しませんので、シーンの切り替えや、 負荷変動が許容できるタイミングで実行してください。
ロードに成功すると、戻り値に有効なAWBハンドルが返りますので、 criAtomPlayer_SetWaveId 関数に指定して使用してください。
使い終わったAWBハンドルは、criAtomAwb_Release 関数で解放してください。
TOC情報のロードに失敗した場合はNULLが返ります。
備考:
第三引数にNULL、第四引数に0を指定して実行すると、 必要なワーク領域を関数内部で動的に確保します。 動的に確保した領域は、criAtomAwb_Release 関数で解放されます。
注意:
AWBハンドルは内部的にバインダー( CriFsBinderHn )、およびローダー( CriFsLoaderHn ) を確保します。
AWBファイルのTOC情報をロードする場合、AWBハンドル数分のバインダー、およびローダーが 確保できる設定でAtomライブラリ(またはCRI File Systemライブラリ)を初期化する 必要があります。
参照:
criAtomPlayer_SetWaveId, criAtomAwb_Release, criAtomAwb_LoadTocById

CriAtomAwbHn CRIAPI criAtomAwb_LoadTocById ( CriFsBinderHn  binder,
CriUint16  id,
void *  work,
CriSint32  work_size 
)

ID指定によるAWBファイルのTOC情報ロード(同期版)

引数:
[in] binder バインダーハンドル
[in] id AWBファイルが格納されているCPKコンテンツID
[in] work AWBファイルのTOC情報ロード用ワーク領域
[in] work_size ワーク領域サイズ
戻り値:
CriAtomAwbHn AWBハンドル
説明:
criAtomAwb_LoadToc 関数とほぼ同様の機能を持つ関数です。 criAtomAwb_LoadToc 関数と異なる点は、 パス指定ではなくCPK内のコンテンツID指定でAWBファイルのTOC情報をロードする点です。
参照:
criAtomPlayer_SetWaveId, criAtomAwb_Release, criAtomAwb_LoadToc

CriAtomAwbHn CRIAPI criAtomAwb_LoadTocAsync ( CriFsBinderHn  binder,
const CriChar8 *  path,
void *  work,
CriSint32  work_size 
)

AWBファイルのTOC情報ロード(非同期版)

引数:
[in] binder バインダーハンドル
[in] path AWBファイル名
[in] work AWBファイルのTOC情報ロード用ワーク領域
[in] work_size ワーク領域サイズ
戻り値:
CriAtomAwbHn AWBハンドル
説明:
音声再生の音源として使用するAWBファイルのTOC情報をロードします。
本関数はロード要求を発行する非同期関数なので、 ロードの完了をアプリケーション側で待つ必要があります。
criAtomAwb_GetStatus 関数でAWBハンドルのステータスを定期的に取得し、 ロードの完了を確認してください。
ロードの完了を待っている間はAWBハンドルのステータス更新のために、 定期的にcriAtom_ExecuteMain 関数を実行する必要があります。
ロード要求の発行に成功すると戻り値に有効なAWBハンドルが返ります。
ロードが正しく完了した後は、criAtomPlayer_SetWaveId 関数に指定して使用してください。
使い終わったAWBハンドルは、criAtomAwb_Release 関数で解放してください。
TOC情報のロード要求の発行に失敗した場合はNULLが返ります。
備考:
第三引数にNULL、第四引数に0を指定して実行すると、 必要なワーク領域を関数内部で動的に確保します。 動的に確保した領域は、criAtomAwb_Release 関数で解放されます。
本関数で取得したAWBハンドルのステータスがエラー状態(CRIATOMAWB_STATUS_ERROR)になった場合も、 criAtomAwb_Release 関数で解放してください。
注意:
AWBハンドルは内部的にバインダー( CriFsBinderHn )、およびローダー( CriFsLoaderHn ) を確保します。
AWBファイルのTOC情報をロードする場合、AWBハンドル数分のバインダー、およびローダーが 確保できる設定でAtomライブラリ(またはCRI File Systemライブラリ)を初期化する 必要があります。
参照:
criAtomPlayer_SetWaveId, criAtomAwb_Release, criAtomAwb_GetStatus, criAtomAwb_LoadTocAsyncById

CriAtomAwbHn CRIAPI criAtomAwb_LoadTocAsyncById ( CriFsBinderHn  binder,
CriUint16  id,
void *  work,
CriSint32  work_size 
)

ID指定によるAWBファイルのTOC情報ロード(非同期版)

引数:
[in] binder バインダーハンドル
[in] id AWBファイルが格納されているCPKコンテンツID
[in] work AWBファイルのTOC情報ロード用ワーク領域
[in] work_size ワーク領域サイズ
戻り値:
CriAtomAwbHn AWBハンドル
説明:
criAtomAwb_LoadTocAsync 関数とほぼ同様の機能を持つ関数です。 criAtomAwb_LoadTocAsync 関数と異なる点は、 パス指定ではなくCPK内のコンテンツID指定でAWBファイルのTOC情報をロードする点です。
参照:
criAtomPlayer_SetWaveId, criAtomAwb_Release, criAtomAwb_GetStatus, criAtomAwb_LoadTocAsync

CriAtomAwbHn CRIAPI criAtomAwb_LoadFromMemory ( void *  awb_mem,
CriSint32  awb_mem_size,
void *  work,
CriSint32  work_size 
)

オンメモリAWBハンドルの作成

引数:
[in] awb_mem AWBファイルを読み込んだメモリ領域へのポインタ
[in] awb_mem_size AWBファイルサイズ
[in] work オンメモリAWB用ワーク領域へのポインタ
[in] work_size オンメモリAWB用ワーク領域サイズ
戻り値:
CriAtomAwbHn オンメモリAWBハンドル
説明:
メモリ上に読み込まれたAWBファイルイメージから、オンメモリAWBハンドルを作成します。
同じオンメモリAWBファイルイメージから複数のオンメモリAWBハンドルを作成することができます。
ワーク領域を確保する方法には、以下の2通りの方法があります。
(a) User Allocator方式:メモリの確保/解放に、ユーザが用意した関数を使用する方法。
(b) Fixed Memory方式:必要なメモリ領域を直接ライブラリに渡す方法。

User Allocator方式を用いる場合、ユーザがワーク領域を用意する必要はありません。
workにNULL、work_sizeに0を指定するだけで、必要なメモリを登録済みのメモリ確保関数から確保します。
オンメモリAWBハンドル作成時に動的に確保されたメモリは、
オンメモリAWB破棄時( criAtomAwb_Release 関数実行時)に解放されます。
Fixed Memor方式を用いる場合は、CRIATOMAWB_WORKSIZE_FOR_LOADFROMMEMORY 関数を使って 必要なワーク領域サイズを求めてください。
ワーク領域とは異なり、awb_mem は必ずユーザの責任で管理する必要がある点には注意してください。

注意:
本関数が成功すると、 awb_memで渡されたメモリ領域をオンメモリAWBデータ用に書き換えます。
そのため、複数スレッドからCRIATOMAWB_WORKSIZE_FOR_LOADFROMMEMORY 関数を呼び出している場合は、
排他処理によりスレッドの実行順が入れ替わる場合があります。
なお、awb_mem で指すメモリ領域は criAtomAwb_Release 関数実行後に手動で解放してください。
AWBハンドルは内部的にバインダー( CriFsBinderHn )を確保します。
AWBファイルのTOC情報をロードする場合、AWBハンドル数分のバインダーが確保できる設定で Atomライブラリ(またはCRI File Systemライブラリ)を初期化する必要があります。
参照:
CRIATOMAWB_WORKSIZE_FOR_LOADFROMMEMORY,criAtomAwb_Release

CriAtomAwbType CRIAPI criAtomAwb_GetType ( CriAtomAwbHn  awb  ) 

AWBハンドルの種別を示す値を取得

引数:
[in] awb 情報取得先のAWBハンドル
戻り値:
CriAtomAwbType AWBハンドルの種別を示す値
説明:
AWBハンドルがTOC情報のみであるか、オンメモリAWBハンドルなのかを示す値を取得します。 本関数が失敗した場合はCRIATOMAWB_TYPE_ERRORを返します。
参照:
criAtomAwb_GetWaveDataInfo, criAtomPlayer_SetData,

CriBool CRIAPI criAtomAwb_GetWaveFileInfo ( CriAtomAwbHn  awb,
CriSint32  id,
CriSint64 *  offset,
CriUint32 *  size 
)

AWBのTOC情報から波形データのファイル情報を取得

引数:
[in] awb 情報取得先のAWBハンドル
[in] id 波形データID
[out] offset 波形データのオフセット(Byte)
[out] size 波形データのサイズ(Byte)
戻り値:
なし
説明:
AWBハンドルからidで指定した波形データのファイルオフセットとサイズを取得します。
取得したオフセットとサイズは、AWBファイルから波形データを直接読み込む場合に使用します。
注意:
本関数を実行する前に、AWBハンドルの種別をcriAtomAwb_GetType 関数で確認してください。
AWBハンドルの種別がCRIATOMAWB_TYPE_TOCと異なる場合、または不正なAWBハンドルだった場合、本関数は失敗し、エラーコールバックが発生します。
本関数が失敗した場合、出力値であるoffsetとsizeの値は不定です。
参照:
criAtomAwb_GetType, criAtomAwb_GetWaveDataInfo, criAtomPlayer_SetData,criAtomAwb_GetType

void CRIAPI criAtomAwb_GetWaveDataInfo ( CriAtomAwbHn  awb,
CriSint32  id,
void **  wave_data_start,
CriUint32 *  size 
)

オンメモリAWBから波形データの情報を取得

引数:
[in] awb 情報取得先のAWBハンドル
[in] id 波形データID
[out] wave_data_start 波形データの先頭ポインタ(Byte)
[out] size 波形データのサイズ(Byte)
戻り値:
なし
説明:
オンメモリAWBからidで指定した波形データの先頭ポインタとサイズを取得します。
オンメモリAWBから波形データを再生する場合、通常はcriAtomPlayer_SetWaveId 関数で十分なので、そちらも参照してください。
注意:
本関数を実行する前に、AWBハンドルの種別をcriAtomAwb_GetType 関数で確認してください。
AWBハンドルの種別が異なる場合、または不正なAWBハンドルだった場合、本関数は失敗し、エラーコールバックが発生します。
本関数が失敗した場合、出力値であるwave_data_startとsizeの値は不定です。
参照:
criAtomAwb_GetType, criAtomAwb_GetWaveFileInfo, criAtomPlayer_SetData,criAtomPlayer_SetWaveId

CriUint16 CRIAPI criAtomAwb_GetNumContents ( CriAtomAwbHn  awb  ) 

AWBハンドルを介してAWBファイルに含まれるコンテンツ数を取得

引数:
[in] awb 情報取得先のAWBハンドル
戻り値:
コンテンツファイル数(0〜65535)
説明:
AWBハンドルを介してAWBファイルに含まれているコンテンツ数(波形データ数)を取得します。
コンテンツファイル数の値の有効範囲は1〜65535です。
エラーが発生した場合は 0 を返します。
参照:
criAtomAwb_LoadToc, criAtomAwb_LoadFromMemory

void CRIAPI criAtomAwb_Release ( CriAtomAwbHn  awb  ) 

AWBハンドルの解放

引数:
[in] awb AWBハンドル
戻り値:
なし
説明:
AWBハンドルを解放します。
使い終わったAWBハンドルは、本関数で解放してください。
解放したAWBハンドルは無効なハンドルになるので、使用しないでください。
注意:
本関数を実行すると、指定したAWBデータを参照しているAtomプレーヤーが存在しないか、 ライブラリ内で検索処理が行われます。
そのため、本関数実行中に他スレッドでAtomプレーヤーの作成/破棄を行うと、 アクセス違反やデッドロック等の重大な不具合を誘発する恐れがあります。
本関数実行時にAtomプレーヤーの作成/破棄を他スレッドで行う必要がある場合、 本関数を criAtom_Lock 関数でロックしてから実行してください。

AtomExプレーヤーを使用してAWBファイルを再生する場合、 再生中に本関数でAWBハンドルを破棄してはいけません。
必ずAtomExプレーヤーを停止させてさせてから本関数を実行してください。
参照:
criAtomAwb_LoadToc, criAtomAwb_LoadTocAsync, criAtomAwb_GetStatus

CriBool CRIAPI criAtomAwb_IsReadyToRelease ( CriAtomAwbHn  awb  ) 

AWBハンドルが即時解放可能かどうかのチェック

引数:
[in] awb AWBハンドル
戻り値:
CriBool AWBの状態(CRI_TRUE = 即時解放可能、CRI_FALSE = 再生中のプレーヤーあり)
説明:
AWBハンドルを即座に解放可能かどうかをチェックします。
本関数が CRI_FALSE を返すタイミングで criAtomAwb_Release 関数を実行すると、 AWBハンドルを参照しているプレーヤーに対する停止処理が行われます。
(ストリーム再生用のAWBハンドルの場合、ファイル読み込み完了を待つため、 criAtomAwb_Release 関数内で長時間処理がブロックされる可能性があります。)
注意:
本関数を実行すると、指定したAWBデータを参照しているAtomプレーヤーが存在しないか、 ライブラリ内で検索処理が行われます。
そのため、本関数実行中に他スレッドでAtomプレーヤーの作成/破棄を行うと、 アクセス違反やデッドロック等の重大な不具合を誘発する恐れがあります。
本関数実行時にAtomプレーヤーの作成/破棄を他スレッドで行う必要がある場合、 本関数を criAtom_Lock 関数でロックしてから実行してください。
参照:
criAtomAwb_Release

CriAtomAwbStatus CRIAPI criAtomAwb_GetStatus ( CriAtomAwbHn  awb  ) 

AWBハンドルのステータス取得

引数:
[in] awb AWBハンドル
戻り値:
CriAtomAwbStatus AWBハンドルの状態を示す値
説明:
AWBハンドルのステータスを取得します。
本関数で取得するAWBハンドルのステータスは、criAtom_ExecuteMain 関数を 実行することで更新されます。
参照:
criAtomAwb_LoadToc, criAtomAwb_LoadTocAsync


CRI Middleware logo Copyright (c) 2006-2018 CRI Middleware Co., Ltd.