Win32 API 日本語リファレンス
ホームMedia.Audio.XAudio2 › IXAudio2

IXAudio2

COM
IID2b02e3cf-2e0b-4ec3-be45-1b2a3fe7210d継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IXAudio2 は、すべてのオーディオエンジンの状態、オーディオ処理スレッド、ボイスグラフなどを管理する XAudio2 オブジェクトのインターフェイスです。

解説(Remarks)

DirectX SDK 版の XAUDIO2 には、Windows 8 版には存在しない 3 つのメンバー関数、GetDeviceCountGetDeviceDetailsInitialize が含まれていました。これらの列挙メソッドはもはや提供されておらず、デバイスの列挙には代わりに標準の Windows Audio API を使用してください。

プラットフォーム要件

Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)

メソッド 10

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT RegisterForCallbacks(IXAudio2EngineCallback* pCallback)

IXAudio2EngineCallback ポインターを XAudio2 エンジンのコールバックリストに追加します。

pCallbackIXAudio2EngineCallback*inXAudio2 エンジンのコールバックリストに追加する IXAudio2EngineCallback ポインター。

戻り値

成功した場合は S_OK を、それ以外の場合はエラーコードを返します。XAudio2 固有のエラーコードの説明については、XAudio2 Error Codes を参照してください。

解説(Remarks)

このメソッドは複数回呼び出すことができ、同じアプリケーション内の異なるコンポーネントやレイヤーが、それぞれのエンジンコールバック実装を個別に管理できるようになります。

コールバック(すなわち IXAudio2EngineCallback または IXAudio2VoiceCallback)の内部から RegisterForCallbacks を呼び出すことは無効です。コールバック内で RegisterForCallbacks を呼び出した場合、XAUDIO2_E_INVALID_CALL が返されます。

プラットフォーム要件

Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)
vtbl 4 void UnregisterForCallbacks(IXAudio2EngineCallback* pCallback)

IXAudio2EngineCallback ポインターを XAudio2 エンジンのコールバックリストから削除します。

pCallbackIXAudio2EngineCallback*inXAudio2 エンジンのコールバックリストから削除する IXAudio2EngineCallback ポインター。 指定したポインターがリスト内に複数回存在する場合、リスト内の最初のインスタンスのみが削除されます。

解説(Remarks)

コールバック(すなわち IXAudio2EngineCallback または IXAudio2VoiceCallback)の内部から UnregisterForCallbacks を呼び出すことは無効です。

プラットフォーム要件

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)
vtbl 5 HRESULT CreateSourceVoice(IXAudio2SourceVoice** ppSourceVoice, WAVEFORMATEX* pSourceFormat, DWORD Flags, FLOAT MaxFrequencyRatio, IXAudio2VoiceCallback* pCallback, XAUDIO2_VOICE_SENDS* pSendList, XAUDIO2_EFFECT_CHAIN* pEffectChain)

ソースボイスを作成し、構成します。

ppSourceVoiceIXAudio2SourceVoice**out成功した場合、新しい IXAudio2SourceVoice オブジェクトへのポインターを返します。
pSourceFormatWAVEFORMATEX*in

下の表にある構造体のいずれかへのポインター。この構造体には、ソースボイスに送信されるすべてのオーディオバッファーに期待される形式が含まれます。 XAudio2 は PCM および ADPCM のボイスタイプをサポートします。

形式タグ Wave 形式構造体 サイズ (バイト単位)
WAVE_FORMAT_PCM (0x0001) PCMWAVEFORMAT 16
または WAVEFORMATEX 18
WAVE_FORMAT_IEEE_FLOAT (0x0003) [32-bit] PCMWAVEFORMAT 18
WAVE_FORMAT_ADPCM (0x0002) [MS-ADPCM] ADPCMWAVEFORMAT 50
WAVE_FORMAT_EXTENSIBLE (0xFFFE) WAVEFORMATEXTENSIBLE 40

XAudio2 は以下の PCM 形式をサポートします。

  • 8 ビット (符号なし) 整数 PCM
  • 16 ビット整数 PCM (XAudio2 にとって最適な形式)
  • 20 ビット整数 PCM (24 ビットまたは 32 ビットのコンテナー内)
  • 24 ビット整数 PCM (24 ビットまたは 32 ビットのコンテナー内)
  • 32 ビット整数 PCM
  • 32 ビット浮動小数点 PCM (16 ビット整数に次いで推奨される形式)
ソースボイスのチャンネル数は XAUDIO2_MAX_AUDIO_CHANNELS 以下でなければなりません。ソースボイスのサンプルレートは XAUDIO2_MIN_SAMPLE_RATE から XAUDIO2_MAX_SAMPLE_RATE の間でなければなりません。
PCMWAVEFORMATADPCMWAVEFORMAT のように WAVEFORMATEX が提供する以上の情報を必要とする PCM データ形式は、その形式構造体の最初のメンバーとして WAVEFORMATEX 構造体を持ちます。これらの形式のいずれかでソースボイスを作成する場合は、その形式の構造体を WAVEFORMATEX 構造体としてキャストし、pSourceFormat の値として使用してください。
FlagsDWORDin

ソースボイスの動作を指定するフラグ。フラグは 0、または以下の 1 つ以上の組み合わせを指定できます。

説明
XAUDIO2_VOICE_NOPITCH このボイスではピッチ制御を利用できません。
XAUDIO2_VOICE_NOSRC このボイスではサンプルレート変換を利用できません。 ボイスの出力はすべて同じサンプルレートでなければなりません。
XAUDIO2_VOICE_NOSRC フラグを指定すると、XAUDIO2_VOICE_NOPITCH フラグも指定されたかのようにボイスが動作します。
XAUDIO2_VOICE_USEFILTER このボイスでフィルターエフェクトを利用できるようにします。
XAUDIO2_VOICE_MUSIC フラグは Windows ではサポートされていません。
MaxFrequencyRatioFLOATin

このボイスに設定できる周波数比の最大許容値。この引数の値は XAUDIO2_MIN_FREQ_RATIO から XAUDIO2_MAX_FREQ_RATIO の間でなければなりません。以降の IXAudio2SourceVoice::SetFrequencyRatio の呼び出しは、XAUDIO2_MIN_FREQ_RATIO と MaxFrequencyRatio の間にクランプされます。 この引数の最大値は XAUDIO2_MAX_FREQ_RATIO として定義されており、ピッチを最大 10 オクターブまで上げることができます。

MaxFrequencyRatio が 1.0 未満の場合、ボイスは作成直後に(デフォルトの 1.0 ではなく)その比率を使用します。

Xbox 360
XMA ボイスの場合、MaxFrequencyRatio 引数とボイスのサンプルレートにもう 1 つ制限があります。これら 2 つの数値の積は、1 チャンネルのボイスでは XAUDIO2_MAX_RATIO_TIMES_RATE_XMA_MONO を、それ以外のチャンネル数のボイスでは XAUDIO2_MAX_RATIO_TIMES_RATE_XMA_MULTICHANNEL を超えることはできません。MaxFrequencyRatio に指定した値が指定した形式に対して高すぎる場合、CreateSourceVoice の呼び出しは失敗し、デバッグメッセージが出力されます。
可能な限り小さい MaxFrequencyRatio の値を使用することで、XAudio2 のメモリ使用量を削減できます。
pCallbackIXAudio2VoiceCallback*inoptionalクライアントが提供するコールバックインターフェイス IXAudio2VoiceCallback へのポインター。
pSendListXAUDIO2_VOICE_SENDS*inoptionalソースボイスの送信先ボイスのセットを記述する XAUDIO2_VOICE_SENDS 構造体のリストへのポインター。pSendList が NULL の場合、送信リストは最初に作成されたマスタリングボイスへの単一の出力にデフォルト設定されます。
pEffectChainXAUDIO2_EFFECT_CHAIN*inoptionalソースボイスで使用するエフェクトチェーンを記述する XAUDIO2_EFFECT_CHAIN 構造体のリストへのポインター。

戻り値

成功した場合は S_OK を、それ以外の場合はエラーコードを返します。

XAudio2 固有のエラーコードの説明については、XAudio2 Error Codes を参照してください。

解説(Remarks)

ソースボイスはクライアントからオーディオデータを読み取ります。データを処理し、XAudio2 の処理グラフに送信します。

ソースボイスには可変レートのサンプルレート変換が含まれ、ソース形式のサンプルレートからボイス送信リストが必要とする出力レートへデータを変換します。NULL の送信リストを使用する場合、ターゲットのサンプルレートはマスタリングボイスの入力サンプルレートになります。pSendList に単一のボイスを指定した場合、そのボイスの入力サンプルレートがターゲットレートになります。pSendList に複数のボイスを指定した場合、ソースボイスのすべての出力ボイスは同じ入力サンプルレートで動作していなければなりません。

マスタリングボイスが存在するまで、ソースボイスやサブミックスボイスを作成することはできません。また、ソースボイスやサブミックスボイスがまだ存在している場合、マスタリングボイスを破棄することはできません。

ソースボイスは常に、サブミックスボイスやマスタリングボイスよりも先に処理されます。つまり、処理順序を制御するための ProcessingStage パラメーターは必要ありません。

作成された直後のソースボイスは停止状態です。

XAudio2 は同じ形式のボイスに対して内部のメモリプーラーを使用します。つまり、より多くのボイスが作成・破棄されるにつれて、ボイスのメモリ割り当ての発生頻度は低くなります。ジャストインタイムの割り当てを最小限に抑えるため、タイトルは必要と予想される最大数のボイスをあらかじめ作成しておき、必要に応じて削除できます。以降、ボイスは XAudio2 のプールから再利用されます。メモリプールは XAudio2 エンジンのインスタンスに結び付けられています。XAudio2 オブジェクトを破棄し、必要に応じて再作成することで、XAudio2 エンジンのインスタンスが使用しているすべてのメモリを回収できます(事前割り当てによってメモリプールを強制的に拡大させる処理は、必要に応じて再度適用する必要があります)。

コールバック(すなわち IXAudio2EngineCallback または IXAudio2VoiceCallback)の内部から CreateSourceVoice を呼び出すことは無効です。コールバック内で CreateSourceVoice を呼び出した場合、XAUDIO2_E_INVALID_CALL が返されます。

pEffectChain 引数として渡される XAUDIO2_EFFECT_CHAIN と、その中に含まれる XAUDIO2_EFFECT_DESCRIPTOR 情報は、CreateSourceVoice が正常に完了した後は不要となり、CreateSourceVoice を呼び出した直後に削除してかまいません。

プラットフォーム要件

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)
vtbl 6 HRESULT CreateSubmixVoice(IXAudio2SubmixVoice** ppSubmixVoice, DWORD InputChannels, DWORD InputSampleRate, DWORD Flags, DWORD ProcessingStage, XAUDIO2_VOICE_SENDS* pSendList, XAUDIO2_EFFECT_CHAIN* pEffectChain)

サブミックスボイスを作成し、構成します。

ppSubmixVoiceIXAudio2SubmixVoice**out成功した場合、新しい IXAudio2SubmixVoice オブジェクトへのポインターを返します。
InputChannelsDWORDinサブミックスボイスの入力オーディオデータのチャンネル数。 InputChannelsXAUDIO2_MAX_AUDIO_CHANNELS 以下でなければなりません。
InputSampleRateDWORDinサブミックスボイスの入力オーディオデータのサンプルレート。このレートは XAUDIO2_QUANTUM_DENOMINATOR の倍数でなければなりません。InputSampleRateXAUDIO2_MIN_SAMPLE_RATE から XAUDIO2_MAX_SAMPLE_RATE の間でなければなりません。
FlagsDWORDin

サブミックスボイスの動作を指定するフラグ。0 または以下を指定できます。

説明
XAUDIO2_VOICE_USEFILTER このボイスでフィルターエフェクトを利用できるようにします。
ProcessingStageDWORDinXAudio2 エンジンが他のサブミックスボイスを実行している場合に、このボイスが他のサブミックスボイスに対していつ処理されるかを指定する任意の数値。このボイスは、より小さい ProcessingStage 値を持つすべてのボイスの後、かつより大きい ProcessingStage 値を持つすべてのボイスの前に処理されます。同じ ProcessingStage 値を持つボイスは任意の順序で処理されます。サブミックスボイスは、それ以下の ProcessingStage 値を持つ別のサブミックスボイスに送信することはできません。これにより、サブミックスの循環によってオーディオが失われるのを防ぎます。
pSendListXAUDIO2_VOICE_SENDS*inoptionalサブミックスボイスの送信先ボイスのセットを記述する XAUDIO2_VOICE_SENDS 構造体のリストへのポインター。pSendList が NULL の場合、送信リストは最初に作成されたマスタリングボイスへの単一の出力にデフォルト設定されます。
pEffectChainXAUDIO2_EFFECT_CHAIN*inoptionalサブミックスボイスで使用するエフェクトチェーンを記述する XAUDIO2_EFFECT_CHAIN 構造体のリストへのポインター。

戻り値

成功した場合は S_OK を、それ以外の場合はエラーコードを返します。

XAudio2 固有のエラーコードの説明については、XAudio2 Error Codes を参照してください。

解説(Remarks)

サブミックスボイスは、1 つ以上のソースボイスまたはサブミックスボイスの出力を受け取ります。その出力を処理し、別のサブミックスボイスまたはマスタリングボイスに送信します。

サブミックスボイスは、入力サンプルレートから、pSendList にある出力ボイスの入力レートへのサンプルレート変換を実行します。複数のボイス送信を指定する場合、それらはすべて同じ入力サンプルレートでなければなりません。

マスタリングボイスが存在するまで、ソースボイスやサブミックスボイスを作成することはできません。また、ソースボイスやサブミックスボイスがまだ存在している場合、マスタリングボイスを破棄することはできません。

作成された直後のサブミックスボイスは開始状態です。

XAudio2 は同じ形式のボイスに対して内部のメモリプーラーを使用します。つまり、より多くのボイスが作成・破棄されるにつれて、ボイスのメモリ割り当ての発生頻度は低くなります。ジャストインタイムの割り当てを最小限に抑えるため、タイトルは必要と予想される最大数のボイスをあらかじめ作成しておき、必要に応じて削除できます。以降、ボイスは XAudio2 のプールから再利用されます。メモリプールは XAudio2 エンジンのインスタンスに結び付けられています。XAudio2 オブジェクトを破棄し、必要に応じて再作成することで、XAudio2 エンジンのインスタンスが使用しているすべてのメモリを回収できます(事前割り当てによってメモリプールを強制的に拡大させる処理は、必要に応じて再度適用する必要があります)。

コールバック(すなわち IXAudio2EngineCallback または IXAudio2VoiceCallback)の内部から CreateSubmixVoice を呼び出すことは無効です。コールバック内で CreateSubmixVoice を呼び出した場合、XAUDIO2_E_INVALID_CALL が返されます。

pEffectChain 引数として渡される XAUDIO2_EFFECT_CHAIN と、その中に含まれる XAUDIO2_EFFECT_DESCRIPTOR 情報は、CreateSubmixVoice が正常に完了した後は不要となり、CreateSubmixVoice を呼び出した直後に削除してかまいません。

プラットフォーム要件

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)
vtbl 7 HRESULT CreateMasteringVoice(IXAudio2MasteringVoice** ppMasteringVoice, DWORD InputChannels, DWORD InputSampleRate, DWORD Flags, LPWSTR szDeviceId, XAUDIO2_EFFECT_CHAIN* pEffectChain, AUDIO_STREAM_CATEGORY StreamCategory)

マスタリングボイスを作成し、構成します。

ppMasteringVoiceIXAudio2MasteringVoice**out成功した場合、新しい IXAudio2MasteringVoice オブジェクトへのポインターを返します。
InputChannelsDWORDin

マスタリングボイスが入力オーディオに期待するチャンネル数。 InputChannelsXAUDIO2_MAX_AUDIO_CHANNELS 以下でなければなりません。

InputChannelsXAUDIO2_DEFAULT_CHANNELS を設定すると、XAudio2 がシステムのスピーカー構成の設定を検出しようとします。

InputSampleRateDWORDin

マスタリングボイスの入力オーディオデータのサンプルレート。このレートは XAUDIO2_QUANTUM_DENOMINATOR の倍数でなければなりません。 InputSampleRateXAUDIO2_MIN_SAMPLE_RATE から XAUDIO2_MAX_SAMPLE_RATE の間でなければなりません。

InputSampleRateXAUDIO2_DEFAULT_SAMPLERATE を設定でき、その場合のデフォルトは現在のプラットフォームによって決定されます。

Windows XP のデフォルトは 44100 です。

Windows Vista および Windows 7 のデフォルトは、サウンドコントロールパネルで指定された設定になります。この設定のデフォルトは 44100 (ドライバーが必要とする場合は 48000) です。

Flags

FlagsDWORDinマスタリングボイスの動作を指定するフラグ。0 または XAUDIO2_NO_VIRTUAL_AUDIO_CLIENT を指定できます。
szDeviceIdLPWSTRinoptional出力オーディオを受け取るデバイスの識別子。デフォルト値の NULL を指定すると、XAudio2 はグローバルの既定のオーディオデバイスを選択します。Windows 10 以降では、Flags に XAUDIO2_NO_VIRTUAL_AUDIO_CLIENT を渡さない限り、NULL は WASAPI 仮想化クライアントにもオプトインします。
pEffectChainXAUDIO2_EFFECT_CHAIN*inoptionalマスタリングボイスで使用するエフェクトチェーンを記述する XAUDIO2_EFFECT_CHAIN 構造体へのポインター。エフェクトを使用しない場合は NULL を指定します。
StreamCategoryAUDIO_STREAM_CATEGORYinこのマスタリングボイスで使用するオーディオストリームカテゴリ。

戻り値

成功した場合は S_OK を、それ以外の場合はエラーコードを返します。既定のオーディオデバイスが存在せず、szDeviceId パラメーターに NULL が渡された場合は ERROR_NOT_FOUND を返します。

XAudio2 固有のエラーコードの説明については、XAudio2 Error Codes を参照してください。

解説(Remarks)

マスタリングボイスは、1 つ以上のソースボイスまたはサブミックスボイスの出力を受け取ります。データを処理し、オーディオ出力デバイスに送信します。

通常、マスタリングボイスは、タイトルのオーディオコンテンツの大部分で使用される入力サンプルレートで作成すべきです。マスタリングボイスは、この入力サンプルレートから実際のデバイス出力レートへのサンプルレート変換を実行します。

マスタリングボイスが存在するまで、ソースボイスやサブミックスボイスを作成することはできません。ソースボイスやサブミックスボイスがまだ存在している場合、マスタリングボイスを破棄することはできません。

マスタリングボイスは常に、すべてのソースボイスおよびサブミックスボイスの後に処理されます。つまり、処理順序を制御するための ProcessingStage パラメーターを指定する必要はありません。

XAudio2 では、同時に存在できるマスタリングボイスは 1 つだけです。複数のボイスを作成しようとすると、XAUDIO2_E_INVALID_CALL が返されます。たとえば異なるオーディオカテゴリが設定された出力デバイス用など、追加のマスタリングボイスが必要な場合は、追加の XAudio2 インスタンスを作成する必要があります。

作成された直後のマスタリングボイスは開始状態です。

コールバック(すなわち IXAudio2EngineCallback または IXAudio2VoiceCallback)の内部から CreateMasteringVoice を呼び出すことは無効です。コールバック内で CreateMasteringVoice を呼び出した場合、XAUDIO2_E_INVALID_CALL が返されます。

pEffectChain 引数として渡される XAUDIO2_EFFECT_CHAIN と、その中に含まれる XAUDIO2_EFFECT_DESCRIPTOR 情報は、CreateMasteringVoice が正常に完了した後は不要となり、CreateMasteringVoice を呼び出した直後に削除してかまいません。

DirectX SDK 版 XAUDIO2 の CreateMasteringVoice は、szDeviceId および StreamCategory 引数の代わりに DeviceIndex 引数を取っていた点に注意してください。これは、標準の Windows デバイス列挙モデルに必要な変更を反映したものです。

プラットフォーム要件

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)
vtbl 8 HRESULT StartEngine()

オーディオ処理スレッドを開始します。

戻り値

成功した場合は S_OK を、それ以外の場合はエラーコードを返します。XAudio2 固有のエラーコードの説明については、XAudio2 Error Codes を参照してください。

解説(Remarks)

StartEngine が呼び出されると、開始されているすべてのボイスがオーディオの消費を開始します。有効なすべてのエフェクトが実行を開始し、その結果得られるオーディオが接続されているすべての出力デバイスに送信されます。XAudio2 が最初に初期化された時点で、エンジンはすでに開始状態にあります。

コールバック(すなわち IXAudio2EngineCallback または IXAudio2VoiceCallback)の内部から StartEngine を呼び出すことは無効です。コールバック内で StartEngine を呼び出した場合、XAUDIO2_E_INVALID_CALL が返されます。

プラットフォーム要件

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)
vtbl 9 void StopEngine()

オーディオ処理スレッドを停止します。

解説(Remarks)

StopEngine が呼び出されると、すべての出力が直ちに停止します。ただし、オーディオグラフはそのまま保持され、エフェクトのパラメーター、エフェクトの履歴(たとえば、以前の音のエコーを発生させるためにリバーブエフェクトが保存しているデータ)、ボイスの状態、保留中のソースバッファー、カーソル位置などが維持されます。エンジンが再開されると、その結果得られるオーディオ出力は、無音の期間を除いて、エンジンが一度も停止されなかった場合に生成されたであろう出力とまったく同じになります。

コールバック(すなわち IXAudio2EngineCallback または IXAudio2VoiceCallback)の内部から StopEngine を呼び出すことは無効です。

プラットフォーム要件

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)
vtbl 10 HRESULT CommitChanges(DWORD OperationSet)

指定した識別子でタグ付けされた一連の操作をアトミックに適用します。

OperationSetDWORDin適用する操作セットの識別子。保留中のすべての操作をコミットするには、XAUDIO2_COMMIT_ALL を渡します。

戻り値

成功した場合は S_OK を、それ以外の場合はエラーコードを返します。XAudio2 固有のエラーコードの説明については、XAudio2 Error Codes を参照してください。

解説(Remarks)

指定した識別子でタグ付けされた操作が存在しない場合、CommitChanges は何も行いません。

CommitChanges の扱いや、遅延される可能性のある XAudio2 インターフェイスメソッドについては、XAudio2 Operation Sets の概要を参照してください。

プラットフォーム要件

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)
vtbl 11 void GetPerformanceData(XAUDIO2_PERFORMANCE_DATA* pPerfData)

利用可能なメモリや CPU 使用率など、現在のリソース使用状況の詳細を返します。

pPerfDataXAUDIO2_PERFORMANCE_DATA*out成功した場合、返される XAUDIO2_PERFORMANCE_DATA 構造体へのポインター。

解説(Remarks)

GetPerformanceData が返す統計情報の詳細については、XAUDIO2_PERFORMANCE_DATA 構造体のリファレンスを参照してください。

プラットフォーム要件

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)
vtbl 12 void SetDebugConfiguration(XAUDIO2_DEBUG_CONFIGURATION* pDebugConfiguration, void* pReserved)

XAudio2 のグローバルなデバッグログオプションを変更します。

pDebugConfigurationXAUDIO2_DEBUG_CONFIGURATION*inoptional新しいデバッグ構成を含む XAUDIO2_DEBUG_CONFIGURATION 構造体へのポインター。
pReservedvoid*optional予約済みパラメーター。NULLを指定する。

解説(Remarks)

SetDebugConfiguration は、指定した XAudio2 エンジンのインスタンスに対してデバッグ構成を設定します。サポートされるデバッグオプションについては、XAUDIO2_DEBUG_CONFIGURATION 構造体を参照してください。デフォルトでは、XAudio2 はデバッグ出力のログ記録やエラー時のブレークを行いません。

プラットフォーム要件

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IXAudio2 "{2B02E3CF-2E0B-4EC3-BE45-1B2A3FE7210D}"
#usecom global IXAudio2 IID_IXAudio2 "{}"
#comfunc global IXAudio2_RegisterForCallbacks    3 sptr
#comfunc global IXAudio2_UnregisterForCallbacks  4 sptr
#comfunc global IXAudio2_CreateSourceVoice       5 sptr,var,int,float,sptr,var,var
#comfunc global IXAudio2_CreateSubmixVoice       6 sptr,int,int,int,int,var,var
#comfunc global IXAudio2_CreateMasteringVoice    7 sptr,int,int,int,wstr,var,int
#comfunc global IXAudio2_StartEngine             8
#comfunc global IXAudio2_StopEngine              9
#comfunc global IXAudio2_CommitChanges           10 int
#comfunc global IXAudio2_GetPerformanceData      11 var
#comfunc global IXAudio2_SetDebugConfiguration   12 var,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。