Поиск:

Ответ в темуСоздание новой темы Создание опроса
> громкость звука 
:(
    Опции темы
timself
Дата 14.3.2007, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 14.2.2007

Репутация: нет
Всего: нет




Не могу сделать вроде бы простую вещь: есть 2 кнопки "+" и "--" при нажатии на которые должна изменяться громкость проигрывания Audio-CD диска.

Я подключил winmm.lib и winmm.inc , пробовал использовать waveOutSetVolume и mixerSetControlDetails, но что-то упускаю - ничего не выходит. Смог добиться только того, что при нажатии на "--" громкость waveout обнуляется.

Подскажите как сделать, или подбросьте исходник на masm если есть.

PM MAIL   Вверх
timself
Дата 15.3.2007, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 14.2.2007

Репутация: нет
Всего: нет



Смысл проги прост: регулировать громкость во время проигрывания Audio-CD.

Я делал так:

Код

...
hMixer       dd  0
mxdc    MIXERCAPS                    <?>
mxl     MIXERLINE                    <?>
mxlc    MIXERLINECONTROLS            <?>
mxc     MIXERCONTROL                 <?>
mxcd    MIXERCONTROLDETAILS          <?>
mxcdVol MIXERCONTROLDETAILS_UNSIGNED <?>
...
WndProc proc ...
    ...
    .IF eax==WM_CREATE
          INVOKE     mixerOpen, addr hMixer, 0, 0, 0, 0  ; открываем mixer
    ...
    .ELSEIF eax==WM_DESTROY
          INVOKE     mixerClose, addr hMixer  ; закрываем mixer
    ...
    .ELSEIF    eax==WM_LBUTTONDOWN
        .IF    eax==BUTTON_PLUS   ; кнопка "+" , этот код не работает
        mov     mxlc.dwControlType, MIXERCONTROL_CONTROLTYPE_VOLUME
        mov     mxcd.cbDetails, sizeof mxcdVol
        mov     mxcd.paDetails, offset mxcdVol
        INVOKE     mixerSetControlDetails, hMixer, addr mxlc,  MIXER_GETCONTROLDETAILSF_VALUE
    .ELSEIF    eax==BUTTON_MINUS   ; кнопка "--" 
        ;  то же самое - не работает
...


Вот часть winmm.inc реализующая миксер:

Код

IFNDEF WINMM_INC
WINMM_INC equ <1>
...
mixerClose PROTO :DWORD
mixerGetControlDetailsA PROTO :DWORD,:DWORD,:DWORD
mixerGetControlDetails equ <mixerGetControlDetailsA>
mixerGetControlDetailsW PROTO :DWORD,:DWORD,:DWORD
mixerGetDevCapsA PROTO :DWORD,:DWORD,:DWORD
mixerGetDevCaps equ <mixerGetDevCapsA>
mixerGetDevCapsW PROTO :DWORD,:DWORD,:DWORD
mixerGetID PROTO :DWORD,:DWORD,:DWORD
mixerGetLineControlsA PROTO :DWORD,:DWORD,:DWORD
mixerGetLineControls equ <mixerGetLineControlsA>
mixerGetLineControlsW PROTO :DWORD,:DWORD,:DWORD
mixerGetLineInfoA PROTO :DWORD,:DWORD,:DWORD
mixerGetLineInfo equ <mixerGetLineInfoA>
mixerGetLineInfoW PROTO :DWORD,:DWORD,:DWORD
mixerGetNumDevs PROTO 
mixerMessage PROTO :DWORD,:DWORD,:DWORD,:DWORD
mixerOpen PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
mixerSetControlDetails PROTO :DWORD,:DWORD,:DWORD
...
ELSE
echo -----------------------------------------
echo WARNING Duplicate include file winmm.inc
echo -----------------------------------------
ENDIF

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.5702 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.