Page 50 of 66
Re: sound, SB, AC97 и другое
Posted: Fri Mar 04, 2011 1:45 pm
by Roverman
С колонками нормальный звук, просто бук с собой приходится таскать, а колонки тяжеловаты
Плиз "ткните носом" какие строки в драйвере отвечают за громкость? Попробую поменять параметры..
Re: sound, SB, AC97 и другое
Posted: Fri Mar 04, 2011 2:14 pm
by Serge
codec.inc
Code: Select all
align 4
proc setup_codec
xor eax, eax
stdcall codec_write, dword CODEC_AUX_VOL
mov eax, 0x0B0B
stdcall codec_write, dword CODEC_MASTER_VOL_REG
mov ax, 0x08
stdcall codec_write, dword 0x0C
mov ax, 0x0808
stdcall codec_write, dword CODEC_PCM_OUT_REG
mov ax, 0x0808
stdcall codec_write, dword 0x10
mov ax, 0x0808
stdcall codec_write, dword 0x12
mov ax, 0x0808
stdcall codec_write, dword 0x16
stdcall codec_read, dword CODEC_EXT_AUDIO_CTRL_REG
and eax, 0FFFFh - BIT1 ; clear DRA (BIT1)
or eax, BIT0 ; set VRA (BIT0)
stdcall codec_write, dword CODEC_EXT_AUDIO_CTRL_REG
stdcall set_sample_rate, dword 48000
.init_error:
xor eax, eax ; exit with error
ret
endp
Громкость задаётся ослаблением сигнала с шагом -1.5dB. Советую прибавлять осторожно, чтобы не спалить.
Re: sound, SB, AC97 и другое
Posted: Fri Mar 04, 2011 4:12 pm
by Asper
Roverman
Для
AC97 всё ещё работает
System audio mixer.
Для HDA не пременять! Нужно будет переделать соответствующие функции драйвера
HDA.
Re: sound, SB, AC97 и другое
Posted: Fri Mar 04, 2011 4:53 pm
by Roverman
Странно.. сейчас попробовал - не работает, кнопочки нажимаются, громкость не меняется.
ps попробовал миксер который на SVN - тоже не работает
Re: sound, SB, AC97 и другое
Posted: Sat Mar 05, 2011 7:35 am
by Asper
Roverman
Asper wrote:Для регулировки левого канала - Home/End, правого - PageUp/PageDown.
Для AC97 возможно регулировать только оба канала одновременно, т.е. уровень звучания в обоих каналах будет одинаковый.
Roverman wrote:ps попробовал миксер который на SVN - тоже не работает
По-моему он был предназначен для старого встроенного в ядро кода
SB16, а так соответствующий код давно удалён из ядра, то и программа на
SVN потеряла актуальность.
Re: sound, SB, AC97 и другое
Posted: Sat Mar 05, 2011 12:12 pm
by Roverman
Спасибо большое за разъяснения, все работает.
Re: sound, SB, AC97 и другое
Posted: Sat Mar 26, 2011 6:50 pm
by Asper
Сделал Infinity, которая по умолчанию не использует инструкций MMX+ (изменить можно через USE_MMX_PLUS). Размер упакованного драйвера увеличивается на 8 байт, что как мне кажется приемлемо.
Re: sound, SB, AC97 и другое
Posted: Sat Mar 26, 2011 7:28 pm
by yogev_ezra
Asper wrote:Сделал Infinity, которая по умолчанию не использует инструкций MMX+ (изменить можно через USE_MMX_PLUS). Размер упакованного драйвера увеличивается на 8 байт, что как мне кажется приемлемо.
Ура
А на какой ревизии SVN базируется Ваша версия? Я пробовал сравнивать - в последней ревизии очень много других изменений, не связанных с Вашими.
Re: sound, SB, AC97 и другое
Posted: Mon Mar 28, 2011 7:17 am
by Mario
Asper
Замечательно - хоть у меня не было железа без нужных инструкций, но зато теперь есть альтернатива. Спасибо.
З.Ы. Для тех кто "совсем не флудит" - иногда простая человеческая поддержка не менее необходима, чем багрепорт.
Re: sound, SB, AC97 и другое
Posted: Mon Mar 28, 2011 4:14 pm
by Asper
yogev_ezra
Да видимо ревизия старая, но разницы нет, с точки зрения наличия
инструкций MMX+ в коде. Изменения касаются одной только функции
set_vol_param
Вот с последней ревизии.
-
- Infinity without MMX+ by default
Downloaded 160 times
Mario
Спасибо за поддержку.
Re: sound, SB, AC97 и другое
Posted: Mon Mar 28, 2011 7:04 pm
by Serge
Asper
А зачем neg в операциях ?
Re: sound, SB, AC97 и другое
Posted: Mon Mar 28, 2011 7:33 pm
by Asper
Serge
Потому что сравниваются положительное и отрицательное числа (например 0x0000DDF0 и 0xFFFFDDF0), что в итоге приводит к нулевому уровню звука.
Re: sound, SB, AC97 и другое
Posted: Mon Mar 28, 2011 7:44 pm
by Serge
Asper
Там все сравнения в коротких целых ( 16 бит). Знаковые сравнения cmp ax, word[...], jl ... или jg ... должны работать. И диапазон vol_min,vol_max [-10000, 0]. Если не закладываться на возможность ограничения по максимальному уровню то vol_max всегда равно 0.
Re: sound, SB, AC97 и другое
Posted: Mon Mar 28, 2011 7:47 pm
by Asper
Serge wrote:Там все сравнения в коротких целых ( 16 бит), достаточно cmp ax, word[...]
Хм... не знал, а зачем тогда 64 бита?
Re: sound, SB, AC97 и другое
Posted: Mon Mar 28, 2011 7:56 pm
by Serge
Asper
64 бита - требование операций pminsw и pmaxsw, чтобы привести значение в диапазон -10000, 0 без гемороя с ветвлениями. А дальше считаем 16 битные целые на FPU
Code: Select all
movd [r_vol], mm0
.calc_amp:
emms
fild word [l_vol] << short int
...
...
...
fild word [r_vol]