Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo esclarece os requisitos e considerações especiais para o streaming de kernel relacionados ao streaming de áudio de bypass bluetooth.
O driver de áudio deve dar suporte total ao driver de porta WaveRT, incluindo o "modo de solicitações contínuas". Para obter mais informações, consulte Introdução ao driver de porta WaveRT. Embora não haja nenhum requisito para implementar um mecanismo de áudio de hardware para a saída de bypass da conexão síncrona orientada (SCO), não há problema em fazê-lo.
Os requisitos do logotipo do Windows para o suporte ao formato incluem uma exceção para Bluetooth.
O driver de áudio deve dar suporte aos formatos possíveis por meio do hardware de sideband, normalmente streaming de áudio mono de 8kHz.
Topologia
Todos os dispositivos Hands-Free Bluetooth dão suporte à captura e à renderização. O driver de áudio deve expor uma topologia de streaming de kernel (KS) para o dispositivo Hands-Free, conforme mostrado no diagrama a seguir, para dar suporte à renderização e à captura.
Nota: O desenvolvedor do driver de áudio pode escolher se deseja implementar um único filtro para capturar e renderizar caminhos ou filtros separados. No entanto, o dispositivo HFP permite apenas um único objeto de arquivo na interface do dispositivo GUID_DEVINTERFACE_BLUETOOTH_HFP_SCO_HCIBYPASS. Portanto, um design que usa dois filtros precisa permitir que ambos os filtros compartilhem o objeto de arquivo único.
Os nós DAC e ADC representam as conversões analógicas/digitais, mas não dão suporte a nenhuma propriedade KS.
Os nós de volume dão suporte ao KSPROPERTY_AUDIO_VOLUMELEVEL e KSEVENT_CONTROL_CHANGE enviando os IOCTLs SETVOLUME e GETVOLUMESTATUSUPDATE para o driver HFP.
O nó de volume deve ser implementado da seguinte maneira:
- Se o fone de ouvido Bluetooth tiver capacidade de controle de volume, o driver de áudio deverá incluir um nó de volume em sua topologia KS. Os manipuladores da propriedade de volume do driver de áudio enviam os IOCLTs mencionados acima para o driver HFP Bluetooth para ajustar o volume.
- Se o headset Bluetooth não implementar um volume de hardware e o codec (ou DSP) tiver um volume de hardware, o driver de áudio deverá manipular o controle de volume no codec (ou DSP).
- Se nem o fone de ouvido Bluetooth nem o dispositivo de áudio tiverem controles de volume de hardware, nenhum nó de volume deverá ser apresentado e o Windows inserirá um nó de controle de volume de software.
- O nó de mudo é opcional. O driver de áudio deverá implementar o nó de silêncio se e somente se o DSP ou o codec de áudio fornecer a capacidade de silenciar o sinal de bypass do PCM antes de passá-lo para o controlador Bluetooth. Os nós de mudo dão suporte ao KSPROPERTY_AUDIO_MUTE.
Solicitações de propriedade
O driver de áudio usa as seguintes propriedades KS para obter informações sobre qualquer tomada de áudio ou outra(s) no caminho de áudio. O driver de áudio também pode utilizar uma requisição de propriedade apropriada para estabelecer ou cortar uma conexão com qualquer dispositivo de áudio Bluetooth no caminho de áudio.
KSPROPERTY_JACK_DESCRIPTION
Essa propriedade retorna uma estrutura KSJACK_DESCRIPTION . O driver de áudio deve definir os campos de KSPROPERTY_JACK_DESCRIPTION da seguinte maneira.
- ChannelMapping = KSAUDIO_SPEAKER_MONO
- Cor = 0
- ConnectionType = eConnTypeOtherDigital
- GeoLocation = eGeoLocNotApplicable
- GenLocation = eGenLocOther
- PortConnection = ePortConnUnknown
- IsConnected = <BOOL para o status da conexão atual>
KSPROPERTY_JACK_DESCRIPTION2
Essa propriedade retorna uma estrutura KSJACK_DESCRIPTION2 . O driver de áudio deve definir os campos KSPROPERTY_JACK_DESCRIPTION2 da seguinte maneira.
- DeviceStateInfo = 0
- JackCapabilities = JACKDESC2_PRESENCE_DETECT_CAPABILITY
KSPROPERTY_ONESHOT_RECONNECT
O filtro do driver de áudio deve dar suporte ao KSPROPERTY_ONESHOT_RECONNECT. Para criar e inicializar essa estrutura, o driver de áudio envia IOCTL_BTHHFP_DEVICE_REQUEST_CONNECT para o driver HFP. O driver HFP conclui essa solicitação e tenta se conectar ao dispositivo de áudio Bluetooth de forma assíncrona.
KSPROPERTY_ONESHOT_DISCONNECT
O filtro do driver de áudio deve dar suporte a KSPROPERTY_ONESHOT_DISCONNECT. Para criar e inicializar essa estrutura, o driver de áudio envia IOCTL_BTHHFP_DEVICE_REQUEST_DISCONNECT para o driver HFP. O driver HFP conclui essa solicitação e tenta se desconectar do dispositivo de áudio Bluetooth de forma assíncrona.
Quando um driver de áudio dá suporte a essas propriedades, a caixa de diálogo de Som no Painel de Controle exibe os comandos Conectar e Desconectar para o endpoint HFP.