Bagikan melalui


Node Topologi

Aplikasi audio dapat mengakses kontrol mixer melalui mixer fungsi multimedia Microsoft WindowsGetLineControls. Fungsi ini mengambil array dari satu atau beberapa struktur MIXERCONTROL, yang masing-masing menjelaskan status dan metrik simpul kontrol tunggal pada baris audio. Anggota dwControlType dari struktur MIXERCONTROL diatur ke nilai enumerasi yang menentukan jenis kontrol. Sejumlah jenis kontrol mixer telah ditentukan untuk VxD audio, tetapi hanya subset kontrol ini yang tersedia untuk driver audio WDM.

WDMAud menerjemahkan beberapa tetapi tidak semua node topologi ke dalam kontrol mixer-line yang sesuai. Jenis topologi-node yang tercantum dalam tabel berikut memiliki rekanan yang merupakan kontrol garis mixer.

Jenis Node Nama Tipe Topology-Node Nama Tipe Mixer-Control

AGC

KSNODETYPE_AGC

MIXERCONTROL_CONTROLTYPE_ONOFF

Kenyaringan

KSNODETYPE_LOUDNESS

MIXERCONTROL_CONTROLTYPE_LOUDNESS

Bisukan

KSNODETYPE_MUTE

MIXERCONTROL_CONTROLTYPE_MUTE

Nada (ganda)

KSNODETYPE_TONE

MIXERCONTROL_CONTROLTYPE_ONOFF (jika KSPROPERTY_AUDIO_BASS_BOOST didukung)

MIXERCONTROL_CONTROLTYPE_BASS (jika KSPROPERTY_AUDIO_BASS didukung)

MIXERCONTROL_CONTROLTYPE_TREBLE (jika KSPROPERTY_AUDIO_TREBLE didukung)

Volume

KSNODETYPE_VOLUME

MIXERCONTROL_CONTROLTYPE_VOLUME

Puncak

KSNODETYPE_PEAKMETER

MIXERCONTROL_CONTROLTYPE_PEAKMETER

MUX

KSNODETYPE_MUX

MIXERCONTROL_CONTROLTYPE_MUX

Lebar stereo

KSNODETYPE_STEREO_WIDE

MIXERCONTROL_CONTROLTYPE_FADER

Paduan suara

KSNODETYPE_CHORUS

MIXERCONTROL_CONTROLTYPE_FADER

Reverb

KSNODETYPE_REVERB

MIXERCONTROL_CONTROLTYPE_FADER

Supermix (beberapa)

KSNODETYPE_SUPERMIX

MIXERCONTROL_CONTROLTYPE_MUTE (jika KSPROPERTY_AUDIO_MUTE didukung dalam simpul supermix)

MIXERCONTROL_CONTROLTYPE_VOLUME (lihat komentar dalam teks)

Jenis node topologi yang hilang dari tabel sebelumnya tidak diterjemahkan ke dalam kontrol garis mixer, dan kontrol garis mixer yang hilang dari tabel tidak didukung oleh driver audio WDM.

Perhatikan bahwa MIXERCONTROL_CONTROLTYPE_CUSTOM hilang dari tabel. Ini berarti bahwa driver audio WDM tidak mendukung kontrol mixer kustom.

Node nada mendukung empat properti: bass, treble, mid-frequency, dan bass boost. Properti frekuensi menengah tidak memiliki rekanan garis mixer, tetapi tiga properti lainnya melakukannya. Untuk setiap simpul nada yang ditemukan dalam topologi, kueri dibuat untuk setiap properti yang didukung:

KSPROPERTY_AUDIO_BASS

KSPROPERTY_AUDIO_TREBLE

KSPROPERTY_AUDIO_BASS_BOOST

Setiap kueri properti yang berhasil menghasilkan kontrol garis mixer. Karena masalah penamaan, satu node nada hanya boleh mendukung satu properti. Jika perangkat mendukung bass dan treble, misalnya, perangkat harus memiliki dua node nada sehingga simpul dapat memiliki nama yang berbeda.

Simpul supermix mendukung hingga dua kontrol: bisu dan volume. Simpul supermix dapat digunakan sebagai kontrol bisu ketika memenuhi setidaknya salah satu dari dua kondisi ini untuk setiap entri dalam tabel kemampuan simpul supermix:

  • Entri mendukung properti bisukan, seperti yang ditentukan oleh Kemampuan. Matikan suara bendera.

  • Entri sepenuhnya dilemahkan (pelambatan desibel tak terbatas) dan tidak dapat dimunculkan, yang ditentukan oleh kedua Kemampuan. Minimum dan Kemampuan. Maksimum yang memiliki nilai LONG_MIN (0x80000000).

Simpul supermix dapat digunakan sebagai kontrol volume ketika setiap entri dalam tabel kemampuan supermix memiliki rentang bukan nol. Semua kontrol lainnya diterjemahkan satu-ke-satu. Ketika node yang dikenali ditemui, driver mixer-line meminta properti masing-masing untuk simpul tersebut.

Untuk memeriksa dukungan stereo atau mono, saluran kiri dikueri, diikuti oleh saluran yang tepat, dan akhirnya, jika kedua hal ini gagal, saluran master (-1) dicoba. Jika tidak ada kueri ini yang berhasil, tidak ada kontrol yang dihasilkan untuk simpul tersebut. Perhatikan bahwa simpul MUX tidak dikueri untuk setiap saluran. Sebagai gantinya, satu kueri untuk mengambil pilihan MUX saat ini dilakukan.

Nama kontrol dikembalikan sebagai string ketika simpul dikueri untuk properti KSPROPERTY_TOPOLOGY_NAME . Jika simpul menghasilkan lebih dari satu kontrol, semua kontrol memiliki nama yang sama.