DeviceTopology API

Microsoft 고품질 음성 캡처 DMO 샘플을 참조하세요.

DeviceTopology API는 클라이언트 애플리케이션에 오디오 렌더링 및 캡처 디바이스의 기능 하드웨어 토폴로지를 트래버스하는 기능을 제공합니다. DeviceTopology API의 인터페이스 및 메서드를 통해 클라이언트는 오디오 엔드포인트 디바이스로 이어지는 데이터 경로를 따라 있는 기능 하위 단위(예: 볼륨 제어)를 검색할 수 있습니다. 클라이언트는 오디오 어댑터 디바이스와 오디오 엔드포인트 디바이스의 내부 토폴로지와 한 디바이스를 다른 디바이스에 연결하는 연결을 단계별로 트래버스할 수 있습니다. 자세한 내용은 디바이스 토폴로지 를 참조하세요.

헤더 파일 Devicetopology.h는 DeviceTopology API의 인터페이스를 정의합니다.

DeviceTopology API 인터페이스에 액세스하기 위해 클라이언트는 먼저 다음 단계에 따라 오디오 엔드포인트 디바이스에 대한 IDeviceTopology 인터페이스에 대한 참조를 가져옵니다.

  1. IMMDevice 인터페이스에 설명된 기술 중 하나를 사용하여 오디오 엔드포인트 디바이스에 대한 IMMDevice 인터페이스에 대한 참조를 가져옵니다.
  2. 매개 변수 iidREFIID IID_IDeviceTopology 설정된 IMMDevice::Activate 메서드를 호출합니다.

클라이언트는 IDeviceTopology 인터페이스에서 메서드를 호출하여 DeviceTopology API의 다른 인터페이스에 대한 참조를 가져올 수 있습니다.

DeviceTopology API는 다음 인터페이스를 구현합니다.

인터페이스 Description
IAudioAutoGainControl 하드웨어 AGC(자동 게인 제어)에 대한 액세스를 제공합니다.
IAudioBass 하드웨어베이스 수준 컨트롤에 대한 액세스를 제공합니다.
IAudioChannelConfig 하드웨어 채널 구성 컨트롤에 대한 액세스를 제공합니다.
IAudioInputSelector 하드웨어 멀티플렉서 컨트롤(입력 선택기)에 대한 액세스를 제공합니다.
IAudioLoudness "음음" 보정 제어에 대한 액세스를 제공합니다.
IAudioMidrange 하드웨어 미드레인지 수준 컨트롤에 대한 액세스를 제공합니다.
IAudioMute 하드웨어 음소거 컨트롤에 대한 액세스를 제공합니다.
IAudioOutputSelector 하드웨어 demultiplexer 컨트롤(출력 선택기)에 대한 액세스를 제공합니다.
IAudioPeakMeter 하드웨어 피크 미터 컨트롤에 대한 액세스를 제공합니다.
IAudioTreble 하드웨어 고음 수준 컨트롤에 대한 액세스를 제공합니다.
IAudioVolumeLevel 하드웨어 볼륨 제어에 대한 액세스를 제공합니다.
IConnector 구성 요소 간의 연결 지점을 나타냅니다.
IControlInterface 파트(하위 단위 또는 커넥터)의 컨트롤 인터페이스를 나타냅니다.
IDeviceSpecificProperty 커넥터 또는 하위 단위의 디바이스별 속성을 나타냅니다.
IDeviceTopology 오디오 디바이스의 토폴로지 액세스 권한을 제공합니다.
IKsFormatSupport 오디오 디바이스와 시스템 메모리 간의 소프트웨어 구성 I/O 연결(일반적으로 DMA 채널)에서 지원하는 오디오 데이터 형식에 대한 정보를 제공합니다.
IKsJackDescription 오디오 어댑터의 디바이스와 외부 또는 내부 엔드포인트 디바이스(예: 마이크 또는 CD 플레이어) 간에 물리적 연결을 제공하는 잭 또는 내부 커넥터에 대한 정보를 제공합니다.
IPart 디바이스 토폴로지의 파트(커넥터 또는 하위 단위)를 나타냅니다.
IPartsList 부품 목록(커넥터 및 하위 단위)을 나타냅니다.
IPerChannelDbLevel 오디오 스트림 또는 오디오 스트림의 주파수 대역의 볼륨 수준(데시벨)에 대한 채널별 제어를 제공하는 제네릭 하위 단위 컨트롤 인터페이스를 나타냅니다.
ISubunit 클라이언트와 오디오 엔드포인트 디바이스 간의 데이터 경로에 있는 하드웨어 하위 단위(예: 볼륨 수준 컨트롤)를 나타냅니다.

 

커넥터 및 하위 단위의 제어 변경 이벤트에 대한 알림이 필요한 DeviceTopology API 클라이언트는 다음 인터페이스를 구현해야 합니다.

인터페이스 Description
IControlChangeNotify 파트의 상태(커넥터 또는 하위 단위)가 변경되면 알림을 제공합니다.

 

디바이스 토폴로지

프로그래밍 참조