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