~steve-sk2/mingw-w64/oneiric

« back to all changes in this revision

Viewing changes to mingw-w64-headers/ddk/include/ddk/dmusicks.h

  • Committer: Bazaar Package Importer
  • Author(s): Stephen Kitt
  • Date: 2010-11-18 00:04:46 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20101118000446-xe24b423su55onyl
Tags: 1.0+20101003-1
* New maintainer. (Closes: #594371.)
* New upstream snapshot:
  - Includes getopt.h. (Closes: #569914.)
* Build g++ for Win64. (Closes: #600451.)
* Standards-Version 3.9.1 (new packaging).
* Include patch from
  http://mingw-w64.svn.sourceforge.net/viewvc/mingw-w64?view=revision&revision=3715
  as suggested by Rafaël Carré.

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
typedef LONGLONG REFERENCE_TIME;
8
8
#endif
9
9
 
10
 
typedef struct _DMUS_KERNEL_EVENT
11
 
{
12
 
    BYTE bReserved;
13
 
    BYTE cbStruct;
14
 
    USHORT cbEvent;
15
 
    USHORT usChannelGroup;
16
 
    USHORT usFlags;
17
 
    REFERENCE_TIME ullPresTime100ns;
18
 
    ULONGLONG ullBytePosition;
19
 
    struct _DMUS_KERNEL_EVENT *pNextEvt;
20
 
    union
21
 
    {
22
 
        BYTE abData[sizeof(PBYTE)];
23
 
        PBYTE pbData;
24
 
        struct _DMUS_KERNEL_EVENT *pPackageEvt;
25
 
    }uData;
26
 
}DMUS_KERNEL_EVENT, *PDMUS_KERNEL_EVENT;
27
 
 
28
 
typedef enum
29
 
{
30
 
    DMUS_STREAM_MIDI_INVALID = -1,
31
 
    DMUS_STREAM_MIDI_RENDER = 0,
32
 
    DMUS_STREAM_MIDI_CAPTURE,
33
 
    DMUS_STREAM_WAVE_SINK
34
 
}DMUS_STREAM_TYPE;
35
 
 
36
 
DEFINE_GUID(CLSID_MiniportDriverDMusUART, 0xd3f0ce1c, 0xFFFC, 0x11D1, 0x81, 0xB0, 0x00, 0x60, 0x08, 0x33, 0x16, 0xC1);
 
10
typedef struct _DMUS_KERNEL_EVENT {
 
11
  BYTE bReserved;
 
12
  BYTE cbStruct;
 
13
  USHORT cbEvent;
 
14
  USHORT usChannelGroup;
 
15
  USHORT usFlags;
 
16
  REFERENCE_TIME ullPresTime100ns;
 
17
  ULONGLONG ullBytePosition;
 
18
  struct _DMUS_KERNEL_EVENT *pNextEvt;
 
19
  union {
 
20
    BYTE abData[sizeof(PBYTE)];
 
21
    PBYTE pbData;
 
22
    struct _DMUS_KERNEL_EVENT *pPackageEvt;
 
23
  } uData;
 
24
} DMUS_KERNEL_EVENT, *PDMUS_KERNEL_EVENT;
 
25
 
 
26
typedef enum {
 
27
  DMUS_STREAM_MIDI_INVALID = -1,
 
28
  DMUS_STREAM_MIDI_RENDER = 0,
 
29
  DMUS_STREAM_MIDI_CAPTURE,
 
30
  DMUS_STREAM_WAVE_SINK
 
31
} DMUS_STREAM_TYPE;
 
32
 
 
33
DEFINE_GUID(CLSID_MiniportDriverDMusUART,        0xd3f0ce1c, 0xFFFC, 0x11D1, 0x81, 0xB0, 0x00, 0x60, 0x08, 0x33, 0x16, 0xC1);
37
34
DEFINE_GUID(CLSID_MiniportDriverDMusUARTCapture, 0xD3F0CE1D, 0xFFFC, 0x11D1, 0x81, 0xB0, 0x00, 0x60, 0x08, 0x33, 0x16, 0xC1);
38
35
 
39
36
/* ===============================================================
43
40
#undef INTERFACE
44
41
#define INTERFACE IMasterClock
45
42
 
46
 
DECLARE_INTERFACE_(IMasterClock,IUnknown)
47
 
{
48
 
    DEFINE_ABSTRACT_UNKNOWN()
 
43
DECLARE_INTERFACE_(IMasterClock,IUnknown) {
 
44
  DEFINE_ABSTRACT_UNKNOWN()
49
45
 
50
 
    STDMETHOD_(NTSTATUS,GetTime)( THIS_
51
 
        OUT     REFERENCE_TIME  * pTime
52
 
    ) PURE;
 
46
  STDMETHOD_(NTSTATUS,GetTime)( THIS_
 
47
    OUT REFERENCE_TIME *pTime
 
48
  ) PURE;
53
49
};
54
50
 
55
51
typedef IMasterClock *PMASTERCLOCK;
56
52
 
57
 
#define IMP_IMasterClock                    \
58
 
    STDMETHODIMP_(NTSTATUS) GetTime(        \
59
 
        OUT     REFERENCE_TIME  * pTime     \
60
 
    )
 
53
#define IMP_IMasterClock           \
 
54
  STDMETHODIMP_(NTSTATUS) GetTime( \
 
55
    OUT REFERENCE_TIME *pTime      \
 
56
  )
61
57
 
62
58
/* ===============================================================
63
59
    IMXF Interface
70
66
typedef struct IMXF *PMXF;
71
67
 
72
68
#define DEFINE_ABSTRACT_IMXF()                 \
73
 
    STDMETHOD_(NTSTATUS,SetState)(THIS_        \
74
 
        IN      KSSTATE State                  \
75
 
    ) PURE;                                    \
76
 
    STDMETHOD_(NTSTATUS,PutMessage)            \
77
 
    (   THIS_                                  \
78
 
        IN      PDMUS_KERNEL_EVENT  pDMKEvt    \
79
 
    ) PURE;                                    \
80
 
    STDMETHOD_(NTSTATUS,ConnectOutput)         \
81
 
    (   THIS_                                  \
82
 
        IN      PMXF    sinkMXF                \
83
 
    ) PURE;                                    \
84
 
    STDMETHOD_(NTSTATUS,DisconnectOutput)      \
85
 
    (   THIS_                                  \
86
 
        IN      PMXF    sinkMXF                \
87
 
    ) PURE;
88
 
 
89
 
#define IMP_IMXF                                \
90
 
    STDMETHODIMP_(NTSTATUS) SetState            \
91
 
    (                                           \
92
 
        IN      KSSTATE State                   \
93
 
    );                                          \
94
 
    STDMETHODIMP_(NTSTATUS) PutMessage          \
95
 
    (   THIS_                                   \
96
 
        IN      PDMUS_KERNEL_EVENT  pDMKEvt     \
97
 
    );                                          \
98
 
    STDMETHODIMP_(NTSTATUS) ConnectOutput       \
99
 
    (   THIS_                                   \
100
 
        IN      PMXF    sinkMXF                 \
101
 
    );                                          \
102
 
    STDMETHODIMP_(NTSTATUS) DisconnectOutput    \
103
 
    (   THIS_                                   \
104
 
        IN      PMXF    sinkMXF                 \
105
 
    )
106
 
 
107
 
 
108
 
DECLARE_INTERFACE_(IMXF,IUnknown)
109
 
{
110
 
    DEFINE_ABSTRACT_UNKNOWN()
111
 
 
112
 
    DEFINE_ABSTRACT_IMXF()
 
69
  STDMETHOD_(NTSTATUS,SetState)(THIS_          \
 
70
    IN KSSTATE State                           \
 
71
  ) PURE;                                      \
 
72
  STDMETHOD_(NTSTATUS,PutMessage)(THIS_        \
 
73
    IN PDMUS_KERNEL_EVENT pDMKEvt              \
 
74
  ) PURE;                                      \
 
75
  STDMETHOD_(NTSTATUS,ConnectOutput)(THIS_     \
 
76
    IN PMXF sinkMXF                            \
 
77
  ) PURE;                                      \
 
78
  STDMETHOD_(NTSTATUS,DisconnectOutput)(THIS_  \
 
79
    IN PMXF sinkMXF                            \
 
80
  ) PURE;
 
81
 
 
82
#define IMP_IMXF                                   \
 
83
  STDMETHODIMP_(NTSTATUS) SetState (               \
 
84
    IN KSSTATE State);                             \
 
85
  STDMETHODIMP_(NTSTATUS) PutMessage (THIS_        \
 
86
    IN PDMUS_KERNEL_EVENT pDMKEvt);                \
 
87
  STDMETHODIMP_(NTSTATUS) ConnectOutput (THIS_     \
 
88
    IN PMXF sinkMXF);                              \
 
89
  STDMETHODIMP_(NTSTATUS) DisconnectOutput (THIS_  \
 
90
    IN PMXF sinkMXF)
 
91
 
 
92
DECLARE_INTERFACE_(IMXF,IUnknown) {
 
93
  DEFINE_ABSTRACT_UNKNOWN()
 
94
  DEFINE_ABSTRACT_IMXF()
113
95
};
114
96
 
115
97
/* ===============================================================
123
105
typedef struct IAllocatorMXF *PAllocatorMXF;
124
106
 
125
107
#define STATIC_IID_IAllocatorMXF\
126
 
    0xa5f0d62c, 0xb30f, 0x11d2, 0xb7, 0xa3, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1
 
108
  0xa5f0d62c, 0xb30f, 0x11d2, 0xb7, 0xa3, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1
127
109
DEFINE_GUIDSTRUCT("a5f0d62c-b30f-11d2-b7a3-0060083316c1", IID_IAllocatorMXF);
128
110
#define IID_IAllocatorMXF DEFINE_GUIDNAMED(IID_IAllocatorMXF)
129
111
 
130
112
 
131
 
DECLARE_INTERFACE_(IAllocatorMXF, IMXF)
132
 
{
133
 
    DEFINE_ABSTRACT_UNKNOWN()
134
 
 
135
 
    DEFINE_ABSTRACT_IMXF()
136
 
 
137
 
    STDMETHOD_(NTSTATUS,GetMessage)(THIS_
138
 
        OUT     PDMUS_KERNEL_EVENT * ppDMKEvt
139
 
    ) PURE;
140
 
 
141
 
    STDMETHOD_(USHORT,GetBufferSize)(THIS) PURE;
142
 
 
143
 
    STDMETHOD_(NTSTATUS,GetBuffer)(THIS_
144
 
        OUT     PBYTE * ppBuffer
145
 
    )PURE;
146
 
 
147
 
    STDMETHOD_(NTSTATUS,PutBuffer)(THIS_
148
 
        IN      PBYTE   pBuffer
149
 
    )   PURE;
 
113
DECLARE_INTERFACE_(IAllocatorMXF, IMXF) {
 
114
  DEFINE_ABSTRACT_UNKNOWN()
 
115
 
 
116
  DEFINE_ABSTRACT_IMXF()
 
117
 
 
118
  STDMETHOD_(NTSTATUS,GetMessage)(THIS_
 
119
    OUT PDMUS_KERNEL_EVENT *ppDMKEvt
 
120
  ) PURE;
 
121
 
 
122
  STDMETHOD_(USHORT,GetBufferSize)(THIS) PURE;
 
123
 
 
124
  STDMETHOD_(NTSTATUS,GetBuffer)(THIS_
 
125
    OUT PBYTE *ppBuffer
 
126
  )PURE;
 
127
 
 
128
  STDMETHOD_(NTSTATUS,PutBuffer)(THIS_
 
129
    IN PBYTE pBuffer
 
130
  ) PURE;
150
131
};
151
132
 
152
 
#define IMP_IAllocatorMXF                               \
153
 
    IMP_IMXF;                                           \
154
 
    STDMETHODIMP_(NTSTATUS) GetMessage(                 \
155
 
        OUT     PDMUS_KERNEL_EVENT * ppDMKEvt           \
156
 
    );                                                  \
157
 
                                                        \
158
 
    STDMETHODIMP_(USHORT) GetBufferSize(void);          \
159
 
                                                        \
160
 
    STDMETHODIMP_(NTSTATUS) GetBuffer(                  \
161
 
        OUT     PBYTE * ppBuffer                        \
162
 
    );                                                  \
163
 
                                                        \
164
 
    STDMETHODIMP_(NTSTATUS) PutBuffer(                  \
165
 
        IN      PBYTE   pBuffer                         \
166
 
    )
 
133
#define IMP_IAllocatorMXF                     \
 
134
  IMP_IMXF;                                   \
 
135
  STDMETHODIMP_(NTSTATUS) GetMessage(         \
 
136
    OUT PDMUS_KERNEL_EVENT *ppDMKEvt);        \
 
137
                                              \
 
138
  STDMETHODIMP_(USHORT) GetBufferSize(void);  \
 
139
                                              \
 
140
  STDMETHODIMP_(NTSTATUS) GetBuffer(          \
 
141
    OUT PBYTE *ppBuffer);                     \
 
142
                                              \
 
143
  STDMETHODIMP_(NTSTATUS) PutBuffer(          \
 
144
    IN PBYTE pBuffer)
167
145
 
168
146
#undef INTERFACE
169
147
#define INTERFACE IPortDMus
171
149
DEFINE_GUID(IID_IPortDMus, 0xc096df9c, 0xfb09, 0x11d1, 0x81, 0xb0, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1);
172
150
DEFINE_GUID(CLSID_PortDMus, 0xb7902fe9, 0xfb0a, 0x11d1, 0x81, 0xb0, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1);
173
151
 
174
 
DECLARE_INTERFACE_(IPortDMus, IPort)
175
 
{
176
 
    DEFINE_ABSTRACT_UNKNOWN()
177
 
 
178
 
    DEFINE_ABSTRACT_PORT()
179
 
 
180
 
    STDMETHOD_(void,Notify)(THIS_
181
 
        IN PSERVICEGROUP ServiceGroup OPTIONAL
182
 
    )PURE;
183
 
 
184
 
    STDMETHOD_(void,RegisterServiceGroup)(THIS_
185
 
        IN PSERVICEGROUP ServiceGroup
186
 
    ) PURE;
 
152
DECLARE_INTERFACE_(IPortDMus, IPort) {
 
153
  DEFINE_ABSTRACT_UNKNOWN()
 
154
 
 
155
  DEFINE_ABSTRACT_PORT()
 
156
 
 
157
  STDMETHOD_(void,Notify)(THIS_
 
158
    IN PSERVICEGROUP ServiceGroup OPTIONAL
 
159
  ) PURE;
 
160
 
 
161
  STDMETHOD_(void,RegisterServiceGroup)(THIS_
 
162
    IN PSERVICEGROUP ServiceGroup
 
163
  ) PURE;
187
164
};
188
165
typedef IPortDMus *PPORTDMUS;
189
166
 
190
 
#define IMP_IPortDMus                                 \
191
 
    IMP_IPort;                                        \
192
 
    STDMETHODIMP_(void) Notify(                       \
193
 
        IN PSERVICEGROUP ServiceGroup OPTIONAL        \
194
 
    );                                                \
195
 
                                                      \
196
 
    STDMETHODIMP_(void) RegisterServiceGroup(         \
197
 
        IN PSERVICEGROUP ServiceGroup                 \
198
 
    )
 
167
#define IMP_IPortDMus                         \
 
168
  IMP_IPort;                                  \
 
169
  STDMETHODIMP_(void) Notify(                 \
 
170
    IN PSERVICEGROUP ServiceGroup OPTIONAL);  \
 
171
                                              \
 
172
  STDMETHODIMP_(void) RegisterServiceGroup(   \
 
173
    IN PSERVICEGROUP ServiceGroup)
199
174
 
200
175
#undef INTERFACE
201
176
#define INTERFACE IMiniportDMus
202
177
 
203
178
DEFINE_GUID(IID_IMiniportDMus, 0xc096df9d, 0xfb09, 0x11d1, 0x81, 0xb0, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1);
204
 
DECLARE_INTERFACE_(IMiniportDMus, IMiniport)
205
 
{
206
 
    DEFINE_ABSTRACT_UNKNOWN()
207
 
 
208
 
    DEFINE_ABSTRACT_MINIPORT()
209
 
  
210
 
 
211
 
    STDMETHOD_(NTSTATUS,Init)(THIS_
212
 
        IN      PUNKNOWN        UnknownAdapter,
213
 
        IN      PRESOURCELIST   ResourceList,
214
 
        IN      PPORTDMUS       Port,
215
 
        OUT     PSERVICEGROUP * ServiceGroup
216
 
    )   PURE;
217
 
 
218
 
    STDMETHOD_(void,Service)(THIS) PURE;
219
 
 
220
 
    STDMETHOD_(NTSTATUS,NewStream)(THIS_
221
 
        OUT     PMXF                  * MXF,
222
 
        IN      PUNKNOWN                OuterUnknown    OPTIONAL,
223
 
        IN      POOL_TYPE               PoolType,
224
 
        IN      ULONG                   PinID,
225
 
        IN      DMUS_STREAM_TYPE        StreamType,
226
 
        IN      PKSDATAFORMAT           DataFormat,
227
 
        OUT     PSERVICEGROUP         * ServiceGroup,
228
 
        IN      PAllocatorMXF           AllocatorMXF,
229
 
        IN      PMASTERCLOCK            MasterClock,
230
 
        OUT     PULONGLONG              SchedulePreFetch
231
 
    ) PURE;
 
179
 
 
180
DECLARE_INTERFACE_(IMiniportDMus, IMiniport) {
 
181
  DEFINE_ABSTRACT_UNKNOWN()
 
182
 
 
183
  DEFINE_ABSTRACT_MINIPORT()
 
184
 
 
185
  STDMETHOD_(NTSTATUS,Init)(THIS_
 
186
    IN PUNKNOWN UnknownAdapter,
 
187
    IN PRESOURCELIST ResourceList,
 
188
    IN PPORTDMUS Port,
 
189
    OUT PSERVICEGROUP *ServiceGroup
 
190
  ) PURE;
 
191
 
 
192
  STDMETHOD_(void,Service)(THIS) PURE;
 
193
 
 
194
  STDMETHOD_(NTSTATUS,NewStream)(THIS_
 
195
    OUT PMXF *MXF,
 
196
    IN PUNKNOWN OuterUnknown OPTIONAL,
 
197
    IN POOL_TYPE PoolType,
 
198
    IN ULONG PinID,
 
199
    IN DMUS_STREAM_TYPE StreamType,
 
200
    IN PKSDATAFORMAT DataFormat,
 
201
    OUT PSERVICEGROUP *ServiceGroup,
 
202
    IN PAllocatorMXF AllocatorMXF,
 
203
    IN PMASTERCLOCK MasterClock,
 
204
    OUT PULONGLONG SchedulePreFetch
 
205
  ) PURE;
232
206
};
233
207
 
234
208
typedef IMiniportDMus *PMINIPORTDMUS;
235
209
#undef INTERFACE
236
210
 
237
 
#define IMP_IMiniportDMus                              \
238
 
    IMP_IMiniport;                                     \
239
 
    STDMETHODIMP_(NTSTATUS) Init(                      \
240
 
        IN      PUNKNOWN        UnknownAdapter,        \
241
 
        IN      PRESOURCELIST   ResourceList,          \
242
 
        IN      PPORTDMUS       Port,                  \
243
 
        OUT     PSERVICEGROUP * ServiceGroup           \
244
 
    );                                                 \
245
 
                                                       \
246
 
    STDMETHODIMP_(void) Service(THIS);                 \
247
 
                                                       \
248
 
    STDMETHODIMP_(NTSTATUS) NewStream(                 \
249
 
        OUT     PMXF              * MXF,               \
250
 
        IN      PUNKNOWN          OuterUnknown,        \
251
 
        IN      POOL_TYPE         PoolType,            \
252
 
        IN      ULONG             PinID,               \
253
 
        IN      DMUS_STREAM_TYPE  StreamType,          \
254
 
        IN      PKSDATAFORMAT     DataFormat,          \
255
 
        OUT     PSERVICEGROUP     * ServiceGroup,      \
256
 
        IN      PAllocatorMXF     AllocatorMXF,        \
257
 
        IN      PMASTERCLOCK      MasterClock,         \
258
 
        OUT     PULONGLONG        SchedulePreFetch     \
259
 
    )
 
211
#define IMP_IMiniportDMus               \
 
212
  IMP_IMiniport;                        \
 
213
  STDMETHODIMP_(NTSTATUS) Init(         \
 
214
    IN PUNKNOWN UnknownAdapter,         \
 
215
    IN PRESOURCELIST ResourceList,      \
 
216
    IN PPORTDMUS Port,                  \
 
217
    OUT PSERVICEGROUP *ServiceGroup);   \
 
218
                                        \
 
219
  STDMETHODIMP_(void) Service(THIS);    \
 
220
                                        \
 
221
  STDMETHODIMP_(NTSTATUS) NewStream(    \
 
222
    OUT PMXF *MXF,                      \
 
223
    IN PUNKNOWN OuterUnknown,           \
 
224
    IN POOL_TYPE PoolType,              \
 
225
    IN ULONG PinID,                     \
 
226
    IN DMUS_STREAM_TYPE StreamType,     \
 
227
    IN PKSDATAFORMAT DataFormat,        \
 
228
    OUT PSERVICEGROUP *ServiceGroup,    \
 
229
    IN PAllocatorMXF AllocatorMXF,      \
 
230
    IN PMASTERCLOCK MasterClock,        \
 
231
    OUT PULONGLONG SchedulePreFetch)
260
232
 
261
 
#endif
 
233
#endif /* _DMUSICKS_ */