Help - Search - Members - Calendar
Full Version: Voodoohda
Project OS X Forums > Languages > Русский > Драйвера > Звук
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
Clubber_77
Господа, попробовал я на себе это чудо, но оно, можно сказать, отказалось работать с моим кодеком! причем все аналогично как с версией 0.2.2
определяются у меня только спикеры, в разделе выходы также присутствует устройство анкноу, и точно такое же в разделе входы. в плист никаких изменений не вносил, эксперементировать буду позже!
Slice
QUOTE (Clubber_77 @ Aug 28 2009, 08:56 PM) *
Господа, попробовал я на себе это чудо, но оно, можно сказать, отказалось работать с моим кодеком! причем все аналогично как с версией 0.2.2
определяются у меня только спикеры, в разделе выходы также присутствует устройство анкноу, и точно такое же в разделе входы. в плист никаких изменений не вносил, эксперементировать буду позже!

Есть такая ошибка драйвера Line-Out он пишет как Unknown. Надо поправить. Наисет входа не знаю, наверно тоже Line-in.
А насчет спикера проверь автодетект, небось там и сидят все остальные устройства.

Проверяю на ALC883 на матери GA-965P-S3. Начальная ситуация:
Имеются 6 разъемов сзади, два спереди, и SPDIF in/out. Есть внутреннее гнездо для CD, сейчас туда идет шнурочек от TVTuner, который в МакОСе не работает.
В виндоусе ХР не работают передние разъемы.
Разные патчи AppleHDA давали мне больше или меньше рабочих разъемов. Но никогда не все.
Теперь устанавливаю VoodooHDA чистый.
Click to view attachment Click to view attachment Click to view attachment
По картинкам все очень плохо, но проверка звука показала, что все на месте, просто спрятались за автодетект, и подмеченный выше глюк с анноуном.
CODE
HDA Codec #2: Realtek ALC883
HDA Codec ID: 0x10ec0883
Vendor: 0x10ec
Device: 0x0883
Revision: 0x00
Stepping: 0x02
PCI Subvendor: 0xa0021458
nid 20 0x01014410 as 1 seq 0 Line-out Jack jack 1 loc 1 color Green misc 4
nid 21 0x01011412 as 1 seq 2 Line-out Jack jack 1 loc 1 color Black misc 4
nid 22 0x01016411 as 1 seq 1 Line-out Jack jack 1 loc 1 color Orange misc 4
nid 23 0x01012414 as 1 seq 4 Line-out Jack jack 1 loc 1 color Grey misc 4
nid 24 0x01a19c40 as 4 seq 0 Microphone Jack jack 1 loc 1 color Pink misc 12
nid 25 0x02a19c50 as 5 seq 0 Microphone Jack jack 1 loc 2 color Pink misc 12
nid 26 0x0181344f as 4 seq 15 Line-in Jack jack 1 loc 1 color Blue misc 4
nid 27 0x02214c20 as 2 seq 0 Headphones Jack jack 1 loc 2 color Green misc 12
nid 28 0x593301f0 as 15 seq 0 CD None jack 3 loc 25 color Unknown misc 1 [DISABLED]
nid 30 0x014b6130 as 3 seq 0 SPDIF-out Jack jack 11 loc 1 color Orange misc 1
nid 31 0x01cb7160 as 6 seq 0 SPDIF-in Jack jack 11 loc 1 color Yellow misc 1

Т.е. 4 линейных выхода у меня в автодетекте: куда воткнешь - там и звук. Задние микрофон и линейный вход в одной группе, но без автодетекта работает как микрофон.
А вот как чудно выглядят цепочки
CODE
Playback:

nid=20 [pin: Line-out (Green Jack)]
|
+ <- nid=12 [audio mixer] [src: pcm, mix]
|
+ <- nid=2 [audio output] [src: pcm]
+ <- nid=11 [audio mixer] [src: mix]

nid=21 [pin: Line-out (Black Jack)]
|
+ <- nid=14 [audio mixer] [src: pcm, mix]
|
+ <- nid=4 [audio output] [src: pcm]
+ <- nid=11 [audio mixer] [src: mix]

nid=22 [pin: Line-out (Orange Jack)]
|
+ <- nid=13 [audio mixer] [src: pcm, mix]
|
+ <- nid=3 [audio output] [src: pcm]
+ <- nid=11 [audio mixer] [src: mix]

nid=23 [pin: Line-out (Grey Jack)]
|
+ <- nid=15 [audio mixer] [src: pcm, mix]
|
+ <- nid=5 [audio output] [src: pcm]
+ <- nid=11 [audio mixer] [src: mix]

Record:

nid=8 [audio input]
|
+ <- nid=35 [audio mixer] [src: speaker, line, mic, mix]
|
+ <- nid=24 [pin: Microphone (Pink Jack)] [src: mic]
+ <- nid=26 [pin: Line-in (Blue Jack)] [src: line]
+ <- nid=29 [beep widget] [src: speaker]
+ <- nid=11 [audio mixer] [src: mix]

Input Mix:

nid=11 [audio mixer]
|
+ <- nid=24 [pin: Microphone (Pink Jack)] [src: mic]
+ <- nid=25 [pin: Microphone (Pink Jack)] [src: monitor]
+ <- nid=26 [pin: Line-in (Blue Jack)] [src: line]
+ <- nid=29 [beep widget] [src: speaker]

Playback:

nid=27 [pin: Headphones (Green Jack)]
|
+ <- nid=38 [audio mixer] [src: pcm, mix]
|
+ <- nid=37 [audio output] [src: pcm]
+ <- nid=11 [audio mixer] [src: mix]

Record:

nid=9 [audio input]
|
+ <- nid=34 [audio mixer] [src: speaker, mix, monitor]
|
+ <- nid=25 [pin: Microphone (Pink Jack)] [src: monitor]
+ <- nid=29 [beep widget] [src: speaker]
+ <- nid=11 [audio mixer] [src: mix]


Playback:

nid=30 [pin: SPDIF-out (Orange Jack)]
|
+ <- nid=6 [audio output] [src: pcm]

Record:

nid=10 [audio input]
|
+ <- nid=31 [pin: SPDIF-in (Yellow Jack)] [src: dig1]


Особенно впечатляет миксер. Что-то я и не представляю, чтобы это можно было изобразить средствами AppleHDA
Патчи не нужны! Хорошо, что я удалил из драйвера дефолтные патчи для 883 кодека!
Однако, если бы я захотел звук 5+1, мне бы пришлось разделить устройства по своим группам, к примеру так:
nid 20 0x01014410 as 1 seq 0 Line-out Jack jack 1 loc 1 color Green misc 4
nid 21 0x01011480 as 8 seq 0 Line-out Jack jack 1 loc 1 color Black misc 4
nid 22 0x01016470 as 7 seq 0 Line-out Jack jack 1 loc 1 color Orange misc 4
nid 23 0x01012490 as 9 seq 0 Line-out Jack jack 1 loc 1 color Grey misc 4
Да и микрофон с линейным входом можно развести ввиду отсутствия автодетекта.
Но все это непринципиально, главное в том, что все входы и выходы работают!

А вот косметика на драйвер пока очень нужна.
Slice
Неприятность: сегодня с утра схватил КП на этом драйвере. Холодный запуск. После перезагрузки стало работать.

Устройство Unknown - это не линейный выход, а Миксер. Надо подумать, как переименовать. Например "Mixed devices".
Микрофоны опять стали одинаковыми. Надо сменить имя: вместо Jack писать Front или Rear.
Вот тогда будет красота!

AutumnRain, в changeLog впиши еще: исправлен алгоритм вычисления рабочих цепочек. И это правда! Я там менял порядок действий и условия с масками.
mark
QUOTE (Slice @ Aug 28 2009, 02:30 PM) *
А можно и скомпилировать под Барсика.


а в чем проблема то насколько я знаю у тебя и 10.6 432 и xcode его имееться
там поправить то всего ничего изза возросшей разрядности ну и в плист тоже,вот я сделал должно работать поидее,не хочу слазить со драйвера который мне отшепенец делал.Click to view attachment

CODE
#if __LP64__
    UInt32 action = (UInt32)(UInt64) arg0;
#else
    UInt32 action = (UInt32) arg0;
#endif


#if __LP64__
    for(int i=0; i<NumNodes; i++){
        dumpMsg("VHD Codec=%d Node=%d Config=%08lx Conns=%d Type=%d\n", NodesToPatchArray[i].cad, NodesToPatchArray[i].Node,
                NodesToPatchArray[i].Config,NodesToPatchArray[i].Conns, NodesToPatchArray[i].Type);
    }
#else
    for(int i=0; i<NumNodes; i++){
        dumpMsg("VHD Codec=%d Node=%d Config=%08lx Conns=%d Type=%d\n", (int)NodesToPatchArray[i].cad, (int)NodesToPatchArray[i].Node,
                NodesToPatchArray[i].Config, (int)NodesToPatchArray[i].Conns, (int)NodesToPatchArray[i].Type);
    }
#endif
Slice
Представь себе, у меня есть дистр 10.6 и дистр XCode. Но самой системы пока нет. Не могу!!!!!!!

А при компиляции нужно выбирать i386+x64?
А что в инфо-плисте в депенденсях менять?

Кстати, если ты внимательно прочитал мой отчет, то я утверждаю, что ВудуХДА звучит лучше и дает больше устройств, чем ЭпплХДА.
mark
QUOTE (Slice @ Aug 29 2009, 11:44 AM) *
Представь себе, у меня есть дистр 10.6 и дистр XCode. Но самой системы пока нет. Не могу!!!!!!!

А при компиляции нужно выбирать i386+x64?
А что в инфо-плисте в депенденсях менять?

Кстати, если ты внимательно прочитал мой отчет, то я утверждаю, что ВудуХДА звучит лучше и дает больше устройств, чем ЭпплХДА.

понятно но мы тебя ждемс в барсе.
выбирать 10.6 i386&x86_64 ибо если ставить Standart 32/64bit то в сборку войдет power pc код.
в плисте в депенденцях надо убирать com.kernel.* и заменять его на com.kpi.*
понятно что com.kernel и com.kpi не равнозначно и чего-то может и не оказаться.

с i386 ситуация иная там спокойно работает com.kernel а вот в 64 он работает только при депенци com.kpi.private,и система проверяет по названию моежт ли кехт использовать. Я на ранних порах поэтому и переименовывал пока не дошло искать в com.kpi

Кстати исходники 10.6 есть но там нету xnu так что загадочный новый модуль com.kpi.private пока так и остаеться загадочным,впрочем бим нашел где лежит этот список с перечислением кому можно кушать в 32 бита com.kernel

ну и версии конечно версии можно в kextlibs -c глянуть,причем она частенько выдает то что нету символов хотя символы есть,я не знаю может быть связано с тем что они ишет динамическую линковку а часть символов идет в статической.


За вашими экспериментами voodoohda с интересом слежу к сожалению я не могу тут быть полезным,разве что вот такой вопрос например у меня на моем асусном диске есть исходник под linux alc1200(alc888) может ли он оказаться полезным.
Slice
QUOTE (mark @ Aug 29 2009, 12:03 PM) *
понятно но мы тебя ждемс в барсе.
выбирать 10.6 i386&x86_64 ибо если ставить Standart 32/64bit то в сборку войдет power pc код.
в плисте в депенденцях надо убирать com.kernel.* и заменять его на com.kpi.*
понятно что com.kernel и com.kpi не равнозначно и чего-то может и не оказаться.

с i386 ситуация иная там спокойно работает com.kernel а вот в 64 он работает только при депенци com.kpi.private,и система проверяет по названию моежт ли кехт использовать. Я на ранних порах поэтому и переименовывал пока не дошло искать в com.kpi

Кстати исходники 10.6 есть но там нету xnu так что загадочный новый модуль com.kpi.private пока так и остаеться загадочным,впрочем бим нашел где лежит этот список с перечислением кому можно кушать в 32 бита com.kernel

ну и версии конечно версии можно в kextlibs -c глянуть,причем она частенько выдает то что нету символов хотя символы есть,я не знаю может быть связано с тем что они ишет динамическую линковку а часть символов идет в статической.


За вашими экспериментами voodoohda с интересом слежу к сожалению я не могу тут быть полезным,разве что вот такой вопрос например у меня на моем асусном диске есть исходник под linux alc1200(alc888) может ли он оказаться полезным.

Информацию о конвертации принял, спасибо.
А вот исходники Линукс не нужны, они о-о-очень далеки от нас.
Да ты не думай. Драйвер ВудуХДА уже работает, просто косметику наводим. А косметика, само собой, чисто OSX дело.
Clubber_77
QUOTE (Slice @ Aug 29 2009, 03:44 PM) *
я утверждаю, что ВудуХДА звучит лучше


не соглашусь я с тобой, VoodooHDA далеко еще до AppleHDA. ИМХО.

QUOTE (Slice @ Aug 29 2009, 03:44 PM) *
и дает больше устройств, чем ЭпплХДА.


а вот то, что устройств может быть больше, это наверное действительно так, на сколько я помню, Skvo говорил, что в AppleHDA может быть только четыре группы устройств на вход, и столько же на выход, но этого, я считаю, вполне достаточно!
Mac'ovod
Так что, уже Вуда х64 намечается? happy.gif
К сожалению у меня нету XCode под Барсика, мог бы попробовать скомпилить х64 Вуду smile.gif
mark
виноват недосмотрел галочку built only active acrhitecture а еше зря убр убрал unsupported депенци в нем лежит panic и в итоге не срабатывает assert если я правильно понял.
Вот исправленный драйвер поставил снес AppleHDA поставил себе сижу пока присматриваюсь.Click to view attachment

касательно меня,возрашаюсь на AppleHDA,что понравилось два микрофона оба работают сзади,спереди ни один.
качество запизи у AppleHDA лучше и у него и работает автодетект в отличии от voodoo.
Slice
QUOTE (Clubber_77 @ Aug 29 2009, 12:59 PM) *
не соглашусь я с тобой, VoodooHDA далеко еще до AppleHDA. ИМХО.



а вот то, что устройств может быть больше, это наверное действительно так, на сколько я помню, Skvo говорил, что в AppleHDA может быть только четыре группы устройств на вход, и столько же на выход, но этого, я считаю, вполне достаточно!

Не так уж и далеко. Просто у ЭпплХДА есть обработка сигнала, не факт, что это хорошо делать на уровне драйвера, можно и позже, зато сигнал с микрофона у Вуду можно регулировать двумя движками, и этим добиться большего, чем делат Эппл с одним движком и параметром в инфо-плисте.

Если тебе удастся сделать столько же устройств в ЭпплХДА, это будет другой разговор.
У меня Вуду дает гораздо больше.

QUOTE (Mac'ovod @ Aug 29 2009, 01:18 PM) *
Так что, уже Вуда х64 намечается? happy.gif
К сожалению у меня нету XCode под Барсика, мог бы попробовать скомпилить х64 Вуду smile.gif

Уже сделали, см. ниже.

QUOTE (mark @ Aug 29 2009, 02:29 PM) *
виноват недосмотрел галочку built only active acrhitecture а еше зря убр убрал unsupported депенци в нем лежит panic и в итоге не срабатывает assert если я правильно понял.
Вот исправленный драйвер поставил снес AppleHDA поставил себе сижу пока присматриваюсь.Click to view attachment

касательно меня,возрашаюсь на AppleHDA,что понравилось два микрофона оба работают сзади,спереди ни один.
качество запизи у AppleHDA лучше и у него и работает автодетект в отличии от voodoo.

Автодетект будет, а насчет качества записи смотри выше.
Clubber_77
Для реалтековских кодеков ALC вообще в 99% рекомендую использовать AppleHDA! я только дважды столкнулся со сложностями :
1. MSI WIND
2. У Юрика кодек на ноуте капризный....

в остальных случаях все очень даже превосходно!


Slice, на счет твоего кодека я молчу, в нем черт ногу сломит при использовании AppleHDA, но все же остается то самое но.....

QUOTE (Slice @ Aug 29 2009, 07:19 PM) *
Просто у ЭпплХДА есть обработка сигнала, не факт, что это хорошо делать на уровне драйвера...

ну таков удел интегрированного звука (я имею ввиду аналог).
cVad
Скомпилил x86_64, поставил на свое железо - AD1988B: - AD1988B(P5B Deluxe):
CODE
HDA Codec #0: Analog Devices AD1988B
HDA Codec ID: 0x11d4198b
       Vendor: 0x11d4
       Device: 0x198b
     Revision: 0x02
     Stepping: 0x00
PCI Subvendor: 0x81ec1043

Log:
CODE
29.08.09 18:31:28 kernel VoodooHDADevice[0xffffff806d92b000]::init
29.08.09 18:31:28 kernel nid 32 is input monitor
29.08.09 18:31:28 kernel VoodooHDADevice::mixerSetDefaults
29.08.09 18:31:28 kernel VoodooHDADevice[0xffffff806d92b000]::audioCtlOssMixerSetRecSrc(0xffffff800eda260
8, 0x10001c0)
29.08.09 18:31:28 kernel VoodooHDADevice::mixerSetDefaults
29.08.09 18:31:28 kernel VoodooHDADevice[0xffffff806d92b000]::audioCtlOssMixerSetRecSrc(0xffffff800eda266
8, 0x10001c0)
29.08.09 18:31:28 kernel warning: couldn't set recording source to input
29.08.09 18:31:28 kernel VoodooHDADevice::mixerSetDefaults
29.08.09 18:31:28 kernel VoodooHDADevice[0xffffff806d92b000]::audioCtlOssMixerSetRecSrc(0xffffff800eda26c
8, 0x10001c0)
29.08.09 18:31:28 kernel warning: couldn't set recording source to input
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 2 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 3 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 4 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 5 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 11 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 15 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 33 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 34 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 37 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 38 ossmask = 0x00000211
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 39 ossmask = 0x00000211
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 40 ossmask = 0x00000211
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 41 ossmask = 0x00000211
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 42 ossmask = 0x00000211
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 43 ossmask = 0x00000211
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 44 ossmask = 0x00000211
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 6 ossmask = 0x00000800
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 50 ossmask = 0x00000880
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 51 ossmask = 0x000008c0
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 53 ossmask = 0x010008c0
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 1 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 10 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 31 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 32 ossmask = 0x00000211
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 17 ossmask = 0x00000011
29.08.09 18:31:28 kernel dacNid = 8, outputNid = 20, devType = Microphone, connType = Jack name=pin: Microphone (Pink Jack)
29.08.09 18:31:28 kernel dacNid = 3, outputNid = 17, devType = Headphones, connType = Jack name=pin: Headphones (Green Jack)
29.08.09 18:31:28 kernel dacNid = 2, outputNid = 27, devType = SPDIF-out, connType = Jack name=pin: SPDIF-out (Jack)

getExtDump:
CODE
Codec # 0

Default Parameter
-----------------
IN amp: 0x80000000
OUT amp: 0x00052727

nid: 2
Name: audio output
Widget cap: 0x00030311
DIGITAL STEREO
Association: 3 (0x00000001)
OSS: pcm (pcm)
connections: 1
|
+ [DISABLED] <- nid=29 [audio mixer] [DISABLED]

nid: 3
Name: audio output
Widget cap: 0x00000405
PWR STEREO
Association: 2 (0x00000001)
OSS: pcm (pcm)
Output amp: 0x00052727
mute=0 step=39 size=5 offset=39
Output val: [0x1A 0x1A]

nid: 4
Name: audio output
Widget cap: 0x00000405
PWR STEREO
Association: 0 (0x00000001)
OSS: pcm (pcm)
Output amp: 0x00052727
mute=0 step=39 size=5 offset=39
Output val: [0x26 0x26]

nid: 5
Name: audio output
Widget cap: 0x00000405
PWR STEREO
Association: 0 (0x00000002)
OSS: pcm (pcm)
Output amp: 0x00052727
mute=0 step=39 size=5 offset=39
Output val: [0x26 0x26]

nid: 6
Name: audio output
Widget cap: 0x00000405
PWR STEREO
Association: 0 (0x00000004)
OSS: pcm (pcm)
Output amp: 0x00052727
mute=0 step=39 size=5 offset=39
Output val: [0x26 0x26]

nid: 7 [DISABLED]
Name: audio input
Widget cap: 0x00130391
DIGITAL UNSOL STEREO
connections: 1
|
+ [DISABLED] <- nid=28 [pin: SPDIF-in (None)] [DISABLED]

nid: 8
Name: audio input
Widget cap: 0x00100501
PWR STEREO
Association: 1 (0x00004007)
connections: 1
|
+ <- nid=12 [audio selector]

nid: 9 [DISABLED]
Name: audio input
Widget cap: 0x00100501
PWR STEREO
connections: 1
|
+ <- nid=13 [audio selector] [DISABLED]

nid: 10
Name: audio output
Widget cap: 0x00000405
PWR STEREO
Association: 0 (0x00000008)
OSS: pcm (pcm)
Output amp: 0x00052727
mute=0 step=39 size=5 offset=39
Output val: [0x26 0x26]

nid: 11 [DISABLED]
Name: audio selector
Widget cap: 0x00300301
DIGITAL STEREO
connections: 3
|
+ <- nid=8 [audio input] (selected)
+ <- nid=9 [audio input] [DISABLED]
+ <- nid=15 [audio input] [DISABLED]

nid: 12
Name: audio selector
Widget cap: 0x0030010d
STEREO
Association: 1 (0x00004007)
OSS: line, mic, cd, mix, monitor
Output amp: 0x80053627
mute=1 step=54 size=5 offset=39
Output val: [0x80 0x80]
connections: 10
|
+ [DISABLED] <- nid=56 [audio selector] [DISABLED]
+ <- nid=57 [audio selector] (selected)
+ <- nid=58 [audio selector]
+ [DISABLED] <- nid=59 [audio selector] [DISABLED]
+ <- nid=60 [audio selector]
+ <- nid=24 [pin: CD (Fixed)]
+ [DISABLED] <- nid=36 [pin: Line-out (Orange Jack)]
+ [DISABLED] <- nid=37 [pin: Line-out (Grey Jack)]
+ [DISABLED] <- nid=61 [audio selector] [DISABLED]
+ <- nid=32 [audio mixer]

nid: 13 [DISABLED]
Name: audio selector
Widget cap: 0x0030010d
STEREO
Output amp: 0x80053627
mute=1 step=54 size=5 offset=39
Output val: [0x80 0x80]
connections: 10
|
+ <- nid=56 [audio selector] [DISABLED] (selected)
+ <- nid=57 [audio selector]
+ <- nid=58 [audio selector]
+ <- nid=59 [audio selector] [DISABLED]
+ <- nid=60 [audio selector]
+ <- nid=24 [pin: CD (Fixed)]
+ <- nid=36 [pin: Line-out (Orange Jack)]
+ <- nid=37 [pin: Line-out (Grey Jack)]
+ <- nid=61 [audio selector] [DISABLED]
+ <- nid=32 [audio mixer]

nid: 14 [DISABLED]
Name: audio selector
Widget cap: 0x0030010d
STEREO
Output amp: 0x80053627
mute=1 step=54 size=5 offset=39
Output val: [0x80 0x80]
connections: 10
|
+ <- nid=56 [audio selector] [DISABLED] (selected)
+ <- nid=57 [audio selector]
+ <- nid=58 [audio selector]
+ <- nid=59 [audio selector] [DISABLED]
+ <- nid=60 [audio selector]
+ <- nid=24 [pin: CD (Fixed)]
+ <- nid=36 [pin: Line-out (Orange Jack)]
+ <- nid=37 [pin: Line-out (Grey Jack)]
+ <- nid=61 [audio selector] [DISABLED]
+ <- nid=32 [audio mixer]

nid: 15 [DISABLED]
Name: audio input
Widget cap: 0x00100501
PWR STEREO
connections: 1
|
+ <- nid=14 [audio selector] [DISABLED]

nid: 16
Name: beep widget
Widget cap: 0x0070000c
Association: -2 (0x00000000)
OSS: speaker (speaker)
Output amp: 0x800b0f0f
mute=1 step=15 size=11 offset=15
Output val: [0x0E 0x00]

nid: 17
Name: pin: Headphones (Green Jack)
Widget cap: 0x0040018d
UNSOL STEREO
Association: 2 (0x00000001)
Pin cap: 0x0000373f
ISC TRQD PDC HP OUT IN VREF[ 50 80 100 GROUND HIZ ]
Pin config: 0x02214030
Pin control: 0x000000c0 HP OUT
Output amp: 0x80000000
mute=1 step=0 size=0 offset=0
Output val: [0x00 0x00]
connections: 1
|
+ <- nid=34 [audio mixer]

nid: 18
Name: pin: Line-out (Green Jack)
Widget cap: 0x0040018d
UNSOL STEREO
Association: 0 (0x00000001)
Pin cap: 0x0001373f
ISC TRQD PDC HP OUT IN VREF[ 50 80 100 GROUND HIZ ] EAPD
Pin config: 0x01014010
Pin control: 0x00000040 OUT
EAPD: 0x00000002
Output amp: 0x80000000
mute=1 step=0 size=0 offset=0
Output val: [0x00 0x00]
connections: 1
|
+ <- nid=41 [audio mixer]

nid: 19 [DISABLED]
Name: pin: Speaker (None)
Widget cap: 0x0040010c
Pin cap: 0x00000010
OUT
Pin config: 0x511711f0
Pin control: 0x00000000
Output amp: 0x80051f1f
mute=1 step=31 size=5 offset=31
Output val: [0x80 0x00]
connections: 1
|
+ [DISABLED] <- nid=45 [audio mixer] [DISABLED]

nid: 20
Name: pin: Microphone (Pink Jack)
Widget cap: 0x0040018d
UNSOL STEREO
Association: 1 (0x00000004)
OSS: mic (mic)
Pin cap: 0x0000373f
ISC TRQD PDC HP OUT IN VREF[ 50 80 100 GROUND HIZ ]
Pin config: 0x02a19022
Pin control: 0x00000024 IN VREFs
Output amp: 0x80000000
mute=1 step=0 size=0 offset=0
Output val: [0x80 0x80]
connections: 1
|
+ [DISABLED] <- nid=43 [audio mixer] [DISABLED]

nid: 21
Name: pin: Line-in (Blue Jack)
Widget cap: 0x0040018d
UNSOL STEREO
Association: 1 (0x00000002)
OSS: line (line)
Pin cap: 0x00013737
ISC TRQD PDC OUT IN VREF[ 50 80 100 GROUND HIZ ] EAPD
Pin config: 0x01813021
Pin control: 0x00000024 IN VREFs
EAPD: 0x00000002
Output amp: 0x80000000
mute=1 step=0 size=0 offset=0
Output val: [0x80 0x80]
connections: 1
|
+ [DISABLED] <- nid=44 [audio mixer] [DISABLED]

nid: 22
Name: pin: Line-out (Black Jack)
Widget cap: 0x0040018d
UNSOL STEREO
Association: 0 (0x00000004)
Pin cap: 0x00003737
ISC TRQD PDC OUT IN VREF[ 50 80 100 GROUND HIZ ]
Pin config: 0x01011012
Pin control: 0x00000040 OUT
Output amp: 0x80000000
mute=1 step=0 size=0 offset=0
Output val: [0x00 0x00]
connections: 1
|
+ <- nid=42 [audio mixer]

nid: 23
Name: pin: Microphone (Pink Jack)
Widget cap: 0x0040098d
LRSWAP UNSOL STEREO
Association: 1 (0x00000001)
OSS: monitor (monitor)
Pin cap: 0x00003737
ISC TRQD PDC OUT IN VREF[ 50 80 100 GROUND HIZ ]
Pin config: 0x01a19020
Pin control: 0x00000024 IN VREFs
Output amp: 0x80000000
mute=1 step=0 size=0 offset=0
Output val: [0x80 0x80]
connections: 1
|
+ [DISABLED] <- nid=38 [audio mixer] [DISABLED]

nid: 24
Name: pin: CD (Fixed)
Widget cap: 0x00400001
STEREO
Association: 1 (0x00004000)
OSS: cd (cd)
Pin cap: 0x00000020
IN
Pin config: 0x9933112e
Pin control: 0x00000020 IN

nid: 25 [DISABLED]
Name: power widget
Widget cap: 0x00500500
PWR
connections: 2
|
+ <- nid=32 [audio mixer] (selected)
+ <- nid=33 [audio selector]

nid: 26
Name: beep widget
Widget cap: 0x00700000
Association: -2 (0x00000000)
OSS: speaker (speaker)

nid: 27
Name: pin: SPDIF-out (Jack)
Widget cap: 0x0040030d
DIGITAL STEREO
Association: 3 (0x00000001)
Pin cap: 0x00000010
OUT
Pin config: 0x0145f1f0
Pin control: 0x00000040 OUT
Output amp: 0x80052727
mute=1 step=39 size=5 offset=39
Output val: [0x1A 0x1A]
connections: 1
|
+ <- nid=2 [audio output]

nid: 28 [DISABLED]
Name: pin: SPDIF-in (None)
Widget cap: 0x0040020b
DIGITAL STEREO
Pin cap: 0x00000020
IN
Pin config: 0x41c5f1f0
Pin control: 0x00000000
Input amp: 0x80051f17
mute=1 step=31 size=5 offset=23
Input val:

nid: 29 [DISABLED]
Name: audio mixer
Widget cap: 0x00200303
DIGITAL STEREO
Input amp: 0x80000000
mute=1 step=0 size=0 offset=0
Input val: [0x00 0x00] [0x80 0x80]
connections: 2
|
+ [DISABLED] <- nid=1 [GHOST!] [UNKNOWN]
+ [DISABLED] <- nid=11 [audio selector] [DISABLED]

nid: 30 [DISABLED]
Name: audio mixer
Widget cap: 0x00200103
STEREO
Input amp: 0x80000000
mute=1 step=0 size=0 offset=0
Input val: [0x80 0x80] [0x80 0x80]
connections: 2
|
+ [DISABLED] <- nid=54 [audio selector] [DISABLED]
+ [DISABLED] <- nid=33 [audio selector]

nid: 31 [DISABLED]
Name: volume widget
Widget cap: 0x00600080
UNSOL

nid: 32
Name: audio mixer
Widget cap: 0x0020010b
STEREO
Association: -2 (0x00004007)
OSS: mix (mix)
Input amp: 0x80051f17
mute=1 step=31 size=5 offset=23
Input val: [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]
connections: 8
|
+ <- nid=57 [audio selector]
+ <- nid=51 [audio selector]
+ [DISABLED] <- nid=56 [audio selector] [DISABLED]
+ [DISABLED] <- nid=61 [audio selector] [DISABLED]
+ <- nid=52 [audio selector]
+ [DISABLED] <- nid=59 [audio selector] [DISABLED]
+ <- nid=24 [pin: CD (Fixed)]
+ <- nid=26 [beep widget]

nid: 33
Name: audio selector
Widget cap: 0x0030010d
STEREO
Association: -2 (0x00000000)
OSS: mix
Output amp: 0x80051f1f
mute=1 step=31 size=5 offset=31
Output val: [0x80 0x80]
connections: 1
|
+ <- nid=32 [audio mixer]

nid: 34
Name: audio mixer
Widget cap: 0x00200103
STEREO
Association: 2 (0x00000001)
OSS: pcm, mix
Input amp: 0x80000000
mute=1 step=0 size=0 offset=0
Input val: [0x00 0x00] [0x80 0x80]
connections: 2
|
+ <- nid=55 [audio selector]
+ <- nid=33 [audio selector]

nid: 35 [DISABLED]
Name: vendor widget
Widget cap: 0x00f00100
connections: 18
|
+ <- nid=17 [pin: Headphones (Green Jack)] (selected)
+ <- nid=18 [pin: Line-out (Green Jack)]
+ [DISABLED] <- nid=19 [pin: Speaker (None)] [DISABLED]
+ <- nid=20 [pin: Microphone (Pink Jack)]
+ <- nid=21 [pin: Line-in (Blue Jack)]
+ <- nid=22 [pin: Line-out (Black Jack)]
+ <- nid=23 [pin: Microphone (Pink Jack)]
+ <- nid=24 [pin: CD (Fixed)]
+ <- nid=36 [pin: Line-out (Orange Jack)]
+ <- nid=37 [pin: Line-out (Grey Jack)]
+ <- nid=56 [audio selector] [DISABLED]
+ <- nid=57 [audio selector]
+ <- nid=58 [audio selector]
+ <- nid=59 [audio selector] [DISABLED]
+ <- nid=60 [audio selector]
+ <- nid=61 [audio selector] [DISABLED]
+ <- nid=32 [audio mixer]
+ <- nid=33 [audio selector]

nid: 36
Name: pin: Line-out (Orange Jack)
Widget cap: 0x0040098d
LRSWAP UNSOL STEREO
Association: 0 (0x00000002)
Pin cap: 0x00000037
ISC TRQD PDC OUT IN
Pin config: 0x01016011
Pin control: 0x00000040 OUT
Output amp: 0x80000000
mute=1 step=0 size=0 offset=0
Output val: [0x00 0x00]
connections: 1
|
+ <- nid=39 [audio mixer]

nid: 37
Name: pin: Line-out (Grey Jack)
Widget cap: 0x0040018d
UNSOL STEREO
Association: 0 (0x00000008)
Pin cap: 0x00000037
ISC TRQD PDC OUT IN
Pin config: 0x01012013
Pin control: 0x00000040 OUT
Output amp: 0x80000000
mute=1 step=0 size=0 offset=0
Output val: [0x00 0x00]
connections: 1
|
+ <- nid=40 [audio mixer]

nid: 38 [DISABLED]
Name: audio mixer
Widget cap: 0x00200103
STEREO
Input amp: 0x80000000
mute=1 step=0 size=0 offset=0
Input val: [0x80 0x80] [0x80 0x80]
connections: 2
|
+ [DISABLED] <- nid=50 [audio selector] [DISABLED]
+ [DISABLED] <- nid=33 [audio selector]

nid: 39
Name: audio mixer
Widget cap: 0x00200103
STEREO
Association: 0 (0x00000002)
OSS: pcm, mix
Input amp: 0x80000000
mute=1 step=0 size=0 offset=0
Input val: [0x00 0x00] [0x00 0x00]
connections: 2
|
+ <- nid=5 [audio output]
+ <- nid=33 [audio selector]

nid: 40
Name: audio mixer
Widget cap: 0x00200103
STEREO
Association: 0 (0x00000008)
OSS: pcm, mix
Input amp: 0x80000000
mute=1 step=0 size=0 offset=0
Input val: [0x00 0x00] [0x00 0x00]
connections: 2
|
+ <- nid=10 [audio output]
+ <- nid=33 [audio selector]

nid: 41
Name: audio mixer
Widget cap: 0x00200103
STEREO
Association: 0 (0x00000001)
OSS: pcm, mix
Input amp: 0x80000000
mute=1 step=0 size=0 offset=0
Input val: [0x00 0x00] [0x00 0x00]
connections: 2
|
+ <- nid=4 [audio output]
+ <- nid=33 [audio selector]

nid: 42
Name: audio mixer
Widget cap: 0x00200103
STEREO
Association: 0 (0x00000004)
OSS: pcm, mix
Input amp: 0x80000000
mute=1 step=0 size=0 offset=0
Input val: [0x00 0x00] [0x00 0x00]
connections: 2
|
+ <- nid=6 [audio output]
+ <- nid=33 [audio selector]

nid: 43 [DISABLED]
Name: audio mixer
Widget cap: 0x00200103
STEREO
Input amp: 0x80000000
mute=1 step=0 size=0 offset=0
Input val: [0x80 0x80] [0x80 0x80]
connections: 2
|
+ [DISABLED] <- nid=48 [audio selector] [DISABLED]
+ [DISABLED] <- nid=33 [audio selector]

nid: 44 [DISABLED]
Name: audio mixer
Widget cap: 0x00200103
STEREO
Input amp: 0x80000000
mute=1 step=0 size=0 offset=0
Input val: [0x80 0x80] [0x80 0x80]
connections: 2
|
+ [DISABLED] <- nid=49 [audio selector] [DISABLED]
+ [DISABLED] <- nid=33 [audio selector]

nid: 45 [DISABLED]
Name: audio mixer
Widget cap: 0x00200100
connections: 1
|
+ <- nid=30 [audio mixer] [DISABLED]

nid: 46 [DISABLED]
Name: vendor widget
Widget cap: 0x00f00000

nid: 47 [DISABLED]
Name: vendor widget
Widget cap: 0x00f00100
connections: 6
|
+ <- nid=17 [pin: Headphones (Green Jack)] (selected)
+ <- nid=18 [pin: Line-out (Green Jack)]
+ <- nid=20 [pin: Microphone (Pink Jack)]
+ <- nid=21 [pin: Line-in (Blue Jack)]
+ <- nid=22 [pin: Line-out (Black Jack)]
+ <- nid=23 [pin: Microphone (Pink Jack)]

nid: 48 [DISABLED]
Name: audio selector
Widget cap: 0x00300101
STEREO
connections: 3
|
+ <- nid=3 [audio output] (selected)
+ <- nid=4 [audio output]
+ <- nid=6 [audio output]

nid: 49 [DISABLED]
Name: audio selector
Widget cap: 0x00300101
STEREO
connections: 2
|
+ <- nid=4 [audio output] (selected)
+ <- nid=10 [audio output]

nid: 50 [DISABLED]
Name: audio selector
Widget cap: 0x00300101
STEREO
connections: 2
|
+ <- nid=5 [audio output] (selected)
+ <- nid=4 [audio output]

nid: 51
Name: audio selector
Widget cap: 0x00300101
STEREO
Association: 1 (0x00000002)
OSS: line
connections: 3
|
+ <- nid=58 [audio selector] (selected)
+ [DISABLED] <- nid=37 [pin: Line-out (Grey Jack)]
+ [DISABLED] <- nid=36 [pin: Line-out (Orange Jack)]

nid: 52
Name: audio selector
Widget cap: 0x00300101
STEREO
Association: 1 (0x00000001)
OSS: monitor
connections: 3
|
+ <- nid=60 [audio selector] (selected)
+ [DISABLED] <- nid=37 [pin: Line-out (Grey Jack)]
+ [DISABLED] <- nid=36 [pin: Line-out (Orange Jack)]

nid: 53 [DISABLED]
Name: vendor widget
Widget cap: 0x00f00000

nid: 54 [DISABLED]
Name: audio selector
Widget cap: 0x00300101
STEREO
connections: 3
|
+ <- nid=3 [audio output] (selected)
+ <- nid=4 [audio output]
+ <- nid=6 [audio output]

nid: 55
Name: audio selector
Widget cap: 0x00300101
STEREO
Association: 2 (0x00000001)
OSS: pcm
connections: 3
|
+ <- nid=3 [audio output] (selected)
+ [DISABLED] <- nid=4 [audio output]
+ [DISABLED] <- nid=6 [audio output]

nid: 56 [DISABLED]
Name: audio selector
Widget cap: 0x0030010d
STEREO
Output amp: 0x00270300
mute=0 step=3 size=39 offset=0
Output val: [0x00 0x00]
connections: 1
|
+ <- nid=17 [pin: Headphones (Green Jack)]

nid: 57
Name: audio selector
Widget cap: 0x0030010d
STEREO
Association: 1 (0x00000004)
OSS: mic
Output amp: 0x00270300
mute=0 step=3 size=39 offset=0
Output val: [0x00 0x00]
connections: 1
|
+ <- nid=20 [pin: Microphone (Pink Jack)]

nid: 58
Name: audio selector
Widget cap: 0x0030010d
STEREO
Association: 1 (0x00000002)
OSS: line
Output amp: 0x00270300
mute=0 step=3 size=39 offset=0
Output val: [0x00 0x00]
connections: 1
|
+ <- nid=21 [pin: Line-in (Blue Jack)]

nid: 59 [DISABLED]
Name: audio selector
Widget cap: 0x0030010d
STEREO
Output amp: 0x00270300
mute=0 step=3 size=39 offset=0
Output val: [0x00 0x00]
connections: 1
|
+ <- nid=22 [pin: Line-out (Black Jack)]

nid: 60
Name: audio selector
Widget cap: 0x0030010d
STEREO
Association: 1 (0x00000001)
OSS: monitor
Output amp: 0x00270300
mute=0 step=3 size=39 offset=0
Output val: [0x00 0x00]
connections: 1
|
+ <- nid=23 [pin: Microphone (Pink Jack)]

nid: 61 [DISABLED]
Name: audio selector
Widget cap: 0x0030010d
STEREO
Output amp: 0x00270300
mute=0 step=3 size=39 offset=0
Output val: [0x00 0x00]
connections: 1
|
+ <- nid=18 [pin: Line-out (Green Jack)]


PCM Devices 3 count
+-------------------------+
| DUMPING Volume Controls |
+-------------------------+
+-------------------------+
+ PCM #0 +
+-------------------------+

Master Volume (OSS: vol)
|
+- control 2 (nid 4 out): -58/+0dB (40 steps)
+- control 3 (nid 5 out): -58/+0dB (40 steps)
+- control 4 (nid 6 out): -58/+0dB (40 steps)
+- control 5 (nid 10 out): -58/+0dB (40 steps)
+- control 11 (nid 18 in ): mute
+- control 15 (nid 22 in ): mute
+- control 33 (nid 36 in ): mute
+- control 34 (nid 37 in ): mute
+- control 37 (nid 39 in 0): mute
+- control 38 (nid 39 in 1): mute
+- control 39 (nid 40 in 0): mute
+- control 40 (nid 40 in 1): mute
+- control 41 (nid 41 in 0): mute
+- control 42 (nid 41 in 1): mute
+- control 43 (nid 42 in 0): mute
+- control 44 (nid 42 in 1): mute

PCM Volume (OSS: pcm)
|
+- control 2 (nid 4 out): -58/+0dB (40 steps)
+- control 3 (nid 5 out): -58/+0dB (40 steps)
+- control 4 (nid 6 out): -58/+0dB (40 steps)
+- control 5 (nid 10 out): -58/+0dB (40 steps)
+- control 37 (nid 39 in 0): mute
+- control 39 (nid 40 in 0): mute
+- control 41 (nid 41 in 0): mute
+- control 43 (nid 42 in 0): mute

CD Volume (OSS: cd)
|
+- control 28 (nid 32 in 6): -34/+12dB (32 steps) + mute

Microphone Volume (OSS: mic)
|
+- control 50 (nid 57 out): +0/+30dB (4 steps)

Microphone2 Volume (OSS: monitor)
|
+- control 53 (nid 60 out): +0/+30dB (4 steps)

Line-in Volume (OSS: line)
|
+- control 51 (nid 58 out): +0/+30dB (4 steps)

Speaker/Beep Volume (OSS: speaker)
|
+- control 9 (nid 16 out): -45/+0dB (16 steps) + mute
+- control 29 (nid 32 in 7): -34/+12dB (32 steps) + mute

Recording Level (OSS: rec)
|
+- control 6 (nid 12 out): -58/+22dB (55 steps) + mute

Input Mix Level (OSS: mix)
|
+- control 22 (nid 32 in 0): -34/+12dB (32 steps) + mute
+- control 23 (nid 32 in 1): -34/+12dB (32 steps) + mute
+- control 26 (nid 32 in 4): -34/+12dB (32 steps) + mute
+- control 28 (nid 32 in 6): -34/+12dB (32 steps) + mute
+- control 29 (nid 32 in 7): -34/+12dB (32 steps) + mute
+- control 30 (nid 33 out): -46/+0dB (32 steps) + mute
+- control 38 (nid 39 in 1): mute
+- control 40 (nid 40 in 1): mute
+- control 42 (nid 41 in 1): mute
+- control 44 (nid 42 in 1): mute

+-------------------------+
+ PCM #1 +
+-------------------------+

Master Volume (OSS: vol)
|
+- control 1 (nid 3 out): -58/+0dB (40 steps)
+- control 10 (nid 17 in ): mute
+- control 31 (nid 34 in 0): mute
+- control 32 (nid 34 in 1): mute

PCM Volume (OSS: pcm)
|
+- control 1 (nid 3 out): -58/+0dB (40 steps)
+- control 31 (nid 34 in 0): mute

Input Mix Level (OSS: mix)
|
+- control 32 (nid 34 in 1): mute

+-------------------------+
+ PCM #2 +
+-------------------------+

Master Volume (OSS: vol)
|
+- control 17 (nid 27 in ): -58/+0dB (40 steps) + mute

PCM Volume (OSS: pcm)
|
+- control 17 (nid 27 in ): -58/+0dB (40 steps) + mute



GetDump:
Click to view attachment 
starimage
Братцы ! Вы хоть сами-то понимаете чего натворили ? ТЕперь куча компаний, производящих выносные микрофоны (которые чаще всего сипользуют хакинтошники) вынуждены будут закрыться и хозяива пустят себе пульку в лоб smile.gif Поздравляю !!! Молодцы ! Горжусь !
Slice
QUOTE (cVad @ Aug 29 2009, 03:50 PM) *
Скомпилил x86_64, поставил на свое железо - AD1988B: - AD1988B(P5B Deluxe):

CODE
29.08.09 18:31:28 kernel VoodooHDADevice[0xffffff806d92b000]::init
29.08.09 18:31:28 kernel nid 32 is input monitor
29.08.09 18:31:28 kernel VoodooHDADevice::mixerSetDefaults
29.08.09 18:31:28 kernel VoodooHDADevice[0xffffff806d92b000]::audioCtlOssMixerSetRecSrc(0xffffff800eda260
8, 0x10001c0)
29.08.09 18:31:28 kernel VoodooHDADevice::mixerSetDefaults
29.08.09 18:31:28 kernel VoodooHDADevice[0xffffff806d92b000]::audioCtlOssMixerSetRecSrc(0xffffff800eda266
8, 0x10001c0)
29.08.09 18:31:28 kernel warning: couldn't set recording source to input
29.08.09 18:31:28 kernel VoodooHDADevice::mixerSetDefaults
29.08.09 18:31:28 kernel VoodooHDADevice[0xffffff806d92b000]::audioCtlOssMixerSetRecSrc(0xffffff800eda26c
8, 0x10001c0)
29.08.09 18:31:28 kernel warning: couldn't set recording source to input
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 2 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 3 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 4 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 5 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 11 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 15 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 33 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 34 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 37 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 38 ossmask = 0x00000211
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 39 ossmask = 0x00000211
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 40 ossmask = 0x00000211
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 41 ossmask = 0x00000211
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 42 ossmask = 0x00000211
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 43 ossmask = 0x00000211
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 44 ossmask = 0x00000211
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 6 ossmask = 0x00000800
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 50 ossmask = 0x00000880
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 51 ossmask = 0x000008c0
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 53 ossmask = 0x010008c0
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 1 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 10 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 31 ossmask = 0x00000011
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 32 ossmask = 0x00000211
29.08.09 18:31:28 kernel createPrefPanelStruct: audioControl 17 ossmask = 0x00000011
29.08.09 18:31:28 kernel dacNid = 8, outputNid = 20, devType = Microphone, connType = Jack name=pin: Microphone (Pink Jack)
29.08.09 18:31:28 kernel dacNid = 3, outputNid = 17, devType = Headphones, connType = Jack name=pin: Headphones (Green Jack)
29.08.09 18:31:28 kernel dacNid = 2, outputNid = 27, devType = SPDIF-out, connType = Jack name=pin: SPDIF-out (Jack)

Редактировал твой пост из-за кодировки. Только Full Edit!!!

Странно, у тебя audioControl много, а устройств всего три.
Выставляй дамп!
getdump >AD1988dump.txt
И скажи, сколько реально дырок есть, и работают ли эти.
Mac'ovod
QUOTE (mark)
виноват недосмотрел галочку built only active acrhitecture а еше зря убр убрал unsupported депенци в нем лежит panic и в итоге не срабатывает assert если я правильно понял.
Вот исправленный драйвер поставил снес AppleHDA поставил себе сижу пока присматриваюсь. VoodooHDA_10.6.kext.zip ( 136.51K )

Нифига блин! angry.gif
У меня ось крешится из-за него!
VEnZ0ja
Приветствую!

установил и тестирую VoodooHDA.kext.235.x64.

звук есть (сзади зеленый) использую только его на Колонки две, не удаеться завести микрофон, задний встроенный он там один (розовый).

но в дампе глянул что у меня их два как то) , немогу понять как его завести что нужно заменить, и куда в писать.

CODE
Probing codec #0...
HDA Codec #0: Realtek ALC883
HDA Codec ID: 0x10ec0883
Vendor: 0x10ec
Device: 0x0883
Revision: 0x00
Stepping: 0x02
PCI Subvendor: 0x82491043
startNode=1 endNode=2
Found audio FG nid=1 startNode=2 endNode=39 total=37

вот где сидит микрофон
CODE
GPIO: 0x40000002 NumGPIO=2 NumGPO=0 NumGPI=0 GPIWake=-549755813888 GPIUnsol=-549755813887
nid 20 0x01014010 as 1 seq 0 Line-out Jack jack -549755813887 loc 94324903523647489 color Green misc -549755813888
nid 21 0x411111f0 as 15 seq 0 Speaker None jack -549755813887 loc 98828503151017985 color Black misc -549755813887
nid 22 0x411111f0 as 15 seq 0 Speaker None jack -549755813887 loc 103332102778388481 color Black misc -549755813887
nid 23 0x411111f0 as 15 seq 0 Speaker None jack -549755813887 loc 107835702405758977 color Black misc -549755813887
nid 24 0x01a19840 as 4 seq 0 Microphone Jack jack -549755813887 loc 112339302033129473 color Pink misc -549755813880
nid 25 0x02a19850 as 5 seq 0 Microphone Jack jack -549755813887 loc 116842901660499970 color Pink misc -549755813880
nid 26 0x0181304f as 4 seq 15 Line-in Jack jack -549755813887 loc 121346501287870465 color Blue misc -549755813888
nid 27 0x02214020 as 2 seq 0 Headphones Jack jack -549755813887 loc 125850100915240962 color Green misc -549755813888
nid 28 0x593301f0 as 15 seq 0 CD None jack -549755813885 loc 130353700542611481 color Unknown misc -549755813887



record

CODE
Record:

nid=8 [audio input]
|
+ <- nid=35 [audio mixer] [src: speaker, line, mic, mix]
|
+ <- nid=24 [pin: Microphone (Pink Jack)] [src: mic]
+ <- nid=26 [pin: Line-in (Blue Jack)] [src: line]
+ <- nid=29 [beep widget] [src: speaker]
+ <- nid=11 [audio mixer] [src: mix]

Input Mix:

nid=11 [audio mixer]
|
+ <- nid=24 [pin: Microphone (Pink Jack)] [src: mic]
+ <- nid=25 [pin: Microphone (Pink Jack)] [src: monitor]
+ <- nid=26 [pin: Line-in (Blue Jack)] [src: line]
+ <- nid=29 [beep widget] [src: speaker]


logs boot
CODE

Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: VoodooHDADevice[0xffffff8025094000]::init
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: nid 11 is input monitor
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: VoodooHDADevice::mixerSetDefaults
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: VoodooHDADevice[0xffffff8025094000]::audioCtlOssMixerSetRecSrc(0xffffff800646de0
8, 0x10001c0)
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: VoodooHDADevice::mixerSetDefaults
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: VoodooHDADevice[0xffffff8025094000]::audioCtlOssMixerSetRecSrc(0xffffff800646de6
8, 0x10001c0)
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: VoodooHDADevice::mixerSetDefaults
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: VoodooHDADevice[0xffffff8025094000]::audioCtlOssMixerSetRecSrc(0xffffff800646dec
8, 0x10001c0)
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: warning: couldn't set recording source to input
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 13 ossmask = 0x00000001
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 14 ossmask = 0x00000011
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 15 ossmask = 0x00000211
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 25 ossmask = 0x00000211
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 16 ossmask = 0x00000001
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 17 ossmask = 0x00000011
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 18 ossmask = 0x00000211
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 39 ossmask = 0x00000211
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 1 ossmask = 0x00000800
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 34 ossmask = 0x00000880
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 38 ossmask = 0x000008c0
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 52 ossmask = 0x000008c0
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 54 ossmask = 0x000008c0
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 57 ossmask = 0x000008e0
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 62 ossmask = 0x00000ae0
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 2 ossmask = 0x00000800
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 36 ossmask = 0x01000800
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 42 ossmask = 0x01000800
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 46 ossmask = 0x01000820
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: createPrefPanelStruct: audioControl 51 ossmask = 0x01000a20
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: dacNid = 2, outputNid = 20, devType = Line-out, connType = Jack name=pin: Line-out (Green Jack)
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: dacNid = 3, outputNid = 27, devType = Headphones, connType = Jack name=pin: Headphones (Green Jack)
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: dacNid = 6, outputNid = 30, devType = SPDIF-out, connType = Fixed name=pin: SPDIF-out (Fixed)
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: warning: found invalid min/max dB (using default -22.5 -> 0.0dB range)
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: dacNid = 8, outputNid = 24, devType = Microphone, connType = Jack name=pin: Microphone (Pink Jack)
Aug 29 22:46:14 VEnZ0jas-Mac kernel[0]: dacNid = 9, outputNid = 25, devType = Microphone, connType = Jack name=pin: Microphone (Pink Jack)
Slice
QUOTE (VEnZ0ja @ Aug 29 2009, 06:56 PM) *
Приветствую!

установил и тестирую VoodooHDA.kext.235.x64.

звук есть (сзади зеленый) использую только его на Колонки две, не удаеться завести микрофон, задний встроенный он там один (розовый).

но в дампе глянул что у меня их два как то) , немогу понять как его завести что нужно заменить, и куда в писать.

В качестве эксперимента попробуй отделить микрофон от линейного выхода, т.е. дать ему свою группу
nid 24 0x01a19840 -> 0x01a19860
Для этого в NodesToPatch вносишь строки
CODE
<key>NodesToPatch</key>
            <array>
                <dict>
                    <key>Codec</key>
                    <integer>0</integer>
                    <key>Node</key>
                    <integer>24</integer>
                    <key>Config</key>
                    <string>0x01a19860</string>
                </dict>
            </array>

Розовый микрофон должен стать отдельным устройством со своими регулировками в префпанели.
VEnZ0ja
QUOTE (Slice @ Aug 29 2009, 11:42 PM) *
В качестве эксперимента попробуй отделить микрофон от линейного выхода, т.е. дать ему свою группу
nid 24 0x01a19840 -> 0x01a19860
Для этого в NodesToPatch вносишь строки
CODE
<key>NodesToPatch</key>
            <array>
                <dict>
                    <key>Codec</key>
                    <integer>0</integer>
                    <key>Node</key>
                    <integer>24</integer>
                    <key>Config</key>
                    <string>0x01a19860</string>
                </dict>
            </array>

Розовый микрофон должен стать отдельным устройством со своими регулировками в префпанели.

да сделал появился Unknow, в панели можно настраивать по нему разные ползунки, но нет реакции на него.
Mac'ovod
А мне можно пробовать?
Или это не х64?...
AutumnRain
QUOTE (Mac'ovod @ Aug 30 2009, 04:56 PM) *
А мне можно пробовать?
Или это не х64?...


Это для x32.
Пока beta версия. Если хочешь можешь попробовать.
Mac'ovod
К сожалению не могу- Снег грузится только в х64, а от остальных Вуду (Имеется что "все"- это местные модификации) крешат систему. dry.gif
Slice
QUOTE (Mac'ovod @ Aug 30 2009, 02:51 PM) *
К сожалению не могу- Снег грузится только в х64, а от остальных Вуду (Имеется что "все"- это местные модификации) крешат систему. dry.gif

Пока помочь не могу, у меня Барсик не ставится.
QUOTE (AutumnRain @ Aug 30 2009, 12:27 PM) *
2 Slice

Попробуй новую версию с автодетектом.

P.S. В этой версии имя источника в панели настроек не меняется.

О, шаг вперед!
Испытываю as is.
1. С чистым листом. Как и раньше, в случае чистого листа у меня нет аналогового внутреннего микрофона, ждем автодетекта между внешним и внутренним цифровым.
Click to view attachment
Пока внешний микрофон не подключен, в канале только шипение. При подключении микрофона появляется звук. Похоже, автодетект не сработал. Иначе без подключения я должен был слышать цифровой микрофон.
CODE
Record:

    nid=7 [audio input]
      |
      + <- nid=27 [audio selector] [src: mic, monitor]
             |
             + <- nid=24 [audio selector] [src: mic]
                    |
                    + <- nid=21 [audio selector] [src: mic]
                           |
                           + <- nid=14 [pin: Microphone (Black Jack)] [src: mic]
             + <- nid=19 [pin: Microphone (Fixed)] [src: monitor]

2. Прописал 12 ноду - аналоговый микрофон, и поместил его в одну группу с внешним, в цифровой вынес отдельно.
Теперь работает только внешний. Оба внутренних не подключены. Даже если я насильно включаю внутренний цифровой, который свободен от автодетекта. Но теперь его тип стал line. Вроде и для line у меня все должно работать.
Зато если я подключаю внешний микрофон, то звук есть, несмотря на то, что в панели выбран другой источник.
Похоже что-то у тебя неправильно с автодетектом.
CODE
Record:

    nid=7 [audio input]
      |
      + <- nid=27 [audio selector] [src: mic, monitor]
             |
             + <- nid=24 [audio selector] [src: mic, monitor]
                    |
                    + <- nid=21 [audio selector] [src: mic, monitor]
                           |
                           + <- nid=14 [pin: Microphone (Black Jack)] [src: mic]   -- внешний, работает
                           + <- nid=12 [pin: Microphone (Fixed)] [src: monitor]  -- внутренний аналоговый, не подключается

Record:

    nid=8 [audio input]
      |
      + <- nid=28 [audio selector] [src: line]
             |
             + <- nid=19 [pin: Microphone (Fixed)] [src: line]  -- внутренний цифровой, полная тишина.

Автодетект не распространяется на названия устройств, но еще хуже, что он не распространяется на префпанель. Регуляторы-то разные!
Click to view attachment Click to view attachment

Нужны полные дампы, или так понятна ситуация?

P.S. При отказе от автодетекта работают все три.
AutumnRain
QUOTE (Slice @ Aug 30 2009, 07:39 PM) *
Нужны полные дампы, или так понятна ситуация?


Есть один нюанс: автодетект микрофонов работает следующим образом:
для группы выбираются два устройства с seq = 0 и seq = 15. Первое устройство основное, второе включается когда вставляешь джек в разъем.

Именно так работает и автодетект спикер/наушники. Я сделал по аналогии.


P.S. Глянул твой дамп
Тебе нужно сделать у ноды 19 seq = 0, а для 14 seq = 15
cVad
AutumnRain
slice

Добавьте, плиз, в шапки, здесь и в топик на лайфе:

Всем страдальцам VoodooHDA, с паникой:
Обязятельно, перед установкой кекста, AppleHDA бэкапить/удалять.

P.S. Достали письмами. Хотя, еще в ридми, огригинальной VoodooHDA, это было прописано.
Slice
QUOTE (AutumnRain @ Aug 30 2009, 03:55 PM) *
Есть один нюанс: автодетект микрофонов работает следующим образом:
для группы выбираются два устройства с seq = 0 и seq = 15. Первое устройство основное, второе включается когда вставляешь джек в разъем.

Именно так работает и автодетект спикер/наушники. Я сделал по аналогии.

Перевыложил драйвер, теперь имя устройство будет меняться при автодетекте.


P.S. Глянул твой дамп
Тебе нужно сделать у ноды 19 seq = 0, а для 14 seq = 15

Понял, пошел тестировать.

QUOTE (cVad @ Aug 30 2009, 04:37 PM) *
slice

Добавь, плиз, в шапки, здесь и в топик на лайфе:

Всем страдальцам VoodooHDA, с паникой:
Обязятельно, перед установкой кекста, AppleHDA бэкапить/удалять.

P.S. Достали письмами.

В этой шапке AutumnRain распоряжается, на эплайфе щас сделаю.

Кстати, у меня и у самого пару раз была паника. Причину пока не отловил, но один раз точно из-за AppleHDA.
cVad
slice

Добавил, свои данные, по заколдованному AD1988b.
Slice
QUOTE (cVad @ Aug 30 2009, 05:24 PM) *
slice

Добавил, свои данные, по заколдованному AD1988b.

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

2 AutumnRain
Попробовал новую модификацию с таким патчем
CODE
            <key>NodesToPatch</key>
            <array>
                <dict>
                    <key>Codec</key>
                    <integer>2</integer>
                    <key>Config</key>
                    <string>0x90a7012f</string>
                    <key>Node</key>
                    <integer>12</integer>
                </dict>
                <dict>
                    <key>Codec</key>
                    <integer>2</integer>
                    <key>Config</key>
                    <string>0x90a6e140</string>
                    <key>Node</key>
                    <integer>19</integer>
                </dict>
            </array>

Ну то есть аналоговые внешний и внутренний на автодетекте, как и в предыдущей попытке, но с номером 15.
Цифровой стоит отдельно. Он работает.
А вот роли аналоговых поменялись. Теперь работает только внутренний.
Автодетекта нет ни по названиям, ни по звуку.
Автодетект наушников есть, но название не меняется.
Click to view attachment
В систем-логе нынче густо
QUOTE
Aug 30 21:23:14 localhost kernel[0]: VoodooHDADevice[0x24094000]::init
Aug 30 21:23:14 localhost kernel[0]: VoodooHDADevice::mixerSetDefaults
Aug 30 21:23:14 localhost kernel[0]: VoodooHDADevice[0x24094000]::audioCtlOssMixerSetRecSrc(0x4546a04, 0x10001c0)
Aug 30 21:23:14 localhost kernel[0]: warning: couldn't set recording source to input
Aug 30 21:23:14 localhost kernel[0]: createPrefPanelStruct: audioControl 1 ossmask = 0x00000011
Aug 30 21:23:14 localhost kernel[0]: Warning. Switchig audio input is disabled
Aug 30 21:23:14 localhost kernel[0]: VoodooHDADevice::mixerSetDefaults
Aug 30 21:23:14 localhost kernel[0]: VoodooHDADevice[0x24094000]::audioCtlOssMixerSetRecSrc(0x4b4cc04, 0x10001c0)
Aug 30 21:23:14 localhost kernel[0]: VoodooHDADevice::mixerSetDefaults
Aug 30 21:23:14 localhost kernel[0]: VoodooHDADevice[0x24094000]::audioCtlOssMixerSetRecSrc(0x4b4cc60, 0x10001c0)
Aug 30 21:23:14 localhost kernel[0]: VoodooHDADevice::mixerSetDefaults
Aug 30 21:23:14 localhost kernel[0]: VoodooHDADevice[0x24094000]::audioCtlOssMixerSetRecSrc(0x4b4ccbc, 0x10001c0)
Aug 30 21:23:14 localhost kernel[0]: warning: couldn't set recording source to input
Aug 30 21:23:14 localhost kernel[0]: createPrefPanelStruct: audioControl 1 ossmask = 0x00000011
Aug 30 21:23:14 localhost kernel[0]: createPrefPanelStruct: audioControl 6 ossmask = 0x00000800
Aug 30 21:23:14 localhost kernel[0]: createPrefPanelStruct: audioControl 9 ossmask = 0x00000800
Aug 30 21:23:14 localhost kernel[0]: createPrefPanelStruct: audioControl 12 ossmask = 0x00000800
Aug 30 21:23:14 localhost kernel[0]: createPrefPanelStruct: audioControl 4 ossmask = 0x00000011
Aug 30 21:23:14 localhost kernel[0]: createPrefPanelStruct: audioControl 13 ossmask = 0x00000840
Aug 30 21:23:14 localhost kernel[0]: dacNid = 2, outputNid = 3, devType = Digital-out, connType = Jack name=pin: Digital-out (Jack)
Aug 30 21:23:15 localhost kernel[0]: setDesc portName = Digital-out (Jack)
Aug 30 21:23:15 localhost kernel[0]: setDesc portType = 0x6F757470 subType = 0x6973706B
Aug 30 21:23:15 localhost kernel[0]: warning: found invalid min/max dB (using default -22.5 -> 0.0dB range)
Aug 30 21:23:15 localhost kernel[0]: dacNid = 2, outputNid = 13, devType = Speaker, connType = Fixed name=pin: Speaker (Fixed)
Aug 30 21:23:15 localhost kernel[0]: setDesc portName = Speaker (Fixed)
Aug 30 21:23:15 localhost kernel[0]: setDesc portType = 0x6F757470 subType = 0x6973706B
Aug 30 21:23:15 localhost kernel[0]: dacNid = 7, outputNid = 14, devType = Microphone, connType = Jack name=pin: Microphone (Black Jack)
Aug 30 21:23:15 localhost kernel[0]: setDesc portName = Microphone (Black Jack)
Aug 30 21:23:15 localhost kernel[0]: setDesc portType = 0x696E7074 subType = 0x696D6963
Aug 30 21:23:15 localhost kernel[0]: warning: found invalid min/max dB (using default -22.5 -> 0.0dB range)
Aug 30 21:23:15 localhost kernel[0]: dacNid = 5, outputNid = 15, devType = Line-out, connType = Jack name=pin: Line-out (Black Jack)
Aug 30 21:23:15 localhost kernel[0]: setDesc portName = Line-out (Black Jack)
Aug 30 21:23:15 localhost kernel[0]: setDesc portType = 0x6F757470 subType = 0x6973706B
Aug 30 21:23:15 localhost kernel[0]: dacNid = 8, outputNid = 19, devType = Microphone, connType = Fixed name=pin: Microphone (Fixed)
Aug 30 21:23:15 localhost kernel[0]: setDesc portName = Microphone (Fixed)
Aug 30 21:23:15 localhost kernel[0]: setDesc portType = 0x696E7074 subType = 0x696D6963
Aug 30 21:23:15 localhost kernel[0]: warning: found invalid min/max dB (using default -22.5 -> 0.0dB range)
Aug 30 21:23:15 localhost kernel[0]: dacNid = 30, outputNid = 33, devType = Digital-out, connType = Fixed name=pin: Digital-out (Fixed)
Aug 30 21:23:15 localhost kernel[0]: setDesc portName = Digital-out (Fixed)
Aug 30 21:23:15 localhost kernel[0]: setDesc portType = 0x6F757470 subType = 0x6973706B
Aug 30 21:23:15 localhost kernel[0]: warning: found invalid min/max dB (using default -22.5 -> 0.0dB range)
...
Aug 30 21:23:46 HackBook kernel[0]: PCMDIR_REC: Stream setup format=10001000 speed=192000
Aug 30 21:23:49 HackBook kernel[0]: setDesc change description Speaker (Fixed)
Aug 30 21:23:49 HackBook kernel[0]: Warning. Switchig audio input is disabled
Aug 30 21:23:51 HackBook kernel[0]: setDesc change description Headphones (Black Jack)
Aug 30 21:23:51 HackBook kernel[0]: Warning. Switchig audio input is disabled
Aug 30 21:24:07 HackBook kextd[10]: /Volumes/LeoHD: unrecognized bootcaches data; skipping
Aug 30 21:24:23 HackBook kernel[0]: PCMDIR_PLAY: Stream setup format=10001000 speed=192000
Aug 30 21:24:23 HackBook kernel[0]: PCMDIR_REC: Stream setup format=10001000 speed=192000
Aug 30 21:25:06 HackBook kernel[0]: PCMDIR_REC: Stream setup format=10001000 speed=192000
Aug 30 21:25:36: --- last message repeated 1 time ---
Slice
2 AutumnRain
Еще по поводу косметики
QUOTE
setDesc portType = 0x696E7074 subType = 0x696D6963

Это - текст, его и выводить стоит по формату %s
QUOTE
Line Out (Black Jack)

Вместо Jack стоит выводить Front или Rear

А может сделать в префпанели Агрегатное устройство, которое действует сразу на всех, со всеми регулировками, в смысле на все селекторные ноды?
А иначе у меня нет возможности регулировать устройство на автодетекте.
AutumnRain
QUOTE (Slice @ Aug 30 2009, 09:37 PM) *
2 AutumnRain
Попробовал новую модификацию с таким патчем
CODE
            <key>NodesToPatch</key>
            <array>
                <dict>
                    <key>Codec</key>
                    <integer>2</integer>
                    <key>Config</key>
                    <string>0x90a7012f</string>
                    <key>Node</key>
                    <integer>12</integer>
                </dict>
                <dict>
                    <key>Codec</key>
                    <integer>2</integer>
                    <key>Config</key>
                    <string>0x90a6e140</string>
                    <key>Node</key>
                    <integer>19</integer>
                </dict>
            </array>

Ну то есть аналоговые внешний и внутренний на автодетекте, как и в предыдущей попытке, но с номером 15.
Цифровой стоит отдельно. Он работает.
А вот роли аналоговых поменялись. Теперь работает только внутренний.
Автодетекта нет ни по названиям, ни по звуку.


Хм. Видимо не четко выразился. Автодетект работает только внутри одной группы.
Пока есть следующие ограничения:
1) В группе должно быть только два устройства.
2) Одно с seq = 0 - основное и с seq = 15 - опциональное.

Для твоего примера:

Группа 2 :
нода 14 Microphone (Black Jack)- pinConfig = 0x02a11020
нода 12 Microphone (Fixed) - pinConfig = 0x90a7012f

Группа 4:
нода 19 Microphone (Fixed)- pinConfig = 0x90a6e140

Почему-то ты основным сделал именно Black Jack микрофон?! Хотя нужно наоборот, основным задать встроенный микрофон.

А во-вторых алгоритм автодекта у тебя глючит, вилимо из-за того что цепочки к микрофонам из одно группы разной длиниы. Буду думать дальше.

QUOTE (Slice @ Aug 30 2009, 09:37 PM) *
Автодетект наушников есть, но название не меняется.
В систем-логе нынче густо


Попробуй закрыть панель управления звуком и сново открыть, название смениться.
Slice
QUOTE (AutumnRain @ Aug 30 2009, 06:15 PM) *
Хм. Видимо не четко выразился. Автодетект работает только внутри одной группы.
Пока есть следующие ограничения:
1) В группе должно быть только два устройства.
2) Одно с seq = 0 - основное и с seq = 15 - опциональное.

Для твоего примера:

Группа 2 :
нода 14 Microphone (Black Jack)- pinConfig = 0x02a11020
нода 12 Microphone (Fixed) - pinConfig = 0x90a7012f

Группа 4:
нода 19 Microphone (Fixed)- pinConfig = 0x90a6e140

Почему-то ты основным сделал именно Black Jack микрофон?! Хотя нужно наоборот, основным задать встроенный микрофон.

Сейчас попробую
QUOTE
А во-вторых алгоритм автодекта у тебя глючит, вилимо из-за того что цепочки к микрофонам из одно группы разной длиниы. Буду думать дальше.

12 и 14 - одинаковые, не туда смотришь.
QUOTE
Попробуй закрыть панель управления звуком и сново открыть, название смениться.

Хи-хи. Работает, но глючно. Название не туда вписалось.
Click to view attachment Click to view attachment
А вот AppleHDA меняет прямо на глазах. Почему?
Slice
Сделал как ты сказал
CODE
            <key>NodesToPatch</key>
            <array>
                <dict>
                    <key>Codec</key>
                    <integer>2</integer>
                    <key>Config</key>
                    <string>0x90a70120</string>  -- внутренний аналоговый
                    <key>Node</key>
                    <integer>12</integer>
                </dict>
                <dict>
                    <key>Codec</key>
                    <integer>2</integer>
                    <key>Config</key>
                    <string>0x02a1102f</string>  -- внешний подключаемый
                    <key>Node</key>
                    <integer>14</integer>
                </dict>
                <dict>
                    <key>Codec</key>
                    <integer>2</integer>
                    <key>Config</key>
                    <string>0x90a6e140</string>  -- внутренний цифровой
                    <key>Node</key>
                    <integer>19</integer>
                </dict>
            </array>

Все тоже самое, на подключение внешнего микрофона никакой реакции, ни по звуку, ни по картинке.
При выборе в контрольной панели любого микрофона работает только цифровой. Независимо от наличия джека.
AutumnRain
QUOTE (Slice @ Aug 30 2009, 10:41 PM) *
Сделал как ты сказал
CODE
            <key>NodesToPatch</key>
            <array>
                <dict>
                    <key>Codec</key>
                    <integer>2</integer>
                    <key>Config</key>
                    <string>0x90a70120</string>  -- внутренний аналоговый
                    <key>Node</key>
                    <integer>12</integer>
                </dict>
                <dict>
                    <key>Codec</key>
                    <integer>2</integer>
                    <key>Config</key>
                    <string>0x02a1102f</string>  -- внешний подключаемый
                    <key>Node</key>
                    <integer>14</integer>
                </dict>
                <dict>
                    <key>Codec</key>
                    <integer>2</integer>
                    <key>Config</key>
                    <string>0x90a6e140</string>  -- внутренний цифровой
                    <key>Node</key>
                    <integer>19</integer>
                </dict>
            </array>

Все тоже самое, на подключение внешнего микрофона никакой реакции, ни по звуку, ни по картинке.


Попробуй эту версию с указанными выше патчами

И пришли потом дамп.
Slice
Ничего не изменилось. Звук идет только от цифрового микрофона, как не переставляй в контрольной панели и не втыкай штекеры.
Но при этой в самой контрольной панели уровень шумов разный для разных микрофонов.
(кстати, для косметики, их тоже нужно сделать разными)
Click to view attachment Click to view attachment
Глюк с названиями выходов остался как был.
Click to view attachment
Систем-лог
QUOTE
Aug 31 00:47:18 HackBook kernel[0]: VoodooHDADevice[0x24114000]::init
Aug 31 00:47:18 HackBook kernel[0]: VoodooHDADevice::mixerSetDefaults
Aug 31 00:47:18 HackBook kernel[0]: VoodooHDADevice[0x24114000]::audioCtlOssMixerSetRecSrc(0x5011804, 0x10001c0)
Aug 31 00:47:18 HackBook kernel[0]: warning: couldn't set recording source to input
Aug 31 00:47:18 HackBook kernel[0]: createPrefPanelStruct: audioControl 1 ossmask = 0x00000011
Aug 31 00:47:18 HackBook kernel[0]: Warning. Switchig audio input is disabled
Aug 31 00:47:18 HackBook kernel[0]: VoodooHDADevice::mixerSetDefaults
Aug 31 00:47:18 HackBook kernel[0]: VoodooHDADevice[0x24114000]::audioCtlOssMixerSetRecSrc(0x4368e04, 0x10001c0)
Aug 31 00:47:18 HackBook kernel[0]: VoodooHDADevice::mixerSetDefaults
Aug 31 00:47:18 HackBook kernel[0]: VoodooHDADevice[0x24114000]::audioCtlOssMixerSetRecSrc(0x4368e60, 0x10001c0)
Aug 31 00:47:18 HackBook kernel[0]: VoodooHDADevice::mixerSetDefaults
Aug 31 00:47:18 HackBook kernel[0]: VoodooHDADevice[0x24114000]::audioCtlOssMixerSetRecSrc(0x4368ebc, 0x10001c0)
Aug 31 00:47:18 HackBook kernel[0]: warning: couldn't set recording source to input
Aug 31 00:47:18 HackBook kernel[0]: createPrefPanelStruct: audioControl 1 ossmask = 0x00000011
Aug 31 00:47:18 HackBook kernel[0]: createPrefPanelStruct: audioControl 6 ossmask = 0x00000800
Aug 31 00:47:18 HackBook kernel[0]: createPrefPanelStruct: audioControl 9 ossmask = 0x00000800
Aug 31 00:47:18 HackBook kernel[0]: createPrefPanelStruct: audioControl 12 ossmask = 0x00000800
Aug 31 00:47:18 HackBook kernel[0]: createPrefPanelStruct: audioControl 4 ossmask = 0x00000011
Aug 31 00:47:18 HackBook kernel[0]: createPrefPanelStruct: audioControl 13 ossmask = 0x00000840
Aug 31 00:47:18 HackBook kernel[0]: dacNid = 2, outputNid = 3, devType = Digital-out, connType = Jack name=pin: Digital-out (Jack)
Aug 31 00:47:18 HackBook kernel[0]: setDesc portName = Digital-out (Jack)
Aug 31 00:47:18 HackBook kernel[0]: setDesc portType = 0x6F757470 subType = 0x6973706B
Aug 31 00:47:18 HackBook kernel[0]: warning: found invalid min/max dB (using default -22.5 -> 0.0dB range)
Aug 31 00:47:18 HackBook kernel[0]: dacNid = 2, outputNid = 13, devType = Speaker, connType = Fixed name=pin: Speaker (Fixed)
Aug 31 00:47:18 HackBook kernel[0]: setDesc portName = Speaker (Fixed)
Aug 31 00:47:18 HackBook kernel[0]: setDesc portType = 0x6F757470 subType = 0x6973706B
Aug 31 00:47:18 HackBook kernel[0]: dacNid = 7, outputNid = 12, devType = Microphone, connType = Fixed name=pin: Microphone (Fixed)
Aug 31 00:47:18 HackBook kernel[0]: setDesc portName = Microphone (Fixed)
Aug 31 00:47:18 HackBook kernel[0]: setDesc portType = 0x696E7074 subType = 0x696D6963
Aug 31 00:47:18 HackBook kernel[0]: warning: found invalid min/max dB (using default -22.5 -> 0.0dB range)
Aug 31 00:47:18 HackBook kernel[0]: dacNid = 5, outputNid = 15, devType = Line-out, connType = Jack name=pin: Line-out (Black Jack)
Aug 31 00:47:18 HackBook kernel[0]: setDesc portName = Line-out (Black Jack)
Aug 31 00:47:18 HackBook kernel[0]: setDesc portType = 0x6F757470 subType = 0x6973706B
Aug 31 00:47:18 HackBook kernel[0]: dacNid = 8, outputNid = 19, devType = Microphone, connType = Fixed name=pin: Microphone (Fixed)
Aug 31 00:47:18 HackBook kernel[0]: setDesc portName = Microphone (Fixed)
Aug 31 00:47:18 HackBook kernel[0]: setDesc portType = 0x696E7074 subType = 0x696D6963
Aug 31 00:47:18 HackBook kernel[0]: warning: found invalid min/max dB (using default -22.5 -> 0.0dB range)
Aug 31 00:47:18 HackBook kernel[0]: dacNid = 30, outputNid = 33, devType = Digital-out, connType = Fixed name=pin: Digital-out (Fixed)
Aug 31 00:47:18 HackBook kernel[0]: setDesc portName = Digital-out (Fixed)
Aug 31 00:47:18 HackBook kernel[0]: setDesc portType = 0x6F757470 subType = 0x6973706B
Aug 31 00:47:18 HackBook kernel[0]: warning: found invalid min/max dB (using default -22.5 -> 0.0dB range)
..
Aug 31 00:47:53 HackBook kernel[0]: PCMDIR_REC: Stream setup format=10001000 speed=192000
Aug 31 00:48:07 HackBook kernel[0]: setDesc change description Headphones (Black Jack)
Aug 31 00:48:07 HackBook kernel[0]: Warning. Switchig audio input is disabled
Aug 31 00:48:12 HackBook kernel[0]: PCMDIR_REC: Stream setup format=10001000 speed=192000
Aug 31 00:48:17 HackBook kextd[10]: /Volumes/LeoHD: unrecognized bootcaches data; skipping
Aug 31 00:48:49 HackBook kernel[0]: PCMDIR_PLAY: Stream setup format=10001000 speed=192000
Aug 31 00:48:49 HackBook kernel[0]: PCMDIR_REC: Stream setup format=10001000 speed=192000
Aug 31 00:49:21 HackBook kernel[0]: setDesc change description Headphones (Black Jack)
Aug 31 00:49:21 HackBook kernel[0]: Warning. Switchig audio input is disabled
Aug 31 00:49:51 HackBook kernel[0]: setDesc change description Headphones (Black Jack)
Aug 31 00:49:51 HackBook kernel[0]: Warning. Switchig audio input is disabled
Aug 31 00:49:57 HackBook kernel[0]: PCMDIR_REC: Stream setup format=10001000 speed=192000
Aug 31 00:50:06 HackBook kernel[0]: setDesc change description Headphones (Black Jack)
Aug 31 00:50:06 HackBook kernel[0]: Warning. Switchig audio input is disabled
Aug 31 00:50:22 HackBook kernel[0]: PCMDIR_REC: Stream setup format=10001000 speed=192000
Aug 31 00:52:32 HackBook kernel[0]: setDesc change description Headphones (Black Jack)
Aug 31 00:52:32 HackBook kernel[0]: Warning. Switchig audio input is disabled

Кстати, последние две строчки появляются при втыкании микрофона, а также и при его вынимании. При чем здесь наушники?
При вынимании наушников приходит сообщение
QUOTE
Aug 31 01:01:13 HackBook kernel[0]: setDesc change description Speaker (Fixed)
Aug 31 01:01:13 HackBook kernel[0]: Warning. Switchig audio input is disabled

При вставке - как и на микрофон.
Slice
Подхватываю эстафетную палочку с твоими последними исходниками.

Алгоритм непростой, за полдня не въедешь. А как ты думаешь, не могло повлиять, что выходные цепочки нумеруются от PinComplex к Output, а входные цепочки - от Input к PinComplex. Т.е. порядок обратный, и алгоритм поиска автодетекта нужно инвертировать?
Slice
Пока занимаюсь косметикой
Click to view attachment
Но еще не все в порядке.
AutumnRain
QUOTE (Slice @ Aug 31 2009, 10:04 AM) *
Подхватываю эстафетную палочку с твоими последними исходниками.


Спасибо, а то занят очень.

QUOTE (Slice @ Aug 31 2009, 10:04 AM) *
Алгоритм непростой, за полдня не въедешь. А как ты думаешь, не могло повлиять, что выходные цепочки нумеруются от PinComplex к Output, а входные цепочки - от Input к PinComplex. Т.е. порядок обратный, и алгоритм поиска автодетекта нужно инвертировать?


Нужна только входная цепочка! Суть в том, чтобы найти ключевую ноду в которой нужно поменять вход через который будет приходить сигнал.

Пример:
Для одного микрофона 12, 18, 30, 8
Для другого 17, 30, 8
Сравниваем с конца продвигаясь к началу цепочки. Не совпадение будет на третьей ноде. У первого 18, у второго 17. Делаем шаг назад - нод 30 главная ключевая нода.
Потом в момент переключения выбираем что с ней делать:
Если это селектор - переключаем, если миксер - выставляем forcemute.
Нужно рассмотреть вариант когда два микрофона приходят на разные ADC.
Slice
QUOTE (AutumnRain @ Aug 31 2009, 07:52 PM) *
Спасибо, а то занят очень.



Нужна только входная цепочка! Суть в том, чтобы найти ключевую ноду в которой нужно поменять вход через который будет приходить сигнал.

Пример:
Для одного микрофона 12, 18, 30, 8
Для другого 17, 30, 8
Сравниваем с конца продвигаясь к началу цепочки. Не совпадение будет на третьей ноде. У первого 18, у второго 17. Делаем шаг назад - нод 30 главная ключевая нода.
Потом в момент переключения выбираем что с ней делать:
Если это селектор - переключаем, если миксер - выставляем forcemute.
Нужно рассмотреть вариант когда два микрофона приходят на разные ADC.

Физически ни чего не надо делать, даже если проходят через один миксер. Разные ADC - разные устройства в контрольной панели.
Но твой пример с цепочками неудачный. Это у выходов такие цепочки, и для них построен автодетект, который ты взял за основу.
Для входов
7-27-24-21-14 и
7-27-24-21-12 или
7-27-19
Двигаться нужно от пина к первому совпадению.

Кстати, а почему ты говоришь, что детектятся только 0 и 15? А у меня на ALC883 четыре выхода в одной группе. И ведь работают, переключаются между собой!

Еще хорошая мысль.
Мой цифровой микрофон имеет низкую чувствительность, и совсем не регулируется, но вель можно через setCommand выставить ему VREF (спасибо clubber). Причем вычисляется все без участия человека. Завтра поэкспериментирую.

Оказывается VoodoHDA v0.2.2 умеет сохранять настройки через hdaHelper, который аналог getDump. Исходники тоже есть, но способ явно некрасивый, его нужно прописывать в стартапе. А не лучше ли, как обычно, оставить сохранение настроек привелегией prefPanel, ведь любые панели сохраняют настройки?! Вот только у меня нет ни одного образца таких исходников. Нужно поискать что-то опенсорсное с панелью.

Не могу разобраться с IOAudioFamily. Каким образом нужно сообщать системе об автодетекте, чтобы панель оперативно обновлялась? И почему имя попадает только в первую строчку, неправильный cad? Или просто неправильный автодетект? Есть мысль в сорцах 235 вставить setDescription, и посмотреть, куда попадет имя. Но что-то у меня тут неясности. А есть еще процедура setName. Тоже неясно, когда она срабатывает.
Есть updateChannel - вроде ближе по смыслу, но дальше по классу.
AutumnRain
QUOTE (Slice @ Aug 31 2009, 09:21 PM) *
Физически ни чего не надо делать, даже если проходят через один миксер. Разные ADC - разные устройства в контрольной панели.


Делать ни чего не надо?? Мы говорим об одном и том же? Я понимаю автодетект для микрофона следующим образом. Есть группа в которой указаны два микрофона. Один встроенный, другой - jack. Если в Jack не воткнуто внешнего микрофона в АЦП поступает сигнал от встроенного микрофона, если воткнуто, то необходимо чтобы в АЦП стал поступать сигнал от подключенного микрофона.
Чтобы переключить микрофоны нужно найти ту ноду куда приходят оба сигнала. Если это будет селектор, то надо его переключить на другой вход. Если миксер, то выключить входной усилитель для одного сигнала и включить для другого.
Теперь как работает механизм определения, что в Jack что-то воткнули. Драйвер получает прерывание. Вызывается функция switchHande в ней вызываются функции которые опрашивают разъемы и сообщают вставлено-ли в них устройство или нет. От программиста зависит какие разъемы буду опрошены и что делать если устройство вставлено.

QUOTE (Slice @ Aug 31 2009, 09:21 PM) *
Но твой пример с цепочками неудачный. Это у выходов такие цепочки, и для них построен автодетект, который ты взял за основу.
Для входов
7-27-24-21-14 и
7-27-24-21-12 или
7-27-19
Двигаться нужно от пина к первому совпадению.


Не суть важно. Главное получить эти цепочки. Необходимо дописать алгоритм так, чтобы в некоторых временных масивах образовались эти цепочки, после чего можно их сравнить и найти ключевую ноду.

QUOTE (Slice @ Aug 31 2009, 09:21 PM) *
Кстати, а почему ты говоришь, что детектятся только 0 и 15? А у меня на ALC883 четыре выхода в одной группе. И ведь работают, переключаются между собой!



Разъем для наушников должен иметь seq = 15!! Попробуй сделать по другому и автодетект развалиться!

Приведу пример из функции hpSwitchHandler

CODE
        //Опрашиваю разъем - есть ли в нем вставленное устройство
        //предполагается что seq разъема = 15, поэтому сразу используется pin[15]
        res = sendCommand(HDA_CMD_GET_PIN_SENSE(cad, assocs[i].pins[15]), cad);

//        logMsg("Pin sense: nid=%d res=0x%08lx\n", assocs[i].pins[15], res);

        res = HDA_CMD_GET_PIN_SENSE_PRESENCE_DETECT(res);
        if (funcGroup->audio.quirks & HDA_QUIRK_SENSEINV)
            res ^= 1;

        //Включаем или выключаем входной усилитель для разъема (seq = 15)
        /* (Un)Mute headphone pin. */
        control = audioCtlAmpGet(funcGroup, assocs[i].pins[15], HDA_CTL_IN, -1, 1);
        if (control && control->mute) {
            /* If pin has muter - use it. */
            val = (res != 0) ? 0 : 1;
            if (val != (UInt32) control->forcemute) {
                control->forcemute = val;
                audioCtlAmpSet(control, HDA_AMP_MUTE_DEFAULT, HDA_AMP_VOL_DEFAULT, HDA_AMP_VOL_DEFAULT);
            }
        } else {
            /* If there is no muter - disable pin output. */
            widget = widgetGet(funcGroup, assocs[i].pins[15]);
            if (widget && (widget->type == HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_PIN_COMPLEX)) {
                if (res != 0)
                    val = widget->pin.ctrl | HDA_CMD_SET_PIN_WIDGET_CTRL_OUT_ENABLE;
                else
                    val = widget->pin.ctrl & ~HDA_CMD_SET_PIN_WIDGET_CTRL_OUT_ENABLE;
                if (val != widget->pin.ctrl) {
                    widget->pin.ctrl = val;
                    sendCommand(HDA_CMD_SET_PIN_WIDGET_CTRL(cad, widget->nid, widget->pin.ctrl), cad);
                }
            }
        }
        //Выключаем или включаем ВСЕ ОСТАЛЬНЫЕ получатели звука в группе
        /* (Un)Mute other pins. */
        for (int j = 0; j < 15; j++) {
            if (assocs[i].pins[j] <= 0)
                continue;
            control = audioCtlAmpGet(funcGroup, assocs[i].pins[j], HDA_CTL_IN, -1, 1);
            if (control && control->mute) {
                /* If pin has muter - use it. */
                val = (res != 0) ? 1 : 0;
                if (val == (UInt32) control->forcemute)
                    continue;
                control->forcemute = val;
                audioCtlAmpSet(control, HDA_AMP_MUTE_DEFAULT, HDA_AMP_VOL_DEFAULT, HDA_AMP_VOL_DEFAULT);
                continue;
            }
            /* If there is no muter - disable pin output. */
            widget = widgetGet(funcGroup, assocs[i].pins[j]);
            if (widget && (widget->type == HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_PIN_COMPLEX)) {
                if (res != 0)
                    val = widget->pin.ctrl & ~HDA_CMD_SET_PIN_WIDGET_CTRL_OUT_ENABLE;
                else
                    val = widget->pin.ctrl | HDA_CMD_SET_PIN_WIDGET_CTRL_OUT_ENABLE;
                if (val != widget->pin.ctrl) {
                    widget->pin.ctrl = val;
                    sendCommand(HDA_CMD_SET_PIN_WIDGET_CTRL(cad, widget->nid, widget->pin.ctrl), cad);
                }
            }
        }


QUOTE (Slice @ Aug 31 2009, 09:21 PM) *
Еще хорошая мысль.
Мой цифровой микрофон имеет низкую чувствительность, и совсем не регулируется, но вель можно через setCommand выставить ему VREF (спасибо clubber). Причем вычисляется все без участия человека. Завтра поэкспериментирую.


Я предлогал post 39


Slice
QUOTE (AutumnRain @ Sep 1 2009, 12:03 PM) *
Делать ни чего не надо?? Мы говорим об одном и том же? Я понимаю автодетект для микрофона следующим образом. Есть группа в которой указаны два микрофона. Один встроенный, другой - jack. Если в Jack не воткнуто внешнего микрофона в АЦП поступает сигнал от встроенного микрофона, если воткнуто, то необходимо чтобы в АЦП стал поступать сигнал от подключенного микрофона.

Это я говорил про ситуацию, когда разные микрофоны приходят на разные АЦП. Может я тебя не так понял. В этой ситуации про автодетект беспокоиться не нужно.
QUOTE
Не суть важно. Главное получить эти цепочки. Необходимо дописать алгоритм так, чтобы в некоторых временных масивах образовались эти цепочки, после чего можно их сравнить и найти ключевую ноду.

Так вот я и толкую, что алгоритм поиска ключевой ноды для выходного устройства один, для входного - другой. Мы не можем использовать child, или можем, но перебирая с другого конца. Сегодня 1 сентября, и я ни в чем не успел разобраться, только в уме продумываю, что и как я буду делать завтра.
QUOTE
Разъем для наушников должен иметь seq = 15!! Попробуй сделать по другому и автодетект развалиться!

Приведу пример из функции hpSwitchHandler

Я его видел. Но факт: на ALC883 проверял только что.
CODE
nid 20 0x01014410 as  1 seq  0      Line-out  Jack jack  1 loc  1 color   Green misc 4
  nid 21 0x01011412 as  1 seq  2      Line-out  Jack jack  1 loc  1 color   Black misc 4
  nid 22 0x01016411 as  1 seq  1      Line-out  Jack jack  1 loc  1 color  Orange misc 4
  nid 23 0x01012414 as  1 seq  4      Line-out  Jack jack  1 loc  1 color    Grey misc 4

Все четыре разъема дают звук, если туда что-то втыкаешь. Дело, наверно, в том, что они сидят на миксере, и работают всегда, независимо от автодетекта.
Тоже самое - микрофоны
CODE
nid 24 0x01a19c40 as  4 seq  0    Microphone  Jack jack  1 loc  1 color    Pink misc 12
  nid 25 0x02a19c50 as  5 seq  0    Microphone  Jack jack  1 loc  2 color    Pink misc 12
  nid 26 0x0181344f as  4 seq 15       Line-in  Jack jack  1 loc  1 color    Blue misc 4

Но тут хуже. Line-in я не слышу, скорее всего из-за чувствительности входа, а микрофон работает в любой дырке независимо от выбранного устройства в контрольной панели. Это не есть хорошо.
Цепочки выглядят потрясающе. Как тут делать автодетект?
CODE
Record:

     nid=8 [audio input]
       |
       + <- nid=35 [audio mixer] [src: speaker, line, mic, mix]
              |
              + <- nid=24 [pin: Microphone (Pink Jack)] [src: mic]
              + <- nid=26 [pin: Line-in (Blue Jack)] [src: line]
              + <- nid=29 [beep widget] [src: speaker]
              + <- nid=11 [audio mixer] [src: mix]

Input Mix:

     nid=11 [audio mixer]
       |
       + <- nid=24 [pin: Microphone (Pink Jack)] [src: mic]
       + <- nid=25 [pin: Microphone (Pink Jack)] [src: monitor]
       + <- nid=26 [pin: Line-in (Blue Jack)] [src: line]
       + <- nid=29 [beep widget] [src: speaker]

Record:

     nid=9 [audio input]
       |
       + <- nid=34 [audio mixer] [src: speaker, mix, monitor]
              |
              + <- nid=25 [pin: Microphone (Pink Jack)] [src: monitor]
              + <- nid=29 [beep widget] [src: speaker]
              + <- nid=11 [audio mixer] [src: mix]

То ли здесь автодетект вообще не нужен. Но как об этом сказать драйверу?
Хотя неплохо было бы отключать усилители неподключенных микрофонов, чтоб не шумели.
Собственно, в этом и должен заключаться автодетект в случае миксера.
А вот в случае селектора нужно подключать самое приоритетное устройство из присоединенных, а не только 0 и 15. Если мы так сделаем, то и юзерам меньше придется думать об инфо-плисте.
Но обрати внимание, что для выхода мы отключаем child, а для входа нужно искать родителя, чего в изначальном алгоритме просто не было.
QUOTE
Я предлогал post 39

Ты предлагал внести в инфо-плист, а я предлагаю вычислять автоматически.
К примеру, для ноды 26 Line-in
CODE
            nid: 26
           Name: pin: Line-in (Blue Jack)
     Widget cap: 0x0040018f
                 UNSOL STEREO
    Association: 3 (0x00008000)
            OSS: line (line)
        Pin cap: 0x0000173e
                 TRQD PDC HP OUT IN VREF[ 50 80 GROUND HIZ ]
     Pin config: 0x0181344f
    Pin control: 0x00000024 IN VREFs
     Output amp: 0x80000000
                 mute=1 step=0 size=0 offset=0
      Input amp: 0x00270300

Pin control 24 соответствует VREF 80, так и нужно включить
verb = 21a70724
AutumnRain
QUOTE (Slice @ Sep 1 2009, 02:46 PM) *
Это я говорил про ситуацию, когда разные микрофоны приходят на разные АЦП. Может я тебя не так понял. В этой ситуации про автодетект беспокоиться не нужно.


Будут работать два микрофона одновременно?

QUOTE (Slice @ Sep 1 2009, 02:46 PM) *
Так вот я и толкую, что алгоритм поиска ключевой ноды для выходного устройства один, для входного - другой. Мы не можем использовать child, или можем, но перебирая с другого конца.


А зачем для выходной цепочки что-то искать??? Отключаешь входной усилитель на разъеме и все. hpSwitchHandle есть и работает уже давно.

QUOTE (Slice @ Sep 1 2009, 02:46 PM) *
Сегодня 1 сентября, и я ни в чем не успел разобраться, только в уме продумываю, что и как я буду делать завтра.
Я его видел. Но факт: на ALC883 проверял только что.
CODE
nid 20 0x01014410 as  1 seq  0      Line-out  Jack jack  1 loc  1 color   Green misc 4
  nid 21 0x01011412 as  1 seq  2      Line-out  Jack jack  1 loc  1 color   Black misc 4
  nid 22 0x01016411 as  1 seq  1      Line-out  Jack jack  1 loc  1 color  Orange misc 4
  nid 23 0x01012414 as  1 seq  4      Line-out  Jack jack  1 loc  1 color    Grey misc 4

Все четыре разъема дают звук, если туда что-то втыкаешь. Дело, наверно, в том, что они сидят на миксере, и работают всегда, независимо от автодетекта.


Скорее всего


QUOTE (Slice @ Sep 1 2009, 02:46 PM) *
Ты предлагал внести в инфо-плист, а я предлагаю вычислять автоматически.
К примеру, для ноды 26 Line-in
CODE
            nid: 26
           Name: pin: Line-in (Blue Jack)
     Widget cap: 0x0040018f
                 UNSOL STEREO
    Association: 3 (0x00008000)
            OSS: line (line)
        Pin cap: 0x0000173e
                 TRQD PDC HP OUT IN VREF[ 50 80 GROUND HIZ ]
     Pin config: 0x0181344f
    Pin control: 0x00000024 IN VREFs
     Output amp: 0x80000000
                 mute=1 step=0 size=0 offset=0
      Input amp: 0x00270300

Pin control 24 соответствует VREF 80, так и нужно включить
verb = 21a70724


Ерунда получается. Сначала драйвер считывает из устройства текущие настройки, отображает их на экране, а потом ты записываешь эти настройки обратно в драйвер. Зачем?
Slice
QUOTE (AutumnRain @ Sep 1 2009, 04:14 PM) *
Будут работать два микрофона одновременно?

Но ведь они же разные устройства в контрольной панели! Выбираешь тот, который тебе нужен.
QUOTE
А зачем для выходной цепочки что-то искать??? Отключаешь входной усилитель на разъеме и все. hpSwitchHandle есть и работает уже давно.
Теперь понял. Осталось проверить твой алгоритм поиска. Да еще учесть миксеры, как в моем ALC883, когда у одного микрофона два родителя - миксера.
QUOTE
Ерунда получается. Сначала драйвер считывает из устройства текущие настройки, отображает их на экране, а потом ты записываешь эти настройки обратно в драйвер. Зачем?

Ага, в таком случае мы можем воспользоваться уже существующим патчем "Control". Насколько я помню, это именно оно. Вот только не помню сейчас, подается ли такая команда. Кажется нет.

Я тут просматриваю исходники AC97 на предмет взаимодействия с контрольной панелью в системе 10.4. Увы, это не Леопард. Там отображается не тип устройства, а порт.
Click to view attachment
И это название инжектируется именно командой setDescription("AC97 Audio(PCM)"). Так что я думаю, это неудачный способ менять название устройства при автодетекте. Буду изучать вопрос дальше.

Еще новость. Я скачал ФриБСД исходники, на которых основывался VoodooHDA, но только данные исходники датируются 20.08.2009. Есть смысл посмотреть.
Click to view attachment

Ни у кого не найдется исходников какой-нибудь панели, которая умеет сохранять настройки при перезапуске?
sns
AppleHDA убрал, поставил VoodooHDA.kext и VoodooHDA.kext Voodoo.prefpane с шапки темы.

Результат - звуковых устройств нет. Панель VoodooHDA в Системных настройках при ее нажатии выдает ошибку "Can't get registry-entry path"

10А432 х64 / ALC1200
Slice
QUOTE (sns @ Sep 1 2009, 11:48 PM) *
AppleHDA убрал, поставил VoodooHDA.kext и VoodooHDA.kext Voodoo.prefpane с шапки темы.

Результат - звуковых устройств нет. Панель VoodooHDA в Системных настройках при ее нажатии выдает ошибку "Can't get registry-entry path"

10А432 х64 / ALC1200

Так панель наверно х32? Никто же не сделал ее х64.
cVad
QUOTE (Slice @ Sep 2 2009, 12:00 AM) *
Так панель наверно х32? Никто же не сделал ее х64.

Что-то, исходников нет в шапке.
Slice
QUOTE (cVad @ Sep 2 2009, 10:33 AM) *
Что-то, исходников нет в шапке.

Насчет шапки - это к AutumnRain. Я выкладывал в обсуждениях. Вот ссылка на закачку.
AutumnRain
QUOTE (cVad @ Sep 2 2009, 10:33 AM) *
Что-то, исходников нет в шапке.


Добавил исходники VoodooHDA.kext 0.2.35
Slice
Разбираю алгоритм построения дерева переключений. Есть сдвиги, просто сегодня рабочий день закончился.
QUOTE
Sep 2 18:54:37 localhost kernel[0]: Pins: first 0 second 15
Sep 2 18:54:37 localhost kernel[0]: pin for switching 0 - 12 (0) and 14(0)

Но
QUOTE
Sep 2 18:05:41 localhost kernel[0]: Warning. Switchig audio input is disabled
Sep 2 18:05:41 localhost kernel[0]: switch pin 0 nid 0
Sep 2 18:05:41 localhost kernel[0]: switch pin 1 nid 0
Sep 2 18:05:41 localhost kernel[0]: switch pin 2 nid 0
Sep 2 18:05:41 localhost kernel[0]: switch pin 3 nid 0
Sep 2 18:05:41 localhost kernel[0]: switch pin 4 nid 0
Sep 2 18:05:41 localhost kernel[0]: switch pin 5 nid 0
Sep 2 18:05:41 localhost kernel[0]: switch pin 6 nid 0
Sep 2 18:05:41 localhost kernel[0]: switch pin 7 nid 0
Sep 2 18:05:41 localhost kernel[0]: switch pin 8 nid 0
Sep 2 18:05:41 localhost kernel[0]: switch pin 9 nid 0
Sep 2 18:05:41 localhost kernel[0]: switch pin 10 nid 0
Sep 2 18:05:41 localhost kernel[0]: switch pin 11 nid 0
Sep 2 18:05:41 localhost kernel[0]: switch pin 12 nid 0
Sep 2 18:05:41 localhost kernel[0]: switch pin 13 nid 0
Sep 2 18:05:41 localhost kernel[0]: switch pin 14 nid 0
Sep 2 18:05:41 localhost kernel[0]: switch pin 15 nid 0

Жаль, что 3000 строк не распечатаешь.
Slice
Домашняя работа.

А ты похоже здорово перемудрил с алгоритмом поиска ноды для переключения.
Все на самом деле намного проще. Вот мои варианты
1. Чистый инфо-плист
7-27-24-21-14
7-27-19
2. Два аналоговых микрофона в одной группе и цифровой - отдельно.
7-27-24-21-14
7-27-24-21-12
8-28-19
Так вот. Первая развилка после АЦП является нодой, которую переключать в данной ассоциации. Все!
В первом варианте - нода 27, во-втором -21.
И не нужны ни деревья, ни алгоритмы их перебора.
AutumnRain
QUOTE (Slice @ Sep 2 2009, 10:20 PM) *
Домашняя работа.

А ты похоже здорово перемудрил с алгоритмом поиска ноды для переключения.
Все на самом деле намного проще. Вот мои варианты
1. Чистый инфо-плист
7-27-24-21-14
7-27-19
2. Два аналоговых микрофона в одной группе и цифровой - отдельно.
7-27-24-21-14
7-27-24-21-12
8-28-19
Так вот. Первая развилка после АЦП является нодой, которую переключать в данной ассоциации. Все!
В первом варианте - нода 27, во-втором -21.
И не нужны ни деревья, ни алгоритмы их перебора.


Деревья и алгоритмы перебора я использую чтобы получить эти цепочки. Если ты можешь сделать это проще, то пожалуйста.

QUOTE
Sep 2 18:54:37 localhost kernel[0]: Pins: first 0 second 15
Sep 2 18:54:37 localhost kernel[0]: pin for switching 0 - 12 (0) and 14(0)


Здесь не верный вывод

Должно быть по задумке так:

QUOTE
Sep 2 18:54:37 localhost kernel[0]: Pins: first 0 second 15
Sep 2 18:54:37 localhost kernel[0]: pin for switching 21 - 12 (0) and 14(2)


Т.е. рассматриваются пины c seq = 0 и seq = 15
Нода для переключения - 21. Переключать нужно с ноды 12 (вход 0) на ноду 14 (вход 2)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2012 Invision Power Services, Inc.