Subversion Repositories Kolibri OS

Rev

Rev 2010 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;;                                                              ;;
  3. ;; Copyright (C) KolibriOS team 2006-2011. All rights reserved. ;;
  4. ;; Distributed under terms of the GNU General Public License    ;;
  5. ;;                                                              ;;
  6. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  7.  
  8. ; Serge 2006-2008
  9. ; email:  infinity_sound@mail.ru
  10.  
  11.  
  12. PLAY_SYNC      equ   0x80000000
  13.  
  14. PCM_ALL        equ   0
  15.  
  16. PCM_OUT        equ   0x08000000
  17. PCM_RING       equ   0x10000000
  18. PCM_STATIC     equ   0x20000000
  19. PCM_FLOAT      equ   0x40000000     ;reserved
  20. PCM_FILTER     equ   0x80000000     ;reserved
  21.  
  22. PCM_2_16_48    equ   1
  23. PCM_1_16_48    equ   2
  24.  
  25. PCM_2_16_44    equ   3
  26. PCM_1_16_44    equ   4
  27.  
  28. PCM_2_16_32    equ   5
  29. PCM_1_16_32    equ   6
  30.  
  31. PCM_2_16_24    equ   7
  32. PCM_1_16_24    equ   8
  33.  
  34. PCM_2_16_22    equ   9
  35. PCM_1_16_22    equ  10
  36.  
  37. PCM_2_16_16    equ  11
  38. PCM_1_16_16    equ  12
  39.  
  40. PCM_2_16_12    equ  13
  41. PCM_1_16_12    equ  14
  42.  
  43. PCM_2_16_11    equ  15
  44. PCM_1_16_11    equ  16
  45.  
  46. PCM_2_16_8     equ  17
  47. PCM_1_16_8     equ  18
  48.  
  49. PCM_2_8_48     equ  19
  50. PCM_1_8_48     equ  20
  51.  
  52. PCM_2_8_44     equ  21
  53. PCM_1_8_44     equ  22
  54.  
  55. PCM_2_8_32     equ  23
  56. PCM_1_8_32     equ  24
  57.  
  58. PCM_2_8_24     equ  25
  59. PCM_1_8_24     equ  26
  60.  
  61. PCM_2_8_22     equ  27
  62. PCM_1_8_22     equ  28
  63.  
  64. PCM_2_8_16     equ  29
  65. PCM_1_8_16     equ  30
  66.  
  67. PCM_2_8_12     equ  31
  68. PCM_1_8_12     equ  32
  69.  
  70. PCM_2_8_11     equ  33
  71. PCM_1_8_11     equ  34
  72.  
  73. PCM_2_8_8      equ  35
  74. PCM_1_8_8      equ  36
  75.  
  76. SRV_GETVERSION      equ 0
  77. SND_CREATE_BUFF     equ 1
  78. SND_DESTROY_BUFF    equ 2
  79. SND_SETFORMAT       equ 3
  80. SND_GETFORMAT       equ 4
  81. SND_RESET           equ 5
  82. SND_SETPOS          equ 6
  83. SND_GETPOS          equ 7
  84. SND_SETBUFF         equ 8
  85. SND_OUT             equ 9
  86. SND_PLAY            equ 10
  87. SND_STOP            equ 11
  88. SND_SETVOLUME       equ 12
  89. SND_GETVOLUME       equ 13
  90. SND_SETPAN          equ 14
  91. SND_GETPAN          equ 15
  92. SND_GETBUFFSIZE     equ 16
  93. SND_GETFREESPACE    equ 17
  94. SND_SETTIMEBASE     equ 18
  95. SND_GETTIMESTAMP    equ 19
  96.  
  97. struc STREAM
  98. {
  99.     .magic         dd ?   ;'WAVE'
  100.     .destroy       dd ?   ;internal destructor
  101.     .fd            dd ?   ;next object in list
  102.     .bk            dd ?   ;prev object in list
  103.     .pid           dd ?   ;owner id
  104.  
  105.     .size          dd ?
  106.     .str_fd        dd ?
  107.     .str_bk        dd ?
  108.     .device        dd ?
  109.     .format        dd ?
  110.     .flags         dd ?
  111.  
  112.     .out_base      dd ?
  113.     .out_wp        dd ?
  114.     .out_rp        dd ?
  115.     .out_count     dd ?
  116.     .out_top       dd ?          ;16*4
  117.  
  118.     .in_base       dd ?
  119.     .in_size       dd ?
  120.     .in_wp         dd ?
  121.     .in_rp         dd ?
  122.     .in_count      dd ?
  123.     .in_free       dd ?
  124.     .in_top        dd ?
  125.  
  126. align 8
  127.  
  128.     .time_base     dq ?
  129.     .time_stamp    dq ?
  130.     .last_ts       dd ?
  131.  
  132.     .notify_event  dd ?
  133.     .notify_id     dd ?
  134.  
  135.     .r_size        dd ?
  136.     .r_dt          dd ?
  137.     .r_silence     dd ?
  138.     .resample      dd ?
  139.     .l_vol         dd ?
  140.     .r_vol         dd ?
  141.     .l_amp         dw ?
  142.     .r_amp         dw ?
  143.     .pan           dd ?
  144.     .l_amp_f       dd ? ;float point left
  145.     .r_amp_f       dd ? ;float point right
  146.  
  147.     .sizeof:
  148. }
  149.  
  150. FD_OFFSET      equ 24
  151.  
  152. virtual at 0
  153.  STREAM STREAM
  154. end virtual
  155.  
  156. struc WAVE_HEADER
  157. {   .riff_id        dd  ?
  158.     .riff_size      dd  ?
  159.     .riff_format    dd  ?
  160.  
  161.     .fmt_id         dd  ?
  162.     .fmt_size       dd  ?
  163.     .format_tag     dw  ?
  164.     .channels       dw  ?
  165.     .freq           dd  ?
  166.     .bytes_sec      dd  ?
  167.     .block_align    dw  ?
  168.     .bits_sample    dw  ?
  169.  
  170.     .data_id        dd  ?
  171.     .data_size      dd  ?
  172. }
  173.  
  174.