Как поймать событие подключения наушников?

Интегрированный звук, звуковые карточки, выносные устройства

Модератор: Модераторы разделов

inspirra
Сообщения: 211
ОС: FreeBSD, Gentoo

Как поймать событие подключения наушников?

Сообщение inspirra »

Есть встроенная звуковая карта, видится и работает как: HDA-Intel - HDA NVidia
У нее есть два порта, которые в PulseAudio видятся как: "analog-output" и "analog-output-headphones"
В первом - колонки; во второй (на передней панели), соответственно, втыкаются наушники.
Оба порта работают как положено:
- при активации первого - звук и в колонках и наушниках
- при активации второго - только в наушниках

Но! Хотелось бы переключать не вручную, а повесить скрипт переключения на событие при втыкании/вытыкании наушников.
udev - не реагирует
acpi - тоже

Каким образом виндовс видит когда подключаются наушники?
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4455
Статус: GNU generation
ОС: Debian GNU/Linux

Re: Как поймать событие подключения наушников?

Сообщение Rootlexx »

Что за АО? Ноутбук? Какой?
Чтобы звук при подключении наушников не выводился в колонки, зачастую нужно указать параметр для модуля snd_hda_intel "model=laptop".
Спасибо сказали:
inspirra
Сообщения: 211
ОС: FreeBSD, Gentoo

Re: Как поймать событие подключения наушников?

Сообщение inspirra »

Это не ноутбук, это обычный ПК (nForce MCP61).
Что значит "АО"?

Дело в том, что звук не выводится в колонки если выбран канал наушников - как и положено. И определяются оба канала, без проблем: на колонки и наушники. Только переключатся приходится вручную.
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4455
Статус: GNU generation
ОС: Debian GNU/Linux

Re: Как поймать событие подключения наушников?

Сообщение Rootlexx »

inspirra писал(а):
08.09.2010 20:13
Что значит "АО"?

Наведите курсор мыши на это слово в моём сообщении.
inspirra писал(а):
08.09.2010 20:13
Только переключатся приходится вручную.

Ну вот и я про то же. У многих такая проблема присутствует, автоматически переключать каналы может и драйвер, только ему нужно знать, какая у вас модель.
Покажите вывод:
Спасибо сказали:
inspirra
Сообщения: 211
ОС: FreeBSD, Gentoo

Re: Как поймать событие подключения наушников?

Сообщение inspirra »


Код: Выделить всё

00:00.0 RAM memory: nVidia Corporation MCP61 Memory Controller (rev a1)
00:01.0 ISA bridge: nVidia Corporation MCP61 LPC Bridge (rev a2)
00:01.1 SMBus: nVidia Corporation MCP61 SMBus (rev a2)
00:01.2 RAM memory: nVidia Corporation MCP61 Memory Controller (rev a2)
00:01.3 Co-processor: nVidia Corporation MCP61 SMU (rev a2)
00:02.0 USB Controller: nVidia Corporation MCP61 USB Controller (rev a2)
00:02.1 USB Controller: nVidia Corporation MCP61 USB Controller (rev a2)
00:04.0 PCI bridge: nVidia Corporation MCP61 PCI bridge (rev a1)
00:05.0 Audio device: nVidia Corporation MCP61 High Definition Audio (rev a2)
00:06.0 IDE interface: nVidia Corporation MCP61 IDE (rev a2)
00:07.0 Bridge: nVidia Corporation MCP61 Ethernet (rev a2)
00:08.0 IDE interface: nVidia Corporation MCP61 SATA Controller (rev a2)
00:08.1 IDE interface: nVidia Corporation MCP61 SATA Controller (rev a2)
00:09.0 PCI bridge: nVidia Corporation MCP61 PCI Express bridge (rev a2)
00:0b.0 PCI bridge: nVidia Corporation MCP61 PCI Express bridge (rev a2)
00:0c.0 PCI bridge: nVidia Corporation MCP61 PCI Express bridge (rev a2)
00:0d.0 VGA compatible controller: nVidia Corporation C61 [GeForce 6150SE nForce 430] (rev a2)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control


Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4455
Статус: GNU generation
ОС: Debian GNU/Linux

Re: Как поймать событие подключения наушников?

Сообщение Rootlexx »

inspirra писал(а):
08.09.2010 20:56
Audio device: nVidia Corporation MCP61 High Definition Audio (rev a2)

Первая же ссылка в Google: http://ubuntuforums.org/showthread.php?t=546931 .
Спасибо сказали:
inspirra
Сообщения: 211
ОС: FreeBSD, Gentoo

Re: Как поймать событие подключения наушников?

Сообщение inspirra »

У мене нет проблем с определением звуковой карты и всех ее портов. PulseAudio видит все порты и для наушников и для колонок и пркрасно переключаются между ними.
Проблема лишь в том - что когда подключаются наушники - должно происходить какое-то событие - что это за событие и как оно ловится?
И вообще - предусмотрено ли в Alsa, или PulseAudio автоматическая реакция на это событие?
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4455
Статус: GNU generation
ОС: Debian GNU/Linux

Re: Как поймать событие подключения наушников?

Сообщение Rootlexx »

inspirra писал(а):
10.09.2010 13:22
У мене нет проблем с определением звуковой карты и всех ее портов.

А я и не утверждал, что есть.
Драйвер умеет сам переключать каналы, только в зависимости от типа схемы есть несколько вариантов. Поэтому если указать правильную модель, то при подключении наушников звук автоматически перестанет идти через динамики, и для этого не нужно будет писать скрипты, ловящие события (тем более, не факт, что эти события вообще выходят за пределы самой звуковой карты).
inspirra писал(а):
10.09.2010 13:22
И вообще - предусмотрено ли в Alsa, или PulseAudio автоматическая реакция на это событие?

Да. Но для этого нужно правильно указать модель.
Вы вообще попробовали сделать, как по ссылке, что я давал выше?
Если не сработает, то я в сообщении 4 давал пример поиска по данной проблеме.
Спасибо сказали:
inspirra
Сообщения: 211
ОС: FreeBSD, Gentoo

Re: Как поймать событие подключения наушников?

Сообщение inspirra »

Rootlexx писал(а):
10.09.2010 14:13
Да. Но для этого нужно правильно указать модель.
Вы вообще попробовали сделать, как по ссылке, что я давал выше?

Спасибо конечно за Ваше участие, но, я указал модель и эту и пробовал другие и весь Гугл перекачал локально.
Пока ничего не помогает.
Видать нужно в код смотреть, да языками не владею.
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4455
Статус: GNU generation
ОС: Debian GNU/Linux

Re: Как поймать событие подключения наушников?

Сообщение Rootlexx »

Возможно, подчерпнёте что-нибудь полезное: https://help.ubuntu.com/community/HdaIntelSoundHowto , http://www.kernel.org/pub/linux/kernel/peo...eadphone_output .
Спасибо сказали: