Subversion Repositories Kolibri OS

Rev

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

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