Compartilhar via


estrutura ACX_PEAKMETER_CONFIG (acxelements.h)

A estrutura de ACX_PEAKMETER_CONFIG é usada para definir a configuração do pico de ACX.

Sintaxe

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;

Membros

Size

O comprimento, em bytes, dessa estrutura.

Id

Um número que representa a ID do elemento.

Name

Um ponteiro para um GUID que representa o nome do elemento. O padrão é KSAUDFNAME_PEAKMETER se não estiver presente.

Flags

Sinalizadores de configuração de pico do ACX definidos pela enumeração ACX_PEAKMETER_CONFIG_FLAGS.

Nenhum bit de sinalizador está definido no momento. Defina esse membro como zero - AcxPeakMeterConfigNoFlags.

ChannelsCount

O número de canais. Esta é uma contagem baseada em um.

Maximum

O valor máximo para o picometer. SignedMaximum deve ser definido como LONG_MAX.

Minimum

O valor mínimo para o picometer. SignedMinimum deve ser definido como LONG_MIN.

SteppingDelta

O valor de etapa para o picometer.

Callbacks

A estrutura ACX_PEAKMETER_CALLBACKS que identifica os retornos de chamada do driver para operações de streaming do mecanismo de áudio ACX.

Comentários

Por exemplo, você tem uma forma de onda com picos negativos e positivos em -1 e +1 respectivamente (em uma escala que vai de -1 a +1), em seguida, um valor de medidor de pico de LONG_MAX relata com precisão o valor máximo de forma de onda para uma determinada janela de tempo. Por outro lado, um valor de medidor de pico de zero (0) deve ser usado para relatar o silêncio, em que todos os valores da forma de onda são zero. Mas no caso de uma forma de onda cujos valores de pico estão entre zero (0) e LONG_MAX, os valores de forma de onda relatados seriam reduzidos linearmente dos originais.

Portanto, no caso da forma de onda que oscila entre -0,5 e +0,5 (em uma escala que vai de -1 a +1), o valor do medidor de pico deve ser definido como LONG_MAX/2.

O driver lida com essa solicitação de propriedade de forma síncrona. Se a solicitação for bem-sucedida, ela redefinirá o picometer, que inicializa o valor de pico acumulado como zero. Se a solicitação não for bem-sucedida, o picometer não será alterado.

Confira também KSPROPERTY_AUDIO_PEAKMETER2.

Exemplo

O uso de exemplo é mostrado abaixo.

// 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;

Requisitos do ACX

Versão mínima do ACX: 1.0

Para obter mais informações sobre versões do ACX, consulte Visão geral da versão do ACX.

Requisitos

Requisito Valor
Cabeçalho acxelements.h

Confira também