структура 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
Число, представляющее идентификатор элемента.
Name
Указатель на GUID, представляющий имя элемента. Значение по умолчанию KSAUDFNAME_PEAKMETER, если оно отсутствует.
Flags
Флаги конфигурации пиковых меток ACX, определенные перечисленияACX_PEAKMETER_CONFIG_FLAGS.
В настоящее время биты флагов не определены. Задайте для этого элемента значение zero — AcxPeakMeterConfigNoFlags.
ChannelsCount
Количество каналов. Это одно число на основе.
Maximum
Максимальное значение для пикометра. Значение SignedMaximum должно иметь значение LONG_MAX.
Minimum
Минимальное значение для пикометра. ПодписанныйMinimum должен иметь значение LONG_MIN.
SteppingDelta
Значение шага для пикометра.
Callbacks
Структура ACX_PEAKMETER_CALLBACKS, которая определяет обратные вызовы драйвера для операций потоковой передачи звукового модуля ACX.
Замечания
Например, у вас есть форма волн с отрицательными и положительными пиками в -1 и +1 соответственно (в масштабе, который идет от -1 до +1), а затем пиковое значение счетчика LONG_MAX точно сообщает максимальное значение волны для заданного периода времени. И наоборот, значение пикового счетчика нуля (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.
Требования
Требование | Ценность |
---|---|
заголовка | acxelements.h |