Поделиться через


структура 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

См. также раздел