структура 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.
В настоящее время биты флагов не определены. Задайте для этого элемента нулевое значение — AcxPeakMeterConfigNoFlags.
ChannelsCount
Число каналов. Это число на основе одного.
Maximum
Максимальное значение пикметра. Для SignedMaximum должно быть задано значение LONG_MAX.
Minimum
Минимальное значение пикметра. Для SignedMinimum должно быть задано значение 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 |