다음을 통해 공유


ACX_PEAKMETER_CONFIG 구조체(acxelements.h)

ACX_PEAKMETER_CONFIG 구조체는 ACX 피크미터 구성을 정의하는 데 사용됩니다.

구문

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;

멤버

Size

이 구조체의 길이(바이트)입니다.

Id

요소 ID를 나타내는 숫자입니다.

Name

요소의 이름을 나타내는 GUID에 대한 포인터입니다. 기본값은 없는 경우 KSAUDFNAME_PEAKMETER.

Flags

ACX_PEAKMETER_CONFIG_FLAGS 열거형에서 정의한 ACX peakmeter 구성 플래그입니다.

플래그 비트는 현재 정의되어 있지 않습니다. 이 멤버를 0 - AcxPeakMeterConfigNoFlags로 설정합니다.

ChannelsCount

채널 수입니다. 이는 하나의 기반 개수입니다.

Maximum

피크미터의 최대값입니다. SignedMaximum은 LONG_MAX 설정해야 합니다.

Minimum

peakmeter의 최소값입니다. SignedMinimum은 LONG_MIN 설정해야 합니다.

SteppingDelta

peakmeter에 대한 단계별 값입니다.

Callbacks

ACX 오디오 엔진 스트리밍 작업에 대한 드라이버 콜백을 식별하는 ACX_PEAKMETER_CALLBACKS 구조 입니다.

설명

예를 들어 음수 및 양수 피크가 각각 -1과 +1인 파형이 있는 경우(-1에서 +1로 가는 배율) 피크 미터 값이 LONG_MAX 지정된 기간의 최대 파형 값을 정확하게 보고합니다. 반대로 최대 측정기 값 0(0)을 사용하여 모든 파형의 값이 0인 무음 을 보고해야 합니다. 그러나 피크 값이 0(0)과 LONG_MAX 사이의 파형의 경우 보고된 파형 값은 원본에서 선형으로 감소됩니다.

따라서 -0.5에서 +0.5 사이를 스윙하는 파형의 경우(-1에서 +1로 가는 눈금에서) 피크 미터 값을 LONG_MAX/2로 설정해야 합니다.

드라이버는 이 속성 요청을 동기적으로 처리합니다. 요청이 성공하면 peakmeter를 다시 설정하여 누적된 최대값을 0으로 초기화합니다. 요청이 성공하지 않으면 peakmeter가 변경되지 않습니다.

KSPROPERTY_AUDIO_PEAKMETER2 참조하세요.

예제

사용 예제는 다음과 같습니다.

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

ACX 요구 사항

최소 ACX 버전: 1.0

ACX 버전에 대한 자세한 내용은 ACX 버전 개요를 참조하세요.

요구 사항

요구 사항
헤더 acxelements.h

추가 정보