IXAPOHrtfParameters
COM公式ドキュメント
頭部伝達関数 (HRTF: head-related transfer function) をサウンドにどのように適用するかを制御するパラメーターを設定するために使用するインターフェイスです。
解説(Remarks)
XAPO インターフェイスのインスタンスは、CreateHrtfApo 関数を呼び出して作成します。
メソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
リスナーに対するサウンドの位置を設定します。
| position | HrtfPosition* | in | リスナーに対するサウンドの位置。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
リスナーの座標系を基準とした、ソースの向きを表す回転行列を設定します。
| orientation | HrtfOrientation* | in | リスナーの基準座標系を基準とした、ソースの向きを表す回転行列。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
現在のソース位置に対するカスタムのダイレクトパスゲイン値を設定します。HrtfDistanceDecayType のカスタム減衰タイプで再生されるサウンドに対してのみ有効です。
| gain | FLOAT | in | 現在のソース位置に対するカスタムのダイレクトパスゲイン値 (dB 単位)。HrtfDistanceDecayType のカスタム減衰タイプで再生されるサウンドに対してのみ有効です。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
シミュレートする音響環境を選択します。
| environment | HrtfEnvironment | in | シミュレートする音響環境。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
この環境は距離に関する手がかり (distance-cue) のパラメーターを表します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IXAPOHrtfParameters "{15B3CD66-E9DE-4464-B6E6-2BC3CF63D455}" #usecom global IXAPOHrtfParameters IID_IXAPOHrtfParameters "{}" #comfunc global IXAPOHrtfParameters_SetSourcePosition 3 var #comfunc global IXAPOHrtfParameters_SetSourceOrientation 4 var #comfunc global IXAPOHrtfParameters_SetSourceGain 5 float #comfunc global IXAPOHrtfParameters_SetEnvironment 6 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IXAPOHrtfParameters "{15B3CD66-E9DE-4464-B6E6-2BC3CF63D455}" #usecom global IXAPOHrtfParameters IID_IXAPOHrtfParameters "{}" #comfunc global IXAPOHrtfParameters_SetSourcePosition 3 sptr #comfunc global IXAPOHrtfParameters_SetSourceOrientation 4 sptr #comfunc global IXAPOHrtfParameters_SetSourceGain 5 float #comfunc global IXAPOHrtfParameters_SetEnvironment 6 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。