Condividi tramite


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

Vedere anche

  • intestazione acxelements.h