Partager via


ACX_PEAKMETER_CONFIG structure (acxelements.h)

La structure ACX_PEAKMETER_CONFIG est utilisée pour définir la configuration du compteur de pointe ACX.

Syntaxe

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;

Membres

Size

Longueur, en octets, de cette structure.

Id

Nombre qui représente l’ID de l’élément.

Name

Pointeur vers un GUID qui représente le nom de l’élément. La valeur par défaut est KSAUDFNAME_PEAKMETER si elle n’est pas présente.

Flags

Indicateurs de configuration de peakmeter ACX définis par l’énumération ACX_PEAKMETER_CONFIG_FLAGS.

Aucun bits d’indicateur n’est actuellement défini. Définissez ce membre sur zéro - AcxPeakMeterConfigNoFlags.

ChannelsCount

Le nombre de canaux. Il s’agit d’un nombre basé sur un.

Maximum

Valeur maximale pour le peakmeter. SignedMaximum doit être défini sur LONG_MAX.

Minimum

Valeur minimale pour le peakmeter. SignedMinimum doit être défini sur LONG_MIN.

SteppingDelta

Valeur pas à pas pour le peakmeter.

Callbacks

Le ACX_PEAKMETER_CALLBACKS structure qui identifie les rappels de pilotes pour les opérations de streaming du moteur audio ACX.

Remarques

Par exemple, vous avez une forme d’onde avec des pics négatifs et positifs à -1 et +1 respectivement (sur une échelle qui va de -1 à +1), puis une valeur de compteur de pointe de LONG_MAX indique avec précision la valeur maximale de forme d’onde pour une fenêtre de temps donnée. À l’inverse, une valeur maximale de compteur égale à zéro (0) doit être utilisée pour signaler le silence, où toutes les valeurs de la forme d’onde sont égales à zéro. Mais dans le cas d’une forme d’onde dont les valeurs maximales sont comprises entre zéro (0) et LONG_MAX, les valeurs de forme d’onde signalées seraient réduites de façon linéaire par rapport aux valeurs d’origine.

Par conséquent, dans le cas de la forme d’onde qui oscille entre -0,5 et +0,5 (sur une échelle comprise entre -1 et +1), la valeur du compteur de pointe doit être définie sur LONG_MAX/2.

Le pilote gère cette requête de propriété de manière synchrone. Si la requête réussit, elle réinitialise le peakmeter, qui initialise la valeur maximale cumulée à zéro. Si la requête échoue, le compteur de pics n’est pas modifié.

Voir aussi KSPROPERTY_AUDIO_PEAKMETER2.

Exemple

L’exemple d’utilisation est illustré ci-dessous.

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

Configuration requise pour ACX

Version ACX minimale : 1.0

Pour plus d’informations sur les versions d’ACX, consultez Vue d’ensemble des versions d’ACX.

Configuration requise

Condition requise Valeur
En-tête acxelements.h

Voir aussi