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


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

См. также