構成 | マクロ定義 | 型定義 | 列挙型 | 関数
CriAtom API

構成

struct  CriAtomConfigTag
 ライブラリ初期化用コンフィグ構造体 [詳細]
struct  CriAtomPerformanceInfoTag
 パフォーマンス情報 [詳細]
struct  CriAtomFormatInfoTag
 音声データフォーマット情報 [詳細]
struct  CriAtomStreamingInfoTag
 ストリーミング情報 [詳細]

マクロ定義

#define criAtom_SetDefaultConfig(p_config)
 CriAtomConfigへのデフォルトパラメータをセット
#define criAtom_SetUserAllocator(p_malloc_func, p_free_func, p_obj)
 ユーザアロケータの登録

型定義

typedef enum CriAtomThreadModelTag CriAtomThreadModel
 スレッドモデル
typedef struct CriAtomConfigTag CriAtomConfig
 ライブラリ初期化用コンフィグ構造体
typedef void *(CRIAPI * CriAtomMallocFunc )(void *obj, CriUint32 size)
 メモリ確保関数
typedef void(CRIAPI * CriAtomFreeFunc )(void *obj, void *mem)
 メモリ解放関数
typedef void(CRIAPI * CriAtomAudioFrameStartCbFunc )(void *obj)
 オーディオフレーム開始コールバック関数
typedef void(CRIAPI * CriAtomAudioFrameEndCbFunc )(void *obj)
 オーディオフレーム終了コールバック関数
typedef enum
CriAtomSoundRendererTypeTag 
CriAtomSoundRendererType
 サウンドレンダラタイプ
typedef enum CriAtomSpeakerIdTag CriAtomSpeakerId
 スピーカーID
typedef struct
CriAtomPerformanceInfoTag 
CriAtomPerformanceInfo
 パフォーマンス情報
typedef enum
CriAtomEncodeQualityTag 
CriAtomEncodeQuality
 エンコード品質
typedef CriUint32 CriAtomFormat
 フォーマット種別
typedef struct CriAtomFormatInfoTag CriAtomFormatInfo
 音声データフォーマット情報
typedef enum CriAtomPcmFormatTag CriAtomPcmFormat
 PCMフォーマット
typedef struct
CriAtomStreamingInfoTag 
CriAtomStreamingInfo
 ストリーミング情報
typedef enum
CriAtomVoiceStopReasonTag 
CriAtomVoiceStopReason
 ボイス停止理由

列挙型

enum  CriAtomThreadModelTag { CRIATOM_THREAD_MODEL_MULTI = 0, CRIATOM_THREAD_MODEL_MULTI_USER_DRIVEN = 3, CRIATOM_THREAD_MODEL_USER_MULTI = 1, CRIATOM_THREAD_MODEL_SINGLE = 2 }
 スレッドモデル [詳細]
enum  CriAtomSoundRendererTypeTag {
  CRIATOM_SOUND_RENDERER_NATIVE = 1, CRIATOM_SOUND_RENDERER_ASR = 2 , CRIATOM_SOUND_RENDERER_HW1 = (0 << 2) | CRIATOM_SOUND_RENDERER_NATIVE, CRIATOM_SOUND_RENDERER_HW2 = (1 << 2) | CRIATOM_SOUND_RENDERER_NATIVE,
  CRIATOM_SOUND_RENDERER_HW3 = (2 << 2) | CRIATOM_SOUND_RENDERER_NATIVE, CRIATOM_SOUND_RENDERER_HW4 = (3 << 2) | CRIATOM_SOUND_RENDERER_NATIVE, CRIATOM_SOUND_RENDERER_ANY = 0
}
 サウンドレンダラタイプ [詳細]
enum  CriAtomSpeakerIdTag {
  CRIATOM_SPEAKER_FRONT_LEFT = 0, CRIATOM_SPEAKER_FRONT_RIGHT = 1, CRIATOM_SPEAKER_FRONT_CENTER = 2, CRIATOM_SPEAKER_LOW_FREQUENCY = 3,
  CRIATOM_SPEAKER_SURROUND_LEFT = 4, CRIATOM_SPEAKER_SURROUND_RIGHT = 5, CRIATOM_SPEAKER_SURROUND_BACK_LEFT = 6, CRIATOM_SPEAKER_SURROUND_BACK_RIGHT = 7
}
 スピーカーID [詳細]
enum  CriAtomEncodeQualityTag {
  CRIATOM_ENCODE_QUALITY_LOWEST = 0, CRIATOM_ENCODE_QUALITY_LOW, CRIATOM_ENCODE_QUALITY_MIDDLE, CRIATOM_ENCODE_QUALITY_HIGH,
  CRIATOM_ENCODE_QUALITY_HIGHEST
}
 エンコード品質 [詳細]
enum  CriAtomPcmFormatTag
 PCMフォーマット [詳細]
enum  CriAtomVoiceStopReasonTag {
  CRIATOM_VOICE_STOP_REASON_EXPLAYER_STOP = 0, CRIATOM_VOICE_STOP_REASON_EXPLAYER_STOPWITHOUTRELEASE, CRIATOM_VOICE_STOP_REASON_PLAYBACK_STOP, CRIATOM_VOICE_STOP_REASON_PLAYBACK_STOPWITHOUTRELEASE,
  CRIATOM_VOICE_STOP_REASON_SOUNDPLAYER_DESTROY, CRIATOM_VOICE_STOP_REASON_FADER_STOP, CRIATOM_VOICE_STOP_REASON_PLAYER_STOP, CRIATOM_VOICE_STOP_REASON_AWB_STOP,
  CRIATOM_VOICE_STOP_REASON_STREAMING_CACHE_STOP, CRIATOM_VOICE_STOP_REASON_PLAYER_FORCE_STOP, CRIATOM_VOICE_STOP_REASON_PLAYER_DESTROY, CRIATOM_VOICE_STOP_REASON_MTPLAYER_STOP,
  CRIATOM_VOICE_STOP_REASON_VOICE_POOL_DESTROY, CRIATOM_VOICE_STOP_REASON_VOICE_STEAL_CASE1, CRIATOM_VOICE_STOP_REASON_VOICE_STEAL_CASE2, CRIATOM_VOICE_STOP_REASON_VOICE_STEAL_CASE3,
  CRIATOM_VOICE_STOP_REASON_VOICE_STEAL_CASE4, CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_VIRTUAL_VOICE_BEYOND_LIFE_TIME, CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_CANT_CALC_3DPOS, CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_INTERNAL_PLAYBACK_CANCEL,
  CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_NO_PLAYER_NO_RETRY, CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_FAILED_RETRY_BEYOND_LIFE_TIME, CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_PLAYER_STATUS_PLAYEND, CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_PLAYER_STATUS_ERROR,
  CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_IMPOSSIBLE_RETRY, CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_PLAYER_STATUS_STOP, CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_INVALID_SERVER_REQUEST, CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_SILENT_MODE_STOP,
  CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_SOUNDCOMPLEX_STATUS_ERROR, CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_NO_ELEMENT_CASE1, CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_NO_ELEMENT_CASE2, CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_STOP_NOT_PLAYING_ELEMENT,
  CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_NOT_ACTIVE_VOICE, CRIATOM_VOICE_STOP_REASON_ELEMENT_FREE, CRIATOM_VOICE_STOP_REASON_EXPLAYER_STOP_ERROR_HN, CRIATOM_VOICE_STOP_REASON_ACB_RELEASE,
  CRIATOM_VOICE_STOP_REASON_VOICE_ALLOCATE_FAIL, CRIATOM_VOICE_STOP_REASON_VOICE_RESET, CRIATOM_VOICE_STOP_REASON_VOICE_VIRTUALIZE, CRIATOM_VOICE_STOP_REASON_PLAYBACKSOUND_ALLOCATE_FAIL,
  CRIATOM_VOICE_STOP_REASON_STOP_ACTION_WITH_BEATSYNC, CRIATOM_VOICE_STOP_REASON_START_CANCEL_WITH_BEATSYNC, CRIATOM_VOICE_STOP_REASON_STOP_ACTION, CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE0,
  CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE1, CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE2, CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE3, CRIATOM_VOICE_STOP_REASON_CATEGORY_CUE_LIMIT,
  CRIATOM_VOICE_STOP_REASON_UNSET_ACB, CRIATOM_VOICE_STOP_REASON_SEQUENCE_END, CRIATOM_VOICE_STOP_REASON_BLODK_END, CRIATOM_VOICE_STOP_REASON_SEQUENCE_EXECUTE,
  CRIATOM_VOICE_STOP_REASON_TRACK_MONO, CRIATOM_VOICE_STOP_REASON_FADER_STOP_IMMEDIATE, CRIATOM_VOICE_STOP_REASON_CUE_LIMIT, CRIATOM_VOICE_STOP_REASON_STOP_ACB,
  CRIATOM_VOICE_STOP_REASON_SOUND_OBJECT_ADD_PLAYER, CRIATOM_VOICE_STOP_REASON_SOUND_OBJECT_DELETE_PLAYER, CRIATOM_VOICE_STOP_REASON_SOUND_OBJECT_DELETE_ALL_PLAYER, CRIATOM_VOICE_STOP_REASON_UNREGISTER_ACF,
  CRIATOM_VOICE_STOP_REASON_EXPLAYER_DESTROY, CRIATOM_VOICE_STOP_REASON_EXPLAYER_ATTACH_FADER, CRIATOM_VOICE_STOP_REASON_EXPLAYER_DETACH_FADER, CRIATOM_VOICE_STOP_REASON_DETACH_AWB,
  CRIATOM_VOICE_STOP_MULTIPLE_PLAYBACK_PROHIBITION_TIME, CRIATOM_VOICE_STOP_REASON_CATEGORY_STOP, CRIATOM_VOICE_STOP_REASON_CATEGORY_STOPWITHOUTRELEASE, CRIATOM_VOICE_STOP_REASON_NOTE_OFF,
  CRIATOM_VOICE_STOP_REASON_REGISTER_ACF
}
 ボイス停止理由 [詳細]

関数

CriUint32 CRIAPI criAtom_GetVersionNumber (void)
 ライブラリバージョン番号の取得
CriSint32 CRIAPI criAtom_CalculateWorkSize (const CriAtomConfig *config)
 ライブラリ初期化用ワーク領域サイズの計算
void CRIAPI criAtom_Initialize (const CriAtomConfig *config, void *work, CriSint32 work_size)
 ライブラリの初期化
void CRIAPI criAtom_Finalize (void)
 ライブラリの終了
CriBool CRIAPI criAtom_IsInitialized (void)
 ライブラリ初期化状態の取得
CriBool CRIAPI criAtom_IsAudioOutputActive (void)
 オーディオ出力が有効かどうかのチェック
void CRIAPI criAtom_ExecuteMain (void)
 マルチスレッド用サーバ処理の実行
void CRIAPI criAtom_ExecuteAudioProcess (void)
 ユーザーマルチスレッド用サーバ処理の実行
void CRIAPI criAtom_SetUserMallocFunction (CriAtomMallocFunc func, void *obj)
 メモリ確保関数の登録
void CRIAPI criAtom_SetUserFreeFunction (CriAtomFreeFunc func, void *obj)
 メモリ解放関数の登録
void CRIAPI criAtom_SetAudioFrameStartCallback (CriAtomAudioFrameStartCbFunc func, void *obj)
 オーディオフレーム開始コールバック関数の登録
void CRIAPI criAtom_SetAudioFrameEndCallback (CriAtomAudioFrameEndCbFunc func, void *obj)
 オーディオフレーム終了コールバック関数の登録
void CRIAPI criAtom_Lock (void)
 サーバ処理の割り込みを防止
void CRIAPI criAtom_Unlock (void)
 サーバ処理の割り込み防止を解除
void CRIAPI criAtom_SetChannelMapping (CriSint32 nch, CriUint32 type)
 チャンネルマッピングパターンの指定
void CRIAPI criAtom_AttachPerformanceMonitor (void)
 パフォーマンスモニタ機能の追加
void CRIAPI criAtom_DetachPerformanceMonitor (void)
 パフォーマンスモニタ機能の削除
void CRIAPI criAtom_ResetPerformanceMonitor (void)
 パフォーマンスモニタのリセット
void CRIAPI criAtom_GetPerformanceInfo (CriAtomPerformanceInfo *info)
 パフォーマンス情報の取得
CriSint32 CRIAPI criAtom_CalculateAdxBitrate (CriSint32 num_channels, CriSint32 sampling_rate)
 ADXデータのビットレート計算
CriSint32 CRIAPI criAtom_CalculateHcaBitrate (CriSint32 num_channels, CriSint32 sampling_rate, CriAtomEncodeQuality quality)
 HCAデータのビットレート計算
CriSint32 CRIAPI criAtom_CalculateHcaMxBitrate (CriSint32 num_channels, CriSint32 sampling_rate, CriAtomEncodeQuality quality)
 HCA-MXデータのビットレート計算
CriBool CRIAPI criAtom_GetStreamingInfo (CriAtomStreamingInfo *streaming_info)
 ストリーミング情報の取得
CriBool CRIAPI criAtom_SetFreeTimeBufferingFlagForDefaultDevice (CriBool flag)
 ファイルI/Oの空き時間を使ったストリーミング読み込みを行うかどうか

説明


マクロ定義

#define criAtom_SetDefaultConfig (   p_config)
値:
{\
    (p_config)->thread_model = CRIATOM_THREAD_MODEL_MULTI;\
    (p_config)->server_frequency = 60.0f;\
    (p_config)->fs_config = NULL;\
    (p_config)->context = NULL;\
    (p_config)->version = CRI_ATOM_VERSION;\
    (p_config)->max_players = 16;\
}

CriAtomConfigへのデフォルトパラメータをセット

引数:
[out]p_config初期化用コンフィグ構造体へのポインタ
説明:
criAtom_Initialize 関数に設定するコンフィグ構造体( CriAtomConfig )に、 デフォルトの値をセットします。
参照:
CriAtomConfig
#define criAtom_SetUserAllocator (   p_malloc_func,
  p_free_func,
  p_obj 
)
値:
{\
    criAtom_SetUserMallocFunction(p_malloc_func, p_obj);\
    criAtom_SetUserFreeFunction(p_free_func, p_obj);\
}

ユーザアロケータの登録

引数:
[in]p_malloc_funcメモリ確保関数
[in]p_free_funcメモリ解放関数
[in]p_objユーザ指定オブジェクト
説明:
CRI Atom ライブラリにメモリアロケータ(メモリの確保/解放関数)を登録します。
本マクロでアロケータを登録すると、Atomライブラリがワーク領域を必要とするタイミングで、 ユーザが登録したメモリ確保/解放処理が呼び出されることになります。
その結果、ワーク領域を必要とする関数( criAtomPlayer_CreateAdxPlayer 関数等)に対し、 個別にワーク領域をセットする処理を省略することが可能になります。
(ワーク領域に NULL ポインタ、ワーク領域サイズに 0 バイトを指定した場合でも、 アロケータからの動的メモリ確保によりライブラリが問題なく動作するようになります。)
注意:
メモリ確保/解放関数のポインタに NULL を指定することで、 アロケータの登録を解除することも可能です。
ただし、未解放のメモリ領域が残っている状態で登録を解除すると、 エラーコールバックが返され、登録の解除に失敗します。
(引き続き登録済みのアロケータが呼び出されることになります。)

本マクロは内部的に criAtom_SetUserMallocFunction 関数と criAtom_SetUserFreeFunction 関数を呼び出します。
本関数とこれらの API を併用しないようご注意ください。
(本関数の呼び出しにより、上記 API にセットした内容が上書きされます。)

また、登録されたメモリアロケータ関数はマルスレッドモード時に複数のスレッドからコール されることがあります。従って、メモリアロケート処理がスレッドセーフでない場合は独自に メモリアロケート処理を排他制御する必要があります。

型定義

スレッドモデル

説明:
CRI Atomライブラリがどのようなスレッドモデルで動作するかを表します。
ライブラリ初期化時( criAtom_Initialize 関数 )に ::CriAtomConfig構造体にて 指定します。
参照:
criAtom_Initialize, CriAtomConfig

ライブラリ初期化用コンフィグ構造体

説明:
CRI Atomライブラリの動作仕様を指定するための構造体です。
criAtom_Initialize 関数の引数に指定します。

CRI Atomライブラリは、初期化時に本構造体で指定された設定に応じて、内部リソースを 必要なだけ確保します。
ライブラリが必要とするワーク領域のサイズは、本構造体で指定されたパラメータに応じて 変化します。
備考:
デフォルト設定を使用する場合、 criAtom_SetDefaultConfig マクロで構造体にデフォルト パラメータをセットした後、 criAtom_Initialize 関数に構造体を指定してください。
注意:
将来的にメンバが増える可能性があるため、 ::criAtom_SetDefaultConfigマクロで必ず構造体を初期化してください。
(構造体のメンバに不定値が入らないようご注意ください。)
参照:
criAtom_Initialize, criAtom_SetDefaultConfig
typedef void*(CRIAPI * CriAtomMallocFunc)(void *obj, CriUint32 size)

メモリ確保関数

引数:
[in]objユーザ指定オブジェクト
[in]size要求メモリサイズ(バイト単位)
戻り値:
void* 確保したメモリのアドレス(失敗時はNULL)
説明:
メモリ確保関数登録用のインターフェースです。
CRI Atomライブラリがライブラリ内で行うメモリ確保処理を、 ユーザ独自のメモリ確保処理に置き換えたい場合に使用します。
備考:
コールバック関数が実行される際には、sizeに必要とされるメモリのサイズがセット されています。
コールバック関数内でsize分のメモリを確保し、確保したメモリのアドレスを 戻り値として返してください。
尚、引数の obj には、::criAtom_SetUserMallocFunction 関数で登録したユーザ指定 オブジェクトが渡されます。
メモリ確保時にメモリマネージャ等を参照する必要がある場合には、 当該オブジェクトを criAtom_SetUserMallocFunction 関数の引数にセットしておき、 本コールバック関数の引数を経由して参照してください。
注意:
メモリの確保に失敗した場合、エラーコールバックが返されたり、呼び出し元の関数が 失敗する可能性がありますのでご注意ください。
参照:
CriAtomFreeFunc, criAtom_SetUserMallocFunction
typedef void(CRIAPI * CriAtomFreeFunc)(void *obj, void *mem)

メモリ解放関数

引数:
[in]objユーザ指定オブジェクト
[in]mem解放するメモリアドレス
戻り値:
なし
説明:
メモリ解放関数登録用のインターフェースです。
CRI Atomライブラリ内がライブラリ内で行うメモリ解放処理を、 ユーザ独自のメモリ解放処理に置き換えたい場合に使用します。
備考:
コールバック関数が実行される際には、memに解放すべきメモリのアドレスがセット されています。
コールバック関数内でmemの領域のメモリを解放してください。 尚、引数の obj には、::criAtom_SetUserFreeFunction 関数で登録したユーザ指定 オブジェクトが渡されます。
メモリ確保時にメモリマネージャ等を参照する必要がある場合には、 当該オブジェクトを criAtom_SetUserFreeFunction 関数の引数にセットしておき、 本コールバック関数の引数を経由して参照してください。
参照:
CriAtomMallocFunc, criAtom_SetUserFreeFunction
typedef void(CRIAPI * CriAtomAudioFrameStartCbFunc)(void *obj)

オーディオフレーム開始コールバック関数

引数:
[in]objユーザ指定オブジェクト
戻り値:
なし
説明:
オーディオフレームの開始時に実行されるコールバック関数です。
オーディオフレームは、CRI Atomライブラリ内でサーバ処理を実行するタイミングを示します。
コールバック関数の登録には criAtom_SetAudioFrameStartCallback 関数を使用します。
登録したコールバック関数は、オーディオフレームの開始時(サーバ処理開始直前)に実行されます。
備考:
ライブラリ初期化時にスレッドモデルをマルチスレッド( CRIATOM_THREAD_MODEL_MULTI ) に設定した場合、本コールバック関数はCRI Atomライブラリ内で作成されたスレッドから 呼び出されます。
ライブラリ初期化時にスレッドモデルをユーザマルチスレッド( CRIATOM_THREAD_MODEL_USER_MULTI )、 またはシングルスレッド( CRIATOM_THREAD_MODEL_SINGLE )に設定した場合、本コールバック関数 criAtom_ExecuteMain 関数内で呼び出されます。

尚、引数の obj には、::criAtom_SetAudioFrameStartCallback 関数で登録したユーザ指定 オブジェクトが渡されます。
参照:
criAtom_SetAudioFrameStartCallback
typedef void(CRIAPI * CriAtomAudioFrameEndCbFunc)(void *obj)

オーディオフレーム終了コールバック関数

引数:
[in]objユーザ指定オブジェクト
戻り値:
なし
説明:
オーディオフレームの終了時に実行されるコールバック関数です。
オーディオフレームは、CRI Atomライブラリ内でサーバ処理を実行するタイミングを示します。
コールバック関数の登録には criAtom_SetAudioFrameEndCallback 関数を使用します。
登録したコールバック関数は、オーディオフレームの終了時(サーバ処理終了直後)に実行されます。
備考:
ライブラリ初期化時にスレッドモデルをマルチスレッド( CRIATOM_THREAD_MODEL_MULTI ) に設定した場合、本コールバック関数はCRI Atomライブラリ内で作成されたスレッドから 呼び出されます。
ライブラリ初期化時にスレッドモデルをユーザマルチスレッド( CRIATOM_THREAD_MODEL_USER_MULTI )、 またはシングルスレッド( CRIATOM_THREAD_MODEL_SINGLE )に設定した場合、本コールバック関数 criAtom_ExecuteMain 関数内で呼び出されます。

尚、引数の obj には、::criAtom_SetAudioFrameEndCallback 関数で登録したユーザ指定 オブジェクトが渡されます。
参照:
criAtom_SetAudioFrameEndCallback

サウンドレンダラタイプ

説明:
Atomプレーヤが内部で作成するサウンドレンダラの種別を指定するためのデータ型です。
Atomプレーヤ作成時にコンフィグ構造体のパラメータとして指定します。
注意:
CRIATOM_SOUND_RENDERER_ANYcriAtomExPlayer_SetSoundRendererType 関数に対してのみ指定可能です。
ボイスプール作成時には使用できません。
参照:
CriAtomAdxPlayerConfig, criAtomPlayer_CreateAdxPlayer

スピーカーID

説明:
音声を出力するスピーカーを指定するためのIDです。
criAtomPlayer_SetSendLevel 関数で利用します。
参照:
criAtomPlayer_SetSendLevel

パフォーマンス情報

説明:
パフォーマンス情報を取得するための構造体です。
criAtom_GetPerformanceInfo 関数で利用します。
参照:
criAtom_GetPerformanceInfo

エンコード品質

説明:
CRI Atom Encoder, CRI Atom Craftで設定されるエンコード品質のデータ型です。
音声データのビットレートを計算するときに使用します。
参照:
criAtom_CalculateHcaBitrate, criAtom_CalculateHcaMxBitrate
typedef CriUint32 CriAtomFormat

フォーマット種別

説明:
音声データのフォーマットを示すデータ型です。
以下のいずれかの値が利用可能です。

音声データフォーマット情報

説明:
音声データのフォーマット情報です。
criAtomPlayer_GetFormatInfo 関数で使用します。
参照:
criAtomPlayer_GetFormatInfo

PCMフォーマット

説明:
PCMデータの型情報です。
参照:
criAtomPlayer_SetFilterCallback

ストリーミング情報

説明:
criAtom_GetStreamingInfo 関数で取得した時点でのストリーミングの状況です。
参照:
criAtom_GetStreamingInfo

ボイス停止理由

説明:
ボイスの停止理由を表します。

列挙型

スレッドモデル

説明:
CRI Atomライブラリがどのようなスレッドモデルで動作するかを表します。
ライブラリ初期化時( criAtom_Initialize 関数 )に ::CriAtomConfig構造体にて 指定します。
参照:
criAtom_Initialize, CriAtomConfig
列挙型の値:
CRIATOM_THREAD_MODEL_MULTI 

マルチスレッド

説明:
ライブラリは内部でスレッドを作成し、マルチスレッドにて動作します。
スレッドは criAtom_Initialize 関数呼び出し時に作成されます。
ライブラリのサーバ処理は、作成されたスレッド上で定期的に実行されます。
CRIATOM_THREAD_MODEL_MULTI_USER_DRIVEN 

マルチスレッド(ユーザ駆動式)

説明:
ライブラリは内部でスレッドを作成し、マルチスレッドにて動作します。
スレッドは criAtom_Initialize 関数呼び出し時に作成されます。
サーバ処理自体は作成されたスレッド上で実行されますが、 CRIATOM_THREAD_MODEL_MULTI とは異なり、自動的には実行されません。
ユーザは criAtom_ExecuteMain 関数で明示的にサーバ処理を駆動する必要があります。
criAtom_ExecuteMain 関数を実行すると、スレッドが起動し、サーバ処理が実行されます。)
CRIATOM_THREAD_MODEL_USER_MULTI 

ユーザマルチスレッド

説明:
ライブラリ内部ではスレッドを作成しませんが、ユーザが独自に作成したスレッド からサーバ処理関数を呼び出せるよう、内部の排他制御は行います。
サーバ処理は criAtom_ExecuteMain 関数内で同期実行されます。
CRIATOM_THREAD_MODEL_SINGLE 

シングルスレッド

説明:
ライブラリ内部でスレッドを作成しません。また、内部の排他制御も行いません。
サーバ処理は criAtom_ExecuteMain 関数内で同期実行されます。
注意:
このモデルを選択した場合、各APIとサーバ処理関数とを同一スレッドから呼び出すようにしてください。

サウンドレンダラタイプ

説明:
Atomプレーヤが内部で作成するサウンドレンダラの種別を指定するためのデータ型です。
Atomプレーヤ作成時にコンフィグ構造体のパラメータとして指定します。
注意:
CRIATOM_SOUND_RENDERER_ANYcriAtomExPlayer_SetSoundRendererType 関数に対してのみ指定可能です。
ボイスプール作成時には使用できません。
参照:
CriAtomAdxPlayerConfig, criAtomPlayer_CreateAdxPlayer
列挙型の値:
CRIATOM_SOUND_RENDERER_NATIVE 

プラットフォームライブラリへ出力

CRIATOM_SOUND_RENDERER_ASR 

Atom Sound Rendererへ出力

CRIATOM_SOUND_RENDERER_HW1 

機種固有定義1

CRIATOM_SOUND_RENDERER_HW2 

機種固有定義2

CRIATOM_SOUND_RENDERER_HW3 

機種固有定義3

CRIATOM_SOUND_RENDERER_HW4 

機種固有定義4

CRIATOM_SOUND_RENDERER_ANY 

出力方式を制限しない

スピーカーID

説明:
音声を出力するスピーカーを指定するためのIDです。
criAtomPlayer_SetSendLevel 関数で利用します。
参照:
criAtomPlayer_SetSendLevel
列挙型の値:
CRIATOM_SPEAKER_FRONT_LEFT 

フロントレフトスピーカー

CRIATOM_SPEAKER_FRONT_RIGHT 

フロントライトスピーカー

CRIATOM_SPEAKER_FRONT_CENTER 

フロントセンタースピーカー

CRIATOM_SPEAKER_LOW_FREQUENCY 

LFE(≒サブウーハー)

CRIATOM_SPEAKER_SURROUND_LEFT 

サラウンドレフトスピーカー

CRIATOM_SPEAKER_SURROUND_RIGHT 

サラウンドライトスピーカー

CRIATOM_SPEAKER_SURROUND_BACK_LEFT 

サラウンドバックレフトスピーカー

CRIATOM_SPEAKER_SURROUND_BACK_RIGHT 

サラウンドバックライトスピーカー

エンコード品質

説明:
CRI Atom Encoder, CRI Atom Craftで設定されるエンコード品質のデータ型です。
音声データのビットレートを計算するときに使用します。
参照:
criAtom_CalculateHcaBitrate, criAtom_CalculateHcaMxBitrate
列挙型の値:
CRIATOM_ENCODE_QUALITY_LOWEST 

最低品質設定

CRIATOM_ENCODE_QUALITY_LOW 

低品質設定

CRIATOM_ENCODE_QUALITY_MIDDLE 

中品質設定

CRIATOM_ENCODE_QUALITY_HIGH 

高品質設定

CRIATOM_ENCODE_QUALITY_HIGHEST 

最高品質設定

PCMフォーマット

説明:
PCMデータの型情報です。
参照:
criAtomPlayer_SetFilterCallback

ボイス停止理由

説明:
ボイスの停止理由を表します。
列挙型の値:
CRIATOM_VOICE_STOP_REASON_EXPLAYER_STOP 

EXプレーヤ停止

CRIATOM_VOICE_STOP_REASON_EXPLAYER_STOPWITHOUTRELEASE 

EXプレーヤ停止

CRIATOM_VOICE_STOP_REASON_PLAYBACK_STOP 

再生ID指定停止

CRIATOM_VOICE_STOP_REASON_PLAYBACK_STOPWITHOUTRELEASE 

再生ID指定即時停止

CRIATOM_VOICE_STOP_REASON_SOUNDPLAYER_DESTROY 

サウンドプレーヤ破棄

CRIATOM_VOICE_STOP_REASON_FADER_STOP 

フェーダー停止

CRIATOM_VOICE_STOP_REASON_PLAYER_STOP 

プレーヤ停止

CRIATOM_VOICE_STOP_REASON_AWB_STOP 

AWB停止

CRIATOM_VOICE_STOP_REASON_STREAMING_CACHE_STOP 

ストリーミングキャッシュ停止

CRIATOM_VOICE_STOP_REASON_PLAYER_FORCE_STOP 

プレーヤ停止

CRIATOM_VOICE_STOP_REASON_PLAYER_DESTROY 

プレーヤ破棄

CRIATOM_VOICE_STOP_REASON_MTPLAYER_STOP 

MTプレーヤ破棄

CRIATOM_VOICE_STOP_REASON_VOICE_POOL_DESTROY 

ボイスプール破棄

CRIATOM_VOICE_STOP_REASON_VOICE_STEAL_CASE1 

ボイス奪い取り

CRIATOM_VOICE_STOP_REASON_VOICE_STEAL_CASE2 

ボイス奪い取り

CRIATOM_VOICE_STOP_REASON_VOICE_STEAL_CASE3 

ボイス奪い取り

CRIATOM_VOICE_STOP_REASON_VOICE_STEAL_CASE4 

ボイス奪い取り

CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_VIRTUAL_VOICE_BEYOND_LIFE_TIME 

サーバー処理

CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_CANT_CALC_3DPOS 

サーバー処理

CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_INTERNAL_PLAYBACK_CANCEL 

サーバー処理

CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_NO_PLAYER_NO_RETRY 

サーバー処理

CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_FAILED_RETRY_BEYOND_LIFE_TIME 

サーバー処理

CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_PLAYER_STATUS_PLAYEND 

サーバー処理

CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_PLAYER_STATUS_ERROR 

サーバー処理

CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_IMPOSSIBLE_RETRY 

サーバー処理

CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_PLAYER_STATUS_STOP 

サーバー処理

CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_INVALID_SERVER_REQUEST 

サーバー処理

CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_SILENT_MODE_STOP 

サーバー処理

CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_SOUNDCOMPLEX_STATUS_ERROR 

サーバー処理

CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_NO_ELEMENT_CASE1 

サーバー処理

CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_NO_ELEMENT_CASE2 

サーバー処理

CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_STOP_NOT_PLAYING_ELEMENT 

サーバー処理

CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_NOT_ACTIVE_VOICE 

サーバー処理

CRIATOM_VOICE_STOP_REASON_ELEMENT_FREE 

エレメント解放

CRIATOM_VOICE_STOP_REASON_EXPLAYER_STOP_ERROR_HN 

エラープレーヤの停止

CRIATOM_VOICE_STOP_REASON_ACB_RELEASE 

ACB解放

CRIATOM_VOICE_STOP_REASON_VOICE_ALLOCATE_FAIL 

ボイス確保失敗

CRIATOM_VOICE_STOP_REASON_VOICE_RESET 

ボイスリセット

CRIATOM_VOICE_STOP_REASON_VOICE_VIRTUALIZE 

ボイスリバーチャル化

CRIATOM_VOICE_STOP_REASON_PLAYBACKSOUND_ALLOCATE_FAIL 

プレイバックサウンド確保失敗

CRIATOM_VOICE_STOP_REASON_STOP_ACTION_WITH_BEATSYNC 

ビート同期停止アクション

CRIATOM_VOICE_STOP_REASON_START_CANCEL_WITH_BEATSYNC 

ビート同期再生キャンセル

CRIATOM_VOICE_STOP_REASON_STOP_ACTION 

停止アクション

CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE0 

ブロック遷移

CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE1 

ブロック遷移

CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE2 

ブロック遷移

CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE3 

ブロック遷移

CRIATOM_VOICE_STOP_REASON_CATEGORY_CUE_LIMIT 

カテゴリキューリミット

CRIATOM_VOICE_STOP_REASON_UNSET_ACB 

ACB内部解放

CRIATOM_VOICE_STOP_REASON_SEQUENCE_END 

シーケンスエンドマーカー

CRIATOM_VOICE_STOP_REASON_BLODK_END 

ブロックエンド

CRIATOM_VOICE_STOP_REASON_SEQUENCE_EXECUTE 

シーケンスサーバー処理

CRIATOM_VOICE_STOP_REASON_TRACK_MONO 

トラックモノモード処理

CRIATOM_VOICE_STOP_REASON_FADER_STOP_IMMEDIATE 

フェーダー即時停止

CRIATOM_VOICE_STOP_REASON_CUE_LIMIT 

キューリミット処理

CRIATOM_VOICE_STOP_REASON_STOP_ACB 

全ACB停止処理

CRIATOM_VOICE_STOP_REASON_SOUND_OBJECT_ADD_PLAYER 

サウンドオブジェクトへのプレーヤ追加処理

CRIATOM_VOICE_STOP_REASON_SOUND_OBJECT_DELETE_PLAYER 

サウンドオブジェクトからプレーヤの削除処理

CRIATOM_VOICE_STOP_REASON_SOUND_OBJECT_DELETE_ALL_PLAYER 

サウンドオブジェクトからプレーヤの削除処理

CRIATOM_VOICE_STOP_REASON_UNREGISTER_ACF 

ACFのアンレジスト処理

CRIATOM_VOICE_STOP_REASON_EXPLAYER_DESTROY 

CriAtomExPlayerハンドルの破棄

CRIATOM_VOICE_STOP_REASON_EXPLAYER_ATTACH_FADER 

CriAtomExPlayerへのフェーダー付加

CRIATOM_VOICE_STOP_REASON_EXPLAYER_DETACH_FADER 

CriAtomExPlayerへのフェーダー取り外し

CRIATOM_VOICE_STOP_REASON_DETACH_AWB 

AWB解放処理

CRIATOM_VOICE_STOP_MULTIPLE_PLAYBACK_PROHIBITION_TIME 

多重再生禁止時間内再生

CRIATOM_VOICE_STOP_REASON_CATEGORY_STOP 

カテゴリ停止

CRIATOM_VOICE_STOP_REASON_CATEGORY_STOPWITHOUTRELEASE 

カテゴリ即時停止

CRIATOM_VOICE_STOP_REASON_NOTE_OFF 

タイムライン停止

CRIATOM_VOICE_STOP_REASON_REGISTER_ACF 

ACFの登録処理


関数

CriUint32 CRIAPI criAtom_GetVersionNumber ( void  )

ライブラリバージョン番号の取得

戻り値:
CriUint32 バージョン番号
説明:
ライブラリのバージョン番号を取得します。
本関数で取得した値とヘッダファイル( cri_atom.h )に記載された CRI_ATOM_VERSION の値が異なる場合、インクルードしているヘッダと、 リンクしているライブラリのバージョンが一致していない可能性があります。
(ビルド環境に設定されたインクルードパスとライブラリパスを確認してください。)
備考:
以下のコードで、デバッグ時にライブラリとヘッダバージョンの不一致を検出可能です。
// ライブラリとヘッダの整合性をチェック
    assert(CRI_ATOM_VERSION == criAtom_GetVersionNumber());
        :
CriSint32 CRIAPI criAtom_CalculateWorkSize ( const CriAtomConfig config)

ライブラリ初期化用ワーク領域サイズの計算

引数:
[in]config初期化用コンフィグ構造体
戻り値:
CriSint32 ワーク領域サイズ
戻り値:
0以上正常に処理が完了
-1エラーが発生
説明:
CRI Atomライブラリを使用するために必要な、ワーク領域のサイズを取得します。

ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。
ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考:
CRI Atomライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtomConfig )の内容によって変化します。

引数にNULLを指定した場合、デフォルト設定 ( criAtom_SetDefaultConfig 適用時と同じパラメータ)で ワーク領域サイズを計算します。
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
参照:
CriAtomConfig, criAtom_Initialize
void CRIAPI criAtom_Initialize ( const CriAtomConfig config,
void *  work,
CriSint32  work_size 
)

ライブラリの初期化

引数:
[in]config初期化用コンフィグ構造体
[in]workワーク領域
[in]work_sizeワーク領域サイズ
説明:
CRI Atomライブラリを初期化します。
ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。
(ライブラリの機能は、本関数を実行後、 criAtom_Finalize 関数を実行するまでの間、 利用可能です。)

ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。
ワーク領域を確保する方法には、以下の2通りの方法があります。
(a) User Allocator方式:メモリの確保/解放に、ユーザが用意した関数を使用する方法。
(b) Fixed Memory方式:必要なメモリ領域を直接ライブラリに渡す方法。

User Allocator方式を用いる場合、ユーザはCRI Atomライブラリにメモリ確保関数を登録しておきます。
workにNULL、work_sizeに0を指定して本関数を呼び出すことで、 ライブラリは登録済みのメモリ確保関数を使用して必要なメモリを自動的に確保します。
ユーザがワーク領域を用意する必要はありません。
初期化時に確保されたメモリは、終了処理時( criAtom_Finalize 関数実行時)に解放されます。

Fixed Memory方式を用いる場合、ワーク領域として別途確保済みのメモリ領域を本関数に 設定する必要があります。
ワーク領域のサイズは criAtom_CalculateWorkSize 関数で取得可能です。
初期化処理の前に criAtom_CalculateWorkSize 関数で取得したサイズ分のメモリを予め 確保しておき、本関数に設定してください。
尚、Fixed Memory方式を用いた場合、ワーク領域はライブラリの終了処理( criAtom_Finalize 関数) を行うまでの間、ライブラリ内で利用され続けます。
ライブラリの終了処理を行う前に、ワーク領域のメモリを解放しないでください。
例:
【User Allocator方式によるライブラリの初期化】
User Allocator方式を用いる場合、ライブラリの初期化/終了の手順は以下の以下の通りです。
  1. 初期化処理実行前に、 criAtom_SetUserMallocFunction 関数と criAtom_SetUserFreeFunction 関数を用いてメモリ確保/解放関数を登録する。
  2. 初期化用コンフィグ構造体にパラメータをセットする。
  3. criAtom_Initialize 関数で初期化処理を行う。
    (workにはNULL、work_sizeには0を指定する。)
  4. アプリケーション終了時に criAtom_Finalize 関数で終了処理を行う。

具体的なコードは以下のとおりです。
 // 独自のメモリ確保関数
 void *user_malloc(void *obj, CriUint32 size)
 {
    void *mem;

    // メモリの確保
    mem = malloc(size);

    return (mem);
 }

 // 独自のメモリ解放関数を用意
 void user_free(void *obj, void *mem)
 {
    // メモリの解放
    free(mem);

    return;
 }

 main()
 {
    CriAtomConfig config;   // ライブラリ初期化用コンフィグ構造体
        :
    // 独自のメモリ確保関数を登録
    criAtom_SetUserMallocFunction(user_malloc, NULL);

    // 独自のメモリ解放関数を登録
    criAtom_SetUserFreeFunction(user_free, NULL);

    // ライブラリ初期化用コンフィグ構造体にデフォルト値をセット
    criAtom_SetDefaultConfig(&config);

    // ライブラリの初期化
    // ワーク領域にはNULLと0を指定する。
    // →必要なメモリは、登録したメモリ確保関数を使って確保される。
    criAtom_Initialize(&config, NULL, 0);
        :
    // アプリケーションのメイン処理
        :
    // アプリケーションを終了する際に終了処理を行う
    // →初期化時に確保されたメモリは、登録したメモリ解放関数を使って解放される。
    criAtom_Finalize();
        :
 }

【Fixed Memory方式によるライブラリの初期化】
Fixed Memory方式を用いる場合、ライブラリの初期化/終了の手順は以下の以下の通りです。
  1. 初期化用コンフィグ構造体にパラメータをセットする。
  2. ライブラリの初期化に必要なワーク領域のサイズを、 criAtom_CalculateWorkSize 関数を使って計算する。
  3. ワーク領域サイズ分のメモリを確保する。
  4. criAtom_Initialize 関数で初期化処理を行う。
    (workには確保したメモリのアドレスを、work_sizeにはワーク領域のサイズを指定する。)
  5. アプリケーション終了時に criAtom_Finalize 関数で終了処理を行う。
  6. ワーク領域のメモリを解放する。

具体的なコードは以下のとおりです。
 main()
 {
    CriAtomConfig config;   // ライブラリ初期化用コンフィグ構造体
    void *work;             // ワーク領域アドレス
    CriSint32 work_size;    // ワーク領域サイズ
        :
    // ライブラリ初期化用コンフィグ構造体にデフォルト値をセット
    criAtom_SetDefaultConfig(&config);

    // ライブラリの初期化に必要なワーク領域のサイズを計算
    work_size = criAtom_CalculateWorkSize(&config);

    // ワーク領域用にメモリを確保
    work = malloc((size_t)work_size);

    // ライブラリの初期化
    // →確保済みのワーク領域を指定する。
    criAtom_Initialize(&config, NULL, 0);
        :
    // アプリケーションのメイン処理
    // →この間、確保したメモリは保持し続ける。
        :
    // アプリケーションを終了する際に終了処理を行う
    criAtom_Finalize();

    // 必要なくなったワーク領域を解放する
    free(work);
        :
 }
備考:
ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。
また、必要なワーク領域のサイズは、プラットフォームによっても異なります。
引数 config の情報は、関数内でのみ参照されます。
関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意:
現状、ストリーム再生の有無に関係なく、CRI Atomライブラリの初期化前に必ず CRI File Systemライブラリを初期化しておく必要があります。
CRI File Systemライブラリの初期化が行われていない場合は、 CRI Atomライブラリ内部でCRI File Systemライブラリを初期化します。
その際の初期化パラメータはcriFs_SetDefaultConfig処理マクロで設定される値です。
本関数を実行後、必ず対になる criAtom_Finalize 関数を実行してください。
また、 criAtom_Finalize 関数を実行するまでは、本関数を再度実行することはできません。
参照:
CriAtomConfig, criAtom_Finalize, criAtom_SetUserMallocFunction, criAtom_SetUserFreeFunction, criAtom_CalculateWorkSize
void CRIAPI criAtom_Finalize ( void  )

ライブラリの終了

説明:
CRI Atomライブラリを終了します。
注意:
criAtom_Initialize 関数実行前に本関数を実行することはできません。
参照:
criAtom_Initialize
CriBool CRIAPI criAtom_IsInitialized ( void  )

ライブラリ初期化状態の取得

戻り値:
CriBool 初期化中かどうか
戻り値:
CRI_FALSE未初期化状態
CRI_TRUE初期化済み
説明:
CRI Atomライブラリが既に初期化されているかどうかをチェックします。
参照:
criAtom_Initialize, criAtom_Finalize
CriBool CRIAPI criAtom_IsAudioOutputActive ( void  )

オーディオ出力が有効かどうかのチェック

戻り値:
CriBool オーディオ出力が有効かどうか
戻り値:
CRI_TRUE有効
CRI_FALSE無効
説明:
オーディオ出力が有効化どうかをチェックします。
CRI Atomライブラリ初期化時、サウンドデバイスが利用可能であった場合、 本関数はCRI_TRUEを返します。
CRI Atomライブラリ初期化時に、サウンドデバイスが利用不可能であった場合、 本関数はCRI_FALSEを返します。
補足:
サウンドデバイスが無効な場合でも、Atomライブラリは音声を出力せずに動作します。
(音声データ消費量をタイマを元に計算し、可能な限り音声出力が有効な場合と同等の動作をエミュレートします。)
そのため、音声出力デバイスが使用できないケースであっても、 アプリケーション側でAtomライブラリのAPI呼び出しを回避する必要はありません。
(PC環境等、ユーザがサウンドデバイスを無効化しているケースに対し通知を行いたい場合に、 本関数を使用してください。)
注意:
本関数は、「Atomライブラリ初期化時点でオーディオデバイスが利用可能だったかどうか」を返します。
ライブラリ初期化後にユーザがサウンドデバイスを抜き差しするケースについては、本関数では検知できません。
(各機種固有のAPIを使用する必要があります。)

オーディオ出力が無効な状態でAtomライブラリを初期化後、 ユーザがオーディオデバイスを有効化したとしても、Atomライブラリは音声出力を行いません。
(オーディオデバイスが刺されたことをAtomライブラリが自動で検出することはありません。)
アプリケーション実行中にオーディオデバイスを有効化したい場合には、 Atomライブラリの初期化処理をやり直す必要があります。
参照:
criAtom_Initialize
void CRIAPI criAtom_ExecuteMain ( void  )

マルチスレッド用サーバ処理の実行

説明:
CRI Atomライブラリの内部状態を更新します。
アプリケーションは、この関数を定期的に実行する必要があります。

サーバ処理を実行すべき回数は、ライブラリ初期化時のパラメータに依存します。
ライブラリ初期化時にスレッドモデルを CRIATOM_THREAD_MODEL_MULTI に設定した場合、 リアルタイム性の要求される処理は全てCRI Atomライブラリ内で定期的に自動実行されるため、 本関数の呼び出し頻度は少なくても問題は発生しません。
(最低でも毎秒1回程度実行されていれば、音切れ等の問題が発生することはありません。)
ライブラリ初期化時にスレッドモデルを CRIATOM_THREAD_MODEL_SINGLECRIATOM_THREAD_MODEL_USER_MULTI に設定した場合、ファイルの読み込み管理や、 データのデコード、音声の出力等、音声再生に必要な処理のほぼ全てが本関数内で実行されます。
また、音声再生処理に同期して、CRI File Systemライブラリのファイルアクセスとデータ展開処理を実行します。
そのため、ライブラリ初期化時に指定したサーバ処理の実行頻度( CriAtomConfig 構造体の server_frequency )を下回る頻度で本関数を実行した場合や、 大きいデータの読み込み、圧縮ファイルの読み込み等を行う場合、 音切れ等の問題が発生する可能性があるので注意してください。
備考:
ライブラリ初期化時にスレッドモデルを CRIATOM_THREAD_MODEL_MULTI に設定した場合でも、 本関数を実行する必要があります。
(スレッドモデルを CRIATOM_THREAD_MODEL_MULTI の場合、ステータス更新等、ごく一部の
CRI File Systemライブラリのサーバ処理は、CRI Atomライブラリ内部で実行されます。
、 そのため、本関数を実行している場合、アプリケーション側で別途CRI File Systemライブラリ のサーバ処理を呼び出す必要はありません。
参照:
criAtom_ExecuteAudioProcess
void CRIAPI criAtom_ExecuteAudioProcess ( void  )

ユーザーマルチスレッド用サーバ処理の実行

説明:
CRI Atomライブラリのみを更新します。
スレッドモデルが::CRIATOM_THREAD_MODEL_USER_MULTIの場合、 アプリケーションは、この関数を定期的に実行する必要があります。


ファイルの読み込み管理や、データのデコード、音声の出力等、 音声再生に必要な処理のほぼ全てが本関数内で実行されます。
そのため、ライブラリ初期化時に指定したサーバ処理の実行頻度( CriAtomConfig 構造体の server_frequency )を下回る頻度で本関数を実行した場合、音切れ等の問題が発生する可能性 があります。
また、本関数は::criAtom_ExecuteMain 関数と異なり、CRI File Systemライブラリのサーバ処理を実行しません。
アプリケーションが必要なサーバ処理を正しい順序で実行してください。

備考:
CRIATOM_THREAD_MODEL_SINGLE に設定した場合、サーバ処理の排他制御が行われないので、 複数のスレッドから呼び出さないようにしてください。
参照:
criAtom_ExecuteMain
void CRIAPI criAtom_SetUserMallocFunction ( CriAtomMallocFunc  func,
void *  obj 
)

メモリ確保関数の登録

引数:
[in]funcメモリ確保関数
[in]objユーザ指定オブジェクト
説明:
CRI Atomライブラリにメモリ確保関数を登録します。
CRI Atomライブラリ内がライブラリ内で行うメモリ確保処理を、 ユーザ独自のメモリ確保処理に置き換えたい場合に使用します。

本関数の使用手順は以下のとおりです。
(1) CriAtomMallocFunc インターフェースに副ったメモリ確保関数を用意する。
(2) criAtom_SetUserMallocFunction 関数を使用し、CRI Atomライブラリに対して メモリ確保関数を登録する。

具体的なコードの例は以下のとおりです。
例:
 // 独自のメモリ確保関数を用意
 void *user_malloc(void *obj, CriUint32 size)
 {
    void *mem;

    // メモリの確保
    mem = malloc(size);

    return (mem);
 }

 main()
 {
        :
    // メモリ確保関数の登録
    criAtom_SetUserMallocFunction(user_malloc, NULL);
        :
 }
備考:
引数の obj に指定した値は、 CriAtomMallocFunc に引数として渡されます。
メモリ確保時にメモリマネージャ等を参照する必要がある場合には、 当該オブジェクトを本関数の引数にセットしておき、コールバック関数で引数を経由 して参照してください。
注意:
メモリ確保関数を登録する際には、合わせてメモリ解放関数( CriAtomFreeFunc )を 登録する必要があります。
参照:
CriAtomMallocFunc, criAtom_SetUserFreeFunction
void CRIAPI criAtom_SetUserFreeFunction ( CriAtomFreeFunc  func,
void *  obj 
)

メモリ解放関数の登録

引数:
[in]funcメモリ解放関数
[in]objユーザ指定オブジェクト
説明:
CRI Atomライブラリにメモリ解放関数を登録します。
CRI Atomライブラリ内がライブラリ内で行うメモリ解放処理を、 ユーザ独自のメモリ解放処理に置き換えたい場合に使用します。

本関数の使用手順は以下のとおりです。
(1) CriAtomFreeFunc インターフェースに副ったメモリ解放関数を用意する。
(2) criAtom_SetUserFreeFunction 関数を使用し、CRI Atomライブラリに対して メモリ解放関数を登録する。

具体的なコードの例は以下のとおりです。
例:
 // 独自のメモリ解放関数を用意
 void user_free(void *obj, void *mem)
 {
    // メモリの解放
    free(mem);

    return;
 }

 main()
 {
        :
    // メモリ解放関数の登録
    criAtom_SetUserFreeFunction(user_free, NULL);
        :
 }
備考:
引数の obj に指定した値は、 CriAtomFreeFunc に引数として渡されます。
メモリ確保時にメモリマネージャ等を参照する必要がある場合には、 当該オブジェクトを本関数の引数にセットしておき、コールバック関数で引数を経由 して参照してください。
注意:
メモリ解放関数を登録する際には、合わせてメモリ確保関数( CriAtomMallocFunc )を 登録する必要があります。
参照:
CriAtomFreeFunc, criAtom_SetUserMallocFunction
void CRIAPI criAtom_SetAudioFrameStartCallback ( CriAtomAudioFrameStartCbFunc  func,
void *  obj 
)

オーディオフレーム開始コールバック関数の登録

引数:
[in]funcオーディオフレーム開始コールバック関数
[in]objユーザ指定オブジェクト
説明:
CRI Atomライブラリにオーディオフレーム開始コールバックを登録します。
オーディオフレームは、CRI Atomライブラリ内でサーバ処理を実行するタイミングを示します。
本関数で登録したコールバック関数は、オーディオフレームの開始時(サーバ処理開始直前)に 実行されます。
備考:
ライブラリ初期化時にスレッドモデルをマルチスレッド( CRIATOM_THREAD_MODEL_MULTI ) に設定した場合、コールバック関数はCRI Atomライブラリ内で作成されたスレッドから 呼び出されます。
ライブラリ初期化時にスレッドモデルをユーザマルチスレッド( CRIATOM_THREAD_MODEL_USER_MULTI )、 またはシングルスレッド( CRIATOM_THREAD_MODEL_SINGLE )に設定した場合、コールバック関数 criAtom_ExecuteMain 関数内で呼び出されます。

引数の obj に指定した値は、 CriAtomAudioFrameStartCbFunc に引数として渡されます。
注意:
コールバック関数は1つしか登録できません。
登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。

funcにNULLを指定するとことで登録済み関数の登録解除が行えます。
void CRIAPI criAtom_SetAudioFrameEndCallback ( CriAtomAudioFrameEndCbFunc  func,
void *  obj 
)

オーディオフレーム終了コールバック関数の登録

引数:
[in]funcオーディオフレーム終了コールバック関数
[in]objユーザ指定オブジェクト
説明:
CRI Atomライブラリにオーディオフレーム終了コールバックを登録します。
オーディオフレームは、CRI Atomライブラリ内でサーバ処理を実行するタイミングを示します。
本関数で登録したコールバック関数は、オーディオフレームの終了時(サーバ処理終了直後)に 実行されます。
備考:
ライブラリ初期化時にスレッドモデルをマルチスレッド( CRIATOM_THREAD_MODEL_MULTI ) に設定した場合、コールバック関数はCRI Atomライブラリ内で作成されたスレッドから 呼び出されます。
ライブラリ初期化時にスレッドモデルをユーザマルチスレッド( CRIATOM_THREAD_MODEL_USER_MULTI )、 またはシングルスレッド( CRIATOM_THREAD_MODEL_SINGLE )に設定した場合、コールバック関数 criAtom_ExecuteMain 関数内で呼び出されます。

引数の obj に指定した値は、 CriAtomAudioFrameEndCbFunc に引数として渡されます。
注意:
コールバック関数は1つしか登録できません。
登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。

funcにNULLを指定するとことで登録済み関数の登録解除が行えます。
void CRIAPI criAtom_Lock ( void  )

サーバ処理の割り込みを防止

説明:
サーバ処理の割り込み抑止します。
本関数実行後、::criAtom_Unlock 関数実行までの間、サーバ処理の動作が抑止されます。
複数のAPIを同一オーディオフレーム内で確実に実行したい場合には、本関数でサーバ処理の 割り込みを防止し、それらの関数を実行してください。
例:
// サーバ処理の割り込みを防止
 criAtom_Lock();

 // 複数の音声を同時に再生開始
 criAtomPlayer_Start(player1);
 criAtomPlayer_Start(player2);
 criAtomPlayer_Start(player3);
 criAtomPlayer_Start(player4);

 // サーバ処理の割り込み防止を解除
 criAtom_Unlock();
    :
注意:
上記の例のように、複数のプレーヤで同時に再生をスタートする場合でも、 ストリーム再生時は同時に発音が開始されるとは限りません。
(バッファリングに伴う再生遅延があるため。)

本関数実行後、長時間::criAtom_Unlock 関数を呼ばない場合、音声再生が途切れる恐れがあります。
サーバ処理の割り込みを防止する区間は、最小限に抑える必要があります。
参照:
criAtom_Unlock
void CRIAPI criAtom_Unlock ( void  )

サーバ処理の割り込み防止を解除

説明:
criAtom_Lock 関数による、サーバ処理の割り込み防止を解除します。
参照:
criAtom_Lock
void CRIAPI criAtom_SetChannelMapping ( CriSint32  nch,
CriUint32  type 
)

チャンネルマッピングパターンの指定

引数:
[in]nchマッピングパターンを変更するチャンネル数
[in]typeマッピングパターン
説明:
音声データの各チャンネルと出力スピーカーの対応付けを変更します。

[5ch音声データについて] 5ch音声データを再生した場合、デフォルト状態では各チャンネルが L, R, C, Ls, Rs の順で出力されます。
これに対し、::criAtom_SetChannelMapping(5, 1); を実行した場合、 5ch音声データの各チャンネルが L, R, LFE, Ls, Rs の順で出力されるようになります。

[6ch音声データについて] 6ch音声データを再生した場合、デフォルト状態では各チャンネルが L, R, C, LFE, Ls, Rs の順で出力されます。
これに対し、::criAtom_SetChannelMapping(6, 1); を実行した場合、 6ch音声データの各チャンネルが L, C, R, Ls, Rs ,LFEの順で出力されるようになります。
備考:
現状、本関数では5chと6chの音声データのマッピングパターンしか変更できません。
void CRIAPI criAtom_AttachPerformanceMonitor ( void  )

パフォーマンスモニタ機能の追加

説明:
パフォーマンス計測機能を追加し、パフォーマンス計測処理を開始します。
本関数を実行後、 criAtom_GetPerformanceInfo 関数を実行することで、 サーバ処理の負荷や、サーバ処理の実行間隔等、ライブラリのパフォーマンス情報を 取得することが可能です。
参照:
criAtom_GetPerformanceInfo, criAtom_DetachPerformanceMonitor
例:
    // パフォーマンス情報取得用構造体
    CriAtomPerformanceInfo info;

    // ライブラリの初期化
    criAtom_Initialize(…);

    // パフォーマンスモニタ機能の追加
    criAtom_AttachPerformanceMonitor();

    // パフォーマンスモニタのリセット
    criAtom_ResetPerformanceMonitor();

    // パフォーマンス計測区間// パフォーマンス情報の取得
    criAtom_GetPerformanceInfo(&info);

    // 計測結果の表示
    printf(
        "Max CPU Load            : %d (us)\n"   \
        "Average CPU Load        : %d (us)\n"   \
        "Max Server Interval     : %d (us)\n"   \
        "Average Server Interval : %d (us)\n",
        info.max_server_time, info.average_server_time,
        info.max_server_interval, info.average_server_interval
    );
void CRIAPI criAtom_DetachPerformanceMonitor ( void  )

パフォーマンスモニタ機能の削除

説明:
パフォーマンス計測処理を終了し、パフォーマンス計測機能を削除します。
注意:
本関数は完了復帰型の関数です。
本関数を実行すると、しばらくの間Atomライブラリのサーバ処理がブロックされます。
音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
void CRIAPI criAtom_ResetPerformanceMonitor ( void  )

パフォーマンスモニタのリセット

説明:
現在までの計測結果を破棄します。
パフォーマンスモニタは、 criAtom_AttachPerformanceMonitor 関数実行直後 からパフォーマンス情報の取得を開始し、計測結果を累積します。
これから計測する区間に対し、以前の計測結果を以降の計測結果に含めたくない場合には、 本関数を実行し、累積された計測結果を一旦破棄する必要があります。
void CRIAPI criAtom_GetPerformanceInfo ( CriAtomPerformanceInfo info)

パフォーマンス情報の取得

説明:
パフォーマンス情報を取得します。
本関数は、 criAtom_AttachPerformanceMonitor 関数実行後から criAtom_DetachPerformanceMonitor 関数を実行するまでの間、利用可能です。
参照:
criAtom_AttachPerformanceMonitor, criAtom_DetachPerformanceMonitor
CriSint32 CRIAPI criAtom_CalculateAdxBitrate ( CriSint32  num_channels,
CriSint32  sampling_rate 
)

ADXデータのビットレート計算

引数:
[in]num_channelsデータのチャンネル数
[in]sampling_rateデータのサンプリングレート
戻り値:
CriSint32 ビットレート[bps]
説明:
ADXデータのビットレートを計算します。
計算に失敗すると本関数は-1を返します。
計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
CriSint32 CRIAPI criAtom_CalculateHcaBitrate ( CriSint32  num_channels,
CriSint32  sampling_rate,
CriAtomEncodeQuality  quality 
)

HCAデータのビットレート計算

引数:
[in]num_channelsデータのチャンネル数
[in]sampling_rateデータのサンプリングレート
[in]qualityデータのエンコード品質
戻り値:
CriSint32 ビットレート[bps]
説明:
HCAデータのビットレートを計算します。
計算に失敗すると本関数は-1を返します。
計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考:
qualityにはCRI Atom CraftまたはCRI Atom Encoderで設定したエンコード品質を指定します。
CriSint32 CRIAPI criAtom_CalculateHcaMxBitrate ( CriSint32  num_channels,
CriSint32  sampling_rate,
CriAtomEncodeQuality  quality 
)

HCA-MXデータのビットレート計算

引数:
[in]num_channelsデータのチャンネル数
[in]sampling_rateデータのサンプリングレート
[in]qualityデータのエンコード品質
戻り値:
CriSint32 ビットレート[bps]
説明:
HCA-MXデータのビットレートを計算します。
計算に失敗すると本関数は-1を返します。
計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考:
qualityにはCRI Atom CraftまたはCRI Atom Encoderで設定したエンコード品質を指定します。
CriBool CRIAPI criAtom_GetStreamingInfo ( CriAtomStreamingInfo streaming_info)

ストリーミング情報の取得

引数:
[out]streaming_infoストリーミング情報保存先のポインタ
戻り値:
CRI_TRUE値を取得できた
CRI_FALSE値を取得できなかった
説明:
CRI Atomライブラリのストリーミング管理モジュールからストリーミング情報を取得します。
本関数は、呼び出された時点のストリーミング情報を streaming_info に保存します。
注意:
Atomサーバ内の処理と一部排他制御しているため、 優先度逆転によりAtomサーバを止めてしまわないように注意してください。
一部のプラットフォームでは、ストリーミング情報を取得できません。
本関数の戻り値を確認してください。
エラーが原因でストリーミング情報を取得できなかった場合については、
エラーコールバックが発生していないかを確認してください。
参照:
CriAtomStreamingInfo
CriBool CRIAPI criAtom_SetFreeTimeBufferingFlagForDefaultDevice ( CriBool  flag)

ファイルI/Oの空き時間を使ったストリーミング読み込みを行うかどうか

引数:
[in]flagCRI_TRUE=ファイルI/Oの空き時間を使って読み込む
戻り値:
CRI_TRUE正常に処理が完了
CRI_FALSEエラーが発生
説明:
CRI Atomライブラリのストリーミング管理モジュールに対して、
ファイルI/Oの空き時間を使ってストリーミング読み込みを行うかどうかを設定します。
CRI_TRUEを設定すると、CRI Atomライブラリのストリーミング管理モジュールは ファイルI/Oの空き時間を使って、空きバッファに対してデータを余分に読み込みます。
CRI_FALSEを設定すると、CRI Atomライブラリのストリーミング管理モジュールは ファイルI/Oの空き時間を使わなくなり、余分なストリーミング読み込みを行わなくなります。
デフォルトではCRI_TRUEを設定した状態です。
備考:
ファイルI/Oの空き時間を使い、空きバッファに対してデータを余分に読み込んでおくことで、 シークの発生頻度を減らす事ができ、総合的なファイルI/Oの効率が向上します。
一方、通常ファイルのロード処理は、ストリーミングの読み込みよりも優先度が低いため、 空きバッファが大きすぎると通常ファイルのロード処理を大幅に遅延させてしまいます。
注意:
Atomサーバ内の処理と一部排他制御しているため、 優先度逆転によりAtomサーバを止めてしまわないように注意してください。

CRI Middleware logo Copyright (c) 2012-2018 CRI Middleware Co., Ltd. CRI ADX2 LE マニュアル (for Cocos2d-x) SDKVer.2.10版