struttura ACX_PEAKMETER_CONFIG (acxelements.h)
La struttura ACX_PEAKMETER_CONFIG viene usata per definire la configurazione dei parametri di picco ACX.
Sintassi
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;
Membri
Size
Lunghezza, in byte, di questa struttura.
Id
Numero che rappresenta l'ID dell'elemento.
Name
Puntatore a un GUID che rappresenta il nome dell'elemento. L'impostazione predefinita è KSAUDFNAME_PEAKMETER se non presente.
Flags
Flag di configurazione dei parametri di picco ACX definiti dall'enumerazione ACX_PEAKMETER_CONFIG_FLAGS.
Non sono attualmente definiti bit di flag. Impostare questo membro su zero - AcxPeakMeterConfigNoFlags.
ChannelsCount
Numero di canali. Si tratta di un conteggio basato su un solo.
Maximum
Valore massimo per il picco. SignedMaximum deve essere impostato su LONG_MAX.
Minimum
Valore minimo per il picco. SignedMinimum deve essere impostato su LONG_MIN.
SteppingDelta
Valore dell'istruzione per il valore di picco.
Callbacks
La struttura ACX_PEAKMETER_CALLBACKS che identifica i callback del driver per le operazioni di streaming del motore audio ACX.
Osservazioni
Ad esempio, si dispone di una forma d'onda con picchi negativi e positivi rispettivamente a -1 e +1 (su una scala che va da -1 a +1), quindi un valore del contatore di picco di LONG_MAX segnala accuratamente il valore massimo della forma d'onda per una determinata finestra temporale. Al contrario, per segnalare il silenzio deve essere usato un valore di metro di picco pari a zero (0), in cui tutti i valori della forma d'onda sono zero. Tuttavia, nel caso di una forma d'onda i cui valori di picco sono compresi tra zero (0) e LONG_MAX, i valori della forma d'onda segnalata verrebbero ridotti in modo lineare rispetto agli originali.
Pertanto, nel caso della forma d'onda che oscilla tra -0,5 e +0,5 (su una scala che va da -1 a +1), il valore del contatore di picco deve essere impostato su LONG_MAX/2.
Il driver gestisce questa richiesta di proprietà in modo sincrono. Se la richiesta ha esito positivo, reimposta il valore di picco, che inizializza il valore di picco accumulato su zero. Se la richiesta non riesce, il parametro di picco non viene modificato.
Vedere anche KSPROPERTY_AUDIO_PEAKMETER2.
Esempio
Di seguito è riportato un esempio di utilizzo.
// 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;
Requisiti ACX
versione minima di ACX: 1.0
Per altre informazioni sulle versioni di ACX, vedere panoramica della versione ACX.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | acxelements.h |