CRI ADX  Last Updated: 2024-03-21 14:32 p
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 *(* CriAtomMallocFunc) (void *obj, CriUint32 size)
 メモリ確保関数 [詳解]
 
typedef void(* CriAtomFreeFunc) (void *obj, void *mem)
 メモリ解放関数 [詳解]
 
typedef void(* CriAtomAudioFrameStartCbFunc) (void *obj)
 オーディオフレーム開始コールバック関数 [詳解]
 
typedef void(* 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
 ボイス停止理由 [詳解]
 
typedef void(* CriAtomDeviceUpdateCbFunc) (void *obj)
 デバイス更新通知コールバック [詳解]
 
typedef enum CriAtomDeviceTypeTag CriAtomDeviceType
 デバイスタイプ [詳解]
 
typedef enum CriAtomSpeakerMappingTag CriAtomSpeakerMapping
 スピーカーマッピング [詳解]
 
typedef enum CriAtomAmbisonicsOrderTypeTag CriAtomAmbisonicsOrderType
 Ambisonicsオーダー(廃止済み) [詳解]
 

列挙型

enum  CriAtomThreadModelTag { CRIATOM_THREAD_MODEL_MULTI = 0 , CRIATOM_THREAD_MODEL_MULTI_WITH_SONICSYNC = 4 , CRIATOM_THREAD_MODEL_MULTI_USER_DRIVEN = 3 , CRIATOM_THREAD_MODEL_USER_MULTI = 1 , CRIATOM_THREAD_MODEL_SINGLE = 2 , CRIATOM_THREAD_MODEL_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF }
 スレッドモデル [詳解]
 
enum  CriAtomSoundRendererTypeTag {
  CRIATOM_SOUND_RENDERER_NATIVE = 1 , CRIATOM_SOUND_RENDERER_ASR = 2 , CRIATOM_SOUND_RENDERER_EXTENDED = 3 , CRIATOM_SOUND_RENDERER_SPATIAL = 4 ,
  CRIATOM_SOUND_RENDERER_HW1 = (0 << 16) | CRIATOM_SOUND_RENDERER_NATIVE , CRIATOM_SOUND_RENDERER_HW2 = (1 << 16) | CRIATOM_SOUND_RENDERER_NATIVE , CRIATOM_SOUND_RENDERER_HW3 = (2 << 16) | CRIATOM_SOUND_RENDERER_NATIVE , CRIATOM_SOUND_RENDERER_HW4 = (3 << 16) | CRIATOM_SOUND_RENDERER_NATIVE ,
  CRIATOM_SOUND_RENDERER_FORCED_NATIVE = (15 << 16) | CRIATOM_SOUND_RENDERER_NATIVE , CRIATOM_SOUND_RENDERER_HAPTIC = (0 << 16) | CRIATOM_SOUND_RENDERER_EXTENDED , CRIATOM_SOUND_RENDERER_PSEUDO = (1 << 16) | CRIATOM_SOUND_RENDERER_EXTENDED , CRIATOM_SOUND_RENDERER_SPATIAL_CHANNELS = (0 << 16) | CRIATOM_SOUND_RENDERER_SPATIAL ,
  CRIATOM_SOUND_RENDERER_AMBISONICS = (1 << 16) | CRIATOM_SOUND_RENDERER_SPATIAL , CRIATOM_SOUND_RENDERER_PASSTHROUGH = (2 << 16) | CRIATOM_SOUND_RENDERER_SPATIAL , CRIATOM_SOUND_RENDERER_OBJECT = (3 << 16) | CRIATOM_SOUND_RENDERER_SPATIAL , CRIATOM_SOUND_RENDERER_ANY = 0 ,
  CRIATOM_SOUND_RENDERER_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
}
 サウンドレンダラタイプ [詳解]
 
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 ,
  CRIATOM_SPEAKER_TOP_FRONT_LEFT = 8 , CRIATOM_SPEAKER_TOP_FRONT_RIGHT = 9 , CRIATOM_SPEAKER_TOP_BACK_LEFT = 10 , CRIATOM_SPEAKER_TOP_BACK_RIGHT = 11 ,
  CRIATOM_SPEAKER_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
}
 スピーカーID [詳解]
 
enum  CriAtomEncodeQualityTag {
  CRIATOM_ENCODE_QUALITY_LOWEST = 0 , CRIATOM_ENCODE_QUALITY_LOW , CRIATOM_ENCODE_QUALITY_MIDDLE , CRIATOM_ENCODE_QUALITY_HIGH ,
  CRIATOM_ENCODE_QUALITY_HIGHEST , CRIATOM_ENCODE_QUALITY_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
}
 エンコード品質 [詳解]
 
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_____NOUSE ,
  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 , CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_ENVELOPE_LEVEL_ZERO , CRIATOM_VOICE_STOP_REASON_AUX_IN_STOP , CRIATOM_VOICE_STOP_REASON_ACB_RELEASE_ASYNC ,
  CRIATOM_VOICE_STOP_REASON_INGAMEPREVIEW_PREPARE_OVERWRITE_ACF , CRIATOM_VOICE_STOP_REASON_INGAMEPREVIEW_PREPARE_OVERWRITE_ACB , CRIATOM_VOICE_STOP_REASON_CUE_LIMIT_RESUME_PREPARE , CRIATOM_VOICE_STOP_REASON_MIDI_PLAYER_NOTE_OFF ,
  CRIATOM_VOICE_STOP_REASON_VOICE_DROP_IN_OBA , CRIATOM_VOICE_STOP_REASON_NONE = 0x7FFFFFFE , CRIATOM_VOICE_STOP_REASON_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
}
 ボイス停止理由 [詳解]
 
enum  CriAtomDeviceTypeTag {
  CRIATOM_DEVICE_TYPE_HDMI = 1 , CRIATOM_DEVICE_TYPE_HEADPHONE , CRIATOM_DEVICE_TYPE_BUILT_IN_SPEAKER , CRIATOM_DEVICE_TYPE_PAD_SPEAKER ,
  CRIATOM_DEVICE_TYPE_VIBRATION , CRIATOM_DEVICE_TYPE_UNKNOWN = 0 , CRIATOM_DEVICE_TYPE_UNAVAILABLE = -1 , CRIATOM_DEVICE_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
}
 デバイスタイプ [詳解]
 
enum  CriAtomSpeakerMappingTag {
  CRIATOM_SPEAKER_MAPPING_AUTO = 0 , CRIATOM_SPEAKER_MAPPING_MONO , CRIATOM_SPEAKER_MAPPING_STEREO , CRIATOM_SPEAKER_MAPPING_5_1 ,
  CRIATOM_SPEAKER_MAPPING_7_1 , CRIATOM_SPEAKER_MAPPING_5_1_2 , CRIATOM_SPEAKER_MAPPING_7_1_2 , CRIATOM_SPEAKER_MAPPING_7_1_4 ,
  CRIATOM_SPEAKER_MAPPING_AMBISONICS_1P , CRIATOM_SPEAKER_MAPPING_AMBISONICS_2P , CRIATOM_SPEAKER_MAPPING_AMBISONICS_3P , CRIATOM_SPEAKER_MAPPING_OBJECT ,
  CRIATOM_SPEAKER_MAPPING_CUSTOM , CRIATOM_SPEAKER_MAPPING_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
}
 スピーカーマッピング [詳解]
 
enum  CriAtomAmbisonicsOrderTypeTag { CRIATOMAMBISONICS_ORDER_TYPE_NONE = 0 , CRIATOMAMBISONICS_ORDER_TYPE_FIRST , CRIATOMAMBISONICS_ORDER_TYPE_1P = CRIATOMAMBISONICS_ORDER_TYPE_FIRST , CRIATOMAMBISONICS_ORDER_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF }
 Ambisonicsオーダー(廃止済み) [詳解]
 

関数

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

詳解

マクロ定義詳解

◆ criAtom_SetDefaultConfig

#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)->version_string = CRI_ATOM_VER_NUM;\
(p_config)->max_players = 16;\
}
@ CRIATOM_THREAD_MODEL_MULTI
マルチスレッド
Definition: cri_atom.h:571

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

引数
[out]p_config初期化用コンフィグ構造体へのポインタ
説明:
criAtom_Initialize 関数に設定するコンフィグ構造体( CriAtomConfig )に、 デフォルトの値をセットします。
参照
CriAtomConfig

◆ criAtom_SetUserAllocator

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

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

型定義詳解

◆ CriAtomThreadModel

スレッドモデル

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

◆ CriAtomConfig

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

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

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

◆ CriAtomMallocFunc

typedef void*( * CriAtomMallocFunc) (void *obj, CriUint32 size)

メモリ確保関数

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

◆ CriAtomFreeFunc

typedef void( * CriAtomFreeFunc) (void *obj, void *mem)

メモリ解放関数

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

◆ CriAtomAudioFrameStartCbFunc

typedef void( * 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

◆ CriAtomAudioFrameEndCbFunc

typedef void( * 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

◆ CriAtomSoundRendererType

サウンドレンダラタイプ

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

◆ CriAtomSpeakerId

スピーカーID

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

◆ CriAtomPerformanceInfo

パフォーマンス情報

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

◆ CriAtomEncodeQuality

エンコード品質

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

◆ CriAtomFormat

typedef CriUint32 CriAtomFormat

フォーマット種別

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

◆ CriAtomFormatInfo

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

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

◆ CriAtomPcmFormat

PCMフォーマット

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

◆ CriAtomStreamingInfo

ストリーミング情報

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

◆ CriAtomVoiceStopReason

ボイス停止理由

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

◆ CriAtomDeviceUpdateCbFunc

typedef void( * CriAtomDeviceUpdateCbFunc) (void *obj)

デバイス更新通知コールバック

引数
[in]objユーザ指定オブジェクト
説明:
デバイスの更新通知に使用される、コールバック関数の型です。
criAtom_SetDeviceUpdateCallback 関数に本関数型のコールバック関数を登録することで、 デバイスが更新された際にコールバック経由で通知を受け取ることが可能です。
参照
criAtom_SetDeviceUpdateCallback

◆ CriAtomDeviceType

デバイスタイプ

説明:
現在再生しているデバイスの種類を表します。
criAtomExAsrRack_GetDeviceType 関数でASRラックが出力しているデバイスの種類を 取得することができます。
備考:
各タイプが具体的にどのデバイスを指すかはプラットフォームによって異なります。
参照
criAtomExAsrRack_GetDeviceType

◆ CriAtomSpeakerMapping

スピーカーマッピング

説明:
スピーカー構成を表します。
参照
CriAtomExAsrConfig CriAtomExAsrRackConfig

◆ CriAtomAmbisonicsOrderType

Ambisonicsオーダー(廃止済み)

説明:
Ambisonicsオーダータイプを示します。現在は廃止済みです。

列挙型詳解

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

◆ CriAtomSoundRendererTypeTag

サウンドレンダラタイプ

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

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

CRIATOM_SOUND_RENDERER_ASR 

Atom Sound Rendererへ出力

CRIATOM_SOUND_RENDERER_SPATIAL 

立体音響出力

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_SPATIAL_CHANNELS 

スペシャライザ付きチャンネルベース再生

CRIATOM_SOUND_RENDERER_AMBISONICS 

Ambisonics再生

CRIATOM_SOUND_RENDERER_PASSTHROUGH 

パススルー再生

CRIATOM_SOUND_RENDERER_OBJECT 

オブジェクトベース再生

CRIATOM_SOUND_RENDERER_ANY 

出力方式を制限しない

◆ 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 

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

CRIATOM_SPEAKER_TOP_FRONT_LEFT 

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

CRIATOM_SPEAKER_TOP_FRONT_RIGHT 

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

CRIATOM_SPEAKER_TOP_BACK_LEFT 

トップバックレフトスピーカー

CRIATOM_SPEAKER_TOP_BACK_RIGHT 

トップバックライトスピーカー

◆ 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 

最高品質設定

◆ CriAtomPcmFormatTag

PCMフォーマット

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

◆ 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_____NOUSE 

(廃止)全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 

全ノート停止

CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_ENVELOPE_LEVEL_ZERO 

サーバー処理

CRIATOM_VOICE_STOP_REASON_AUX_IN_STOP 

外部入力停止

CRIATOM_VOICE_STOP_REASON_ACB_RELEASE_ASYNC 

非同期ACB解放

CRIATOM_VOICE_STOP_REASON_INGAMEPREVIEW_PREPARE_OVERWRITE_ACF 

InGamePreview ACF 更新前処理

CRIATOM_VOICE_STOP_REASON_INGAMEPREVIEW_PREPARE_OVERWRITE_ACB 

InGamePreview ACB 更新前処理

CRIATOM_VOICE_STOP_REASON_CUE_LIMIT_RESUME_PREPARE 

レジュームでのキューリミット処理

CRIATOM_VOICE_STOP_REASON_MIDI_PLAYER_NOTE_OFF 

MidiPlayer ノートオフ

CRIATOM_VOICE_STOP_REASON_VOICE_DROP_IN_OBA 

サーバー処理:OBA 再生でのボイスドロップ発生

◆ CriAtomDeviceTypeTag

デバイスタイプ

説明:
現在再生しているデバイスの種類を表します。
criAtomExAsrRack_GetDeviceType 関数でASRラックが出力しているデバイスの種類を 取得することができます。
備考:
各タイプが具体的にどのデバイスを指すかはプラットフォームによって異なります。
参照
criAtomExAsrRack_GetDeviceType
列挙値
CRIATOM_DEVICE_TYPE_HDMI 

HDMI

CRIATOM_DEVICE_TYPE_HEADPHONE 

ヘッドホン

CRIATOM_DEVICE_TYPE_BUILT_IN_SPEAKER 

内蔵スピーカー

CRIATOM_DEVICE_TYPE_PAD_SPEAKER 

パッドスピーカー

CRIATOM_DEVICE_TYPE_VIBRATION 

振動

CRIATOM_DEVICE_TYPE_UNKNOWN 

デバイスタイプの確認ができない

CRIATOM_DEVICE_TYPE_UNAVAILABLE 

出力デバイスが存在しない

◆ CriAtomSpeakerMappingTag

スピーカーマッピング

説明:
スピーカー構成を表します。
参照
CriAtomExAsrConfig CriAtomExAsrRackConfig
列挙値
CRIATOM_SPEAKER_MAPPING_AUTO 

自動設定

CRIATOM_SPEAKER_MAPPING_MONO 

1ch

CRIATOM_SPEAKER_MAPPING_STEREO 

2ch

CRIATOM_SPEAKER_MAPPING_5_1 

5.1ch

CRIATOM_SPEAKER_MAPPING_7_1 

7.1ch

CRIATOM_SPEAKER_MAPPING_5_1_2 

5.1.2ch

CRIATOM_SPEAKER_MAPPING_7_1_2 

7.1.2ch

CRIATOM_SPEAKER_MAPPING_7_1_4 

7.1.4ch

CRIATOM_SPEAKER_MAPPING_AMBISONICS_1P 

1st order Ambisonics

CRIATOM_SPEAKER_MAPPING_AMBISONICS_2P 

2nd order Ambisonics

CRIATOM_SPEAKER_MAPPING_AMBISONICS_3P 

3rd order Ambisonics

CRIATOM_SPEAKER_MAPPING_OBJECT 

オブジェクトベース再生

◆ CriAtomAmbisonicsOrderTypeTag

Ambisonicsオーダー(廃止済み)

説明:
Ambisonicsオーダータイプを示します。現在は廃止済みです。
列挙値
CRIATOMAMBISONICS_ORDER_TYPE_NONE 

未設定

CRIATOMAMBISONICS_ORDER_TYPE_FIRST 

1st Order

CRIATOMAMBISONICS_ORDER_TYPE_1P 

1 Periphonic(1st Orderと同義)

関数詳解

◆ criAtom_GetVersionString()

const CriChar8* criAtom_GetVersionString ( void  )

ライブラリのバージョン番号やビルド情報を返します。

戻り値
const CriChar8* ライブラリ情報文字列
説明:
ライブラリのバージョン、ビルドした日時、プラットフォームの情報が表示されます。

◆ criAtom_CalculateWorkSize()

CriSint32 criAtom_CalculateWorkSize ( const CriAtomConfig config)

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

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

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

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

◆ criAtom_Initialize()

void 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);
// ライブラリ初期化用コンフィグ構造体にデフォルト値をセット
// ライブラリの初期化
// ワーク領域にはNULLと0を指定する。
// →必要なメモリは、登録したメモリ確保関数を使って確保される。
criAtom_Initialize(&config, NULL, 0);
:
// アプリケーションのメイン処理
:
// アプリケーションを終了する際に終了処理を行う
// →初期化時に確保されたメモリは、登録したメモリ解放関数を使って解放される。
:
}
#define criAtom_SetDefaultConfig(p_config)
CriAtomConfigへのデフォルトパラメーターをセット
Definition: cri_atom.h:237
void criAtom_SetUserFreeFunction(CriAtomFreeFunc func, void *obj)
メモリ解放関数の登録
void criAtom_Initialize(const CriAtomConfig *config, void *work, CriSint32 work_size)
ライブラリの初期化
void criAtom_SetUserMallocFunction(CriAtomMallocFunc func, void *obj)
メモリ確保関数の登録
void criAtom_Finalize(void)
ライブラリの終了
ライブラリ初期化用コンフィグ構造体
Definition: cri_atom.h:631


【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; // ワーク領域サイズ
:
// ライブラリ初期化用コンフィグ構造体にデフォルト値をセット
// ライブラリの初期化に必要なワーク領域のサイズを計算
work_size = criAtom_CalculateWorkSize(&config);
// ワーク領域用にメモリを確保
work = malloc((size_t)work_size);
// ライブラリの初期化
// →確保済みのワーク領域を指定する。
criAtom_Initialize(&config, NULL, 0);
:
// アプリケーションのメイン処理
// →この間、確保したメモリは保持し続ける。
:
// アプリケーションを終了する際に終了処理を行う
// 必要なくなったワーク領域を解放する
free(work);
:
}
CriSint32 criAtom_CalculateWorkSize(const CriAtomConfig *config)
ライブラリ初期化用ワーク領域サイズの計算
備考:
ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。
また、必要なワーク領域のサイズは、プラットフォームによっても異なります。
引数 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

◆ criAtom_Finalize()

void criAtom_Finalize ( void  )

ライブラリの終了

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

◆ criAtom_IsInitialized()

CriBool criAtom_IsInitialized ( void  )

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

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

◆ criAtom_IsAudioOutputActive()

CriBool 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

◆ criAtom_ExecuteMain()

void 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

◆ criAtom_ExecuteAudioProcess()

void criAtom_ExecuteAudioProcess ( void  )

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

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


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

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

◆ criAtom_SetUserMallocFunction()

void 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

◆ criAtom_SetUserFreeFunction()

void 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

◆ criAtom_SetAudioFrameStartCallback()

void 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を指定することで登録済み関数の登録解除が行えます。

◆ criAtom_SetAudioFrameEndCallback()

void 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を指定することで登録済み関数の登録解除が行えます。

◆ criAtom_SetDeviceUpdateCallback()

void criAtom_SetDeviceUpdateCallback ( CriAtomDeviceUpdateCbFunc  func,
void *  obj 
)

デバイス更新通知の登録

引数
[in]funcデバイス更新通知コールバック関数
[in]objユーザ指定オブジェクト
説明:
デバイスの更新通知を受け取るためのコールバックを設定します。

本関数を実行すると、デバイスが更新された際、第 1 引数( callback ) でセットされたコールバック関数が呼び出されます。
備考:
第 2 引数( object )にセットした値は、コールバック関数の引数として渡されます。

◆ criAtom_Lock()

void criAtom_Lock ( void  )

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

説明:
サーバー処理の割り込みを防止します。
本関数実行後、::criAtom_Unlock 関数実行までの間、サーバー処理の動作を防止します。
複数のAPIを同一オーディオフレーム内で確実に実行したい場合には、本関数でサーバー処理の 割り込みを防止し、それらの関数を実行してください。
例:
// サーバー処理の割り込みを防止
// 複数の音声を同時に再生開始
// サーバー処理の割り込み防止を解除
void criAtom_Unlock(void)
サーバー処理の割り込み防止を解除
void criAtom_Lock(void)
サーバー処理の割り込みを防止
void criAtomPlayer_Start(CriAtomPlayerHn player)
再生の開始
注意
上記の例のように、複数のプレーヤーで同時に再生をスタートする場合でも、 ストリーム再生時は同時に発音が開始されるとは限りません。
(バッファリングに伴う再生遅延があるため。)

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

◆ criAtom_Unlock()

void criAtom_Unlock ( void  )

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

説明:
criAtom_Lock 関数による、サーバー処理の割り込み防止を解除します。
参照
criAtom_Lock

◆ criAtom_ChangeDefaultChannelConfig()

void criAtom_ChangeDefaultChannelConfig ( CriSint32  num_channels,
CriAtomChannelConfig  channel_config 
)

チャンネルコンフィグのデフォルト値変更

引数
[in]num_channelsチャンネル数
[in]channel_configチャンネルコンフィグ
説明:
音声データの各チャンネルと出力スピーカーの対応付けを変更します。
Atomライブラリは、デフォルト状態では音声データが以下のチャンネル構成であると想定して動作します。
チャンネル数 想定されるチャンネル構成
1 CRIATOM_CHANNEL_CONFIG_MONO
2 CRIATOM_CHANNEL_CONFIG_STEREO
3 CRIATOM_CHANNEL_CONFIG_3_LRC
4 CRIATOM_CHANNEL_CONFIG_QUAD
5 CRIATOM_CHANNEL_CONFIG_5
6 CRIATOM_CHANNEL_CONFIG_5_1
7 CRIATOM_CHANNEL_CONFIG_6_1
8 CRIATOM_CHANNEL_CONFIG_7_1
9 CRIATOM_CHANNEL_CONFIG_AMBISONICS_2P
10 CRIATOM_CHANNEL_CONFIG_7_1_2
12 CRIATOM_CHANNEL_CONFIG_7_1_4
16 CRIATOM_CHANNEL_CONFIG_AMBISONICS_3P
再生する音声データのチャンネル構成が上記と異なる場合には、本関数を使用してチャンネル構成を変更する必要があります。
例えば、8chの音声を5.1.2chとして扱うよう指示する場合、以下のようなコードでチャンネル構成を変更する必要があります。
// 8chの音声を5.1.2ch音声として扱うよう指示
@ CRIATOM_CHANNEL_CONFIG_5_1_2
Definition: cri_atom.h:1219
void criAtom_ChangeDefaultChannelConfig(CriSint32 num_channels, CriAtomChannelConfig channel_config)
チャンネルコンフィグのデフォルト値変更
注意
構成変更の影響は、第一引数(num_channels)で指定したチャンネルの音声データにのみ影響します。
そのため、異なるチャンネル数の音声データが混在する場合、各チャンネル数に対してそれぞれチャンネル構成の変更を行う必要があります。
例えば、4ch音声と8ch音声の両方についてチャンネル構成を変更したい場合、num_channelsが4のケースと8のケースの2パターンのチャンネル構成を指定する必要があります。
// 4ch音声のチャンネル構成を変更
// 8ch音声のチャンネル構成を変更
@ CRIATOM_CHANNEL_CONFIG_AMBISONICS_1P
Definition: cri_atom.h:1223
再生中の音声がデフォルト値を参照するタイミングはユーザーの操作に依存します。
そのため、再生中にデフォルト値を変更した場合、意図したタイミングで変更が反映されるとは限りません。
本関数を使用する場合、初期化時など音声を再生する前に実行してください。

◆ criAtom_ChangeDefaultChannelOrder()

void criAtom_ChangeDefaultChannelOrder ( CriSint32  num_channels,
const CriSint32 *  channel_order 
)

チャンネル順序のデフォルト値変更

引数
[in]num_channelsチャンネル数
[in]channel_orderチャンネル順序
説明:
指定したチャンネル数の音声データについて、チャンネルの読み込み順序を変更します。
Atomライブラリは、デフォルト状態では音声データが以下のチャンネル順序でインターリーブされていると想定して動作します。
チャンネル番号 想定されるチャンネル
0 レフト
1 ライト
2 センター
3 LFE
4 サラウンドレフト
5 サラウンドライト
6 サラウンドバックレフト
7 サラウンドバックライト
8 トップフロントレフト
9 トップフロントライト
10 トップバックレフト
11 トップバックライト
再生する音声データの並び順が上記と異なる場合には、本関数を使用してチャンネルの読み込み順序を変更する必要があります。
例えば、入力音声のサラウンドバック成分がサラウンド成分より前にある7.1chの音声データ (4、5チャンネル目と6、7チャンネル目とが入れ替わった音声データ)を使用する場合、 以下のようなコードでチャンネル並び順を指定する必要があります。
// 8ch音声について、サラウンド成分とサラウンドバック成分が
// ライブラリの想定と逆順にインターリーブされていることを明示
CriSint32 channel_order[] = { 0, 1, 2, 3, 6, 7, 4, 5 };
void criAtom_ChangeDefaultChannelOrder(CriSint32 num_channels, const CriSint32 *channel_order)
チャンネル順序のデフォルト値変更
補足:
モノラル音声はセンターチャンネルと解釈されます。
ただし、デフォルト状態ではレフトスピーカーとライトスピーカーを使用した、いわゆるファントムセンターで出力されます。
(モノラル音声をセンタースピーカーから出力するには、パンスピーカータイプを変更する必要があります。)

5.1.2chの音声データは、デフォルトで以下のチャンネル順序と解釈されます。
チャンネル番号 想定されるチャンネル
0 レフト
1 ライト
2 センター
3 LFE
4 サラウンドレフト
5 サラウンドライト
6 トップレフト
7 トップトライト
注意
順序変更の影響は、第一引数(num_channels)で指定したチャンネルの音声データにのみ影響します。
そのため、異なるチャンネル数の音声データが混在する場合、各チャンネル数に対してそれぞれチャンネル順序の変更を行う必要があります。
例えば、7.1ch音声と7.1.4ch音声の両方についてチャンネル順序を変更したい場合、num_channelsが8のケースと12のケースの2パターンのチャンネル順序を指定する必要があります。
// 8ch音声のチャンネル順序を変更
CriSint32 channel_order_for_8ch[8] = { … };
criAtom_ChangeDefaultChannelOrder(8, channel_order_for_8ch);
// 12ch音声のチャンネル順序を変更
CriSint32 channel_order_for_12ch[12] = { … };
criAtom_ChangeDefaultChannelOrder(12, channel_order_for_12ch);
再生中の音声がデフォルト値を参照するタイミングはユーザーの操作に依存します。
そのため、再生中にデフォルト値を変更した場合、意図したタイミングで変更が反映されるとは限りません。
本関数を使用する場合、初期化時など音声を再生する前に実行してください。

◆ criAtom_SetAmbisonicsInputFormat()

void criAtom_SetAmbisonicsInputFormat ( CriAtomAmbisonicsFormat  format)

Ambisonics音声のフォーマット指定

引数
[in]formatフォーマット
説明:
Ambisonics音声データのチャンネル並び順と正規化方式を指定します。
デフォルトのフォーマットは CRIATOM_AMBISONICS_ACN_SN3D です。

◆ criAtom_AttachPerformanceMonitor()

void criAtom_AttachPerformanceMonitor ( void  )

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

説明:
パフォーマンス計測機能を追加し、パフォーマンス計測処理を開始します。
本関数を実行後、 criAtom_GetPerformanceInfo 関数を実行することで、 サーバー処理の負荷や、サーバー処理の実行間隔等、ライブラリのパフォーマンス情報を 取得することが可能です。
参照
criAtom_GetPerformanceInfo, criAtom_DetachPerformanceMonitor
例:
// パフォーマンス情報取得用構造体
// ライブラリの初期化
// パフォーマンスモニター機能の追加
// パフォーマンスモニターのリセット
// パフォーマンス計測区間
// パフォーマンス情報の取得
// 計測結果の表示
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",
);
void criAtom_ResetPerformanceMonitor(void)
パフォーマンスモニターのリセット
void criAtom_AttachPerformanceMonitor(void)
パフォーマンスモニター機能の追加
void criAtom_GetPerformanceInfo(CriAtomPerformanceInfo *info)
パフォーマンス情報の取得
パフォーマンス情報
Definition: cri_atom.h:915
CriUint32 max_server_time
Definition: cri_atom.h:918
CriUint32 max_server_interval
Definition: cri_atom.h:921
CriUint32 average_server_time
Definition: cri_atom.h:919
CriUint32 average_server_interval
Definition: cri_atom.h:922

◆ criAtom_DetachPerformanceMonitor()

void criAtom_DetachPerformanceMonitor ( void  )

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

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

◆ criAtom_ResetPerformanceMonitor()

void criAtom_ResetPerformanceMonitor ( void  )

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

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

◆ criAtom_GetPerformanceInfo()

void criAtom_GetPerformanceInfo ( CriAtomPerformanceInfo info)

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

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

◆ criAtom_CalculateAdxBitrate()

CriSint32 criAtom_CalculateAdxBitrate ( CriSint32  num_channels,
CriSint32  sampling_rate 
)

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

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

◆ criAtom_CalculateHcaBitrate()

CriSint32 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で設定したエンコード品質を指定します。

◆ criAtom_CalculateHcaMxBitrate()

CriSint32 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で設定したエンコード品質を指定します。

◆ criAtom_GetStreamingInfo()

CriBool criAtom_GetStreamingInfo ( CriAtomStreamingInfo streaming_info)

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

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

◆ criAtom_SetFreeTimeBufferingFlagForDefaultDevice()

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