Subversion Repositories Kolibri OS

Rev

Rev 359 | Rev 374 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. #ifndef _SOUND_H_
  3. #define _SOUND_H_
  4.  
  5. #ifdef __cplusplus
  6. extern "C"
  7. {
  8. #endif
  9.  
  10. #define SOUND_VERSION  5
  11.  
  12. #define PCM_ALL       0
  13. #define PCM_STATIC    0x80000000
  14. #define PCM_FILTER    0x40000000
  15. #define PCM_FLOAT     0x20000000
  16.  
  17. #define PCM_2_16_48   1
  18. #define PCM_1_16_48   2
  19. #define PCM_2_16_44   3
  20. #define PCM_1_16_44   4
  21. #define PCM_2_16_32   5
  22. #define PCM_1_16_32   6
  23. #define PCM_2_16_24   7
  24. #define PCM_1_16_24   8
  25. #define PCM_2_16_22   9
  26. #define PCM_1_16_22  10
  27. #define PCM_2_16_16  11
  28. #define PCM_1_16_16  12
  29. #define PCM_2_16_12  13
  30. #define PCM_1_16_12  14
  31. #define PCM_2_16_11  15
  32. #define PCM_1_16_11  16
  33. #define PCM_2_16_8   17
  34. #define PCM_1_16_8   18
  35. #define PCM_2_8_48   19
  36. #define PCM_1_8_48   20
  37. #define PCM_2_8_44   21
  38. #define PCM_1_8_44   22
  39. #define PCM_2_8_32   23
  40. #define PCM_1_8_32   24
  41. #define PCM_2_8_24   25
  42. #define PCM_1_8_24   26
  43. #define PCM_2_8_22   27
  44. #define PCM_1_8_22   28
  45. #define PCM_2_8_16   29
  46. #define PCM_1_8_16   30
  47. #define PCM_2_8_12   31
  48. #define PCM_1_8_12   32
  49. #define PCM_2_8_11   33
  50. #define PCM_1_8_11   34
  51. #define PCM_2_8_8    35
  52. #define PCM_1_8_8    36
  53.  
  54. #define SRV_GETVERSION      0
  55. #define SND_CREATE_BUFF     1
  56. #define SND_DESTROY_BUFF    2
  57. #define SND_SETFORMAT       3
  58. #define SND_RESET           4
  59. #define SND_SETPOS          5
  60. #define SND_SETBUFF         6
  61. #define SND_SETVOLUME       7
  62. #define SND_GETVOLUME       8
  63. #define SND_OUT             9
  64. #define SND_PLAY            10
  65. #define SND_STOP            11
  66.  
  67. typedef unsigned int SNDBUF;
  68.  
  69. int _stdcall  InitSound();
  70. SNDBUF _stdcall  CreateBuffer(unsigned int format,int size);
  71. int _stdcall  DestroyBuffer(SNDBUF hBuff);
  72. int _stdcall  SetBuffer(SNDBUF hBuff,void* buff,
  73.                         int offs, int size);
  74. int _stdcall  SetFormat(SNDBUF hBuff, unsigned int format);                        
  75. int _stdcall  ResetBuffer(SNDBUF hBuff, unsigned int flags);
  76. int _stdcall  SetBufferPos(SNDBUF hBuff, int offset);
  77. int _stdcall  SetVolume(SNDBUF hBuff, int left, int right);
  78. int _stdcall  GetVolume(SNDBUF hBuff, int *left, int *right);
  79. int _stdcall  SetPan(SNDBUF hBuff, int pan);
  80.                        
  81. int _stdcall  WaveOut(SNDBUF hBuff,void *buff, int size);
  82.                                
  83. int _stdcall  PlayBuffer(SNDBUF hBuff);
  84. int _stdcall  StopBuffer(SNDBUF hBuff);
  85.  
  86. typedef struct
  87. {  unsigned int       riff_id;
  88.    unsigned int       riff_size;
  89.    unsigned int       riff_format;
  90.  
  91.    unsigned int       fmt_id;
  92.    unsigned int       fmt_size;
  93.  
  94.    unsigned short int wFormatTag;
  95.    unsigned short int nChannels;
  96.    unsigned int       nSamplesPerSec;
  97.    unsigned int       nAvgBytesPerSec;
  98.    unsigned short int nBlockAlign;
  99.    unsigned short int wBitsPerSample;
  100.    unsigned int       data_id;
  101.    unsigned int       data_size;
  102. } WAVEHEADER;
  103.  
  104. unsigned int _stdcall test_wav(WAVEHEADER *hdr);
  105.  
  106. #ifdef __cplusplus
  107. extern "C"
  108. }
  109. #endif
  110.  
  111. #endif //_SOUND_H_
  112.