Возможное состояние гонки при подключении плагинов для наушников

В настоящее время я пытаюсь запустить скрипт для подключения к наушникам. Я узнал, что я могу писать сценарий довольно легко, как событие acpi .

Я создал файл в /etc/acpi/events/ с помощью event event=jack[ /]headphone , который затем просто вызывает мой скрипт.

Я также определил файл и точную строку, в которой содержится информация о том, подключены ли в настоящее время наушники или нет. В файле /proc/asound/card0/codec#0 один конкретный Pin-ctls: равен 0x00 если подключен, и 0x40: OUT если он отключен.

Теперь проблема, которую я вижу там, – это когда я проверяю текущий статус гнезда для наушников, как только произойдет событие acpi, будет ли файл codec#0 содержать текущее значение? Могу ли я здесь участвовать в гонке? Или безопасно это использовать?

  • Докер с аудио в режиме реального времени / с низкой задержкой? (для виртуальных усилителей, таких как Guitarix ...)
  • Вставить dmix в JACK
  • Как отключить белый шум с помощью наушников в Dell XPS
  • USB MIDI-клавиатура (Oxygen 61) теперь не появляется в QJackCtl
  • Джек не распознает MIDI-устройство
  • Как присоединиться к двум входным потокам многопользовательской звуковой карты?
  • Звуковой модуль alsa snd_aloop
  • Нормальный звук прекращается, когда запускается jackd
  • One Solution collect form web for “Возможное состояние гонки при подключении плагинов для наушников”

    Я узнал, что проблему можно легко обойти, проверив конкретное событие plug / unplug на гнезде. Нижеприведенное решение даст сценарию информацию о конкретных событиях разъема, которые будут отключать звук, когда гнездо отключено от сети.

    /etc/acpi/events/jack :

     event=jack[ /]headphone action=/etc/acpi/actions/jack.sh "%e" 

    /etc/acpi/actions/jack.sh :

     #!/bin/bash event=$(echo "$1" | cut -d " " -f 3) case "$event" in plug) ;; unplug) amixer set Master mute ;; *) #null esac 
    Linux и Unix - лучшая ОС в мире.