次の方法で共有


ACX_PEAKMETER_CONFIG 構造体 (acxelements.h)

ACX_PEAKMETER_CONFIG構造体は、ACX ピークメーター構成を定義するために使用されます。

構文

typedef struct _ACX_PEAKMETER_CONFIG {
  ULONG                    Size;
  ULONG                    Id;
  const GUID               *Name;
  ULONG                    Flags;
  ULONG                    ChannelsCount;
  LONG                     Maximum;
  LONG                     Minimum;
  ULONG                    SteppingDelta;
  PACX_PEAKMETER_CALLBACKS Callbacks;
} ACX_PEAKMETER_CONFIG, *PACX_PEAKMETER_CONFIG;

メンバー

Size

この構造体の長さ (バイト単位)。

Id

要素 ID を表す数値。

Name

要素の名前を表す GUID へのポインター。 既定値は KSAUDFNAME_PEAKMETER (存在しない場合) です。

Flags

ACX_PEAKMETER_CONFIG_FLAGS列挙型によって定義された ACX ピークメーター構成フラグ。

フラグ ビットは現在定義されていません。 このメンバーを 0 - AcxPeakMeterConfigNoFlags に設定します。

ChannelsCount

チャンネル数。 これは 1 から始まるカウントです。

Maximum

ピークメーターの最大値。 SignedMaximum は、LONG_MAXに設定する必要があります。

Minimum

ピークメーターの最小値。 SignedMinimum をLONG_MINに設定する必要があります。

SteppingDelta

ピークメーターのステップ値。

Callbacks

ACX オーディオ エンジンストリーミング操作のドライバー コールバックを識別する ACX_PEAKMETER_CALLBACKS構造体

注釈

たとえば、負のピークと正のピークがそれぞれ -1 と +1 の波形 (-1 から +1 までのスケール) がある場合、ピークメーター値LONG_MAXは、特定の時間枠の最大波形値を正確に報告します。 逆に、ゼロ (0) のピーク メーター値を使用して、すべての波形の値が 0 である無音状態を報告する必要があります。 ただし、ピーク値がゼロ (0) からLONG_MAXの波形の場合、報告される波形値は元の波形から線形的に減少します。

したがって、-0.5 と +0.5 の間で揺れる波形 (-1 から +1 までのスケール) の場合は、ピークメーターの値を LONG_MAX/2 に設定する必要があります。

ドライバーは、このプロパティ要求を同期的に処理します。 要求が成功すると、ピークメーターがリセットされ、累積ピーク値が 0 に初期化されます。 要求が成功しない場合、ピークメーターは変更されません。

「KSPROPERTY_AUDIO_PEAKMETER2」も参照してください。

使用例を次に示します。

// Default peak meter settings
#define PEAKMETER_STEPPING_DELTA    0x1000
#define PEAKMETER_MAXIMUM           LONG_MAX
#define PEAKMETER_MINIMUM           LONG_MIN

    ACX_PEAKMETER_CONFIG            peakmeterCfg;

        ACX_PEAKMETER_CALLBACKS peakmeterCallbacks;
        ACX_PEAKMETER_CALLBACKS_INIT(&peakmeterCallbacks);
        peakmeterCallbacks.EvtAcxPeakMeterRetrieveLevel = CodecR_EvtPeakMeterRetrieveLevelCallback;

        ACX_PEAKMETER_CONFIG peakmeterCfg;
        ACX_PEAKMETER_CONFIG_INIT(&peakmeterCfg);
        peakmeterCfg.ChannelsCount = MAX_CHANNELS;
        peakmeterCfg.Minimum = PEAKMETER_MINIMUM;
        peakmeterCfg.Maximum = PEAKMETER_MAXIMUM;
        peakmeterCfg.SteppingDelta = PEAKMETER_STEPPING_DELTA;
        peakmeterCfg.Callbacks = &peakmeterCallbacks;

ACX の要件

最小 ACX バージョン: 1.0

ACX バージョンの詳細については、「 ACX バージョンの概要」を参照してください。

要件

要件
Header acxelements.h

こちらもご覧ください