Как определить, заняты ли разъёмы на звуковой карте или нет?
Сам момент подключения/отключения отлавливается через acpi_listener без проблем, и на это событие можно повесить скрипт, который отключает звук в колонках при подключении наушников во фронтальный разъём, а вот как проверить текущее состояние — не могу понять.
Ответ
согласно вот этому ответу, информацию можно почерпнуть из файлов /proc/asound/card*/codec#*
пример из этого ответа:
наушники подключены:
$ cat /proc/asound/card0/codec#0
[...]
Node 0x0d [Pin Complex] wcaps 0x400181: Stereo
Control: name="Speaker Phantom Jack", index=0, device=0
Pincap 0x00000014: OUT Detect
Pin Default 0x90170110: [Fixed] Speaker at Int N/A
Conn = Analog, Color = Unknown
DefAssociation = 0x1, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x00:
[...]
наушники отключены (сравните строки про Pin-ctls):
$ cat /proc/asound/card0/codec#0
[...]
Node 0x0d [Pin Complex] wcaps 0x400181: Stereo
Control: name="Speaker Phantom Jack", index=0, device=0
Pincap 0x00000014: OUT Detect
Pin Default 0x90170110: [Fixed] Speaker at Int N/A
Conn = Analog, Color = Unknown
DefAssociation = 0x1, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x40: OUT
[...]
Комментариев нет:
Отправить комментарий