AsperРаньше DEV_GET_INFO возвращала данные в формате
Code:
struc CTRL_INFO
{ .pci_cmd dd ?
.irq dd ?
.glob_cntrl dd ?
.glob_sta dd ?
.codec_io_base dd ?
.ctrl_io_base dd ?
.codec_mem_base dd ?
.ctrl_mem_base dd ?
.codec_id dd ?
}
Сейчас этот вызов остался только в Emu10k1x.asm, в приложениях он не используется.
Я думаю что лучше всего дополнить структуру необходимыми полями. Драйвер будет определять версию по размеру структуры в вызове DEV_GET_INFO, а приложение по версии SOUND.API.
Quote:
а всё-таки регулировка отдельно правого и левого канала мне показалась интересной, может сделать под это дело дополнительный вызов драйвера? Кстати для AC97 кодеков в принципе можно отдельно регулировать каналы или нет?
Да, такая регулировка есть.
Я не знаю есть ли сейчас программы напрямую устанавливающие громкость кодека. Раньше это был плеер, но теперь в Infinity уровни устанавливаются отдельно для каждого звукового буфера. ИМХО лучший вариант добавить новые вызовы, сохранив совместимость с уже существующими. В этом случае в драйвере надо прописать
Code:
CURRENT_API equ 0x0200 ;2.00
COMPATIBLE_API equ 0x0100 ;1.00
API_VERSION equ (COMPATIBLE_API shl 16) or CURRENT_API