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 |