Class CriAtom
CriAtom API
Inherited Members
Namespace: CriWare
Assembly: CriWare.CriAtom.dll
Syntax
public static class CriAtom
Fields
DefaultOutputSamplingRate
Declaration
public const int DefaultOutputSamplingRate = 48000
Field Value
| Type | Description |
|---|---|
| int |
FormatAdx
Declaration
public const int FormatAdx = 1
Field Value
| Type | Description |
|---|---|
| int |
Remarks
ADX
FormatAiff
Declaration
public const int FormatAiff = 7
Field Value
| Type | Description |
|---|---|
| int |
Remarks
AIFF
FormatAudioBuffer
Declaration
public const int FormatAudioBuffer = 9
Field Value
| Type | Description |
|---|---|
| int |
Remarks
AudioBuffer
FormatHca
Declaration
public const int FormatHca = 3
Field Value
| Type | Description |
|---|---|
| int |
Remarks
HCA
FormatHcaMx
Declaration
public const int FormatHcaMx = 4
Field Value
| Type | Description |
|---|---|
| int |
Remarks
HCA-MX
FormatHw1
Declaration
public const int FormatHw1 = 65537
Field Value
| Type | Description |
|---|---|
| int |
Remarks
ハードウェア固有
FormatHw2
Declaration
public const int FormatHw2 = 65538
Field Value
| Type | Description |
|---|---|
| int |
Remarks
ハードウェア固有
FormatHw3
Declaration
public const int FormatHw3 = 65539
Field Value
| Type | Description |
|---|---|
| int |
Remarks
ハードウェア固有
FormatRawPcm
Declaration
public const int FormatRawPcm = 6
Field Value
| Type | Description |
|---|---|
| int |
Remarks
Raw PCM
FormatVibration
Declaration
public const int FormatVibration = 8
Field Value
| Type | Description |
|---|---|
| int |
Remarks
振動
FormatWave
Declaration
public const int FormatWave = 5
Field Value
| Type | Description |
|---|---|
| int |
Remarks
Wave
HcaMxMaxOutputChannels
HCA-MXの出力チャンネル数の最大値
Declaration
public const int HcaMxMaxOutputChannels = 8
Field Value
| Type | Description |
|---|---|
| int |
Remarks
説明: HCA-MXの出力チャンネル数の最大値です。 CriAtomHcaMx.Config::output_channels の値は、この値以下に設定する必要があります。
See Also
SoundRendererDefault
Declaration
public const CriAtom.SoundRendererType SoundRendererDefault = Asr
Field Value
| Type | Description |
|---|---|
| CriAtom.SoundRendererType |
StreamingCacheIllegalId
不正なストリーミングキャッシュID値
Declaration
public const int StreamingCacheIllegalId = 0
Field Value
| Type | Description |
|---|---|
| int |
Remarks
説明: CriAtomStreamingCache(in Config) 関数に失敗した際に返る値です。
See Also
Properties
AudioFrameEndCallback
コールバックイベントオブジェクト
Declaration
public static CriAtom.AudioFrameEndCbFunc AudioFrameEndCallback { get; }
Property Value
| Type | Description |
|---|---|
| CriAtom.AudioFrameEndCbFunc |
See Also
AudioFrameStartCallback
コールバックイベントオブジェクト
Declaration
public static CriAtom.AudioFrameStartCbFunc AudioFrameStartCallback { get; }
Property Value
| Type | Description |
|---|---|
| CriAtom.AudioFrameStartCbFunc |
See Also
DeviceUpdateCallback
コールバックイベントオブジェクト
Declaration
public static CriAtom.DeviceUpdateCbFunc DeviceUpdateCallback { get; }
Property Value
| Type | Description |
|---|---|
| CriAtom.DeviceUpdateCbFunc |
See Also
Methods
AttachPerformanceMonitor()
LE Proパフォーマンスモニター機能の追加
Declaration
Remarks
説明: パフォーマンス計測機能を追加し、パフォーマンス計測処理を開始します。 本関数を実行後、 GetPerformanceInfo(out PerformanceInfo) 関数を実行することで、 サーバー処理の負荷や、サーバー処理の実行間隔等、ライブラリのパフォーマンス情報を 取得することが可能です。
See Also
CalculateAdxBitrate(int, int)
LE ProADXデータのビットレート計算
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| int | numChannels | データのチャンネル数 |
| int | samplingRate | データのサンプリングレート |
Returns
| Type | Description |
|---|---|
| int | CriSint32 ビットレート[bps] |
Remarks
説明: ADXデータのビットレートを計算します。 計算に失敗すると本関数は-1を返します。 計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
CalculateHcaBitrate(int, int, EncodeQuality)
LE ProHCAデータのビットレート計算
Declaration
public static int CalculateHcaBitrate(int numChannels, int samplingRate, CriAtom.EncodeQuality quality)
Parameters
| Type | Name | Description |
|---|---|---|
| int | numChannels | データのチャンネル数 |
| int | samplingRate | データのサンプリングレート |
| CriAtom.EncodeQuality | quality | データのエンコード品質 |
Returns
| Type | Description |
|---|---|
| int | CriSint32 ビットレート[bps] |
Remarks
説明: HCAデータのビットレートを計算します。 計算に失敗すると本関数は-1を返します。 計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: qualityにはCRI Atom CraftまたはCRI Atom Encoderで設定したエンコード品質を指定します。
CalculateHcaMxBitrate(int, int, EncodeQuality)
LE ProHCA-MXデータのビットレート計算
Declaration
public static int CalculateHcaMxBitrate(int numChannels, int samplingRate, CriAtom.EncodeQuality quality)
Parameters
| Type | Name | Description |
|---|---|---|
| int | numChannels | データのチャンネル数 |
| int | samplingRate | データのサンプリングレート |
| CriAtom.EncodeQuality | quality | データのエンコード品質 |
Returns
| Type | Description |
|---|---|
| int | CriSint32 ビットレート[bps] |
Remarks
説明: HCA-MXデータのビットレートを計算します。 計算に失敗すると本関数は-1を返します。 計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: qualityにはCRI Atom CraftまたはCRI Atom Encoderで設定したエンコード品質を指定します。
CalculateStartParallelMixerWorkSize(uint)
LE Proパラレルミキサー機能有効化用ワーク領域サイズの計算
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| uint | numSubMixers | メインのミキサーに追加して使用するサブミキサーの数 |
Returns
| Type | Description |
|---|---|
| int | CriSint32 ワーク領域サイズ |
Remarks
説明: パラレルミキサー機能を使用するために必要な、ワーク領域のサイズを取得します。
備考: パラレルミキサー機能有効化時に必要とするワーク領域のサイズは、サブミキサーの数と、 メインのミキサーの内容に応じて変化します。
See Also
CalculateWorkSizeIOS(in ConfigIOS)
LE Proライブラリ初期化用ワーク領域サイズの計算
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.ConfigIOS | config | 初期化用コンフィグ構造体 |
Returns
| Type | Description |
|---|---|
| int | CriSint32 ワーク領域サイズ |
Remarks
説明: ライブラリを使用するために必要な、ワーク領域のサイズを取得します。
備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtom.ConfigIOS )の内容によって変化します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに CalculateWorkSizeIOS(in ConfigIOS) 関数をご利用ください。
See Also
CalculateWorkSizeMACOSX(in ConfigMACOSX)
LE Proライブラリ初期化用ワーク領域サイズの計算
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.ConfigMACOSX | config | 初期化用コンフィグ構造体 |
Returns
| Type | Description |
|---|---|
| int | CriSint32 ワーク領域サイズ |
Remarks
説明: ライブラリを使用するために必要な、ワーク領域のサイズを取得します。
備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtom.ConfigMACOSX )の内容によって変化します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに CalculateWorkSizeMACOSX(in ConfigMACOSX) 関数をご利用ください。
See Also
CalculateWorkSizePC(in ConfigPC)
LE Proライブラリ初期化用ワーク領域サイズの計算
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.ConfigPC | config | 初期化用コンフィグ構造体 |
Returns
| Type | Description |
|---|---|
| int | CriSint32 ワーク領域サイズ |
Remarks
説明: ライブラリを使用するために必要な、ワーク領域のサイズを取得します。
備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtom.ConfigPC )の内容によって変化します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに CalculateWorkSizePC(in ConfigPC) 関数をご利用ください。
See Also
CalculateWorkSizePULSE(in ConfigPULSE)
Proライブラリ初期化用ワーク領域サイズの計算
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.ConfigPULSE | config | 初期化用コンフィグ構造体 |
Returns
| Type | Description |
|---|---|
| int | CriSint32 ワーク領域サイズ |
Remarks
説明: ライブラリを使用するために必要な、ワーク領域のサイズを取得します。
備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtom.ConfigPULSE )の内容によって変化します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに CalculateWorkSizePULSE(in ConfigPULSE) 関数をご利用ください。
See Also
CalculateWorkSizeWASAPI(in ConfigWASAPI)
LE Proライブラリ初期化用ワーク領域サイズの計算
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.ConfigWASAPI | config | 初期化用コンフィグ構造体 |
Returns
| Type | Description |
|---|---|
| int | CriSint32 ワーク領域サイズ |
Remarks
説明: ライブラリを使用するために必要な、ワーク領域のサイズを取得します。
備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtom.ConfigWASAPI )の内容によって変化します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに CalculateWorkSizeWASAPI(in ConfigWASAPI) 関数をご利用ください。
See Also
ChangeDefaultChannelConfig(int, ChannelConfig)
LE Proチャンネルコンフィグのデフォルト値変更
Declaration
public static void ChangeDefaultChannelConfig(int numChannels, CriAtom.ChannelConfig channelConfig)
Parameters
| Type | Name | Description |
|---|---|---|
| int | numChannels | チャンネル数 |
| CriAtom.ChannelConfig | channelConfig | チャンネルコンフィグ |
Remarks
説明: 音声データの各チャンネルと出力スピーカーの対応付けを変更します。 Atomライブラリは、デフォルト状態では音声データが以下のチャンネル構成であると想定して動作します。
| チャンネル数 | 想定されるチャンネル構成 |
| 1 | Mono |
| 2 | Stereo |
| 3 | _3Lrc |
| 4 | Quad |
| 5 | _5 |
| 6 | _5_1 |
| 7 | _6_1 |
| 8 | _7_1 |
| 9 | Ambisonics2p |
| 10 | _7_1_2 |
| 12 | _7_1_4 |
| 16 | _7_1_4_4 |
| 25 | Ambisonics4p |
| 36 | Ambisonics5p |
| 49 | Ambisonics6p |
| 64 | Ambisonics7p |
備考: 本関数では現状16ch以下のチャンネル構成のみが変更可能です。
注意: 構成変更の影響は、第一引数(num_channels)で指定したチャンネルの音声データにのみ影響します。 そのため、異なるチャンネル数の音声データが混在する場合、各チャンネル数に対してそれぞれチャンネル構成の変更を行う必要があります。 例えば、4ch音声と8ch音声の両方についてチャンネル構成を変更したい場合、num_channelsが4のケースと8のケースの2パターンのチャンネル構成を指定する必要があります。 再生中の音声がデフォルト値を参照するタイミングはユーザーの操作に依存します。 そのため、再生中にデフォルト値を変更した場合、意図したタイミングで変更が反映されるとは限りません。 本関数を使用する場合、初期化時など音声を再生する前に実行してください。
注意: 16chを超えるチャンネル数に対しては現状チャンネルコンフィグを変更することができません。
ChangeDefaultChannelOrder(int, in int)
LE Proチャンネル順序のデフォルト値変更
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| int | numChannels | チャンネル数 |
| int | channelOrder | チャンネル順序 |
Remarks
説明: 指定したチャンネル数の音声データについて、チャンネルの読み込み順序を変更します。 Atomライブラリは、デフォルト状態では音声データが以下のチャンネル順序でインターリーブされていると想定して動作します。
| チャンネル番号 | 想定されるチャンネル |
| 0 | レフト |
| 1 | ライト |
| 2 | センター |
| 3 | LFE |
| 4 | サラウンドレフト |
| 5 | サラウンドライト |
| 6 | サラウンドバックレフト |
| 7 | サラウンドバックライト |
| 8 | トップフロントレフト |
| 9 | トップフロントライト |
| 10 | トップバックレフト |
| 11 | トップバックライト |
補足: モノラル音声はセンターチャンネルと解釈されます。 ただし、デフォルト状態ではレフトスピーカーとライトスピーカーを使用した、いわゆるファントムセンターで出力されます。 (モノラル音声をセンタースピーカーから出力するには、パンスピーカータイプを変更する必要があります。) 5.1.2chの音声データは、デフォルトで以下のチャンネル順序と解釈されます。
| チャンネル番号 | 想定されるチャンネル |
| 0 | レフト |
| 1 | ライト |
| 2 | センター |
| 3 | LFE |
| 4 | サラウンドレフト |
| 5 | サラウンドライト |
| 6 | トップレフト |
| 7 | トップトライト |
注意: 順序変更の影響は、第一引数(num_channels)で指定したチャンネルの音声データにのみ影響します。 そのため、異なるチャンネル数の音声データが混在する場合、各チャンネル数に対してそれぞれチャンネル順序の変更を行う必要があります。 例えば、7.1ch音声と7.1.4ch音声の両方についてチャンネル順序を変更したい場合、num_channelsが8のケースと12のケースの2パターンのチャンネル順序を指定する必要があります。 再生中の音声がデフォルト値を参照するタイミングはユーザーの操作に依存します。 そのため、再生中にデフォルト値を変更した場合、意図したタイミングで変更が反映されるとは限りません。 本関数を使用する場合、初期化時など音声を再生する前に実行してください。
DetachPerformanceMonitor()
LE Proパフォーマンスモニター機能の削除
Declaration
Remarks
説明: パフォーマンス計測処理を終了し、パフォーマンス計測機能を削除します。
注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
EnumAudioEndpointsWASAPI(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
LE Proオーディオエンドポイントの列挙
Declaration
public static int EnumAudioEndpointsWASAPI(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> callback, IntPtr @object)
Parameters
| Type | Name | Description |
|---|---|---|
| delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> | callback | オーディオエンドポイントコールバック関数 |
| IntPtr | object | ユーザ指定オブジェクト |
Returns
| Type | Description |
|---|---|
| int | CriSint32 列挙されたACBオブジェクトの数 |
Remarks
説明: オーディオエンドポイントを列挙します。 本関数を実行すると、第 1 引数( callback ) でセットされたコールバック関数がオーディオエンドポイント数分だけ呼び出されます。 コールバック関数には、IMMDeviceインスタンスが引数として渡されます。
備考: 第 2 引数( object )にセットした値は、コールバック関数の引数として渡されます。 コールバック関数のその他の引数については、 別途 CriAtom.AudioEndpointCbFuncWASAPI の説明をご参照ください。 戻り値は列挙されたオーディオエンドポイントの数(登録したコールバック関数が呼び出された回数)です。 オーディオエンドポイントが存在しない場合、本関数は 0 を返します。 エラーが発生した際には -1 を返します。
注意: IMMDeviceインスタンスをコールバック関数内で破棄してはいけません。
See Also
ExecuteAudioProcess()
LE Proユーザーマルチスレッド用サーバー処理の実行
Declaration
Remarks
説明: CRI Atomライブラリのみを更新します。 スレッドモデルがUserMultiの場合、 アプリケーションは、この関数を定期的に実行する必要があります。
備考: Single に設定した場合、サーバー処理の排他制御が行われないので、 複数のスレッドから呼び出さないようにしてください。
ファイルの読み込み管理や、データのデコード、音声の出力等、 音声再生に必要な処理のほぼ全てが本関数内で実行されます。 そのため、ライブラリ初期化時に指定したサーバー処理の実行頻度( 構造体の server_frequency )を下回る頻度で本関数を実行した場合、音切れ等の問題が発生する可能性 があります。 また、本関数はExecuteMain() 関数と異なり、CRI File Systemライブラリのサーバー処理を実行しません。 アプリケーションが必要なサーバー処理を正しい順序で実行してください。
See Also
ExecuteMain()
LE Proマルチスレッド用サーバー処理の実行
Declaration
Remarks
説明: CRI Atomライブラリの内部状態を更新します。 アプリケーションは、この関数を定期的に実行する必要があります。 サーバー処理を実行すべき回数は、ライブラリ初期化時のパラメーターに依存します。 ライブラリ初期化時にスレッドモデルを Multi に設定した場合、 本関数の呼び出し頻度は少なくても問題は発生しません。 なぜなら、リアルタイム性を要求される処理は全てCRI Atomライブラリ内で 定期的に自動実行されるためです。 (最低でも毎秒1回程度実行されていれば、音切れ等の問題が発生することはありません。) ライブラリ初期化時にスレッドモデルを Single や UserMulti に設定した場合、ファイルの読み込み管理や、 データのデコード、音声の出力等、音声再生に必要な処理のほぼ全てが本関数内で実行されます。 また、音声再生処理に同期して、CRI File Systemライブラリのファイルアクセスとデータ展開処理を実行します。 そのため、以下の場合は音切れなどの問題が発生する可能性があるので注意してください。 ・ライブラリ初期化時に指定したサーバー処理の実行頻度 ( CriAtom.Config 構造体のserver_frequency )を下回る頻度で本関数を実行した場合 ・大きいデータの読み込み、圧縮ファイルの読み込み等を行う場合
備考: ライブラリ初期化時にスレッドモデルを Multi に設定した場合でも、 本関数を実行する必要があります。 (スレッドモデルを Multi に設定した場合、ステータス更新等、ごく一部の 処理のみを行うため、本関数内で長時間処理がブロックされることはありません。) CRI File Systemライブラリのサーバー処理は、CRI Atomライブラリ内部で実行されます。 そのため、本関数を実行している場合、アプリケーション側で別途CRI File Systemライブラリ のサーバー処理を呼び出す必要はありません。
See Also
FinalizeIOS()
LE Proライブラリの終了
Declaration
Remarks
説明: ライブラリを終了します。
注意: 本関数は内部的に以下の関数を実行します。
- CriAtom.Finalize
- Finalize()
- Finalize() 本関数を実行する場合、上記関数を実行しないでください。 InitializeIOS(in ConfigIOS) 関数実行前に本関数を実行することはできません。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに FinalizeIOS() 関数をご利用ください。
See Also
FinalizeMACOSX()
LE Proライブラリの終了
Declaration
Remarks
説明: ライブラリを終了します。
注意: 本関数は内部的に以下の関数を実行します。
- CriAtom.Finalize
- Finalize()
- Finalize()
本関数を実行する場合、上記関数を実行しないでください。 関数実行前に本関数を実行することはできません。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに 関数をご利用ください。
See Also
FinalizePC()
LE Proライブラリの終了
Declaration
Remarks
説明: ライブラリを終了します。
注意: 本関数は内部的に以下の関数を実行します。
- criAtom_Finalize
- Finalize()
- Finalize() 本関数を実行する場合、上記関数を実行しないでください。 InitializePC(in ConfigPC) 関数実行前に本関数を実行することはできません。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに FinalizePC() 関数をご利用ください。
See Also
FinalizePULSE()
Proライブラリの終了
Declaration
Remarks
説明: ライブラリを終了します。
注意: 本関数は内部的に以下の関数を実行します。
- CriAtom.Finalize
- Finalize()
- Finalize() 本関数を実行する場合、上記関数を実行しないでください。 InitializePULSE(in ConfigPULSE) 関数実行前に本関数を実行することはできません。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに FinalizePULSE() 関数をご利用ください。
See Also
FinalizeWASAPI()
LE Proライブラリの終了
Declaration
Remarks
説明: ライブラリを終了します。
注意: 本関数は内部的に以下の関数を実行します。
- criAtom_Finalize
- Finalize()
- Finalize() 本関数を実行する場合、上記関数を実行しないでください。 InitializeWASAPI(in ConfigWASAPI) 関数実行前に本関数を実行することはできません。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに FinalizeWASAPI() 関数をご利用ください。
See Also
FinishParallelMixer()
LE Proパラレルミキサー機能の終了
Declaration
Remarks
See Also
GetAudioClientIsFormatSupportedWASAPI(IntPtr)
LE Pro指定したフォーマットが利用可能かどうかチェック
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| IntPtr | format | 使用するフォーマット |
Returns
| Type | Description |
|---|---|
| bool | CriBool 指定されたフォーマットが利用可能かどうか( true = 利用可能、false = 利用不可能) |
Remarks
説明: 引数で指定したフォーマットが、排他モードで利用可能かどうかをチェックします。
備考: 本関数は IAudioClient::IsFormatSupported 関数のラッパーです。 本関数を実行すると、関数内で AudioClient を作成し、IsFormatSupported 関数を実行します。
注意: 本関数はライブラリ初期化前にのみ使用可能です。 一部のデバイス/パラメーターについて、本関数が成功するにもかかわらず、 WASAPI の初期化に失敗するケースが確認されています。 本関数が true を返したにもかかわらず、ライブラリの初期化に失敗する場合には、 指定するフォーマットを変更するか、または共有モードをご使用ください。
GetAudioClientMixFormatWASAPI(IntPtr)
LE Proミキサフォーマットの取得
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| IntPtr | format | ミキサのフォーマット |
Returns
| Type | Description |
|---|---|
| bool | CriBool ミキサのフォーマットが取得できたかどうか( true = 成功、false = 失敗) |
Remarks
説明: 共有モード時に使用されるミキサのフォーマットを取得します。
備考: 本関数は IAudioClient::GetMixFormat 関数のラッパーです。 本関数を実行すると、関数内で AudioClient を作成し、GetMixFormat 関数を実行します。
注意: 本関数はライブラリ初期化前にのみ使用可能です。 共有モードと排他モードとでは、使用できるフォーマットが異なります。 本関数で取得する WAVEFORMATEXTENSIBLE 構造体は IEEE float 形式のPCMデータフォーマットを返しますが、 このフォーマットは排他モードではほとんどの場合使用できません。
GetAudioClientShareModeWASAPI()
LE Pro共有方式の取得
Declaration
Returns
| Type | Description |
|---|---|
| int | AUDCLNT_SHAREMODE 共有方式 |
Remarks
説明: 現在指定されている共有方式を取得します。
See Also
GetAudioClientWASAPI()
LE ProAudioClientの取得
Declaration
Returns
| Type | Description |
|---|---|
| IntPtr | IAudioClient AudioClient |
Remarks
説明: Atomライブラリ内で作成されたAudioClientを取得します。
備考: サウンドデバイスが搭載されていないPCで本関数を実行した場合、 本関数はnullを返します。
注意: 本関数を実行する前に、ライブラリを初期化する必要があります。
GetDeviceIdWASAPI(SoundRendererType, IntPtr, int, out NativeBool)
LE ProサウンドデバイスのID取得
Declaration
public static bool GetDeviceIdWASAPI(CriAtom.SoundRendererType type, IntPtr deviceId, int count, out NativeBool isDefaultDevice)
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.SoundRendererType | type | サウンドレンダラタイプ |
| IntPtr | deviceId | デバイスID格納領域 |
| int | count | デバイスID格納領域のサイズ(文字数) |
| NativeBool | isDefaultDevice | デフォルトデバイスかどうか |
Returns
| Type | Description |
|---|---|
| bool | CriBool デバイスIDが取得できたかどうか |
Remarks
説明: サウンドレンダラタイプに紐づけられたサウンドデバイスのIDを取得します。 type には、以下の値が指定可能です。
- Hw1(Nativeと同じ値)
- Hw2
- Hw3
- Hw4 第2引数(device_id)にはデバイスID文字列を受け取るためのメモリ領域を指定します。 この領域は本関数を呼び出すアプリケーション側で確保する必要があります。 第3引数(count)には、第2引数で指定したメモリ領域に格納可能な最大文字数を指定します。 指定したサウンドレンダラに対応するデバイスがデフォルトデバイスの場合、 第4引数(is_default_device)には true がセットされます。 指定したサウンドレンダラに対応するデバイスが SetDeviceIdWASAPI(SoundRendererType, IntPtr) 関数で 指定されたデバイスの場合、第4引数(is_default_device)には false がセットされます。 サウンドデバイスのIDが取得できた場合、本関数は true を返します。 本関数が false を返した場合、以下のいずれかに該当しています。
GetPerformanceInfo(out PerformanceInfo)
LE Proパフォーマンス情報の取得
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.PerformanceInfo | info | パフォーマンス情報 |
Remarks
説明: パフォーマンス情報を取得します。 本関数は、 AttachPerformanceMonitor() 関数実行後から DetachPerformanceMonitor() 関数を実行するまでの間、利用可能です。
See Also
GetStreamingInfo(out StreamingInfo)
LE Proストリーミング情報の取得
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.StreamingInfo | streamingInfo | ストリーミング情報保存先のポインタ |
Returns
| Type | Description |
|---|---|
| bool |
Remarks
説明: CRI Atomライブラリのストリーミング管理モジュールからストリーミング情報を取得します。 本関数は、呼び出された時点のストリーミング情報を streaming_info に保存します。
注意: Atomサーバー内の処理と一部排他制御しているため、 優先度逆転によりAtomサーバーを止めてしまわないように注意してください。 一部のプラットフォームでは、ストリーミング情報を取得できません。 本関数の戻り値を確認してください。 エラーが原因でストリーミング情報を取得できなかった場合については、 エラーコールバックが発生していないかを確認してください。
See Also
GetThreadAffinityMaskPC()
LE Proサーバー処理スレッドのアフィニティマスクの取得
Declaration
Returns
| Type | Description |
|---|---|
| IntPtr | DWORD_PTR スレッドアフィニティマスク |
Remarks
説明: サーバー処理(ライブラリの内部処理)を行うスレッドのアフィニティマスクを取得します。 取得に成功すると、本関数はサーバー処理を行うスレッドのアフィニティマスクを返します。 取得に失敗した場合、本関数は 0 を返します。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数はエラー値を返します。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行した場合、本関数はエラー値を返します。 (エラーコールバックが発生します。)
See Also
GetThreadPriorityPC()
LE Proサーバー処理スレッドのプライオリティ取得
Declaration
Returns
| Type | Description |
|---|---|
| int | int スレッドプライオリティ |
Remarks
説明: サーバー処理(ライブラリの内部処理)を行うスレッドのプライオリティを取得します。 取得に成功すると、本関数はサーバー処理を行うスレッドのプライオリティを返します。 取得に失敗した場合、本関数は THREAD_PRIORITY_ERROR_RETURN を返します。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数はエラー値を返します。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行した場合、本関数はエラー値を返します。 (エラーコールバックが発生します。)
See Also
GetVersionString()
LE Proライブラリのバージョン番号やビルド情報を返します。
Declaration
Returns
| Type | Description |
|---|---|
| NativeString | const CriChar8* ライブラリ情報文字列 |
Remarks
説明: ライブラリのバージョン、ビルドした日時、プラットフォームの情報が表示されます。
InitializeIOS(in ConfigIOS)
LE Proライブラリの初期化
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.ConfigIOS | config | 初期化用コンフィグ構造体 |
Remarks
説明: ライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 FinalizeIOS() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。 ワーク領域サイズの計算には、 CalculateWorkSizeIOS(in ConfigIOS) 関数を使用してください。
備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケータを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケータ から必要なワーク領域サイズ分のメモリが動的に確保されます。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は内部的に以下の関数を実行します。
- CriAtom.Initialize
- Initialize(in Config)
- Initialize(in Config) 本関数を実行する場合、上記関数を実行しないでください。 本関数を実行後、必ず対になる FinalizeIOS() 関数を実行してください。 また、 FinalizeIOS() 関数を実行するまでは、本関数を再度実行しないでください。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに InitializeIOS(in ConfigIOS) 関数をご利用ください。
See Also
InitializeMACOSX(in ConfigMACOSX)
LE Proライブラリの初期化
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.ConfigMACOSX | config | 初期化用コンフィグ構造体 |
Remarks
説明: ライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 FinalizeMACOSX() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。 ワーク領域サイズの計算には、 CalculateWorkSizeMACOSX(in ConfigMACOSX) 関数を使用してください。
備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケータを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケータ から必要なワーク領域サイズ分のメモリが動的に確保されます。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は内部的に以下の関数を実行します。
- CriAtom.Initialize
- Initialize(in Config)
- Initialize(in Config)
本関数を実行する場合、上記関数を実行しないでください。 本関数を実行後、必ず対になる 関数を実行してください。 また、 関数を実行するまでは、本関数を再度実行しないでください。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに 関数をご利用ください。
See Also
InitializePC(in ConfigPC)
LE Proライブラリの初期化
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.ConfigPC | config | 初期化用コンフィグ構造体 |
Remarks
説明: ライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 FinalizePC() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。 ワーク領域サイズの計算には、 CalculateWorkSizePC(in ConfigPC) 関数を使用してください。
備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケーター から必要なワーク領域サイズ分のメモリが動的に確保されます。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は内部的に以下の関数を実行します。
- criAtom_Initialize
- Initialize(in Config)
- Initialize(in Config) 本関数を実行する場合、上記関数を実行しないでください。 本関数を実行後、必ず対になる FinalizePC() 関数を実行してください。 また、 FinalizePC() 関数を実行するまでは、本関数を再度実行しないでください。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに InitializePC(in ConfigPC) 関数をご利用ください。
See Also
InitializePULSE(in ConfigPULSE)
Proライブラリの初期化
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.ConfigPULSE | config | 初期化用コンフィグ構造体 |
Remarks
説明: ライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 FinalizePULSE() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。 ワーク領域サイズの計算には、 CalculateWorkSizePULSE(in ConfigPULSE) 関数を使用してください。
備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケータを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケータ から必要なワーク領域サイズ分のメモリが動的に確保されます。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は内部的に以下の関数を実行します。
- CriAtom.Initialize
- Initialize(in Config)
- Initialize(in Config) 本関数を実行する場合、上記関数を実行しないでください。 本関数を実行後、必ず対になる FinalizePULSE() 関数を実行してください。 また、 FinalizePULSE() 関数を実行するまでは、本関数を再度実行しないでください。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに InitializePULSE(in ConfigPULSE) 関数をご利用ください。
See Also
InitializeWASAPI(in ConfigWASAPI)
LE Proライブラリの初期化
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.ConfigWASAPI | config | 初期化用コンフィグ構造体 |
Remarks
説明: ライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 FinalizeWASAPI() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。 ワーク領域サイズの計算には、 CalculateWorkSizeWASAPI(in ConfigWASAPI) 関数を使用してください。
備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケーター から必要なワーク領域サイズ分のメモリが動的に確保されます。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は内部的に以下の関数を実行します。
- criAtom_Initialize
- Initialize(in Config)
- Initialize(in Config) 本関数を実行する場合、上記関数を実行しないでください。 本関数を実行後、必ず対になる FinalizeWASAPI() 関数を実行してください。 また、 FinalizeWASAPI() 関数を実行するまでは、本関数を再度実行しないでください。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに InitializeWASAPI(in ConfigWASAPI) 関数をご利用ください。
See Also
IsAudioOutputActive()
LE Proオーディオ出力が有効かどうかのチェック
Declaration
Returns
| Type | Description |
|---|---|
| bool | CriBool オーディオ出力が有効かどうか |
Remarks
説明: オーディオ出力が有効化どうかをチェックします。 CRI Atomライブラリ初期化時、サウンドデバイスが利用可能であった場合、 本関数はtrueを返します。 CRI Atomライブラリ初期化時に、サウンドデバイスが利用不可能であった場合、 本関数はfalseを返します。
補足: サウンドデバイスが無効な場合でも、Atomライブラリは音声を出力せずに動作します。 (音声データ消費量をタイマーを元に計算し、可能な限り音声出力が有効な場合と同等の動作をエミュレートします。) そのため、音声出力デバイスが使用できないケースであっても、 アプリケーション側でAtomライブラリのAPI呼び出しを回避する必要はありません。 (PC環境等、ユーザがサウンドデバイスを無効化しているケースに対し通知を行いたい場合に、 本関数を使用してください。)
注意: 本関数は、「Atomライブラリ初期化時点でオーディオデバイスが利用可能だったかどうか」を返します。 ライブラリ初期化後にユーザがサウンドデバイスを抜き差しするケースについては、本関数では検知できません。 (各機種固有のAPIを使用する必要があります。) オーディオ出力が無効な状態でAtomライブラリを初期化後、 ユーザがオーディオデバイスを有効化したとしても、Atomライブラリは音声出力を行いません。 (オーディオデバイスが接続されたことをAtomライブラリが自動で検出することはありません。) アプリケーション実行中にオーディオデバイスを有効化したい場合には、 Atomライブラリの初期化処理をやり直す必要があります。
IsDeviceInvalidatedWASAPI()
LE Proデバイスが無効化されたかどうかのチェック
Declaration
Returns
| Type | Description |
|---|---|
| bool | CriBool デバイスが無効化されたかどうか(true = 無効化された、false = 正常に動作中) |
Remarks
説明: サウンドデバイスが無効化されたかどうかを返します。
備考: 本関数がtrueを返すのは、アプリケーション実行中にサウンドデバイスを無効化した場合のみです。 元々サウンドデバイスが搭載されていないPCで本関数を実行した場合、本関数はfalseを返します。 (サウンドデバイスの有無は別途 GetAudioClientWASAPI() 関数でチェックする必要があります。)
See Also
IsDuringParallelMixer()
LE Proパラレルミキサー機能の有効化状態の取得
Declaration
Returns
| Type | Description |
|---|---|
| bool | CriBool パラレルミキサー機能が有効化中かどうか |
Remarks
説明: パラレルミキサー機能が既に有効化されているかどうかをチェックします。
See Also
IsInitializationSucceededIOS()
LE Proサウンドの初期化に成功したか否か
Declaration
Returns
| Type | Description |
|---|---|
| bool |
Remarks
説明: サウンドライブラリの初期化に成功したか否かを返す関数です。 iOSでは、アプリがバックグラウンドにある状態でサウンドライブラリの初期化を行った場合に 内部的にAudioSessionの初期化等に失敗している場合があります。 本関数で初期化が失敗していることを確認した場合は、アプリがフォアグラウンドにある状態で 再度ライブラリの初期化を行うか、 RecoverSoundIOS() を用いて サウンドの復旧を行う必要があります。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに IsInitializationSucceededIOS() 関数をご利用ください。
IsInitialized()
LE Proライブラリ初期化状態の取得
Declaration
Returns
| Type | Description |
|---|---|
| bool | CriBool 初期化中かどうか |
Remarks
説明: CRI Atomライブラリが既に初期化されているかどうかをチェックします。
IsSpatialAudioEnabledWASAPI(SoundRendererType)
LE Proスペーシャルオーディオ機能が有効かどうかのチェック
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.SoundRendererType | type | サウンドレンダラタイプ |
Returns
| Type | Description |
|---|---|
| bool | CriBool 機能が有効かどうか(true = 有効、false = 無効) |
Remarks
説明: スペーシャルオーディオ機能が有効になっているかどうかをチェックします。 引数の type には、スペーシャルオーディオ機能が有効化どうかをチェックしたいサウンドレンダラを指定します。
Lock()
LE Proサーバー処理の割り込みを防止
Declaration
Remarks
説明: サーバー処理の割り込みを防止します。 本関数実行後、Unlock() 関数実行までの間、サーバー処理の動作を防止します。 複数のAPIを同一オーディオフレーム内で確実に実行したい場合には、本関数でサーバー処理の 割り込みを防止し、それらの関数を実行してください。
注意: 上記の例のように、複数のプレーヤーで同時に再生をスタートする場合でも、 ストリーム再生時は同時に発音が開始されるとは限りません。 (バッファリングに伴う再生遅延があるため。) 本関数実行後、長時間Unlock() 関数を呼ばない場合、音声再生が途切れる恐れがあります。 サーバー処理の割り込みを防止する区間は、最小限に抑える必要があります。
See Also
RecoverSoundIOS()
LE Proサウンドの復旧
Declaration
Remarks
説明: AudioSessionAddPropertyListener Callback関数から呼び出すための関数です。 ライブラリ内部のボイスを復旧します。 iOSのデーモンであるmediaserverdが死亡した際には、ライブラリ内のボイスが無効なボイスになり、 再生成が必要になります。 このように、ボイスの復旧が必要な際に呼び出してください。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに RecoverSoundIOS() 関数をご利用ください。
ResetPerformanceMonitor()
LE Proパフォーマンスモニターのリセット
Declaration
Remarks
説明: 現在までの計測結果を破棄します。 パフォーマンスモニターは、 AttachPerformanceMonitor() 関数実行直後 からパフォーマンス情報の取得を開始し、計測結果を累積します。 これから計測する区間に対し、以前の計測結果を以降の計測結果に含めたくない場合には、 本関数を実行し、累積された計測結果を一旦破棄する必要があります。
SetAmbisonicsInputFormat(AmbisonicsFormat)
LE ProAmbisonics音声のフォーマット指定
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.AmbisonicsFormat | format | フォーマット |
Remarks
説明: Ambisonics音声データのチャンネル並び順と正規化方式を指定します。 デフォルトのフォーマットは CRIATOM_AMBISONICS_ACN_SN3D です。
SetAudioClientBufferDurationWASAPI(long)
LE Proバッファリング時間の指定
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| long | refTime | バッファリング時間 |
Remarks
説明: WASAPI 初期化時に指定するバッファリング時間を指定します。 Atomライブラリは、本関数で指定された時間分のデータを保持可能なサイズのサウンドバッファーを確保します。
備考: 本関数に指定した値が IAudioClient::Initialize 関数に渡されます。 ref_timeに0を指定した場合や、本関数を使用しない場合、 Atomライブラリは初期化時に指定されるサーバー処理周波数の値から、 適切なバッファリング時間を計算します。 PC環境ではハードウェア性能にばらつきがあるため、 ワースト性能のハードウェアに合わせてデフォルトのバッファリング量が多めに設定されています。 (デフォルト状態では4V分のバッファーを持っています。)
注意: 本関数はライブラリの初期化よりも先に実行しておく必要があります。 バッファリング時間を小さくしすぎると、音途切れ等の問題が発生します。 PC環境ではハードウェアに依存して必要なバッファリング量が異なるため、 本関数を使用した場合、テスト環境でうまく動作していても、 ユーザの環境によっては音途切れが発生する可能性があります。 そのため、バッファリング量を変更する場合には、 ユーザが設定値を変更できる仕組み(オプション画面等)を提供することもご検討ください。
SetAudioClientFormatWASAPI(IntPtr)
LE Pro出力フォーマットの指定
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| IntPtr | format | 使用するフォーマット |
Remarks
説明:
説明: 排他モードで使用するフォーマットを指定します。
備考: 本関数に指定したフォーマットが、 IAudioClient::Initialize 関数に渡されます。
注意: 本関数はライブラリの初期化よりも先に実行しておく必要があります。 排他モードを使用する場合、本関数でのモード指定に加え、 SetAudioClientShareModeWASAPI(int) 関数によるモード指定が必要です。
See Also
SetAudioClientShareModeWASAPI(int)
LE Pro共有方式の指定
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| int | mode | 使用するモード |
Remarks
説明: WASAPIを共有モードで使用するか、排他モードで使用するかを指定します。 本関数を実行しない場合や、 AUDCLNT_SHAREMODE_SHARED を指定して実行した場合、 Atomライブラリは WASAPI を共有モードで初期化します。 AUDCLNT_SHAREMODE_EXCLUSIVE を指定して本関数を実行した場合、 Atomライブラリは WASAPI を排他モードで初期化します。
注意: 本関数はライブラリの初期化よりも先に実行しておく必要があります。 排他モードを使用する場合、本関数でのモード指定に加え、 SetAudioClientFormatWASAPI(IntPtr) 関数によるフォーマットの指定が必要です。
See Also
SetAudioFrameEndCallback(delegate* unmanaged[Cdecl]<IntPtr, void>, IntPtr)
LE Proオーディオフレーム終了コールバック関数の登録
Declaration
public static void SetAudioFrameEndCallback(delegate* unmanaged[Cdecl]<IntPtr, void> func, IntPtr obj)
Parameters
| Type | Name | Description |
|---|---|---|
| delegate* unmanaged[Cdecl]<IntPtr, void> | func | オーディオフレーム終了コールバック関数 |
| IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: CRI Atomライブラリにオーディオフレーム終了コールバックを登録します。 オーディオフレームは、CRI Atomライブラリ内でサーバー処理を実行するタイミングを示します。 本関数で登録したコールバック関数は、オーディオフレームの終了時(サーバー処理終了直後)に 実行されます。
備考: ライブラリ初期化時にスレッドモデルをマルチスレッド( Multi ) に設定した場合、コールバック関数はCRI Atomライブラリ内で作成されたスレッドから 呼び出されます。 ライブラリ初期化時にスレッドモデルをユーザマルチスレッド( UserMulti )、 またはシングルスレッド( Single )に設定した場合、コールバック関数 ExecuteMain() 関数内で呼び出されます。 引数の obj に指定した値は、 CriAtom.AudioFrameEndCbFunc に引数として渡されます。
注意: コールバック関数は1つしか登録できません。 登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。 funcにnullを指定することで登録済み関数の登録解除が行えます。
SetAudioFrameStartCallback(delegate* unmanaged[Cdecl]<IntPtr, void>, IntPtr)
LE Proオーディオフレーム開始コールバック関数の登録
Declaration
public static void SetAudioFrameStartCallback(delegate* unmanaged[Cdecl]<IntPtr, void> func, IntPtr obj)
Parameters
| Type | Name | Description |
|---|---|---|
| delegate* unmanaged[Cdecl]<IntPtr, void> | func | オーディオフレーム開始コールバック関数 |
| IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: CRI Atomライブラリにオーディオフレーム開始コールバックを登録します。 オーディオフレームは、CRI Atomライブラリ内でサーバー処理を実行するタイミングを示します。 本関数で登録したコールバック関数は、オーディオフレームの開始時(サーバー処理開始直前)に 実行されます。
備考: ライブラリ初期化時にスレッドモデルをマルチスレッド( Multi ) に設定した場合、コールバック関数はCRI Atomライブラリ内で作成されたスレッドから 呼び出されます。 ライブラリ初期化時にスレッドモデルをユーザマルチスレッド( UserMulti )、 またはシングルスレッド( Single )に設定した場合、コールバック関数 ExecuteMain() 関数内で呼び出されます。 引数の obj に指定した値は、 CriAtom.AudioFrameStartCbFunc に引数として渡されます。
注意: コールバック関数は1つしか登録できません。 登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。 funcにnullを指定することで登録済み関数の登録解除が行えます。
SetDefaultConfig(out Config)
LE ProCriAtom.Configへのデフォルトパラメーターをセット
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.Config | pConfig | 初期化用コンフィグ構造体へのポインタ |
Remarks
See Also
SetDefaultDeviceRoleWASAPI(int)
LE Proデフォルトデバイス種別の指定
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| int | role | デフォルトデバイスとして使用するデバイスの種別 |
Remarks
説明: デフォルトデバイスの種別を指定します。 roleにeConsoleを指定した場合、Atomライブラリは既定のデバイスを使用して音声を出力します。 roleにeCommunicationsを指定した場合、Atomライブラリは既定の通信デバイスを使用して音声を出力します。
注意: 本関数はライブラリ初期化前に使用する必要があります。
SetDeviceIdWASAPI(SoundRendererType, IntPtr)
LE Proサウンドデバイスの指定
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.SoundRendererType | type | サウンドレンダラタイプ |
| IntPtr | deviceId | デバイスID |
Remarks
説明: サウンドレンダラタイプとサウンドデバイスの紐づけを行います。 本関数でサウンドレンダラに対してデバイスIDを設定すると、 当該サウンドレンダラを指定して出力した音声は、 全て指定したIDに合致するサウンドデバイスから出力されます。 type には、以下の値が指定可能です。
- Hw1(Nativeと同じ値)
- Hw2
- Hw3
- Hw4 第2引数(device_id)にnullまたは長さ0の文字列を指定した場合、 当該サウンドレンダラとデバイスIDの紐づけが解除されます。 (既定のデバイスから音声を出力するよう、動作が変更されます。)
備考: サウンドデバイスのIDは IMMDevice::GetId で取得する必要があります。 指定されたIDに一致するサウンドデバイスが見つからない場合、 当該デバイスを指定して再生された音声は、既定のデバイスから出力されます。
SetDeviceUpdateCallback(delegate* unmanaged[Cdecl]<IntPtr, void>, IntPtr)
LE Proデバイス更新通知の登録
Declaration
public static void SetDeviceUpdateCallback(delegate* unmanaged[Cdecl]<IntPtr, void> func, IntPtr obj)
Parameters
| Type | Name | Description |
|---|---|---|
| delegate* unmanaged[Cdecl]<IntPtr, void> | func | デバイス更新通知コールバック関数 |
| IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: デバイスの更新通知を受け取るためのコールバックを設定します。 本関数を実行すると、デバイスが更新された際、第 1 引数( callback ) でセットされたコールバック関数が呼び出されます。
備考: 第 2 引数( object )にセットした値は、コールバック関数の引数として渡されます。
SetDeviceUpdateCallbackWASAPI(delegate* unmanaged[Cdecl]<IntPtr, void>, IntPtr)
LE Proデバイス更新通知の登録
Declaration
public static void SetDeviceUpdateCallbackWASAPI(delegate* unmanaged[Cdecl]<IntPtr, void> callback, IntPtr @object)
Parameters
| Type | Name | Description |
|---|---|---|
| delegate* unmanaged[Cdecl]<IntPtr, void> | callback | デバイス更新通知コールバック関数 |
| IntPtr | object | ユーザ指定オブジェクト |
Remarks
説明: デバイスの更新通知を受け取るためのコールバックを設定します。 本関数を実行すると、デバイスが更新された際、第 1 引数( callback ) でセットされたコールバック関数が呼び出されます。
備考: 第 2 引数( object )にセットした値は、コールバック関数の引数として渡されます。
See Also
SetFreeTimeBufferingFlagForDefaultDevice(NativeBool)
LE ProファイルI/Oの空き時間を使ったストリーミング読み込みを行うかどうか
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| NativeBool | flag | CRI_TRUE=ファイルI/Oの空き時間を使って読み込む |
Returns
| Type | Description |
|---|---|
| bool |
Remarks
説明: CRI Atomライブラリのストリーミング管理モジュールに対して、 ファイルI/Oの空き時間を使ってストリーミング読み込みを行うかどうかを設定します。 trueを設定すると、CRI Atomライブラリのストリーミング管理モジュールは ファイルI/Oの空き時間を使って、空きバッファーに対してデータを余分に読み込みます。 falseを設定すると、CRI Atomライブラリのストリーミング管理モジュールは ファイルI/Oの空き時間を使わなくなり、余分なストリーミング読み込みを行わなくなります。 デフォルトではtrueを設定した状態です。
備考: ファイルI/Oの空き時間を使い、空きバッファーに対してデータを余分に読み込んでおくことで、 シークの発生頻度を減らす事ができ、総合的なファイルI/Oの効率が向上します。 一方、通常ファイルのロード処理は、ストリーミングの読み込みよりも優先度が低いため、 空きバッファーが大きすぎると通常ファイルのロード処理を大幅に遅延させてしまいます。
注意: Atomサーバー内の処理と一部排他制御しているため、 優先度逆転によりAtomサーバーを止めてしまわないように注意してください。
SetServerThreadPriorityIOS(int)
LE Proサーバスレッドプライオリティの設定
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| int | prio | スレッドのプライオリティ |
Remarks
説明: CRIサーバスレッドのプライオリティを設定します。 引数 prio は pthread のプライオリティ設定値として使用します。 プライオリティ設定値はメインスレッドからの相対値になります。 アプリケーションのメインスレッド(0)よりも高いプライオリティを指定してください。 プライオリティのデフォルト値は16です。
注意: InitializeIOS(in ConfigIOS) 関数実行前に本関数を実行することはできません。 サーバ処理スレッドは、CRI File Systemライブラリでも利用されています。 すでにCRI File SystemライブラリのAPIでサーバ処理スレッドの設定を変更している場合 本関数により設定が上書きされますのでご注意ください。
SetServerThreadPriorityMACOSX(int)
LE Proサーバスレッドプライオリティの設定
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| int | prio | スレッドのプライオリティ |
Remarks
説明: CRIサーバスレッドのプライオリティを設定します。 引数 prio は pthread のプライオリティ設定値として使用します。 指定できる値の範囲は通常 -16~99で、数字が大きい方が優先度が高くなります。 アプリケーションのメインスレッド(0)よりも高いプライオリティを指定してください。 プライオリティのデフォルト値は10です。
注意: InitializeMACOSX(in ConfigMACOSX) 関数実行前に本関数を実行することはできません。 サーバ処理スレッドは、CRI File Systemライブラリでも利用されています。 すでにCRI File SystemライブラリのAPIでサーバ処理スレッドの設定を変更している場合 本関数により設定が上書きされますのでご注意ください。
SetSpatialAudioEnabledWASAPI(SoundRendererType, NativeBool)
LE Proスペーシャルオーディオ機能の有効化
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.SoundRendererType | type | サウンドレンダラタイプ |
| NativeBool | sw | 機能を有効にするかどうか(CRI_TRUE = 有効化、CRI_FALSE = 無効化) |
Remarks
説明: スペーシャルオーディオ機能(Microsoft Spatial Sound)を有効にします。 引数の type には、スペーシャルオーディオ機能を有効(又は無効)にするサウンドレンダラを指定します。
備考: 現行のライブラリでは、スペーシャルオーディオ機能はデフォルトで有効です。 そのため、スペーシャルオーディオ機能を無効にしたい場合を除き、本関数を明示的に呼び出す必要はありません。
注意: 本関数はライブラリ初期化前に使用する必要があります。
SetThreadAffinityMaskPC(IntPtr)
LE Proサーバー処理スレッドのアフィニティマスク変更
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| IntPtr | mask | スレッドアフィニティマスク |
Remarks
説明: サーバー処理(ライブラリの内部処理)を行うスレッドのアフィニティマスクを変更します。 デフォルト状態(本関数を実行しない場合)では、サーバー処理が動作するプロセッサは 一切制限されません。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数は何も処理を行いません。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行しても、効果はありません。 (エラーコールバックが発生します。) サーバー処理スレッドは、CRI File Systemライブラリでも利用されています。 すでにCRI File SystemライブラリのAPIでサーバー処理スレッドの設定を変更している場合 本関数により設定が上書きされますのでご注意ください。
See Also
SetThreadPriorityPC(int)
LE Proサーバー処理スレッドのプライオリティ変更
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| int | prio | スレッドプライオリティ |
Remarks
説明: サーバー処理(ライブラリの内部処理)を行うスレッドのプライオリティを変更します。 デフォルト状態(本関数を実行しない場合)では、サーバー処理スレッドのプライオリティは THREAD_PRIORITY_HIGHEST に設定されます。
注意: : 本関数は、ライブラリ初期化時にスレッドモデルをマルチスレッドモデル ( Multi )に設定した場合にのみ効果を発揮します。 他のスレッドモデルを選択した場合、本関数は何も処理を行いません。 (エラーコールバックが発生します。) 本関数は初期化後~終了処理前の間に実行する必要があります。 初期化前や終了処理後に本関数を実行しても、効果はありません。 (エラーコールバックが発生します。) サーバー処理スレッドは、CRI File Systemライブラリでも利用されています。 すでにCRI File SystemライブラリのAPIでサーバー処理スレッドの設定を変更している場合 本関数により設定が上書きされますのでご注意ください。
See Also
SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
LE Proユーザアロケーターの登録
Declaration
public static void SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr> pMallocFunc, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> pFreeFunc, IntPtr pObj)
Parameters
| Type | Name | Description |
|---|---|---|
| delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr> | pMallocFunc | メモリ確保関数 |
| delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> | pFreeFunc | メモリ解放関数 |
| IntPtr | pObj | ユーザ指定オブジェクト |
Remarks
説明: CRI Atom ライブラリにメモリアロケーター(メモリの確保/解放関数)を登録します。 本メソッドでアロケーターを登録すると、Atomライブラリがワーク領域を必要とするタイミングで、 ユーザが登録したメモリ確保/解放処理が呼び出されることになります。 その結果、ワーク領域を必要とする関数( CreateAdxPlayer(in AdxPlayerConfig) 関数等)に対し、 個別にワーク領域をセットする処理を省略することが可能になります。 (ワーク領域に null ポインタ、ワーク領域サイズに 0 バイトを指定した場合でも、 アロケーターからの動的メモリ確保によりライブラリが問題なく動作するようになります。)
注意: メモリ確保/解放関数のポインタに null を指定することで、 アロケーターの登録を解除することも可能です。 ただし、未解放のメモリ領域が残っている状態で登録を解除すると、 エラーコールバックが返され、登録の解除に失敗します。 (引き続き登録済みのアロケーターが呼び出されることになります。) 本メソッドは内部的に SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, IntPtr) 関数と SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) 関数を呼び出します。 本関数とこれらの API を併用しないようご注意ください。 (本関数の呼び出しにより、上記 API にセットした内容が上書きされます。) また、登録されたメモリアロケーター関数はマルスレッドモード時に複数のスレッドからコール されることがあります。従って、メモリアロケート処理がスレッドセーフでない場合は独自に メモリアロケート処理を排他制御する必要があります。
SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
LE Proメモリ解放関数の登録
Declaration
public static void SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> func, IntPtr obj)
Parameters
| Type | Name | Description |
|---|---|---|
| delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> | func | メモリ解放関数 |
| IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: CRI Atomライブラリにメモリ解放関数を登録します。 CRI Atomライブラリ内がライブラリ内で行うメモリ解放処理を、 ユーザ独自のメモリ解放処理に置き換えたい場合に使用します。 本関数の使用手順は以下のとおりです。 (1) CriAtom.FreeFunc インターフェースに副ったメモリ解放関数を用意する。 (2) SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) 関数を使用し、CRI Atomライブラリに対して メモリ解放関数を登録する。
備考: 引数の obj に指定した値は、 CriAtom.FreeFunc に引数として渡されます。 メモリ確保時にメモリマネージャー等を参照する必要がある場合には、 当該オブジェクトを本関数の引数にセットしておき、コールバック関数で引数を経由 して参照してください。
注意: メモリ解放関数を登録する際には、合わせてメモリ確保関数( CriAtom.MallocFunc )を 登録する必要があります。
See Also
SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, IntPtr)
LE Proメモリ確保関数の登録
Declaration
public static void SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr> func, IntPtr obj)
Parameters
| Type | Name | Description |
|---|---|---|
| delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr> | func | メモリ確保関数 |
| IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: CRI Atomライブラリにメモリ確保関数を登録します。 CRI Atomライブラリ内がライブラリ内で行うメモリ確保処理を、 ユーザ独自のメモリ確保処理に置き換えたい場合に使用します。 本関数の使用手順は以下のとおりです。 (1) CriAtom.MallocFunc インターフェースに副ったメモリ確保関数を用意する。 (2) SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, IntPtr) 関数を使用し、CRI Atomライブラリに対して メモリ確保関数を登録する。
備考: 引数の obj に指定した値は、 CriAtom.MallocFunc に引数として渡されます。 メモリ確保時にメモリマネージャー等を参照する必要がある場合には、 当該オブジェクトを本関数の引数にセットしておき、コールバック関数で引数を経由 して参照してください。
注意: メモリ確保関数を登録する際には、合わせてメモリ解放関数( CriAtom.FreeFunc )を 登録する必要があります。
See Also
SetupAudioSessionIOS(in AudioSessionConfigIOS)
LE ProAudioSessionの設定
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtom.AudioSessionConfigIOS | config | コンフィグ構造体 |
Remarks
説明: コンフィグに従ってAudioSessionの設定を行います。 より詳細な設定を行いたい場合はこの関数を呼び出さず、AudioSessionの各種APIを用いて設定してください。
StartParallelMixer(uint)
LE Proパラレルミキサー機能の有効化
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| uint | numSubMixers | メインのミキサーに追加して使用するサブミキサーの数 |
Remarks
説明: パラレルミキサー機能を有効化します。 (パラレルミキサー機能は、本関数を実行後、 FinishParallelMixer() 関数を実行するまでの間、 利用可能です。) パラレルミキサー機能は、cri_atom_game_share.hで提供されるおすそわけ通信機能と 合わせて利用します。サブミキサーでは、ゲスト用に再生された音声に対し、 メインミキサーと同じようなバスエフェクトを掛けることが出来ます。 パラレルミキサー機能を利用するには、必ずこの関数を実行する必要があります。 パラレルミキサー機能を有効化する際には、追加のミキサーを作成するためのメモリ領域(ワーク領域) を確保する必要があります。 追加のミキサーが必要とするワーク領域のサイズは、作成するサブミキサーの数と、 メインのミキサーの内容に応じて変化します。 ワーク領域サイズの計算には、 CalculateStartParallelMixerWorkSize(uint) 関数を使用してください。
備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケーター から必要なワーク領域サイズ分のメモリが動的に確保されます。)
注意: 本関数を実行後、必ず対になる FinishParallelMixer() 関数を実行してください。 また、 FinishParallelMixer() 関数を実行するまでは、本関数を再度実行しないでください。
See Also
StartSoundIOS()
LE Proサウンド処理の再開
Declaration
Remarks
説明: AudioSessionのInterruption Callbak関数から呼び出すための関数です。 サウンド処理を再開します。 本関数を呼び出す前に、AudioSessionのパメラータ設定とアクティベイトを行ってください。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに StartSoundIOS() 関数をご利用ください。
注意: InitializeIOS(in ConfigIOS) 関数実行前に本関数を実行することはできません。
See Also
StopSoundIOS()
LE Proサウンド処理の停止
Declaration
Remarks
説明: AudioSessionのInterruption Callbak関数から呼び出すための関数です。 サウンド処理を停止します。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに StopSoundIOS() 関数をご利用ください。
注意: InitializeIOS(in ConfigIOS) 関数実行前に本関数を実行することはできません。
See Also
Unlock()
LE Proサーバー処理の割り込み防止を解除