次の方法で共有


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 バージョンの概要 参照してください。

必要条件

要件 価値
ヘッダー acxelements.h

関連項目