DirectShow DirectShow 의 사용법 엔코더와 디코더의 개발 디코더의 인터페이스 및 사양 디코더의 볼륨 제어   [목차열람] [주소복사] [슬롯비우기]
디코더의 볼륨 제어
 
Microsoft DirectX 9.0

디코더의 볼륨 제어

애플리케이션은,IBasicAudio 인터페이스를 사용해 오디오의 볼륨을 제어한다. IBasicAudio 인터페이스 핸들러가 KSProxy 에 대해서 제공되고 있다. 디코더가 KSProxy 로부터의 볼륨 커멘드를 처리하려면 , 그 셋업 스크립트에 몇개의 레지스트리 키를 추가해,KSPROPSETID_Wave 프로퍼티 세트를 지원 할 필요가 있다.

다음과 같이 드라이버용의 레지스트리 키를 새롭게 생성 한다.

  HKLM\SYSTEM\
    CurrentControlSet\Control
      DeviceClasses
        (decoder guid, eg 2721AE....)
          (Pnp id, eg ##? #VDGENDEV#...)
            #GLOBAL
              Device Parameters
                CLSID      REG_SZ   {17CCA...}
                  FriendlyName   REG_SZ   WDM DVD Driver
                    Interfaces <--- 이 키를 생성 한다.
                    {b9f8ac3e-0f71-11d2-b72c-00c04fb6bd3d} <-- 이 키도 생성 한다. 이것은 값은 아니다.
      MediaInterfaces
        {b9f8ac3e-0f71-11d2-b72c-00c04fb6bd3d} <-- 이 키를 생성 한다.
          (default)        REG_SZ    'KsProxy IBasicAudio handler' <-- 이 값을 설정한다.
          IID    REG_SZ    56 a8 68 b3 0a d4 11 ce b0 3a 00 20 af 0b a7 70    <-- 이 캐릭터 라인값을 생성 한다.

볼륨 제어를 처리 하기 위해서, 드라이버는 KsProperty.Id = KSPROPERTY_WAVE_VOLUME 와 함께 KSPROPSETID_Wave 도 지원 할 필요가 있다. 이 프로퍼티는,IKsPropertySet::Get 메서드 및 IKsPropertySet::Set 메서드를 통해 드라이버에게 건네진다. LeftAttenuation 필드 및 RightAttentuation 필드에서, 각각 좌측과 우측의 스피커의 볼륨을 0x0000 ~ 0xffff 의 선형인 값으로 지정한다.

↑TOP