Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini mengklarifikasi persyaratan dan pertimbangan khusus untuk streaming kernel yang terkait dengan streaming audio bypass Bluetooth.
Driver audio harus sepenuhnya mendukung driver port WaveRT, termasuk "mode penarikan". Untuk informasi selengkapnya, lihat Memperkenalkan driver port WaveRT. Meskipun tidak ada persyaratan untuk mengimplementasikan mesin audio perangkat keras bagi output bypass SCO (Synchronous Connection Oriented) yang sinkron, tidak ada salahnya melakukannya.
Persyaratan logo Windows untuk dukungan format mencakup pengecualian untuk Bluetooth.
Driver audio harus mendukung format yang dimungkinkan melalui perangkat keras sideband, biasanya streaming audio mono 8kHz.
Topology
Semua perangkat Hands-Free Bluetooth mendukung pengambilan dan penyajian. Driver audio harus mengekspos topologi streaming kernel (KS) untuk perangkat Hands-Free, seperti yang ditunjukkan pada diagram berikut, untuk mendukung render dan perekaman.
Nota: Pengembang driver audio dapat memilih apakah akan menerapkan satu filter untuk jalur pengambilan dan render atau filter terpisah. Namun, perangkat HFP hanya mengizinkan satu objek file pada antarmuka perangkat GUID_DEVINTERFACE_BLUETOOTH_HFP_SCO_HCIBYPASS. Oleh karena itu, desain yang menggunakan dua filter perlu memungkinkan kedua filter berbagi objek file tunggal.
Simpul DAC dan ADC mewakili konversi analog/digital tetapi tidak mendukung properti KS apa pun.
Node volume mendukung KSPROPERTY_AUDIO_VOLUMELEVEL dan KSEVENT_CONTROL_CHANGE dengan mengirimkan IOCTL SETVOLUME dan GETVOLUMESTATUSUPDATE ke driver HFP.
Node volume harus diimplementasikan sebagai berikut:
- Jika headset Bluetooth mendukung kontrol volume, driver audio harus menyertakan node volume dalam topologi KS-nya. Handler properti volume dari driver audio mengirimkan IOCTL di atas ke driver HFP Bluetooth untuk menangani volume.
- Jika headset Bluetooth tidak menerapkan volume perangkat keras, dan codec (atau DSP) memiliki volume perangkat keras, driver audio harus menangani kontrol volume pada codec (atau DSP).
- Jika headset Bluetooth maupun perangkat audio tidak memiliki kontrol volume perangkat keras, tidak ada node volume yang harus disajikan, dan Windows akan memasukkan simpul kontrol volume perangkat lunak.
- Simpul bisu bersifat opsional. Driver audio harus mengimplementasikan simpul bisu jika dan hanya jika DSP atau codec audio menyediakan kemampuan untuk membisukan sinyal PCM bypass sebelum meneruskannya ke pengontrol Bluetooth. Simpul bisu mendukung KSPROPERTY_AUDIO_MUTE.
Permintaan properti
Driver audio menggunakan properti KS berikut untuk mendapatkan informasi tentang setiap jack audio dalam jalur audio. Driver audio juga dapat menggunakan permintaan properti yang sesuai untuk membuat atau memutuskan koneksi ke perangkat audio Bluetooth apa pun di jalur audio.
KSPROPERTY_JACK_DESCRIPTION
Properti ini mengembalikan struktur KSJACK_DESCRIPTION. Driver audio harus mengatur bidang KSPROPERTY_JACK_DESCRIPTION sebagai berikut.
- ChannelMapping = KSAUDIO_SPEAKER_MONO
- Warna = 0
- ConnectionType = eConnTypeOtherDigital
- LokasiGeo = eGeoLocTidakBerlaku
- GenLocation = eGenLocOther
- PortConnection = ePortConnUnknown
- IsConnected = <BOOL untuk status koneksi saat ini>
KSPROPERTY_JACK_DESCRIPTION2
Properti ini mengembalikan struktur KSJACK_DESCRIPTION2 . Driver audio harus mengatur bidang KSPROPERTY_JACK_DESCRIPTION2 sebagai berikut.
- DeviceStateInfo = 0
- JackCapabilities = JACKDESC2_PRESENCE_DETECT_CAPABILITY
KSPROPERTY_ONESHOT_RECONNECT
Filter driver audio harus mendukung KSPROPERTY_ONESHOT_RECONNECT. Untuk membuat dan menginisialisasi struktur ini, driver audio mengirimkan IOCTL_BTHHFP_DEVICE_REQUEST_CONNECT ke driver HFP. Driver HFP menyelesaikan permintaan ini dan kemudian mencoba menyambungkan ke perangkat audio Bluetooth secara asinkron.
KSPROPERTY_ONESHOT_DISCONNECT
Filter driver audio harus mendukung KSPROPERTY_ONESHOT_DISCONNECT. Untuk membuat dan menginisialisasi struktur ini, driver audio mengirimkan IOCTL_BTHHFP_DEVICE_REQUEST_DISCONNECT ke driver HFP. Driver HFP menyelesaikan permintaan ini dan kemudian mencoba memutuskan sambungan dari perangkat audio Bluetooth secara asinkron.
Saat driver audio mendukung properti ini, kotak dialog Suara di Panel Kontrol mengekspos perintah Sambungkan dan Putuskan sambungan untuk titik akhir HFP.