Sdílet prostřednictvím


Aspekty streamování jádra

Tento článek vysvětluje požadavky a zvláštní aspekty streamování jádra související se streamováním zvuku přes Bluetooth.

Ovladač zvuku by měl plně podporovat ovladač portu WaveRT, včetně "pull režimu". Další informace naleznete v tématu Představení ovladače portu WaveRT. I když není nutné implementovat hardwarový zvukový modul pro synchronní výstup připojení orientované na obejití (SCO), nic to neuškodí.

Požadavky na logo Windows pro podporu formátu zahrnují výjimku pro Bluetooth.

Ovladač zvuku by měl podporovat formáty, které jsou možné prostřednictvím hardwaru bočního pásma, obvykle 8kHz mono audio streaming.

Topologie

Všechna zařízení Bluetooth Hands-Free podporují zachytávání i vykreslování. Zvukový ovladač by měl zpřístupnit topologii streamování jádra (KS) pro zařízení Hands-Free, jak je znázorněno v následujícím diagramu, aby podporoval přehrávání i nahrávání.

Diagram znázorňující topologii KS pro ovladač zvuku, podporu vykreslování a zachycení v zařízeních s Hands-Free Bluetooth

Poznámka: Vývojář zvukového ovladače si může zvolit, jestli má implementovat jeden filtr pro zachytávání i vykreslení cest nebo samostatných filtrů. Zařízení HFP však umožňuje pouze jeden objekt souboru na rozhraní zařízení GUID_DEVINTERFACE_BLUETOOTH_HFP_SCO_HCIBYPASS. Proto návrh, který používá dva filtry, musí umožnit, aby oba filtry sdílely jeden objekt souboru.

Uzly DAC a ADC představují analogové a digitální převody, ale nepodporují žádné vlastnosti KS.

Uzly svazků podporují KSPROPERTY_AUDIO_VOLUMELEVEL a KSEVENT_CONTROL_CHANGE zasláním příkazů SETVOLUME a GETVOLUMESTATUSUPDATE IOCTL do ovladače HFP.

Uzel svazku by se měl implementovat následujícím způsobem:

  • Pokud náhlavní souprava Bluetooth podporuje ovládání hlasitosti, ovladač zvuku by měl obsahovat uzel hlasitosti v topologii KS. Obslužné rutiny vlastností hlasitosti zvukového ovladače odesílají výše uvedené vstupně-výstupní operace do ovladače Bluetooth HFP pro zpracování hlasitosti.
  • Pokud náhlavní souprava Bluetooth neimplementuje hardwarovou hlasitost a kodek (nebo DSP) má hardwarovou hlasitost, měl by ovladač zvuku spravovat ovládání hlasitosti na kodeku (nebo DSP).
  • Pokud náhlavní souprava Bluetooth ani zvukové zařízení nemají ovládací prvky hardwarového hlasitosti, neměl by se zobrazovat žádný uzel hlasitosti a Systém Windows vloží uzel řízení softwarového hlasitosti.
  • Ztlumení uzlu je volitelné. Ovladač zvuku by měl implementovat uzel ztlumení, a pouze pokud DSP nebo zvukový kodek umožňuje ztlumit signál PCM v režimu obejití před předáním do ovladače Bluetooth. Ztlumení uzlů podporuje KSPROPERTY_AUDIO_MUTE.

Požadavky na vlastnosti

Ovladač zvuku používá následující vlastnosti KS k získání informací o jakémkoli zvukovém konektoru nebo konektorech ve zvukové cestě. Ovladač zvuku může také použít příslušnou žádost o vlastnost k vytvoření nebo přerušení připojení k libovolnému zvukovému zařízení Bluetooth ve zvukové cestě.

KSPROPERTY_JACK_DESCRIPTION

Tato vlastnost vrátí KSJACK_DESCRIPTION strukturu. Ovladač zvuku by měl nastavit pole KSPROPERTY_JACK_DESCRIPTION následujícím způsobem.

  • ChannelMapping = KSAUDIO_SPEAKER_MONO
  • Barva = 0
  • ConnectionType = eConnTypeOtherDigital
  • GeoLocation = eGeoLocNotApplicable
  • GenLocation = eGenLocOther
  • PortConnection = ePortConnUnknown
  • IsConnected = <BOOL pro aktuální stav připojení>

KSPROPERTY_JACK_DESCRIPTION2

Tato vlastnost vrátí KSJACK_DESCRIPTION2 strukturu. Ovladač zvuku by měl nastavit pole KSPROPERTY_JACK_DESCRIPTION2 následujícím způsobem.

  • DeviceStateInfo = 0
  • JackCapabilities = JACKDESC2_PRESENCE_DETECT_CAPABILITY

KSPROPERTY_ONESHOT_RECONNECT

Filtr zvukového ovladače by měl podporovat KSPROPERTY_ONESHOT_RECONNECT. Chcete-li vytvořit a inicializovat tuto strukturu, ovladač zvuku odešle IOCTL_BTHHFP_DEVICE_REQUEST_CONNECT ovladači HFP. Ovladač HFP dokončí tento požadavek a pak se pokusí připojit k zvukovému zařízení Bluetooth asynchronně.

KSPROPERTY_ONESHOT_DISCONNECT

Filtr zvukového ovladače by měl podporovat KSPROPERTY_ONESHOT_DISCONNECT. Chcete-li vytvořit a inicializovat tuto strukturu, ovladač zvuku odešle IOCTL_BTHHFP_DEVICE_REQUEST_DISCONNECT ovladači HFP. Ovladač HFP dokončí tento požadavek a pak se pokusí odpojit od zvukového zařízení Bluetooth asynchronně.

Pokud ovladač zvuku podporuje tyto vlastnosti, dialogové okno Zvuk v Ovládacích panelech zveřejňuje příkazy Připojit a Odpojit pro koncový bod HFP.

Teorie obejití zvukového streamování Bluetooth