Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln förtydligar kraven och särskilda överväganden för kernelströmning som rör bluetooth-förbikoppling av ljudströmning.
Ljuddrivrutinen ska ha fullt stöd för WaveRT-portdrivrutinen, inklusive "pull-läge". Mer information finns i Introduktion till WaveRT-portdrivrutinen. Även om det inte finns något krav på att implementera en ljudmotor för den synkrona anslutningsorienterade (SCO) bypassutgången, finns det ingen skada i att göra det.
Kraven för Windows-logotypen för formatstöd innehåller ett undantag för Bluetooth.
Ljuddrivrutinen bör ha stöd för de format som är möjliga via sidobandmaskinvaran, vanligtvis 8kHz monoljuduppspelning.
Topology
Alla Bluetooth-Hands-Free-enheter stöder både avbildning och återgivning. Ljuddrivrutinen bör exponera en KS-topologi (kernel streaming) för den Hands-Free enheten, som visas i följande diagram, för att stödja både återgivning och avbildning.
Observera: Ljuddrivrutinens utvecklare kan välja att implementera antingen ett enda filter för både inspelnings- och återgivningsvägar eller separata filter. HFP-enheten tillåter dock bara ett enda filobjekt i GUID_DEVINTERFACE_BLUETOOTH_HFP_SCO_HCIBYPASS enhetsgränssnittet. Därför måste en design som använder två filter tillåta att båda filtren delar det enskilda filobjektet.
DAC- och ADC-noderna representerar analoga/digitala konverteringar men stöder inga KS-egenskaper.
Volymnoderna stöder KSPROPERTY_AUDIO_VOLUMELEVEL och KSEVENT_CONTROL_CHANGE genom att skicka SETVOLUME och GETVOLUMESTATUSUPDATE IOCTLs till HFP-drivrutinen.
Volymnoden ska implementeras på följande sätt:
- Om Bluetooth-headsetet stöder volymkontroll bör ljuddrivrutinen inkludera en volymnod i KS-topologin. Ljuddrivrutinens volymegenskapshanterare skickar ovanstående IOCLT till Bluetooth HFP-drivrutinen för att hantera volymen.
- Om Bluetooth-headsetet inte implementerar en maskinvaruvolym och codec (eller DSP) har en maskinvaruvolym, ska ljuddrivrutinen hantera volymkontrollen på codec (eller DSP).
- Om varken Bluetooth-headsetet eller ljudenheten har maskinvaruvolymkontroller bör ingen volymnod visas och Windows infogar en nod för volymkontroll för programvara.
- Det är valfritt att stänga av noden. Ljuddrivrutinen ska implementera noden mute om och endast om DSP eller ljud codec ger möjlighet att stänga av den förbigående PCM-signalen innan den skickas till Bluetooth-styrenheten. Mute-noderna stöder KSPROPERTY_AUDIO_MUTE.
Egenskapsbegäranden
Ljuddrivrutinen använder följande KS-egenskaper för att få information om eventuella ljuduttag eller uttag i ljudsignalkedjan. Ljuddrivrutinen kan också använda en lämplig egenskapsbegäran för att upprätta eller bryta en anslutning till en Bluetooth-ljudenhet i ljudsystemet.
KSPROPERTY_JACK_DESCRIPTION
Den här egenskapen returnerar en KSJACK_DESCRIPTION struktur. Ljuddrivrutinen bör ange KSPROPERTY_JACK_DESCRIPTION fälten på följande sätt.
- ChannelMapping = KSAUDIO_SPEAKER_MONO
- Färg = 0
- Anslutningstyp = eConnTypeOtherDigital
- GeoLocation = eGeoLocNotApplicable
- GenLocation = eGenLocOther
- PortConnection = ePortConnUnknown
- IsConnected = <BOOL för aktuell anslutningsstatus>
KSPROPERTY_JACK_DESCRIPTION2
Den här egenskapen returnerar en KSJACK_DESCRIPTION2 struktur. Ljuddrivrutinen bör ange fälten KSPROPERTY_JACK_DESCRIPTION2 enligt följande.
- DeviceStateInfo = 0
- JackCapabilities = JACKDESC2_PRESENCE_DETECT_CAPABILITY
KSPROPERTY_ONESHOT_RECONNECT
Ljuddrivrutinsfiltret bör ha stöd för KSPROPERTY_ONESHOT_RECONNECT. För att skapa och initiera den här strukturen skickar ljuddrivrutinen IOCTL_BTHHFP_DEVICE_REQUEST_CONNECT till HFP-drivrutinen. HFP-drivrutinen slutför den här begäran och försöker sedan ansluta till Bluetooth-ljudenheten asynkront.
KSPROPERTY_ONESHOT_DISCONNECT
Ljuddrivrutinsfiltret bör ha stöd för KSPROPERTY_ONESHOT_DISCONNECT. För att skapa och initiera den här strukturen skickar ljuddrivrutinen IOCTL_BTHHFP_DEVICE_REQUEST_DISCONNECT till HFP-drivrutinen. HFP-drivrutinen slutför den här begäran och försöker sedan koppla från Bluetooth-ljudenheten asynkront.
När en ljuddrivrutin har stöd för dessa egenskaper exponerar dialogrutan Ljud på Kontrollpanelen kommandona Anslut och koppla från för HFP-slutpunkten.