CRI ADX  Last Updated: 2024-03-21 14:32 p
CriAtomAwb API

マクロ定義

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

型定義

typedef struct 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 , CRIATOMAWB_STATUS_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF }
 AWBステータス [詳解]
 
enum  CriAtomAwbTypeTag { CRIATOMAWB_TYPE_TOC = 0 , CRIATOMAWB_TYPE_ONMEMORY , CRIATOMAWB_TYPE_ERROR , CRIATOMAWB_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF }
 AWBの種別 [詳解]
 

関数

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

詳解

マクロ定義詳解

◆ CRIATOMAWB_WORKSIZE_FOR_LOADFROMMEMORY

#define CRIATOMAWB_WORKSIZE_FOR_LOADFROMMEMORY   (64)

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

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

◆ CRIATOMAWB_ILLEGAL_ID

#define CRIATOMAWB_ILLEGAL_ID   (-1)

不正な波形データID

説明:
criAtomAwb_GetIdByIndex 関数に失敗した際に返る値です。
参照
criAtomAwb_GetIdByIndex

◆ CRIATOM_DEFAULT_DBAS_MAX_BPS

#define CRIATOM_DEFAULT_DBAS_MAX_BPS
値:
(criAtom_CalculateAdxBitrate(CRIATOM_DEFAULT_INPUT_MAX_CHANNELS,\
CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE)\
* CRIATOM_DEFAULT_DBAS_MAX_STREAMS)
CriSint32 criAtom_CalculateAdxBitrate(CriSint32 num_channels, CriSint32 sampling_rate)
ADXデータのビットレート計算

D-BAS作成用のデフォルト初期化最大ビットレート値

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

型定義詳解

◆ CriAtomAwbHn

typedef struct CriAtomAwbTag* CriAtomAwbHn

AWBハンドル

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

◆ CriAtomAwbStatus

AWBステータス

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

◆ CriAtomAwbType

AWBの種別

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

列挙型詳解

◆ CriAtomAwbStatusTag

AWBステータス

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

停止中

CRIATOMAWB_STATUS_LOADING 

ロード中

CRIATOMAWB_STATUS_COMPLETE 

ロード完了

CRIATOMAWB_STATUS_ERROR 

ロード失敗

◆ CriAtomAwbTypeTag

AWBの種別

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

TOC情報のみのAWBハンドル

CRIATOMAWB_TYPE_ONMEMORY 

オンメモリAWBハンドル

CRIATOMAWB_TYPE_ERROR 

無効なAWBハンドル

関数詳解

◆ criAtomAwb_CalculateWorkSizeForLoadToc()

CriSint32 criAtomAwb_CalculateWorkSizeForLoadToc ( CriSint32  num)

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

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

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

◆ criAtomAwb_LoadToc()

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

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

引数
[in]binderバインダーハンドル
[in]pathAWBファイル名
[in]workAWBファイルの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

◆ criAtomAwb_LoadTocById()

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

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

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

◆ criAtomAwb_LoadTocAsync()

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

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

引数
[in]binderバインダーハンドル
[in]pathAWBファイル名
[in]workAWBファイルの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

◆ criAtomAwb_LoadTocAsyncById()

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

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

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

◆ criAtomAwb_LoadFromMemory()

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

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

引数
[in]awb_memAWBファイルを読み込んだメモリ領域へのポインタ
[in]awb_mem_sizeAWBファイルサイズ
[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

◆ criAtomAwb_GetType()

CriAtomAwbType criAtomAwb_GetType ( CriAtomAwbHn  awb)

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

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

◆ criAtomAwb_GetWaveFileInfo()

CriBool 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

◆ criAtomAwb_GetWaveDataInfo()

void 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

◆ criAtomAwb_GetNumContents()

CriUint16 criAtomAwb_GetNumContents ( CriAtomAwbHn  awb)

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

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

◆ criAtomAwb_Release()

void criAtomAwb_Release ( CriAtomAwbHn  awb)

AWBハンドルの解放

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

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

◆ criAtomAwb_IsReadyToRelease()

CriBool criAtomAwb_IsReadyToRelease ( CriAtomAwbHn  awb)

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

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

◆ criAtomAwb_GetStatus()

CriAtomAwbStatus criAtomAwb_GetStatus ( CriAtomAwbHn  awb)

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

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

◆ criAtomAwb_GetIdByIndex()

CriSint32 criAtomAwb_GetIdByIndex ( CriAtomAwbHn  awb,
CriUint16  index 
)

波形データIDの取得

引数
[in]awbAWBハンドル
[in]index波形インデックス
戻り値
波形データID(0以上) 正常に処理が完了
CRIATOMAWB_ILLEGAL_ID(-1) エラーが発生
説明:
AWBハンドルからindexで指定した波形データIDを取得します。
参照
criAtomAwb_LoadToc, criAtomAwb_LoadTocAsync