Compartilhar via


DeviceTopology API

Consulte o exemplo de DMO de captura de voz de alta qualidade da Microsoft.

A API DeviceTopology fornece aos aplicativos cliente a capacidade de atravessar as topologias de hardware funcionais de dispositivos de renderização e captura de áudio. Por meio das interfaces e métodos na API DeviceTopology, os clientes podem descobrir as subunidades funcionais (por exemplo, controle de volume) que se encontram ao longo dos caminhos de dados que levam de e para dispositivos de ponto de extremidade de áudio. Os clientes podem atravessar as topologias internas de dispositivos de adaptador de áudio e dispositivos de ponto de extremidade de áudio e percorrer as conexões que vinculam um dispositivo a outro. Para obter mais informações, consulte Topologias de dispositivo.

O arquivo de cabeçalho Devicetopology.h define as interfaces na API DeviceTopology.

Para acessar as interfaces da API DeviceTopology, um cliente primeiro obtém uma referência à interface IDeviceTopology para um dispositivo de ponto de extremidade de áudio seguindo estas etapas:

  1. Usando uma das técnicas descritas em IMMDevice Interface, obtenha uma referência à interface IMMDevice para um dispositivo de ponto de extremidade de áudio.
  2. Chame o método IMMDevice::Activate com o parâmetro iid definido como REFIID IID_IDeviceTopology.

O cliente pode obter referências às outras interfaces na API DeviceTopology chamando os métodos na interface IDeviceTopology.

A API DeviceTopology implementa as seguintes interfaces.

Interface Descrição
IAudioAutoGainControl Fornece acesso a um controle de ganho automático de hardware (AGC).
IAudioBass Fornece acesso a um controle de nível de graves de hardware.
IAudioChannelConfig Fornece acesso a um controle de configuração de canal de hardware.
IAudioInputSelector Fornece acesso a um controle multiplexador de hardware (seletor de entrada).
IAudioLoudness Fornece acesso a um controle de compensação de "loudness".
IAudioMidrange Fornece acesso a um controle de nível intermediário de hardware.
IAudioMudo Fornece acesso a um controle de mudo de hardware.
IAudioOutputSelector Fornece acesso a um controle de demultiplexador de hardware (seletor de saída).
IAudioPeakMeter Fornece acesso a um controle de medidor de pico de hardware.
IAudioTreble Fornece acesso a um controle de nível agudo de hardware.
IAudioVolumeLevel Fornece acesso a um controle de volume de hardware.
IConnector Representa um ponto de conexão entre componentes.
IControlInterface Representa uma interface de controle em uma peça (subunidade ou conector).
IDeviceSpecificProperty Representa uma propriedade específica do dispositivo de um conector ou subunidade.
IDeviceTopologia Fornece acesso à topologia de um dispositivo de áudio.
IKsFormatSupport Fornece informações sobre os formatos de dados de áudio que são suportados por uma conexão de E/S configurada por software (normalmente um canal DMA) entre o dispositivo de áudio e a memória do sistema.
IKsJackDescrição Fornece informações sobre as tomadas ou conectores internos que fornecem uma conexão física entre um dispositivo em um adaptador de áudio e um dispositivo de ponto de extremidade externo ou interno (por exemplo, um microfone ou CD player).
Artesão Representa uma parte (conector ou subunidade) de uma topologia de dispositivo.
IPartsList Representa uma lista de peças (conectores e subunidades).
IPerChannelDbLevel Representa uma interface de controle de subunidade genérica que fornece controle por canal sobre o nível de volume, em decibéis, de um fluxo de áudio ou de uma banda de frequência em um fluxo de áudio.
ISubunit Representa uma subunidade de hardware (por exemplo, um controle de nível de volume) que fica no caminho de dados entre um cliente e um dispositivo de ponto de extremidade de áudio.

 

Os clientes da API DeviceTopology que exigem notificação de eventos de alteração de controle em conectores e subunidades devem implementar a interface a seguir.

Interface Descrição
IControlChangeNotify Fornece notificações quando o status de uma peça (conector ou subunidade) é alterado.

 

Topologias de dispositivos

Referência de programação