Condividi tramite


ACX_PEAKMETER_CONFIG struttura (acxelements.h)

La struttura ACX_PEAKMETER_CONFIG viene usata per definire la configurazione del 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;

Members

Size

Lunghezza, in byte, di questa struttura.

Id

Numero che rappresenta l'ID elemento.

Name

Puntatore a un GUID che rappresenta il nome dell'elemento. Il valore predefinito è KSAUDFNAME_PEAKMETER se non presente.

Flags

Flag di configurazione del picco ACX definiti dall'enumerazione ACX_PEAKMETER_CONFIG_FLAGS.

Non sono attualmente definiti bit di flag. Impostare questo membro su zero : AcxPeakMeterConfigNoFlags.

ChannelsCount

Il numero di canali. Si tratta di un conteggio basato.

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 di passaggio per il piccometro.

Callbacks

Struttura ACX_PEAKMETER_CALLBACKS che identifica i callback driver per le operazioni di streaming del motore audio ACX.

Commenti

Ad esempio, si dispone di una forma d'onda con picchi negativi e positivi rispettivamente a -1 e +1 (su una scala che passa da -1 a +1), quindi un valore del misuratore di picco di LONG_MAX segnala accuratamente il valore massimo della forma di onda per una determinata finestra temporale. Al contrario, deve essere usato un valore del misuratore di picco pari a zero (0) per segnalare il silenzio, dove 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 verranno 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 passa da -1 a +1), il valore del misuratore 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 picco, che inizializza il valore di picco accumulato su zero. Se la richiesta non riesce, il piccometro non viene modificato.

Vedere anche KSPROPERTY_AUDIO_PEAKMETER2.

Esempio

Di seguito è riportato l'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 ACX, vedere Panoramica della versione di ACX.

Requisiti

Requisito Valore
Intestazione acxelements.h

Vedi anche