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 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 CriAtomPerformanceInfoTag CriAtomPerformanceInfo
 パフォーマンス情報
typedef enum CriAtomEncodeQualityTag CriAtomEncodeQuality
 エンコード品質
typedef CriUint32 CriAtomFormat
 フォーマット種別
typedef CriAtomFormatInfoTag CriAtomFormatInfo
 音声データフォーマット情報
typedef enum CriAtomPcmFormatTag CriAtomPcmFormat
 PCMフォーマット
typedef 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_HAPTIC = (0 << 2) | CRIATOM_SOUND_RENDERER_EXTENDED, CRIATOM_SOUND_RENDERER_PSEUDO = (1 << 2) | CRIATOM_SOUND_RENDERER_EXTENDED,
  CRIATOM_SOUND_RENDERER_OBJECT = (2 << 2) | CRIATOM_SOUND_RENDERER_EXTENDED, 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, CRIATOM_VOICE_STOP_REASON_STOP_ACTION_WITH_FADE, CRIATOM_VOICE_STOP_REASON_RESET_TRACK_PARAMETER, CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE4,
  CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE5, CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE6, CRIATOM_VOICE_STOP_REASON_NOTE_OFF2, CRIATOM_VOICE_STOP_REASON_ALL_NOTE_OFF,
  CRIATOM_VOICE_STOP_REASON_ALL_NOTE_OFF_WITHOUTRELEASE
}
 ボイス停止理由 [詳細]

関数

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の空き時間を使ったストリーミング読み込みを行うかどうか
void CRIAPI criAtom_SetAdx1KeyString (const CriChar8 *key_string)
 ADX1暗号解除キーの設定

マクロ定義

#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 にセットした内容が上書きされます。)

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


型定義

typedef enum CriAtomThreadModelTag CriAtomThreadModel

スレッドモデル

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

typedef struct CriAtomConfigTag 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

typedef enum CriAtomSoundRendererTypeTag CriAtomSoundRendererType

サウンドレンダラタイプ

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

typedef enum CriAtomSpeakerIdTag CriAtomSpeakerId

スピーカーID

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

typedef struct CriAtomPerformanceInfoTag CriAtomPerformanceInfo

パフォーマンス情報

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

typedef enum CriAtomEncodeQualityTag CriAtomEncodeQuality

エンコード品質

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

typedef CriUint32 CriAtomFormat

フォーマット種別

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

typedef struct CriAtomFormatInfoTag CriAtomFormatInfo

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

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

typedef enum CriAtomPcmFormatTag CriAtomPcmFormat

PCMフォーマット

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

typedef struct CriAtomStreamingInfoTag CriAtomStreamingInfo

ストリーミング情報

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

typedef enum CriAtomVoiceStopReasonTag CriAtomVoiceStopReason

ボイス停止理由

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


列挙型

enum CriAtomThreadModelTag

スレッドモデル

説明:
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とサーバー処理関数とを同一スレッドから呼び出すようにしてください。

enum CriAtomSoundRendererTypeTag

サウンドレンダラタイプ

説明:
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_HAPTIC  振動
CRIATOM_SOUND_RENDERER_PSEUDO  無音
CRIATOM_SOUND_RENDERER_OBJECT  Object Based Audio
CRIATOM_SOUND_RENDERER_ANY  出力方式を制限しない

enum CriAtomSpeakerIdTag

スピーカー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  サラウンドバックライトスピーカー

enum CriAtomEncodeQualityTag

エンコード品質

説明:
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  最高品質設定

enum CriAtomPcmFormatTag

PCMフォーマット

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

enum CriAtomVoiceStopReasonTag

ボイス停止理由

説明:
ボイスの停止理由を表します。
列挙型の値:
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の登録処理
CRIATOM_VOICE_STOP_REASON_STOP_ACTION_WITH_FADE  フェード付き停止アクション
CRIATOM_VOICE_STOP_REASON_RESET_TRACK_PARAMETER  トラックパラメーターのリセット
CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE4  ブロック遷移
CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE5  ブロック遷移
CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE6  ブロック遷移
CRIATOM_VOICE_STOP_REASON_NOTE_OFF2  ノート停止
CRIATOM_VOICE_STOP_REASON_ALL_NOTE_OFF  全ノート停止
CRIATOM_VOICE_STOP_REASON_ALL_NOTE_OFF_WITHOUTRELEASE  全ノート停止


関数

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] flag CRI_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サーバーを止めてしまわないように注意してください。

void CRIAPI criAtom_SetAdx1KeyString ( const CriChar8 *  key_string  ) 

ADX1暗号解除キーの設定

引数:
[in] key_string ADX1暗号解除キー文字列
説明:
ADX1向けに作成された、暗号化ADXデータの復号に使用するキー文字列を指定します。
備考:
本関数は、ADX1のADXT_SetDefKeyString 関数に相当する機能です。
注意:
: 本関数は、ADX1用に作成された暗号化ADXデータを、 ADX2ランタイム上で再生するための機能です。
ADX2 SDK付属のツール(Atom CraftやAtom Encoder等)で作成された音声データを復号するには、 本関数ではなく、デクリプタAPI(criAtomDecrypter_Create 関数等)を使用する必要があります。

本関数で設定された暗号解除キーは、 暗号化されていないADXデータをデコードする際には使用されません。
(ADX1を使用するケースと動作が異なります。)
暗号化されていないADXデータをノイズ化したい場合には、 本関数とデクリプタAPIを併用する必要があります。

本関数はリリース済みのタイトルのデータを再利用するためだけに用意されています。
新規にADXデータを作成する際には、ADX2 SDK付属のツールを使用して暗号化を行ってください。
参照:
criAtomDecrypter_Create


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