Bluetooth HFP bypass audio streaming

Cet article explique le fonctionnement et la théorie de la diffusion en continu audio de contournement du profil mains libres (HFP) Bluetooth.

En mode de contournement, le chemin de contrôle audio Bluetooth passe via une connexion matérielle autre que l’interface du contrôleur hôte (HCI), comme I2S, au contrôleur Bluetooth. Cette autre connexion matérielle est souvent I2S, mais peut être n’importe quelle interface déterminée par le contrôleur hôte Bluetooth. Cette connexion est appelée connexion « bypass » ou « sideband ».

Bien que les E/S audio se produisent via la connexion de contournement, le flux audio orienté connexion synchrone (SCO) en direct est toujours géré via le HCI. Windows 8 fournit un pilote de profil de Hands-Free Bluetooth (HFP) pour simplifier la gestion de la connexion SCO et d’autres aspects du profil Hands-Free. Toutefois, un pilote audio personnalisé contrôle les E/S de données audio entre Windows et la connexion de contournement.

Le pilote HFP et le pilote de contrôle personnalisé pour les données d’E/S audio ont des rôles distincts, ce qui nécessite une communication efficace entre eux. Cette communication est gérée par un ensemble de IOCTL passées du pilote audio personnalisé au pilote Windows HFP.

En règle générale, la connexion de contournement est toujours présente. Le service Plug-and-Play (PnP) énumère le matériel qui inclut cette connexion et charge le pilote audio requis. Toutefois, le système audio peut avoir ou non des casques HFP couplés, et la connexion de contournement n’est utile que si au moins un casque HFP est jumelé.

Pour chaque appareil HFP jumelé, le pilote Windows HFP inscrit et active une interface d’appareil dans la classe d’interface GUID_DEVINTERFACE_BLUETOOTH_HFP_SCO_HCIBYPASS. Les conditions suivantes s’appliquent aux appareils HFP :

  • Lorsque Windows active le pilote HFP (généralement pendant le démarrage), le pilote HFP inscrit et active une interface pour chaque appareil HFP jumelé.
  • Lorsqu’un appareil HFP est associé à Windows déjà en cours d’exécution, le pilote HFP inscrit et active une interface pour l’appareil.
  • S’il existe n appareils HFP jumelés, le pilote Windows HFP enregistre n instances de l’interface de l’appareil.
  • Lorsqu’un appareil HFP couplé est supprimé, le pilote Windows HFP désactive l’interface de l’appareil.
  • Lorsque Windows arrête le pilote HFP (généralement pendant l’arrêt ou le redémarrage), le pilote HFP désactive l’interface pour chaque appareil HFP jumelé.
  • Le pilote audio doit gérer plusieurs arrivées et suppressions d’interfaces à tout moment, pas seulement pendant le démarrage ou l’arrêt.

Gestion des ressources I2S et SCO

Cette section décrit les hypothèses formulées dans la conception de la prise en charge de la diffusion en continu audio bluetooth.

Actuellement, Windows suppose qu’il n’existe qu’un seul contrôleur hôte Bluetooth. En outre, la prise en charge du contournement synchrone orienté connexion (SCO) du profil de Hands-Free (HFP) suppose qu’il n’y a qu’une seule connexion de contournement et que tout canal ouvert via l’interface du pilote de périphérique HFP est associé à cette connexion unique.

Les pilotes audio doivent arbitrer ce canal et la connexion de contournement unique pour un seul consommateur sur la base du premier arrivé, premier servi. Le moyen le plus simple d’y parvenir consiste pour le pilote à autoriser un seul filtre à passer à l’état ACQUIRE.

Voir aussi

Les rubriques suivantes fournissent plus d’informations sur le cycle de vie de la connexion et certaines fonctionnalités de conception d’un périphérique HFP et de son pilote audio :