Sound/ru
Jump to navigation
Jump to search
Изначально Колибри унаследовала от Менуэт только звуковой драйвер для SoundBlaster, встроенный в ядро. Позже в (2005-2006) была написана полноценная звуковая подсистема Infinity, автор Сергей Семёнов aka Serge.
К сожалению какой либо внятной документации по Infinity нет, есть только исходники и файлы SDK.
Звуковая система Infinity содержит следующие сервисы:
SRV_GETVERSION equ 0 SND_CREATE_BUFF equ 1 SND_DESTROY_BUFF equ 2 SND_SETFORMAT equ 3 SND_GETFORMAT equ 4 SND_RESET equ 5 SND_SETPOS equ 6 SND_GETPOS equ 7 SND_SETBUFF equ 8 SND_OUT equ 9 SND_PLAY equ 10 SND_STOP equ 11 SND_SETVOLUME equ 12 SND_GETVOLUME equ 13 SND_SETPAN equ 14 SND_GETPAN equ 15 SND_GETBUFFSIZE equ 16 SND_GETFREESPACE equ 17 SND_SETTIMEBASE equ 18 SND_GETTIMESTAMP equ 19
SDK содержит следующие вспомогательные библиотеки:
1) init.asm
_InitSound@4: ;p_ver:dword _CreateBuffer@12: ;format:dword,size:dword,p_str:dword _DestroyBuffer@4: ;str:dword
2) setbuf.asm
_SetBuffer@16: ;str:dword, src:dword, offs:dword, size:dword _PlayBuffer@8: ;str:dword,flags:dword
3) sndgetfmt.asm
_GetFormat@8: ;str:dword, p_fmt:dword
4) sndgetmvol.asm
proc _GetMasterVol@4 stdcall, pvol:dword proc _GetDevInfo@8 stdcall, hSrv:dword, p_info:dword
5) sndgetpan.asm
_GetPan@8: ;str:dword, p_pan:dword
6) sndgetpos.asm
_GetBufferPos@8: ;str:dword, p_pos:dword
7) sndgetsize.asm
_GetBufferSize@8: ;str:dword, p_size:dword _GetBufferFree@8: ;str:dword, p_free:dword
8) sndgetvol.asm
proc _GetVolume@12 stdcall, str:dword, pleft:dword,pright:dword
9) sndout.asm
_WaveOut@12: ;str:dword, src:dword, size:dword
10) sndreset.asm
_ResetBuffer@8: ;str:dword, flags:dword
11) sndsetfmt.asm
_SetFormat@8: ;str:dword, fmt:dword
12) sndsetmvol.asm
_SetMasterVol@4: ;vol:dword
13) sndsetpan.asm
_SetPan@8: ;str:dword, pan:dword
14) sndsetpos.asm
_SetBufferPos@8: ;str:dword, offs:dword
15) sndsetvol.asm
_SetVolume@12: ;str:dword, lvol:dword,rvol:dword
16) stopbuf.asm
_StopBuffer@4: ;str:dword
17) wavhdr.asm
proc _test_wav@4 stdcall, hdr:dword