Subversion Repositories Kolibri OS

Rev

Rev 5136 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1.  
  2. #ifndef _SOUND_H_
  3. #define _SOUND_H_
  4.  
  5. #define _stdcall __attribute__((stdcall))
  6.  
  7. #ifdef __cplusplus
  8. extern "C"
  9. {
  10. #endif
  11.  
  12. #define SOUND_VERSION 0x0101
  13. #define PCM_ALL       0
  14.  
  15. #define PCM_OUT       0x08000000
  16. #define PCM_RING      0x10000000
  17. #define PCM_STATIC    0x20000000
  18. #define PCM_FLOAT     0x40000000
  19. #define PCM_FILTER    0x80000000
  20.  
  21. #define PCM_2_16_48   1
  22. #define PCM_1_16_48   2
  23. #define PCM_2_16_44   3
  24. #define PCM_1_16_44   4
  25. #define PCM_2_16_32   5
  26. #define PCM_1_16_32   6
  27. #define PCM_2_16_24   7
  28. #define PCM_1_16_24   8
  29. #define PCM_2_16_22   9
  30. #define PCM_1_16_22  10
  31. #define PCM_2_16_16  11
  32. #define PCM_1_16_16  12
  33. #define PCM_2_16_12  13
  34. #define PCM_1_16_12  14
  35. #define PCM_2_16_11  15
  36. #define PCM_1_16_11  16
  37. #define PCM_2_16_8   17
  38. #define PCM_1_16_8   18
  39. #define PCM_2_8_48   19
  40. #define PCM_1_8_48   20
  41. #define PCM_2_8_44   21
  42. #define PCM_1_8_44   22
  43. #define PCM_2_8_32   23
  44. #define PCM_1_8_32   24
  45. #define PCM_2_8_24   25
  46. #define PCM_1_8_24   26
  47. #define PCM_2_8_22   27
  48. #define PCM_1_8_22   28
  49. #define PCM_2_8_16   29
  50. #define PCM_1_8_16   30
  51. #define PCM_2_8_12   31
  52. #define PCM_1_8_12   32
  53. #define PCM_2_8_11   33
  54. #define PCM_1_8_11   34
  55. #define PCM_2_8_8    35
  56. #define PCM_1_8_8    36
  57.  
  58. #define SRV_GETVERSION      0
  59. #define SND_CREATE_BUFF     1
  60. #define SND_DESTROY_BUFF    2
  61. #define SND_SETFORMAT       3
  62. #define SND_GETFORMAT       4
  63. #define SND_RESET           5
  64. #define SND_SETPOS          6
  65. #define SND_GETPOS          7
  66. #define SND_SETBUFF         8
  67. #define SND_OUT             9
  68. #define SND_PLAY           10
  69. #define SND_STOP           11
  70. #define SND_SETVOLUME      12
  71. #define SND_GETVOLUME      13
  72. #define SND_SETPAN         14
  73. #define SND_GETPAN         15
  74. #define SND_GETBUFFSIZE    16
  75. #define SND_GETFREESPACE   17
  76. #define SND_SETTIMEBASE    18
  77. #define SND_GETTIMESTAMP   19
  78.  
  79.  
  80. #define PLAY_SYNC     0x80000000
  81.  
  82. typedef unsigned int SNDBUF;
  83.  
  84. int _stdcall  InitSound(int *version);
  85.  
  86. int _stdcall  CreateBuffer(unsigned int format,int size,SNDBUF *buf);
  87. int _stdcall  DestroyBuffer(SNDBUF hBuff);
  88.  
  89. int _stdcall  SetFormat(SNDBUF hBuff, unsigned int format);
  90. int _stdcall  GetFormat(SNDBUF hBuff, unsigned int *format);
  91.  
  92. int _stdcall  ResetBuffer(SNDBUF hBuff, unsigned int flags);
  93. int _stdcall  SetBufferPos(SNDBUF hBuff, int offset);
  94. int _stdcall  GetBufferPos(SNDBUF hBuff, int *offset);
  95. int _stdcall  GetBufferSize(SNDBUF hBuff, int *size);
  96. int _stdcall  GetBufferFree(SNDBUF hBuff, int *free);
  97.  
  98. int _stdcall  SetBuffer(SNDBUF hBuff,void* buff,
  99.                         int offs, int size);
  100. int _stdcall  WaveOut(SNDBUF hBuff,void *buff, int size);
  101. int _stdcall  PlayBuffer(SNDBUF hBuff,unsigned int flags);
  102. int _stdcall  StopBuffer(SNDBUF hBuff);
  103.  
  104. int _stdcall  SetVolume(SNDBUF hBuff, int left, int right);
  105. int _stdcall  GetVolume(SNDBUF hBuff, int *left, int *right);
  106. int _stdcall  SetPan(SNDBUF hBuff, int pan);
  107. int _stdcall  GetPan(SNDBUF hBuff, int *pan);
  108.  
  109. int _stdcall  GetMasterVol(int* vol);
  110. int _stdcall  SetMasterVol(int vol);
  111.  
  112. int _stdcall  SetTimeBase(SNDBUF hBuff, double base);
  113. int _stdcall  GetTimeStamp(SNDBUF hBuff, double *stamp);
  114. int _stdcall  GetDevTime(int *stamp);
  115.  
  116.  
  117. typedef struct
  118. {
  119.     unsigned int   riff_id;
  120.     unsigned int   riff_size;
  121.     unsigned int   riff_format;
  122.  
  123.     unsigned int   fmt_id;
  124.     unsigned int   fmt_size;
  125.  
  126.     unsigned short int wFormatTag;
  127.     unsigned short int nChannels;
  128.     unsigned int   nSamplesPerSec;
  129.     unsigned int   nAvgBytesPerSec;
  130.     unsigned short int nBlockAlign;
  131.     unsigned short int wBitsPerSample;
  132.     unsigned int   data_id;
  133.     unsigned int   data_size;
  134. } WAVEHEADER;
  135.  
  136.  
  137. unsigned int _stdcall test_wav(WAVEHEADER *hdr);
  138.  
  139. #ifdef __cplusplus
  140. } /* extern "C" */
  141. #endif
  142.  
  143. #endif //_SOUND_H_
  144.