IXAudio2Voice::SetEffectParameters

ボイスのエフェクト チェーン内の特定のエフェクトのパラメーターを設定します。

HRESULT 
SetEffectParameters(
  UINT32 EffectIndex,
  const void *pParameters,
  UINT32 ParametersByteSize,
  UINT32 OperationSet = XAUDIO2_COMMIT_NOW
);

パラメータ

  • EffectIndex
    ボイスのエフェクト チェーン内のエフェクトの、0 から始まるインデックス。
  • pParameters
    エフェクト固有のパラメーターの現在の値を返します。
  • ParametersByteSize
    pParameters 配列のサイズ (バイト単位) です。
  • OperationSet
    この呼び出しを遅延バッチの一部として指定します。詳細については、「XAudio2 操作セット」の概要を参照してください。

戻り値

正常に実行された場合は S_OK を返し、失敗した場合はエラー コードを返します。エラー コードの説明については、「XAudio2 エラー コード」を参照してください。

エフェクトで汎用パラメーター制御インターフェイスがサポートされていない場合は、失敗して E_NOTIMPL が返されます。

解説 

pParameters バッファーの有効なサイズおよび形式を決めるために使用されている特定のエフェクトです。pParameters が無効な場合や ParametersByteSize がエフェクトで期待されるサイズとは異なる場合、この呼び出しは失敗します。クライアントは、SetEffectParameters 呼び出しを正しいエフェクトに送るように十分に注意する必要があります。この呼び出しを、偶然同じパラメーター ブロック サイズを受け付ける別のエフェクトに送った場合、パラメーターが異なる意味に解釈され、予期しない結果につながる可能性があります。

pParameters によって参照されるメモリーは、すぐに解放しないでください。後でパラメーターが実際にエフェクトに適用されるときに、XAudio2 で参照する必要があるためです。このような状況は、OperationSet 引数が XAUDIO2_COMMIT_NOW である場合は、次のオーディオ処理のパスで発生します。それ以外の場合、パラメーターは、後に同じ OperationSet 引数で IXAudio2::CommitChanges 関数が呼び出された後の最初の処理パスでエフェクトに適用されます。

SetEffectParameters は、XAUDIO2_COMMIT_NOW の操作セットを使用して XAudio2 コールバックから呼び出されるとすぐに有効になります。

    IXAudio2Voice::SetEffectParameters への呼び出しを使用してエフェクト パラメーターを変更した直後に IXAudio2Voice::GetEffectParameters を呼び出した場合は、古いパラメーターが返されることがあります。これは、パラメーターが非同期的に設定されるためです。変更は、次にオーディオ エンジンを実行したときにのみ反映されます。

要件

ヘッダー: Xaudio2.h 宣言

関連項目

IXAudio2Voice, 方法 : エフェクト チェーンの作成, IXAPOParameters::SetParameters, XAPO の概要