xref: /netbsd-src/external/gpl3/gcc/dist/libphobos/libdruntime/core/sys/windows/msacm.d (revision 0a3071956a3a9fdebdbf7f338cf2d439b45fc728)
1 /**
2  * Windows API header module
3  *
4  * Translated from MinGW Windows headers
5  *
6  * Authors: Stewart Gordon
7  * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
8  * Source: $(DRUNTIMESRC core/sys/windows/_msacm.d)
9  */
10 module core.sys.windows.msacm;
version(Windows)11 version (Windows):
12 @system:
13 
14 version (ANSI) {} else version = Unicode;
15 
16 import core.sys.windows.basetsd, core.sys.windows.mmsystem, core.sys.windows.windef;
17 
18 mixin DECLARE_HANDLE!("HACMDRIVERID");
19 mixin DECLARE_HANDLE!("HACMDRIVER");
20 alias HACMDRIVER* LPHACMDRIVER;
21 
22 enum size_t
23     ACMDRIVERDETAILS_SHORTNAME_CHARS =  32,
24     ACMDRIVERDETAILS_LONGNAME_CHARS  = 128,
25     ACMDRIVERDETAILS_COPYRIGHT_CHARS =  80,
26     ACMDRIVERDETAILS_LICENSING_CHARS = 128,
27     ACMDRIVERDETAILS_FEATURES_CHARS  = 512;
28 
29 enum size_t
30     ACMFORMATDETAILS_FORMAT_CHARS       = 128,
31     ACMFORMATTAGDETAILS_FORMATTAG_CHARS = 48;
32 
33 align(1):
34 
35 struct ACMFORMATDETAILSA {
36     DWORD          cbStruct = ACMFORMATDETAILSA.sizeof;
37     DWORD          dwFormatIndex;
38     DWORD          dwFormatTag;
39     DWORD          fdwSupport;
40     LPWAVEFORMATEX pwfx;
41     DWORD          cbwfx;
42     char[ACMFORMATDETAILS_FORMAT_CHARS] szFormat = 0;
43 }
44 alias ACMFORMATDETAILSA* LPACMFORMATDETAILSA;
45 
46 struct ACMFORMATDETAILSW {
47     DWORD          cbStruct = ACMFORMATDETAILSW.sizeof;
48     DWORD          dwFormatIndex;
49     DWORD          dwFormatTag;
50     DWORD          fdwSupport;
51     LPWAVEFORMATEX pwfx;
52     DWORD          cbwfx;
53     WCHAR[ACMFORMATDETAILS_FORMAT_CHARS] szFormat = 0;
54 }
55 alias ACMFORMATDETAILSW* LPACMFORMATDETAILSW;
56 
57 struct ACMFORMATTAGDETAILSA {
58     DWORD cbStruct = ACMFORMATTAGDETAILSA.sizeof;
59     DWORD dwFormatTagIndex;
60     DWORD dwFormatTag;
61     DWORD cbFormatSize;
62     DWORD fdwSupport;
63     DWORD cStandardFormats;
64     char[ACMFORMATTAGDETAILS_FORMATTAG_CHARS] szFormatTag = 0;
65 }
66 alias ACMFORMATTAGDETAILSA* LPACMFORMATTAGDETAILSA;
67 
68 struct ACMFORMATTAGDETAILSW {
69     DWORD cbStruct = ACMFORMATTAGDETAILSW.sizeof;
70     DWORD dwFormatTagIndex;
71     DWORD dwFormatTag;
72     DWORD cbFormatSize;
73     DWORD fdwSupport;
74     DWORD cStandardFormats;
75     WCHAR[ACMFORMATTAGDETAILS_FORMATTAG_CHARS] szFormatTag = 0;
76 }
77 alias ACMFORMATTAGDETAILSW* LPACMFORMATTAGDETAILSW;
78 
79 struct ACMDRIVERDETAILSA {
80 align(1):
81     DWORD  cbStruct = ACMDRIVERDETAILSA.sizeof;
82     FOURCC fccType;
83     FOURCC fccComp;
84     WORD   wMid;
85     WORD   wPid;
86     DWORD  vdwACM;
87     DWORD  vdwDriver;
88     DWORD  fdwSupport;
89     DWORD  cFormatTags;
90     DWORD  cFilterTags;
91     HICON  hicon;
92     char[ACMDRIVERDETAILS_SHORTNAME_CHARS] szShortName = 0;
93     char[ACMDRIVERDETAILS_LONGNAME_CHARS]  szLongName = 0;
94     char[ACMDRIVERDETAILS_COPYRIGHT_CHARS] szCopyright = 0;
95     char[ACMDRIVERDETAILS_LICENSING_CHARS] szLicensing = 0;
96     char[ACMDRIVERDETAILS_FEATURES_CHARS]  szFeatures = 0;
97 }
98 alias ACMDRIVERDETAILSA* LPACMDRIVERDETAILSA;
99 
100 struct ACMDRIVERDETAILSW {
101 align(1):
102     DWORD  cbStruct = ACMDRIVERDETAILSW.sizeof;
103     FOURCC fccType;
104     FOURCC fccComp;
105     WORD   wMid;
106     WORD   wPid;
107     DWORD  vdwACM;
108     DWORD  vdwDriver;
109     DWORD  fdwSupport;
110     DWORD  cFormatTags;
111     DWORD  cFilterTags;
112     HICON  hicon;
113     WCHAR[ACMDRIVERDETAILS_SHORTNAME_CHARS] szShortName = 0;
114     WCHAR[ACMDRIVERDETAILS_LONGNAME_CHARS]  szLongName = 0;
115     WCHAR[ACMDRIVERDETAILS_COPYRIGHT_CHARS] szCopyright = 0;
116     WCHAR[ACMDRIVERDETAILS_LICENSING_CHARS] szLicensing = 0;
117     WCHAR[ACMDRIVERDETAILS_FEATURES_CHARS]  szFeatures = 0;
118 }
119 alias ACMDRIVERDETAILSW* LPACMDRIVERDETAILSW;
120 
121 extern (Windows) {
122     alias BOOL function(HACMDRIVERID hadid, LPACMFORMATDETAILSA pafd,
123       DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATENUMCBA;
124     alias BOOL function(HACMDRIVERID hadid, LPACMFORMATDETAILSW pafd,
125       DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATENUMCBW;
126     alias BOOL function(HACMDRIVERID hadid, LPACMFORMATTAGDETAILSA paftd,
127       DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATTAGENUMCBA;
128     alias BOOL function(HACMDRIVERID hadid, LPACMFORMATTAGDETAILSW paftd,
129       DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATTAGENUMCBW;
130     alias BOOL function(HACMDRIVERID hadid, DWORD_PTR dwInstance,
131       DWORD fdwSupport) ACMDRIVERENUMCB;
132 
133     MMRESULT acmDriverOpen(LPHACMDRIVER phad, HACMDRIVERID hadid,
134       DWORD fdwOpen);
135     MMRESULT acmDriverEnum(ACMDRIVERENUMCB fnCallback, DWORD_PTR dwInstance,
136       DWORD fdwEnum);
137     MMRESULT acmFormatEnumA(HACMDRIVER had, LPACMFORMATDETAILSA pafd,
138       ACMFORMATENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
139     MMRESULT acmFormatEnumW(HACMDRIVER had, LPACMFORMATDETAILSW pafd,
140       ACMFORMATENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
141     MMRESULT acmDriverClose(HACMDRIVER had, DWORD fdwClose);
142     MMRESULT acmDriverDetailsA(HACMDRIVERID hadid, LPACMDRIVERDETAILSA padd,
143       DWORD fdwDetails);
144     MMRESULT acmDriverDetailsW(HACMDRIVERID hadid, LPACMDRIVERDETAILSW padd,
145       DWORD fdwDetails);
146     MMRESULT acmFormatTagEnumA(HACMDRIVER had, LPACMFORMATTAGDETAILSA paftd,
147       ACMFORMATTAGENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
148     MMRESULT acmFormatTagEnumW(HACMDRIVER had, LPACMFORMATTAGDETAILSW paftd,
149       ACMFORMATTAGENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
150 }
151 
version(Unicode)152 version (Unicode) {
153     alias ACMFORMATDETAILSW ACMFORMATDETAILS;
154     alias ACMFORMATTAGDETAILSW ACMFORMATTAGDETAILS;
155     alias ACMDRIVERDETAILSW ACMDRIVERDETAILS;
156     alias ACMFORMATENUMCBW ACMFORMATENUMCB;
157     alias ACMFORMATTAGENUMCBW ACMFORMATTAGENUMCB;
158     alias acmFormatEnumW acmFormatEnum;
159     alias acmDriverDetailsW acmDriverDetails;
160     alias acmFormatTagEnumW acmFormatTagEnum;
161 } else {
162     alias ACMFORMATDETAILSA ACMFORMATDETAILS;
163     alias ACMFORMATTAGDETAILSA ACMFORMATTAGDETAILS;
164     alias ACMDRIVERDETAILSA ACMDRIVERDETAILS;
165     alias ACMFORMATENUMCBA ACMFORMATENUMCB;
166     alias ACMFORMATTAGENUMCBA ACMFORMATTAGENUMCB;
167     alias acmFormatEnumA acmFormatEnum;
168     alias acmDriverDetailsA acmDriverDetails;
169     alias acmFormatTagEnumA acmFormatTagEnum;
170 }
171 
172 alias ACMFORMATDETAILS* LPACMFORMATDETAILS;
173 alias ACMFORMATTAGDETAILS* LPACMFORMATTAGDETAILS;
174 alias ACMDRIVERDETAILS* LPACMDRIVERDETAILS;
175