1 /* -*- tab-width: 8; c-basic-offset: 4 -*- */
3 * Copyright 2000 Eric Pouech
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 #ifndef __WINE_WINEACM_H
21 #define __WINE_WINEACM_H
23 #include "wine/windef16.h"
24 #include "wine/mmsystem16.h"
26 /***********************************************************************
29 typedef BOOL16 (CALLBACK
*ACMDRIVERENUMCB16
)(
30 HACMDRIVERID16 hadid
, DWORD dwInstance
, DWORD fdwSupport
32 typedef UINT (CALLBACK
*ACMFILTERCHOOSEHOOKPROC16
)(
33 HWND hwnd
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
35 typedef UINT16 (CALLBACK
*ACMFORMATCHOOSEHOOKPROC16
)(
36 HWND16 hwnd
, UINT16 uMsg
, WPARAM16 wParam
, LPARAM lParam
39 typedef struct _ACMDRIVERDETAILS16
58 CHAR szShortName
[ACMDRIVERDETAILS_SHORTNAME_CHARS
];
59 CHAR szLongName
[ACMDRIVERDETAILS_LONGNAME_CHARS
];
60 CHAR szCopyright
[ACMDRIVERDETAILS_COPYRIGHT_CHARS
];
61 CHAR szLicensing
[ACMDRIVERDETAILS_LICENSING_CHARS
];
62 CHAR szFeatures
[ACMDRIVERDETAILS_FEATURES_CHARS
];
63 } ACMDRIVERDETAILS16
, *NPACMDRIVERDETAILS16
, *LPACMDRIVERDETAILS16
;
65 typedef struct _ACMFILTERCHOOSE16
77 char szFilterTag
[ACMFILTERTAGDETAILS_FILTERTAG_CHARS
];
78 char szFilter
[ACMFILTERDETAILS_FILTER_CHARS
];
83 LPWAVEFILTER pwfltrEnum
;
85 HINSTANCE16 hInstance
;
86 LPCSTR pszTemplateName
;
88 ACMFILTERCHOOSEHOOKPROC16 pfnHook
;
89 } ACMFILTERCHOOSE16
, *NPACMFILTERCHOOSE16
, *LPACMFILTERCHOOSE16
;
91 typedef struct _ACMFILTERDETAILS16
99 CHAR szFilter
[ACMFILTERDETAILS_FILTER_CHARS
];
100 } ACMFILTERDETAILS16
, *NPACMFILTERDETAILS16
, *LPACMFILTERDETAILS16
;
102 typedef struct _ACMFILTERTAGDETAILS16
105 DWORD dwFilterTagIndex
;
109 DWORD cStandardFilters
;
110 CHAR szFilterTag
[ACMFILTERTAGDETAILS_FILTERTAG_CHARS
];
111 } ACMFILTERTAGDETAILS16
, *NPACMFILTERTAGDETAILS16
, *LPACMFILTERTAGDETAILS16
;
113 typedef struct _ACMFORMATCHOOSE16
124 CHAR szFormatTag
[ACMFORMATTAGDETAILS_FORMATTAG_CHARS
];
125 CHAR szFormat
[ACMFORMATDETAILS_FORMAT_CHARS
];
131 LPWAVEFORMATEX pwfxEnum
;
133 HINSTANCE16 hInstance
;
134 LPCSTR pszTemplateName
;
136 ACMFORMATCHOOSEHOOKPROC16 pfnHook
;
137 } ACMFORMATCHOOSE16
, *NPACMFORMATCHOOSE16
, *LPACMFORMATCHOOSE16
;
139 typedef struct _ACMFORMATDETAILS16
147 CHAR szFormat
[ACMFORMATDETAILS_FORMAT_CHARS
];
148 } ACMFORMATDETAILS16
, *NPACMFORMATDETAILS16
, *LPACMFORMATDETAILS16
;
150 typedef struct _ACMFORMATTAGDETAILS16
153 DWORD dwFormatTagIndex
;
157 DWORD cStandardFormats
;
158 CHAR szFormatTag
[ACMFORMATTAGDETAILS_FORMATTAG_CHARS
];
159 } ACMFORMATTAGDETAILS16
, *NPACMFORMATTAGDETAILS16
, *LPACMFORMATTAGDETAILS16
;
161 typedef ACMSTREAMHEADER ACMSTREAMHEADER16
, *NPACMSTREAMHEADER16
, *LPACMSTREAMHEADER16
;
163 typedef BOOL16 (CALLBACK
*ACMFILTERENUMCB16
)(
164 HACMDRIVERID16 hadid
, LPACMFILTERDETAILS16 pafd
,
165 DWORD dwInstance
, DWORD fdwSupport
168 typedef BOOL16 (CALLBACK
*ACMFILTERTAGENUMCB16
)(
169 HACMDRIVERID16 hadid
, LPACMFILTERTAGDETAILS16 paftd
,
170 DWORD dwInstance
, DWORD fdwSupport
173 typedef BOOL16 (CALLBACK
*ACMFORMATENUMCB16
)(
174 HACMDRIVERID16 hadid
, LPACMFORMATDETAILS16 pafd
,
175 DWORD dwInstance
, DWORD fdwSupport
178 typedef BOOL16 (CALLBACK
*ACMFORMATTAGENUMCB16
)(
179 HACMDRIVERID16 hadid
, LPACMFORMATTAGDETAILS16 paftd
,
180 DWORD dwInstance
, DWORD fdwSupport
183 /***********************************************************************
187 DWORD WINAPI
acmGetVersion16(
189 MMRESULT16 WINAPI
acmMetrics16(
190 HACMOBJ16 hao
, UINT16 uMetric
, LPVOID pMetric
192 MMRESULT16 WINAPI
acmDriverEnum16(
193 ACMDRIVERENUMCB16 fnCallback
, DWORD dwInstance
, DWORD fdwEnum
195 MMRESULT16 WINAPI
acmDriverDetails16(
196 HACMDRIVERID16 hadid
, LPACMDRIVERDETAILS16 padd
, DWORD fdwDetails
198 MMRESULT16 WINAPI
acmDriverAdd16(
199 LPHACMDRIVERID16 phadid
, HINSTANCE16 hinstModule
,
200 LPARAM lParam
, DWORD dwPriority
, DWORD fdwAdd
202 MMRESULT16 WINAPI
acmDriverRemove16(
203 HACMDRIVERID16 hadid
, DWORD fdwRemove
205 MMRESULT16 WINAPI
acmDriverOpen16(
206 LPHACMDRIVER16 phad
, HACMDRIVERID16 hadid
, DWORD fdwOpen
208 MMRESULT16 WINAPI
acmDriverClose16(
209 HACMDRIVER16 had
, DWORD fdwClose
211 LRESULT WINAPI
acmDriverMessage16(
212 HACMDRIVER16 had
, UINT16 uMsg
, LPARAM lParam1
, LPARAM lParam2
214 MMRESULT16 WINAPI
acmDriverID16(
215 HACMOBJ16 hao
, LPHACMDRIVERID16 phadid
, DWORD fdwDriverID
217 MMRESULT16 WINAPI
acmDriverPriority16(
218 HACMDRIVERID16 hadid
, DWORD dwPriority
, DWORD fdwPriority
220 MMRESULT16 WINAPI
acmFormatTagDetails16(
221 HACMDRIVER16 had
, LPACMFORMATTAGDETAILS16 paftd
, DWORD fdwDetails
223 MMRESULT16 WINAPI
acmFormatTagEnum16(
224 HACMDRIVER16 had
, LPACMFORMATTAGDETAILS16 paftd
,
225 ACMFORMATTAGENUMCB16 fnCallback
, DWORD dwInstance
, DWORD fdwEnum
227 MMRESULT16 WINAPI
acmFormatChoose16(
228 LPACMFORMATCHOOSE16 pafmtc
230 MMRESULT16 WINAPI
acmFormatDetails16(
231 HACMDRIVER16 had
, LPACMFORMATDETAILS16 pafd
, DWORD fdwDetails
233 MMRESULT16 WINAPI
acmFormatEnum16(
234 HACMDRIVER16 had
, LPACMFORMATDETAILS16 pafd
,
235 ACMFORMATENUMCB16 fnCallback
, DWORD dwInstance
, DWORD fdwEnum
237 MMRESULT16 WINAPI
acmFormatSuggest16(
238 HACMDRIVER16 had
, LPWAVEFORMATEX pwfxSrc
,
239 LPWAVEFORMATEX pwfxDst
, DWORD cbwfxDst
, DWORD fdwSuggest
241 MMRESULT16 WINAPI
acmFilterTagDetails16(
242 HACMDRIVER16 had
, LPACMFILTERTAGDETAILS16 paftd
, DWORD fdwDetails
244 MMRESULT16 WINAPI
acmFilterTagEnum16(
245 HACMDRIVER16 had
, LPACMFILTERTAGDETAILS16 paftd
,
246 ACMFILTERTAGENUMCB16 fnCallback
, DWORD dwInstance
, DWORD fdwEnum
248 MMRESULT16 WINAPI
acmFilterChoose16(
249 LPACMFILTERCHOOSE16 pafltrc
251 MMRESULT16 WINAPI
acmFilterDetails16(
252 HACMDRIVER16 had
, LPACMFILTERDETAILS16 pafd
, DWORD fdwDetails
254 MMRESULT16 WINAPI
acmFilterEnum16(
255 HACMDRIVER16 had
, LPACMFILTERDETAILS16 pafd
,
256 ACMFILTERENUMCB16 fnCallback
, DWORD dwInstance
, DWORD fdwEnum
258 MMRESULT16 WINAPI
acmStreamOpen16(
259 LPHACMSTREAM16 phas
, HACMDRIVER16 had
,
260 LPWAVEFORMATEX pwfxSrc
, LPWAVEFORMATEX pwfxDst
,
261 LPWAVEFILTER pwfltr
, DWORD dwCallback
,
262 DWORD dwInstance
, DWORD fdwOpen
264 MMRESULT16 WINAPI
acmStreamClose16(
265 HACMSTREAM16 has
, DWORD fdwClose
267 MMRESULT16 WINAPI
acmStreamSize16(
268 HACMSTREAM16 has
, DWORD cbInput
,
269 LPDWORD pdwOutputBytes
, DWORD fdwSize
271 MMRESULT16 WINAPI
acmStreamConvert16(
272 HACMSTREAM16 has
, LPACMSTREAMHEADER16 pash
, DWORD fdwConvert
274 MMRESULT16 WINAPI
acmStreamReset16(
275 HACMSTREAM16 has
, DWORD fdwReset
277 MMRESULT16 WINAPI
acmStreamPrepareHeader16(
278 HACMSTREAM16 has
, LPACMSTREAMHEADER16 pash
, DWORD fdwPrepare
280 MMRESULT16 WINAPI
acmStreamUnprepareHeader16(
281 HACMSTREAM16 has
, LPACMSTREAMHEADER16 pash
, DWORD fdwUnprepare
285 /***********************************************************************
286 * Wine specific - Win32
288 typedef struct _WINE_ACMDRIVERID
*PWINE_ACMDRIVERID
;
289 typedef struct _WINE_ACMDRIVER
*PWINE_ACMDRIVER
;
291 #define WINE_ACMOBJ_DONTCARE 0x5EED0000
292 #define WINE_ACMOBJ_DRIVERID 0x5EED0001
293 #define WINE_ACMOBJ_DRIVER 0x5EED0002
294 #define WINE_ACMOBJ_STREAM 0x5EED0003
296 typedef struct _WINE_ACMOBJ
299 PWINE_ACMDRIVERID pACMDriverID
;
300 } WINE_ACMOBJ
, *PWINE_ACMOBJ
;
302 typedef struct _WINE_ACMDRIVER
306 PWINE_ACMDRIVER pNextACMDriver
;
309 typedef struct _WINE_ACMSTREAM
312 PWINE_ACMDRIVER pDrv
;
313 ACMDRVSTREAMINSTANCE drvInst
;
314 HACMDRIVER hAcmDriver
;
315 } WINE_ACMSTREAM
, *PWINE_ACMSTREAM
;
317 typedef struct _WINE_ACMDRIVERID
320 LPSTR pszDriverAlias
;
322 HINSTANCE hInstModule
; /* NULL if global */
323 PWINE_ACMDRIVER pACMDriverList
;
324 PWINE_ACMDRIVERID pNextACMDriverID
;
325 PWINE_ACMDRIVERID pPrevACMDriverID
;
326 /* information about the driver itself, either gotten from registry or driver itself */
336 /* From internal.c */
337 extern HANDLE MSACM_hHeap
;
338 extern PWINE_ACMDRIVERID MSACM_pFirstACMDriverID
;
339 extern PWINE_ACMDRIVERID MSACM_pLastACMDriverID
;
340 extern PWINE_ACMDRIVERID
MSACM_RegisterDriver(LPSTR pszDriverAlias
, LPSTR pszFileName
,
341 HINSTANCE hinstModule
);
342 extern void MSACM_RegisterAllDrivers(void);
343 extern PWINE_ACMDRIVERID
MSACM_UnregisterDriver(PWINE_ACMDRIVERID p
);
344 extern void MSACM_UnregisterAllDrivers(void);
345 extern PWINE_ACMDRIVERID
MSACM_GetDriverID(HACMDRIVERID hDriverID
);
346 extern PWINE_ACMDRIVER
MSACM_GetDriver(HACMDRIVER hDriver
);
347 extern PWINE_ACMOBJ
MSACM_GetObj(HACMOBJ hObj
, DWORD type
);
349 extern MMRESULT
MSACM_Message(HACMDRIVER
, UINT
, LPARAM
, LPARAM
);
350 extern BOOL
MSACM_FindFormatTagInCache(WINE_ACMDRIVERID
*, DWORD
, LPDWORD
);
353 extern HINSTANCE MSACM_hInstance32
;
355 /* From pcmcnvtr.c */
356 LRESULT CALLBACK
PCM_DriverProc(DWORD dwDevID
, HDRVR hDriv
, UINT wMsg
,
357 LPARAM dwParam1
, LPARAM dwParam2
);
359 /* Dialog box templates */
360 #include "msacmdlg.h"
362 #endif /* __WINE_WINEACM_H */