Sound/ru

From KolibriOS wiki
Revision as of 11:12, 14 June 2012 by XVilka (talk | contribs) (Improved syntax highlighting)
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