Implement ResetDC and PHYSICALOFFSET[X|Y] devcaps.
[wine] / dlls / msacm / msacmdrv.h
1 /*
2  * Declarations for MSACM driver
3  *
4  * Copyright 1998 Patrik Stridvall
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20
21 #ifndef __WINE_MSACMDRV_H
22 #define __WINE_MSACMDRV_H
23
24 #include "windef.h"
25 #include "wine/windef16.h"
26 #include "msacm.h"
27
28 /***********************************************************************
29  * Types
30  */
31
32 /***********************************************************************
33  * Defines/Enums
34  */
35
36 #define MAKE_ACM_VERSION(mjr, mnr, bld) \
37   (((long)(mjr)<<24) | ((long)(mnr)<<16) | ((long)bld))
38
39 #define ACMDRVOPENDESC_SECTIONNAME_CHARS    
40
41 #define ACMDM_DRIVER_NOTIFY             (ACMDM_BASE + 1)
42 #define ACMDM_DRIVER_DETAILS            (ACMDM_BASE + 10)
43
44 #define ACMDM_HARDWARE_WAVE_CAPS_INPUT  (ACMDM_BASE + 20)
45 #define ACMDM_HARDWARE_WAVE_CAPS_OUTPUT (ACMDM_BASE + 21)
46
47 #define ACMDM_FORMATTAG_DETAILS         (ACMDM_BASE + 25)
48 #define ACMDM_FORMAT_DETAILS            (ACMDM_BASE + 26)
49 #define ACMDM_FORMAT_SUGGEST            (ACMDM_BASE + 27)
50
51 #define ACMDM_FILTERTAG_DETAILS         (ACMDM_BASE + 50)
52 #define ACMDM_FILTER_DETAILS            (ACMDM_BASE + 51)
53
54 #define ACMDM_STREAM_OPEN               (ACMDM_BASE + 76)
55 #define ACMDM_STREAM_CLOSE              (ACMDM_BASE + 77)
56 #define ACMDM_STREAM_SIZE               (ACMDM_BASE + 78)
57 #define ACMDM_STREAM_CONVERT            (ACMDM_BASE + 79)
58 #define ACMDM_STREAM_RESET              (ACMDM_BASE + 80)
59 #define ACMDM_STREAM_PREPARE            (ACMDM_BASE + 81)
60 #define ACMDM_STREAM_UNPREPARE          (ACMDM_BASE + 82)
61 #define ACMDM_STREAM_UPDATE             (ACMDM_BASE + 83)
62
63 /***********************************************************************
64  * Structures
65  */
66
67 typedef struct _ACMDRVOPENDESCA
68 {
69   DWORD  cbStruct;
70   FOURCC fccType;
71   FOURCC fccComp;
72   DWORD  dwVersion;
73   DWORD  dwFlags;
74   DWORD  dwError;
75   LPCSTR pszSectionName;
76   LPCSTR pszAliasName;
77   DWORD  dnDevNode;
78 } ACMDRVOPENDESCA, *PACMDRVOPENDESCA;
79
80 typedef struct _ACMDRVOPENDESCW
81 {
82   DWORD   cbStruct;
83   FOURCC  fccType;
84   FOURCC  fccComp;
85   DWORD   dwVersion;
86   DWORD   dwFlags;
87   DWORD   dwError;
88   LPCWSTR pszSectionName;
89   LPCWSTR pszAliasName;
90   DWORD   dnDevNode;
91 } ACMDRVOPENDESCW, *PACMDRVOPENDESCW;
92
93 typedef struct _ACMDRVOPENDESC16
94 {
95   DWORD  cbStruct;
96   FOURCC fccType;
97   FOURCC fccComp;
98   DWORD  dwVersion;
99   DWORD  dwFlags;
100   DWORD  dwError;
101   LPCSTR pszSectionName;
102   LPCSTR pszAliasName;
103   DWORD  dnDevNode;
104 } ACMDRVOPENDESC16, *NPACMDRVOPENDESC16, *LPACMDRVOPENDESC16;
105
106 typedef struct _ACMDRVSTREAMINSTANCE16
107 {
108   DWORD            cbStruct;
109   LPWAVEFORMATEX   pwfxSrc;
110   LPWAVEFORMATEX   pwfxDst;
111   LPWAVEFILTER     pwfltr;
112   DWORD            dwCallback;
113   DWORD            dwInstance;
114   DWORD            fdwOpen;
115   DWORD            fdwDriver;
116   DWORD            dwDriver;
117   HACMSTREAM16     has;
118 } ACMDRVSTREAMINSTANCE16, *NPACMDRVSTREAMINSTANCE16, *LPACMDRVSTREAMINSTANCE16;
119
120 typedef struct _ACMDRVSTREAMINSTANCE
121 {
122   DWORD           cbStruct;
123   PWAVEFORMATEX   pwfxSrc;
124   PWAVEFORMATEX   pwfxDst;
125   PWAVEFILTER     pwfltr;
126   DWORD           dwCallback;
127   DWORD           dwInstance;
128   DWORD           fdwOpen;
129   DWORD           fdwDriver;
130   DWORD           dwDriver;
131   HACMSTREAM    has;
132 } ACMDRVSTREAMINSTANCE, *PACMDRVSTREAMINSTANCE;
133
134 typedef struct _ACMDRVSTREAMHEADER16 *LPACMDRVSTREAMHEADER16;
135 typedef struct _ACMDRVSTREAMHEADER16 {
136   DWORD  cbStruct;
137   DWORD  fdwStatus;
138   DWORD  dwUser;
139   LPBYTE pbSrc;
140   DWORD  cbSrcLength;
141   DWORD  cbSrcLengthUsed;
142   DWORD  dwSrcUser;
143   LPBYTE pbDst;
144   DWORD  cbDstLength;
145   DWORD  cbDstLengthUsed;
146   DWORD  dwDstUser;
147
148   DWORD fdwConvert;
149   LPACMDRVSTREAMHEADER16 *padshNext;
150   DWORD fdwDriver;
151   DWORD dwDriver;
152
153   /* Internal fields for ACM */
154   DWORD  fdwPrepared;
155   DWORD  dwPrepared;
156   LPBYTE pbPreparedSrc;
157   DWORD  cbPreparedSrcLength;
158   LPBYTE pbPreparedDst;
159   DWORD  cbPreparedDstLength;
160 } ACMDRVSTREAMHEADER16, *NPACMDRVSTREAMHEADER16;
161
162 typedef struct _ACMDRVSTREAMHEADER *PACMDRVSTREAMHEADER;
163 typedef struct _ACMDRVSTREAMHEADER {
164   DWORD  cbStruct;
165   DWORD  fdwStatus;
166   DWORD  dwUser;
167   LPBYTE pbSrc;
168   DWORD  cbSrcLength;
169   DWORD  cbSrcLengthUsed;
170   DWORD  dwSrcUser;
171   LPBYTE pbDst;
172   DWORD  cbDstLength;
173   DWORD  cbDstLengthUsed;
174   DWORD  dwDstUser;
175
176   DWORD fdwConvert;
177   PACMDRVSTREAMHEADER *padshNext;
178   DWORD fdwDriver;
179   DWORD dwDriver;
180
181   /* Internal fields for ACM */
182   DWORD  fdwPrepared;
183   DWORD  dwPrepared;
184   LPBYTE pbPreparedSrc;
185   DWORD  cbPreparedSrcLength;
186   LPBYTE pbPreparedDst;
187   DWORD  cbPreparedDstLength;
188 } ACMDRVSTREAMHEADER;
189
190 typedef struct _ACMDRVSTREAMSIZE
191 {
192   DWORD cbStruct;
193   DWORD fdwSize;
194   DWORD cbSrcLength;
195   DWORD cbDstLength;
196 } ACMDRVSTREAMSIZE16, *NPACMDRVSTREAMSIZE16, *LPACMDRVSTREAMSIZE16,
197   ACMDRVSTREAMSIZE, *PACMDRVSTREAMSIZE;
198
199 typedef struct _ACMDRVFORMATSUGGEST16
200 {
201   DWORD            cbStruct;
202   DWORD            fdwSuggest;
203   LPWAVEFORMATEX   pwfxSrc;
204   DWORD            cbwfxSrc;
205   LPWAVEFORMATEX   pwfxDst;
206   DWORD            cbwfxDst;
207 } ACMDRVFORMATSUGGEST16, *NPACMDRVFORMATSUGGEST, *LPACMDRVFORMATSUGGEST;
208
209 typedef struct _ACMDRVFORMATSUGGEST
210 {
211   DWORD           cbStruct;
212   DWORD           fdwSuggest;
213   PWAVEFORMATEX   pwfxSrc;
214   DWORD           cbwfxSrc;
215   PWAVEFORMATEX   pwfxDst;
216   DWORD           cbwfxDst;
217 } ACMDRVFORMATSUGGEST, *PACMDRVFORMATSUGGEST;
218
219 #endif  /* __WINE_MSACMDRV_H */