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 峰值流量计配置标志。
当前未定义标志位。 将此成员设置为零 - AcxPeakMeterConfigNoFlags。
ChannelsCount
频道数量。 这是一个基于 1 的计数。
Maximum
峰值仪的最大值。 SignedMaximum 必须设置为 LONG_MAX。
Minimum
峰值仪的最小值。 SignedMinimum 必须设置为 LONG_MIN。
SteppingDelta
峰值表的步进值。
Callbacks
ACX_PEAKMETER_CALLBACKS结构,用于标识 ACX 音频引擎流式处理操作的驱动程序回调。
注解
例如,波形的负峰值和正峰值分别为 -1 和 +1, () 从 -1 到 +1,然后峰值计量值LONG_MAX准确报告给定时间窗口的最大波形值。 相反,应使用 0 (0) 的峰值计量值来报告静音,其中所有波形的值均为零。 但是,如果波形的峰值在零 (0) 和LONG_MAX之间,则报告的波形值将线性减少到原始波形。
因此,如果波形在 -0.5 到 +0.5 之间摆动, (范围从 -1 到 +1) ,则必须将峰值计量值设置为 LONG_MAX/2。
驱动程序以同步方式处理此属性请求。 如果请求成功,它将重置峰值,这将将累积的峰值初始化为零。 如果请求不成功,则不会更改峰值计。
另请参阅 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 |