1 /* -*- tab-width: 8; c-basic-offset: 4 -*- */
2 #ifndef __WINE_WINEACM_H
3 #define __WINE_WINEACM_H
5 #include "wine/windef16.h"
6 #include "wine/mmsystem16.h"
8 /***********************************************************************
11 typedef BOOL16 (CALLBACK *ACMDRIVERENUMCB16)(
12 HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport
14 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROC16)(
15 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
17 typedef UINT16 (CALLBACK *ACMFORMATCHOOSEHOOKPROC16)(
18 HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam
21 typedef struct _ACMDRIVERDETAILS16
40 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
41 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
42 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
43 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
44 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
45 } ACMDRIVERDETAILS16, *NPACMDRIVERDETAILS16, *LPACMDRIVERDETAILS16;
47 typedef struct _ACMFILTERCHOOSE16
59 char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
60 char szFilter[ACMFILTERDETAILS_FILTER_CHARS];
65 LPWAVEFILTER pwfltrEnum;
67 HINSTANCE16 hInstance;
68 LPCSTR pszTemplateName;
70 ACMFILTERCHOOSEHOOKPROC16 pfnHook;
71 } ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16;
73 typedef struct _ACMFILTERDETAILS16
81 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
82 } ACMFILTERDETAILS16, *NPACMFILTERDETAILS16, *LPACMFILTERDETAILS16;
84 typedef struct _ACMFILTERTAGDETAILS16
87 DWORD dwFilterTagIndex;
91 DWORD cStandardFilters;
92 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
93 } ACMFILTERTAGDETAILS16, *NPACMFILTERTAGDETAILS16, *LPACMFILTERTAGDETAILS16;
95 typedef struct _ACMFORMATCHOOSE16
106 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
107 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
113 LPWAVEFORMATEX pwfxEnum;
115 HINSTANCE16 hInstance;
116 LPCSTR pszTemplateName;
118 ACMFORMATCHOOSEHOOKPROC16 pfnHook;
119 } ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16;
121 typedef struct _ACMFORMATDETAILS16
129 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
130 } ACMFORMATDETAILS16, *NPACMFORMATDETAILS16, *LPACMFORMATDETAILS16;
132 typedef struct _ACMFORMATTAGDETAILS16
135 DWORD dwFormatTagIndex;
139 DWORD cStandardFormats;
140 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
141 } ACMFORMATTAGDETAILS16, *NPACMFORMATTAGDETAILS16, *LPACMFORMATTAGDETAILS16;
143 typedef ACMSTREAMHEADER ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16;
145 typedef BOOL16 (CALLBACK *ACMFILTERENUMCB16)(
146 HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd,
147 DWORD dwInstance, DWORD fdwSupport
150 typedef BOOL16 (CALLBACK *ACMFILTERTAGENUMCB16)(
151 HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd,
152 DWORD dwInstance, DWORD fdwSupport
155 typedef BOOL16 (CALLBACK *ACMFORMATENUMCB16)(
156 HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd,
157 DWORD dwInstance, DWORD fdwSupport
160 typedef BOOL16 (CALLBACK *ACMFORMATTAGENUMCB16)(
161 HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd,
162 DWORD dwInstance, DWORD fdwSupport
165 /***********************************************************************
169 DWORD WINAPI acmGetVersion16(
171 MMRESULT16 WINAPI acmMetrics16(
172 HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric
174 MMRESULT16 WINAPI acmDriverEnum16(
175 ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
177 MMRESULT16 WINAPI acmDriverDetails16(
178 HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails
180 MMRESULT16 WINAPI acmDriverAdd16(
181 LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
182 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
184 MMRESULT16 WINAPI acmDriverRemove16(
185 HACMDRIVERID16 hadid, DWORD fdwRemove
187 MMRESULT16 WINAPI acmDriverOpen16(
188 LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen
190 MMRESULT16 WINAPI acmDriverClose16(
191 HACMDRIVER16 had, DWORD fdwClose
193 LRESULT WINAPI acmDriverMessage16(
194 HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2
196 MMRESULT16 WINAPI acmDriverID16(
197 HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID
199 MMRESULT16 WINAPI acmDriverPriority16(
200 HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority
202 MMRESULT16 WINAPI acmFormatTagDetails16(
203 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails
205 MMRESULT16 WINAPI acmFormatTagEnum16(
206 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
207 ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
209 MMRESULT16 WINAPI acmFormatChoose16(
210 LPACMFORMATCHOOSE16 pafmtc
212 MMRESULT16 WINAPI acmFormatDetails16(
213 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails
215 MMRESULT16 WINAPI acmFormatEnum16(
216 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
217 ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
219 MMRESULT16 WINAPI acmFormatSuggest16(
220 HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc,
221 LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest
223 MMRESULT16 WINAPI acmFilterTagDetails16(
224 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails
226 MMRESULT16 WINAPI acmFilterTagEnum16(
227 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
228 ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
230 MMRESULT16 WINAPI acmFilterChoose16(
231 LPACMFILTERCHOOSE16 pafltrc
233 MMRESULT16 WINAPI acmFilterDetails16(
234 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails
236 MMRESULT16 WINAPI acmFilterEnum16(
237 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
238 ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
240 MMRESULT16 WINAPI acmStreamOpen16(
241 LPHACMSTREAM16 phas, HACMDRIVER16 had,
242 LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
243 LPWAVEFILTER pwfltr, DWORD dwCallback,
244 DWORD dwInstance, DWORD fdwOpen
246 MMRESULT16 WINAPI acmStreamClose16(
247 HACMSTREAM16 has, DWORD fdwClose
249 MMRESULT16 WINAPI acmStreamSize16(
250 HACMSTREAM16 has, DWORD cbInput,
251 LPDWORD pdwOutputBytes, DWORD fdwSize
253 MMRESULT16 WINAPI acmStreamConvert16(
254 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert
256 MMRESULT16 WINAPI acmStreamReset16(
257 HACMSTREAM16 has, DWORD fdwReset
259 MMRESULT16 WINAPI acmStreamPrepareHeader16(
260 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare
262 MMRESULT16 WINAPI acmStreamUnprepareHeader16(
263 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare
267 /***********************************************************************
268 * Wine specific - Win32
270 typedef struct _WINE_ACMDRIVERID *PWINE_ACMDRIVERID;
271 typedef struct _WINE_ACMDRIVER *PWINE_ACMDRIVER;
273 #define WINE_ACMOBJ_DONTCARE 0x5EED0000
274 #define WINE_ACMOBJ_DRIVERID 0x5EED0001
275 #define WINE_ACMOBJ_DRIVER 0x5EED0002
276 #define WINE_ACMOBJ_STREAM 0x5EED0003
278 typedef struct _WINE_ACMOBJ
281 PWINE_ACMDRIVERID pACMDriverID;
282 } WINE_ACMOBJ, *PWINE_ACMOBJ;
284 typedef struct _WINE_ACMDRIVER
288 PWINE_ACMDRIVER pNextACMDriver;
291 typedef struct _WINE_ACMSTREAM
294 PWINE_ACMDRIVER pDrv;
295 ACMDRVSTREAMINSTANCE drvInst;
296 HACMDRIVER hAcmDriver;
297 } WINE_ACMSTREAM, *PWINE_ACMSTREAM;
299 typedef struct _WINE_ACMDRIVERID
302 LPSTR pszDriverAlias;
304 HINSTANCE hInstModule; /* NULL if global */
305 PWINE_ACMDRIVER pACMDriverList;
306 PWINE_ACMDRIVERID pNextACMDriverID;
307 PWINE_ACMDRIVERID pPrevACMDriverID;
308 /* information about the driver itself, either gotten from registry or driver itself */
318 /* From internal.c */
319 extern HANDLE MSACM_hHeap;
320 extern PWINE_ACMDRIVERID MSACM_pFirstACMDriverID;
321 extern PWINE_ACMDRIVERID MSACM_pLastACMDriverID;
322 extern PWINE_ACMDRIVERID MSACM_RegisterDriver(LPSTR pszDriverAlias, LPSTR pszFileName,
323 HINSTANCE hinstModule);
324 extern void MSACM_RegisterAllDrivers(void);
325 extern PWINE_ACMDRIVERID MSACM_UnregisterDriver(PWINE_ACMDRIVERID p);
326 extern void MSACM_UnregisterAllDrivers(void);
327 extern PWINE_ACMDRIVERID MSACM_GetDriverID(HACMDRIVERID hDriverID);
328 extern PWINE_ACMDRIVER MSACM_GetDriver(HACMDRIVER hDriver);
329 extern PWINE_ACMOBJ MSACM_GetObj(HACMOBJ hObj, DWORD type);
331 extern MMRESULT MSACM_Message(HACMDRIVER, UINT, LPARAM, LPARAM);
332 extern BOOL MSACM_FindFormatTagInCache(WINE_ACMDRIVERID*, DWORD, LPDWORD);
335 extern HINSTANCE MSACM_hInstance32;
337 /* From pcmcnvtr.c */
338 LRESULT CALLBACK PCM_DriverProc(DWORD dwDevID, HDRVR hDriv, UINT wMsg,
339 LPARAM dwParam1, LPARAM dwParam2);
341 /* Dialog box templates */
342 #include "msacmdlg.h"
344 #endif /* __WINE_WINEACM_H */