2 * PROJECT: ReactOS Sound System "MME Buddy" Library
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: lib/drivers/sound/mmebuddy/wave/wodMessage.c
6 * PURPOSE: Provides the wodMessage exported function, as required by
7 * the MME API, for wave output device support.
9 * PROGRAMMERS: Andrew Greenwood (silverblade@reactos.org)
22 MMRESULT
HelloWorld(PSOUND_DEVICE_INSTANCE Instance
, PVOID String
)
24 PWSTR WString
= (PWSTR
) String
;
26 return MMSYSERR_NOTSUPPORTED
;
31 Standard MME driver entry-point for messages relating to wave audio
39 DWORD_PTR PrivateHandle
,
43 MMRESULT Result
= MMSYSERR_NOTSUPPORTED
;
45 AcquireEntrypointMutex(WAVE_OUT_DEVICE_TYPE
);
47 SND_TRACE(L
"wodMessage - Message type %d\n", Message
);
51 case WODM_GETNUMDEVS
:
53 Result
= GetSoundDeviceCount(WAVE_OUT_DEVICE_TYPE
);
57 case WODM_GETDEVCAPS
:
59 Result
= MmeGetSoundDeviceCapabilities(WAVE_OUT_DEVICE_TYPE
,
68 Result
= MmeOpenWaveDevice(WAVE_OUT_DEVICE_TYPE
,
70 (LPWAVEOPENDESC
) Parameter1
,
72 (DWORD_PTR
*)PrivateHandle
);
78 Result
= MmeCloseDevice(PrivateHandle
);
85 /* TODO: Do we need to pass 2nd parameter? */
86 Result
= MmePrepareWaveHeader(PrivateHandle
, Parameter1
);
92 Result
= MmeUnprepareWaveHeader(PrivateHandle
, Parameter1
);
98 Result
= MmeWriteWaveHeader(PrivateHandle
, Parameter1
);
104 /* Stop playback, reset position to zero */
105 Result
= MmeResetWavePlayback(PrivateHandle
);
111 /* Continue playback when paused */
117 Result
= MmeGetPosition(WAVE_OUT_DEVICE_TYPE
, DeviceId
, PrivateHandle
, (MMTIME
*)Parameter1
, Parameter2
);
121 case DRV_QUERYDEVICEINTERFACESIZE
:
123 Result
= MmeGetDeviceInterfaceString(WAVE_OUT_DEVICE_TYPE
, DeviceId
, NULL
, 0, (DWORD
*)Parameter1
); //FIXME DWORD_PTR
127 case DRV_QUERYDEVICEINTERFACE
:
129 Result
= MmeGetDeviceInterfaceString(WAVE_OUT_DEVICE_TYPE
, DeviceId
, (LPWSTR
)Parameter1
, Parameter2
, NULL
); //FIXME DWORD_PTR
134 SND_TRACE(L
"wodMessage returning MMRESULT %d\n", Result
);
136 ReleaseEntrypointMutex(WAVE_OUT_DEVICE_TYPE
);