Board.KolibriOS.org

Official KolibriOS board
It is currently Wed May 22, 2019 6:10 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 18 posts ]  Go to page 1 2 Next
Author Message
PostPosted: Sun Oct 27, 2013 12:53 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Я не буду оригинален - мысль возникала у всех. Пока что на форуме наблюдались отдельные попытки, то для AC97, то для HDA. Изобретение велосипедов в общем то. Предлагаю сделать таки общий велосипед.

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

В общем мысль такая. Договориться где драйверы будут брать настройку звука. Оптимальным я считаю получение через системную функцию. Которая будет получать, хранить и отдавать произвольный блок с данными (формат которого нужно проработать), определяющими громкость отдельных устройств (есть ведь еще, как минимум, и на запись регулировка громкости). Таким образом будет две подфункции. Со стороны приложения можно хранить настройки в INI файле и применять при старте системы. Со стороны драйверов - получать блок информацией и использовать записанные в нем значения.

Может я конечно тут все упростил - я не писал звуковые драйвера ни разу. В общем есть ли есть возражения и замечания просьба высказываться. А может я вообще не прав и то что есть сейчас уже идеал, а я чего то не понимаю.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sun Oct 27, 2013 1:16 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5047
Тебя прёт на хорошие идеи в последнее время. Поддерживаю.

>> Оптимальным я считаю получение через системную функцию. Которая будет получать, хранить и отдавать произвольный блок с данными (формат которого нужно проработать), определяющими громкость отдельных устройств (есть ведь еще, как минимум, и на запись регулировка громкости).

_________________
Через тернии к звездам


Top
   
PostPosted: Sun Oct 27, 2013 7:39 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Mario_r4
Приложения уровень программно регулируют. А системные настройки имеют смысл для master volume.


Top
   
PostPosted: Sun Oct 27, 2013 9:33 am 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 988
Системная функция не нужна. Приложение "Единый регулятор громкости" взаимодействует с драйвером. Другие приложения запускают его с параметром.


Top
   
PostPosted: Sun Oct 27, 2013 10:09 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Надо этот "Единый регулятор громкости" встроить в панель.


Top
   
PostPosted: Sun Oct 27, 2013 12:35 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5047
Serge wrote:
Надо этот "Единый регулятор громкости" встроить в панель.

Может отдельное приложение? Так удобнее будет модифицировать, не комильфо всё в панель засовывать :)
Регулятор будет открываеться как Календарь возле панели. Скрытие при повторном нажатии на значёк звука или при деактивации окна.

_________________
Через тернии к звездам


Top
   
PostPosted: Sun Oct 27, 2013 1:00 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Asper wrote:
Системная функция не нужна. Приложение "Единый регулятор громкости" взаимодействует с драйвером. Другие приложения запускают его с параметром.

Ага, а если драйвер не запускается, то пользователь крутит регулятор и удивляется почему звука нет. Надо продумывать все ситуации.
Еще я не видел, чтобы один и тот же регулятор из выложенных работал и с AC97 и HDA.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sun Oct 27, 2013 4:22 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Mario_r4
Если драйвер не запускается должен быть значок с перечёркнутым динамиком. И пользователь всё поймёт.
Quote:
Еще я не видел, чтобы один и тот же регулятор из выложенных работал и с AC97 и HDA.
API для всех одинаковое. Если у драйвера проблема с регулировкой громкости, приложение не виновато.


Last edited by Serge on Sun Oct 27, 2013 4:28 pm, edited 1 time in total.

Top
   
PostPosted: Sun Oct 27, 2013 4:22 pm 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 988
Mario_r4 wrote:
Ага, а если драйвер не запускается, то пользователь крутит регулятор и удивляется почему звука нет. Надо продумывать все ситуации.

Если драйвер не запускается, то регулятор не запускается тоже, и сообщает пользователю об ошибке.

Mario_r4 wrote:
Еще я не видел, чтобы один и тот же регулятор из выложенных работал и с AC97 и HDA.

Эта версия "регулятора" работает и с HDA tv 12 и c AC97.


Last edited by Asper on Sun Oct 27, 2013 8:15 pm, edited 1 time in total.

Top
   
PostPosted: Sun Oct 27, 2013 5:04 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Asper wrote:
Эта версия "регулятора" работает и с HDA tv 0.12 и c AC97.

Замечательно, беру сборку 4107, запускаю Qemu 0.12.2 со строкой:
Code:
qemu -L . -m 128 -fda kolibri.img -fdb w98.img -boot a -hda c100.img -hdb c100_2.img -cdrom kolibri.iso -localtime -k ru -vga vmware -net nic,model=ne2k_pci -net user -soundhw ac97,pcspk

Запускаю MP3 ассоциации из файлового менеджера. Файл проигрывает AC97SND. Запускаю MIXER, проверяю все 6 кнопок совместно с PgUp|PgDn и Home|End - никакого эффекта. Может быть проблема в том, что:
Quote:
Из AC97 тестировался только на EMU10K1X

Кстати о том что он не работает в Qemu я писал. Реакции не было совсем никакой. Так что утверждать о работоспособности наверняка, если не проверено - нельзя.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sun Oct 27, 2013 5:06 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge wrote:
Если драйвер не запускается должен быть значок с перечёркнутым динамиком. И пользователь всё поймёт.
Quote:
Еще я не видел, чтобы один и тот же регулятор из выложенных работал и с AC97 и HDA.
API для всех одинаковое. Если у драйвера проблема с регулировкой громкости, приложение не виновато.

И по какому критерию/признаку приложение должно выводить перечеркнутый динамик?

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sun Oct 27, 2013 5:07 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Mario_r4
Qemu стал эталоном железки ?


Top
   
PostPosted: Sun Oct 27, 2013 5:09 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Quote:
И по какому критерию/признаку приложение должно выводить перечеркнутый динамик?
Чтобы работать с драйвером надо получить его логический номер. Если вместо номера ядро возвращает 0, значит драйвер не загружается.


Top
   
PostPosted: Sun Oct 27, 2013 5:27 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge wrote:
Mario_r4
Qemu стал эталоном железки ?

Т.е. то что драйвер используется стандартный, звук проигрывается что в плеера аудио, что в плеере видео, в них же регулируется, а в миксере не регулируется это нормальное положение вещей? По мне так никак это не является нормальной ситуацией.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sun Oct 27, 2013 6:34 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Mario_r4
Потому что приложения регулируют громкость программно. Infinity при помощи нехитрой математики
Code:
.mix_loop:
        add     dword [edx], 8
        add     edx, 12
        dec     ecx
        jz      @F

        mov     eax, [edx]
        movq    mm1, [eax]        ;семпл
        movd    mm2, [edx+4]      ;громкость
        punpckldq mm2, mm2
        pmulhw  mm1, mm2
        psllw   mm1, 1
        paddsw  mm0, mm1
        jmp     .mix_loop
независимо управляет громкостью каждого звукового буфера. А насколько достоверно Qemu эмулирует AC97 вопрос к разработчикам эмулятора. Есть ещё Vbox, правда он прямой потомок Qemu.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 18 posts ]  Go to page 1 2 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited