Subversion Repositories Kolibri OS

Rev

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

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