summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rules.d/78-sound-card.rules32
1 files changed, 18 insertions, 14 deletions
diff --git a/rules.d/78-sound-card.rules b/rules.d/78-sound-card.rules
index 82ed045..a2cd5af 100644
--- a/rules.d/78-sound-card.rules
+++ b/rules.d/78-sound-card.rules
@@ -9,35 +9,39 @@ SUBSYSTEMS=="usb", ENV{ID_MODEL_FROM_DATABASE}=="", IMPORT{program}="usb-db %p"
SUBSYSTEMS=="usb", GOTO="skip_pci"
SUBSYSTEMS=="pci", ENV{ID_MODEL_FROM_DATABASE}=="", IMPORT{program}="pci-db %p"
-SUBSYSTEMS=="pci", DEVPATH=="*/0000:00:??.?/sound/*", ENV{SOUND_ONBOARD}="1"
-
SUBSYSTEMS=="pci", ENV{ID_BUS}="pci"
+# The values used here for $SOUND_FORM_FACTOR should be kept in sync
+# with those defined for PulseAudio's src/pulse/proplist.h
+# PA_PROP_DEVICE_FORM_FACTOR property.
+
+SUBSYSTEMS=="pci", DEVPATH=="*/0000:00:??.?/sound/*", ENV{SOUND_FORM_FACTOR}="internal", GOTO="sound_end"
+
LABEL="skip_pci"
# Hmm, do we really want this database here?
-SUBSYSTEMS=="usb", ATTRS{idVendor}=="0471", ATTRS{idProduct}=="0311", ENV{SOUND_FORM_FACTOR_WEBCAM}="1", GOTO="sound_end"
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="0471", ATTRS{idProduct}=="0311", ENV{SOUND_FORM_FACTOR}="webcam", GOTO="sound_end"
# Devices that also support Image/Video interfaces are most likely webcams
-SUBSYSTEMS=="usb", ENV{ID_USB_INTERFACES}=="*:0e????:*", ENV{SOUND_FORM_FACTOR_WEBCAM}="1", GOTO="sound_end"
+SUBSYSTEMS=="usb", ENV{ID_USB_INTERFACES}=="*:0e????:*", ENV{SOUND_FORM_FACTOR}="webcam", GOTO="sound_end"
# Yepp, this is ugly:
-ENV{ID_MODEL}=="*[Ss]peaker*", ENV{SOUND_FORM_FACTOR_SPEAKER}="1", GOTO="sound_end"
-ENV{ID_MODEL_FROM_DATABASE}=="*[Ss]peaker*", ENV{SOUND_FORM_FACTOR_SPEAKER}="1", GOTO="sound_end"
+ENV{ID_MODEL}=="*[Ss]peaker*", ENV{SOUND_FORM_FACTOR}="speaker", GOTO="sound_end"
+ENV{ID_MODEL_FROM_DATABASE}=="*[Ss]peaker*", ENV{SOUND_FORM_FACTOR}="speaker", GOTO="sound_end"
-ENV{ID_MODEL}=="*[Hh]eadphone*", ENV{SOUND_FORM_FACTOR_HEADPHONE}="1", GOTO="sound_end"
-ENV{ID_MODEL_FROM_DATABASE}=="*[Hh]eadphone*", ENV{SOUND_FORM_FACTOR_HEADPHONE}="1", GOTO="sound_end"
+ENV{ID_MODEL}=="*[Hh]eadphone*", ENV{SOUND_FORM_FACTOR}="headphone", GOTO="sound_end"
+ENV{ID_MODEL_FROM_DATABASE}=="*[Hh]eadphone*", ENV{SOUND_FORM_FACTOR}="headphone", GOTO="sound_end"
-ENV{ID_MODEL}=="*[Hh]eadset*", ENV{SOUND_FORM_FACTOR_HEADSET}="1", GOTO="sound_end"
-ENV{ID_MODEL_FROM_DATABASE}=="*[Hh]eadset*", ENV{SOUND_FORM_FACTOR_HEADSET}="1", GOTO="sound_end"
+ENV{ID_MODEL}=="*[Hh]eadset*", ENV{SOUND_FORM_FACTOR}="headset", GOTO="sound_end"
+ENV{ID_MODEL_FROM_DATABASE}=="*[Hh]eadset*", ENV{SOUND_FORM_FACTOR}="headset", GOTO="sound_end"
-ENV{ID_MODEL}=="*[Hh]andset*", ENV{SOUND_FORM_FACTOR_HANDSET}="1", GOTO="sound_end"
-ENV{ID_MODEL_FROM_DATABASE}=="*[Hh]andset*", ENV{SOUND_FORM_FACTOR_HANDSET}="1", GOTO="sound_end"
+ENV{ID_MODEL}=="*[Hh]andset*", ENV{SOUND_FORM_FACTOR}="handset", GOTO="sound_end"
+ENV{ID_MODEL_FROM_DATABASE}=="*[Hh]andset*", ENV{SOUND_FORM_FACTOR}="handset", GOTO="sound_end"
-ENV{ID_MODEL}=="*[Mm]icrophone*", ENV{SOUND_FORM_FACTOR_MICROPHONE}="1", GOTO="sound_end"
-ENV{ID_MODEL_FROM_DATABASE}=="*[Mm]icrophone*", ENV{SOUND_FORM_FACTOR_MICROPHONE}="1", GOTO="sound_end"
+ENV{ID_MODEL}=="*[Mm]icrophone*", ENV{SOUND_FORM_FACTOR}="microphone", GOTO="sound_end"
+ENV{ID_MODEL_FROM_DATABASE}=="*[Mm]icrophone*", ENV{SOUND_FORM_FACTOR}="microphone", GOTO="sound_end"
LABEL="sound_end"