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:
- Usando uma das técnicas descritas em IMMDevice Interface, obtenha uma referência à interface IMMDevice para um dispositivo de ponto de extremidade de áudio.
- 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. |
Tópicos relacionados