5 #define NONAMELESSUNION
6 #define NONAMELESSSTRUCT
29 typedef HRESULT (CALLBACK
*LPFNCREATEINSTANCE
)(IUnknown
* pUnkOuter
, REFIID riid
, LPVOID
* ppvObject
);
35 LPFNCREATEINSTANCE lpfnCI
;
39 typedef struct tagFILTERINFO
41 SP_DEVINFO_DATA DeviceData
;
42 WCHAR DevicePath
[MAX_PATH
];
49 struct tagFILTERINFO
*lpNext
;
50 }FILTERINFO
, *LPFILTERINFO
;
52 #define INIT_GUID(guid, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
53 guid.Data1 = l; guid.Data2 = w1; guid.Data3 = w2; \
54 guid.Data4[0] = b1; guid.Data4[1] = b2; guid.Data4[2] = b3; \
55 guid.Data4[3] = b4; guid.Data4[4] = b5; guid.Data4[5] = b6; \
56 guid.Data4[6] = b7; guid.Data4[7] = b8;
61 PIN_TYPE_PLAYBACK
= 1,
62 PIN_TYPE_RECORDING
= 2
66 extern HINSTANCE dsound_hInstance
;
67 extern LPFILTERINFO RootInfo
;
72 IClassFactory_fnConstructor(
73 LPFNCREATEINSTANCE lpfnCI
,
81 EnumAudioDeviceInterfaces(
82 LPFILTERINFO
*OutRootInfo
);
87 LPFILTERINFO
*Filter
);
114 PerformChannelConversion(
123 PULONG BytesWritten
);
128 IN LPWAVEFORMATEX WaveFormatEx
);
135 IN LPWAVEFORMATEX WaveFormatEx
,
136 OUT LPWAVEFORMATEX WaveFormatOut
,
141 SyncOverlappedDeviceIoControl(
143 IN DWORD IoControlCode
,
145 IN DWORD InBufferSize
,
146 OUT LPVOID OutBuffer
,
147 IN DWORD OutBufferSize
,
148 OUT LPDWORD BytesTransferred OPTIONAL
);
151 PrimaryDirectSoundBuffer_Write(
152 LPDIRECTSOUNDBUFFER8 iface
,
161 LPWAVEFORMATEX WaveFormatEx
,
167 IN LPCWSTR lpFileName
,
168 IN PHANDLE OutHandle
);
176 GetFilterPinCommunication(
179 OUT PKSPIN_COMMUNICATION Communication
);
182 GetFilterPinDataFlow(
185 OUT PKSPIN_DATAFLOW DataFlow
);
190 PrimaryDirectSoundBuffer_GetPosition(
191 LPDIRECTSOUNDBUFFER8 iface
,
192 LPDWORD pdwCurrentPlayCursor
,
193 LPDWORD pdwCurrentWriteCursor
);
196 PrimaryDirectSoundBuffer_SetState(
197 LPDIRECTSOUNDBUFFER8 iface
,
201 NewPrimarySoundBuffer(
202 LPDIRECTSOUNDBUFFER8
*OutBuffer
,
208 PrimaryDirectSoundBuffer_SetFormat(
209 LPDIRECTSOUNDBUFFER8 iface
,
210 LPWAVEFORMATEX pcfxFormat
,
214 PrimaryDirectSoundBuffer_AcquireLock(
215 LPDIRECTSOUNDBUFFER8 iface
);
218 PrimaryDirectSoundBuffer_ReleaseLock(
219 LPDIRECTSOUNDBUFFER8 iface
);
224 NewSecondarySoundBuffer(
225 LPDIRECTSOUNDBUFFER8
*OutBuffer
,
228 LPCDSBUFFERDESC lpcDSBufferDesc
,
229 LPDIRECTSOUNDBUFFER8 PrimaryBuffer
);
243 NewDirectSoundCapture(
249 /* capturebuffer.c */
251 NewDirectSoundCaptureBuffer(
252 LPDIRECTSOUNDCAPTUREBUFFER8
*OutBuffer
,
254 LPCDSCBUFFERDESC lpcDSBufferDesc
);
258 DoNotifyPositionEvents(
259 LPDIRECTSOUNDNOTIFY iface
,
264 NewDirectSoundNotify(
265 LPDIRECTSOUNDNOTIFY
* Notify
,