]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/directx/audiodefs/audiodefs.factor
13e598366f2b8e37765376a0e7166441d71a14d4
[factor.git] / basis / windows / directx / audiodefs / audiodefs.factor
1 USING: alien.c-types alien.syntax classes.struct
2 windows.kernel32 windows.types ;
3 IN: windows.directx.audiodefs
4
5 STRUCT: WAVEFORMATEX
6     { wFormatTag      WORD  }
7     { nChannels       WORD  }
8     { nSamplesPerSec  DWORD }
9     { nAvgBytesPerSec DWORD }
10     { nBlockAlign     WORD  }
11     { wBitsPerSample  WORD  }
12     { cbSize          WORD  } ;
13
14 TYPEDEF: WAVEFORMATEX* PWAVEFORMATEX
15 TYPEDEF: WAVEFORMATEX* NPWAVEFORMATEX
16 TYPEDEF: WAVEFORMATEX* LPWAVEFORMATEX
17 TYPEDEF: WAVEFORMATEX* PCWAVEFORMATEX
18 TYPEDEF: WAVEFORMATEX* LPCWAVEFORMATEX
19
20 UNION-STRUCT: WAVEFORMATEXTENSIBLE_UNION
21     { wValidBitsPerSample WORD }
22     { wSamplesPerBlock    WORD }
23     { wReserved           WORD } ;
24
25 STRUCT: WAVEFORMATEXTENSIBLE
26     { Format        WAVEFORMATEX               }
27     { Union         WAVEFORMATEXTENSIBLE_UNION }
28     { dwChannelMask DWORD                      }
29     { SubFormat     GUID                       } ;
30
31 TYPEDEF: WAVEFORMATEXTENSIBLE* PWAVEFORMATEXTENSIBLE
32 TYPEDEF: WAVEFORMATEXTENSIBLE* LPWAVEFORMATEXTENSIBLE
33 TYPEDEF: WAVEFORMATEXTENSIBLE* PCWAVEFORMATEXTENSIBLE
34 TYPEDEF: WAVEFORMATEXTENSIBLE* LPCWAVEFORMATEXTENSIBLE
35
36 STRUCT: WAVEFORMAT
37     { wFormatTag      WORD  }
38     { nChannels       WORD  }
39     { nSamplesPerSec  DWORD }
40     { nAvgBytesPerSec DWORD }
41     { nBlockAlign     WORD  } ;
42 TYPEDEF: WAVEFORMAT* PWAVEFORMAT
43 TYPEDEF: WAVEFORMAT* NPWAVEFORMAT
44 TYPEDEF: WAVEFORMAT* LPWAVEFORMAT
45
46 STRUCT: PCMWAVEFORMAT
47     { wf             WAVEFORMAT }
48     { wBitsPerSample WORD       } ;
49 TYPEDEF: PCMWAVEFORMAT* PPCMWAVEFORMAT
50 TYPEDEF: PCMWAVEFORMAT* NPPCMWAVEFORMAT
51 TYPEDEF: PCMWAVEFORMAT* LPPCMWAVEFORMAT
52
53 CONSTANT: WAVE_FORMAT_PCM 1
54
55 STRUCT: ADPCMCOEFSET
56     { iCoef1 short }
57     { iCoef2 short } ;
58
59 STRUCT: ADPCMWAVEFORMAT
60     { wfx              WAVEFORMATEX    }
61     { wSamplesPerBlock WORD            }
62     { wNumCoef         WORD            }
63     { aCoef            ADPCMCOEFSET[7] } ;
64
65 CONSTANT: WAVE_FORMAT_ADPCM           2
66 CONSTANT: WAVE_FORMAT_UNKNOWN         0
67 CONSTANT: WAVE_FORMAT_IEEE_FLOAT      3
68 CONSTANT: WAVE_FORMAT_MPEGLAYER3      HEX: 0055
69 CONSTANT: WAVE_FORMAT_DOLBY_AC3_SPDIF HEX: 0092
70 CONSTANT: WAVE_FORMAT_WMAUDIO2        HEX: 0161
71 CONSTANT: WAVE_FORMAT_WMAUDIO3        HEX: 0162
72 CONSTANT: WAVE_FORMAT_WMASPDIF        HEX: 0164
73 CONSTANT: WAVE_FORMAT_EXTENSIBLE      HEX: FFFE
74
75 CONSTANT: SPEAKER_FRONT_LEFT            HEX: 00000001
76 CONSTANT: SPEAKER_FRONT_RIGHT           HEX: 00000002
77 CONSTANT: SPEAKER_FRONT_CENTER          HEX: 00000004
78 CONSTANT: SPEAKER_LOW_FREQUENCY         HEX: 00000008
79 CONSTANT: SPEAKER_BACK_LEFT             HEX: 00000010
80 CONSTANT: SPEAKER_BACK_RIGHT            HEX: 00000020
81 CONSTANT: SPEAKER_FRONT_LEFT_OF_CENTER  HEX: 00000040
82 CONSTANT: SPEAKER_FRONT_RIGHT_OF_CENTER HEX: 00000080
83 CONSTANT: SPEAKER_BACK_CENTER           HEX: 00000100
84 CONSTANT: SPEAKER_SIDE_LEFT             HEX: 00000200
85 CONSTANT: SPEAKER_SIDE_RIGHT            HEX: 00000400
86 CONSTANT: SPEAKER_TOP_CENTER            HEX: 00000800
87 CONSTANT: SPEAKER_TOP_FRONT_LEFT        HEX: 00001000
88 CONSTANT: SPEAKER_TOP_FRONT_CENTER      HEX: 00002000
89 CONSTANT: SPEAKER_TOP_FRONT_RIGHT       HEX: 00004000
90 CONSTANT: SPEAKER_TOP_BACK_LEFT         HEX: 00008000
91 CONSTANT: SPEAKER_TOP_BACK_CENTER       HEX: 00010000
92 CONSTANT: SPEAKER_TOP_BACK_RIGHT        HEX: 00020000
93 CONSTANT: SPEAKER_RESERVED              HEX: 7FFC0000
94 CONSTANT: SPEAKER_ALL                   HEX: 80000000
95
96 CONSTANT: SPEAKER_MONO             HEX: 00000004
97 CONSTANT: SPEAKER_STEREO           HEX: 00000003
98 CONSTANT: SPEAKER_2POINT1          HEX: 0000000B
99 CONSTANT: SPEAKER_SURROUND         HEX: 00010007
100 CONSTANT: SPEAKER_QUAD             HEX: 00028003
101 CONSTANT: SPEAKER_4POINT1          HEX: 0002800B
102 CONSTANT: SPEAKER_5POINT1          HEX: 0002800F
103 CONSTANT: SPEAKER_7POINT1          HEX: 000280CF
104 CONSTANT: SPEAKER_5POINT1_SURROUND HEX: 0000060F
105 CONSTANT: SPEAKER_7POINT1_SURROUND HEX: 0002860F