ReactOS 0.4.16-dev-300-g2aadf2e
modMessage.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Sound System "MME Buddy" Library
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: lib/sound/mmebuddy/midi/modMessage.c
5 *
6 * PURPOSE: Provides the modMessage exported function, as required by
7 * the MME API, for MIDI output device support.
8 *
9 * PROGRAMMERS: Andrew Greenwood (silverblade@reactos.org)
10*/
11
12#include "precomp.h"
13
14/*
15 Standard MME driver entry-point for messages relating to MIDI output.
16*/
20 UINT DeviceId,
22 DWORD_PTR PrivateHandle,
23 DWORD_PTR Parameter1,
24 DWORD_PTR Parameter2)
25{
27
29
30 SND_TRACE(L"modMessage - Message type %d\n", Message);
31
32 switch ( Message )
33 {
34 case MODM_GETNUMDEVS :
35 {
37 break;
38 }
39
40 case MODM_GETDEVCAPS :
41 {
43 DeviceId,
44 (PVOID) Parameter1,
45 Parameter2);
46 break;
47 }
48
50 {
51 Result = MmeGetDeviceInterfaceString(MIDI_OUT_DEVICE_TYPE, DeviceId, NULL, 0, (DWORD*)Parameter1); //FIXME DWORD_PTR
52 break;
53 }
54
56 {
57 Result = MmeGetDeviceInterfaceString(MIDI_OUT_DEVICE_TYPE, DeviceId, (LPWSTR)Parameter1, Parameter2, NULL); //FIXME DWORD_PTR
58 break;
59 }
60
61 case MODM_OPEN :
62 {
64 DeviceId,
65 (LPWAVEOPENDESC) Parameter1, /* unused */
66 Parameter2,
67 (DWORD_PTR*)PrivateHandle);
68 break;
69 }
70
71 case MODM_CLOSE :
72 {
73 Result = MmeCloseDevice(PrivateHandle);
74
75 break;
76 }
77
78 case MODM_GETVOLUME:
79 {
81 DeviceId,
82 PrivateHandle,
83 Parameter1);
84 break;
85 }
86
87 case MODM_SETVOLUME:
88 {
90 DeviceId,
91 PrivateHandle,
92 Parameter1);
93 break;
94 }
95 }
96
97 SND_TRACE(L"modMessage returning MMRESULT %d\n", Result);
98
100
101 return Result;
102}
#define NULL
Definition: types.h:112
#define APIENTRY
Definition: api.h:79
#define MODM_GETDEVCAPS
Definition: mmddk.h:155
#define DRV_QUERYDEVICEINTERFACESIZE
Definition: mmddk.h:97
#define MODM_GETNUMDEVS
Definition: mmddk.h:154
#define MODM_GETVOLUME
Definition: mmddk.h:163
#define MODM_OPEN
Definition: mmddk.h:156
#define MODM_SETVOLUME
Definition: mmddk.h:164
#define DRV_QUERYDEVICEINTERFACE
Definition: mmddk.h:96
#define MODM_CLOSE
Definition: mmddk.h:157
static const WCHAR Message[]
Definition: register.c:74
unsigned long DWORD
Definition: ntddk_ex.h:95
MMRESULT MmeOpenDevice(IN MMDEVICE_TYPE DeviceType, IN UINT DeviceId, IN LPWAVEOPENDESC OpenParameters, IN DWORD Flags, OUT DWORD_PTR *PrivateHandle)
Definition: mmewrap.c:132
MMRESULT MmeCloseDevice(IN DWORD_PTR PrivateHandle)
Definition: mmewrap.c:225
VOID AcquireEntrypointMutex(IN MMDEVICE_TYPE DeviceType)
Definition: reentrancy.c:75
ULONG GetSoundDeviceCount(IN MMDEVICE_TYPE DeviceType)
Definition: devicelist.c:67
MMRESULT MmeGetDeviceInterfaceString(IN MMDEVICE_TYPE DeviceType, IN DWORD DeviceId, IN LPWSTR Interface, IN DWORD InterfaceLength, OUT DWORD *InterfaceSize)
Definition: mmewrap.c:294
MMRESULT MmeGetVolume(_In_ MMDEVICE_TYPE DeviceType, _In_ DWORD DeviceId, _In_ DWORD_PTR PrivateHandle, _Out_ DWORD_PTR pdwVolume)
Definition: mmewrap.c:369
VOID ReleaseEntrypointMutex(IN MMDEVICE_TYPE DeviceType)
Definition: reentrancy.c:92
MMRESULT MmeGetSoundDeviceCapabilities(IN MMDEVICE_TYPE DeviceType, IN DWORD DeviceId, IN PVOID Capabilities, IN DWORD CapabilitiesSize)
Definition: mmewrap.c:103
MMRESULT MmeSetVolume(_In_ MMDEVICE_TYPE DeviceType, _In_ DWORD DeviceId, _In_ DWORD_PTR PrivateHandle, _In_ DWORD_PTR dwVolume)
Definition: mmewrap.c:409
#define SND_TRACE(...)
UINT MMRESULT
Definition: mmsystem.h:962
#define MMSYSERR_NOTSUPPORTED
Definition: mmsystem.h:104
DWORD APIENTRY modMessage(UINT DeviceId, UINT Message, DWORD_PTR PrivateHandle, DWORD_PTR Parameter1, DWORD_PTR Parameter2)
Definition: modMessage.c:19
unsigned int UINT
Definition: ndis.h:50
#define L(x)
Definition: ntvdm.h:50
@ MIDI_OUT_DEVICE_TYPE
Definition: sndtypes.h:31
uint32_t DWORD_PTR
Definition: typedefs.h:65
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Definition: wsk.h:409
WCHAR * LPWSTR
Definition: xmlstorage.h:184