Sound/ru

From KolibriOS wiki
Revision as of 18:20, 22 April 2012 by Wildwest (talk | contribs)
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