Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
2.8 KiB

  1. /****************************************************************************
  2. *
  3. * waveff.h - Audio Compression Manager File Formats Public Header File
  4. *
  5. * Copyright (c) 1991-1992 Microsoft Corporation. All Rights Reserved.
  6. *
  7. ***************************************************************************/
  8. #ifndef _INC_WAVEFF
  9. #define _INC_WAVEFF /* #defined if waveff.h has been included */
  10. #ifndef WAVE_FORMAT_PCM
  11. /* general waveform format structure (information common to all formats) */
  12. typedef struct waveformat_tag {
  13. WORD wFormatTag; /* format type */
  14. WORD nChannels; /* number of channels (i.e. mono, stereo...) */
  15. DWORD nSamplesPerSec; /* sample rate */
  16. DWORD nAvgBytesPerSec; /* for buffer estimation */
  17. WORD nBlockAlign; /* block size of data */
  18. } WAVEFORMAT;
  19. typedef WAVEFORMAT *PWAVEFORMAT;
  20. typedef WAVEFORMAT NEAR *NPWAVEFORMAT;
  21. typedef WAVEFORMAT FAR *LPWAVEFORMAT;
  22. /* flags for wFormatTag field of WAVEFORMAT */
  23. #define WAVE_FORMAT_PCM 1
  24. /* specific waveform format structure for PCM data */
  25. typedef struct pcmwaveformat_tag {
  26. WAVEFORMAT wf;
  27. WORD wBitsPerSample;
  28. } PCMWAVEFORMAT;
  29. typedef PCMWAVEFORMAT *PPCMWAVEFORMAT;
  30. typedef PCMWAVEFORMAT NEAR *NPPCMWAVEFORMAT;
  31. typedef PCMWAVEFORMAT FAR *LPPCMWAVEFORMAT;
  32. #endif /* WAVE_FORMAT_PCM */
  33. /* general extended waveform format structure */
  34. /* Use this for all NON PCM formats */
  35. /* (information common to all formats) */
  36. typedef struct waveformat_extended_tag {
  37. WORD wFormatTag; /* format type */
  38. WORD nChannels; /* number of channels (i.e. mono, stereo...) */
  39. DWORD nSamplesPerSec; /* sample rate */
  40. DWORD nAvgBytesPerSec; /* for buffer estimation */
  41. WORD nBlockAlign; /* block size of data */
  42. WORD wBitsPerSample; /* Number of bits per sample of mono data */
  43. WORD cbSize; /* The count in bytes of the size */
  44. /* SPECIFY TOTAL OR EXTRA */
  45. } WAVEFORMATEX;
  46. typedef WAVEFORMATEX *PWAVEFORMATEX;
  47. typedef WAVEFORMATEX NEAR *NPWAVEFORMATEX;
  48. typedef WAVEFORMATEX FAR *LPWAVEFORMATEX;
  49. /* Define data for MS ADPCM */
  50. #define WAVE_FORMAT_ADPCM 2
  51. typedef struct adpcmcoef_tag {
  52. short iCoef1;
  53. short iCoef2;
  54. } ADPCMCOEFSET;
  55. typedef ADPCMCOEFSET *PADPCMCOEFSET;
  56. typedef ADPCMCOEFSET NEAR *NPADPCMCOEFSET;
  57. typedef ADPCMCOEFSET FAR *LPADPCMCOEFSET;
  58. typedef struct adpcmwaveformat_tag {
  59. WAVEFORMATEX wfx;
  60. WORD wSamplesPerBlock;
  61. WORD wNumCoef;
  62. ADPCMCOEFSET aCoef[];
  63. } ADPCMWAVEFORMAT;
  64. typedef ADPCMWAVEFORMAT *PADPCMWAVEFORMAT;
  65. typedef ADPCMWAVEFORMAT NEAR *NPADPCMWAVEFORMAT;
  66. typedef ADPCMWAVEFORMAT FAR *LPADPCMWAVEFORMAT;
  67. #endif /* _INC_WAVEFF */