#include "mmdrv.h"
#include <debug.h>
#include "wave.h"
Go to the source code of this file.
|
static DWORD | OpenMidiDevice (UINT DeviceType, DWORD ID, DWORD User, DWORD Param1, DWORD Param2) |
|
static DWORD | WriteMidi (PBYTE pData, ULONG Length, PMIDIALLOC pClient) |
|
static int | GetMidiLength (PMIDIALLOC pClient, BYTE b) |
|
APIENTRY DWORD | midMessage (DWORD dwId, DWORD dwMessage, DWORD dwUser, DWORD dwParam1, DWORD dwParam2) |
|
APIENTRY DWORD | modMessage (DWORD ID, DWORD Message, DWORD User, DWORD Param1, DWORD Param2) |
|
◆ LOCAL_DATA_SIZE
◆ LOCAL_MIDI_BUFFERS
◆ NDEBUG
◆ LOCALMIDIHDR
◆ MIDIALLOC
◆ PLOCALMIDIDATA
◆ PLOCALMIDIHDR
◆ PMIDIALLOC
◆ GetMidiLength()
Definition at line 208 of file midi.c.
209{
211 {
212
213 return 1;
214 }
215
217 {
218 case 0xF0: case 0xF4: case 0xF5: case 0xF6: case 0xF7:
221
222 case 0xF1: case 0xF3:
225
226 case 0xF2:
229 }
230
232 {
233 case 0x80: case 0x90: case 0xA0: case 0xB0: case 0xE0:
236
237 case 0xC0: case 0xD0:
240 }
241
242 return (pClient->
l - 1);
243}
GLboolean GLboolean GLboolean b
Referenced by modMessage().
◆ midMessage()
Definition at line 251 of file midi.c.
252{
255
256 switch (dwMessage) {
258 DPRINT(
"MIDM_GETNUMDEVS");
260
262 DPRINT(
"MIDM_GETDEVCAPS");
264
268
272
276
280
284
288
289 default:
291 }
292
293
294
296}
MMRESULT GetDeviceCapabilities(MIDIOUTCAPS *caps)
DWORD GetDeviceCount(DeviceType device_type)
#define MMSYSERR_NOTSUPPORTED
Referenced by MMDRV_Install().
◆ modMessage()
Definition at line 298 of file midi.c.
299{
301
303 {
307
309 DPRINT(
"MODM_GETDEVCAPS");
311
314
318
321
324 for (
i = 0;
i < 4;
i ++) {
325 b[
i] = (
BYTE)(Param1 % 256);
326 Param1 /= 256;
327 }
330
334
338
342
346
348 DPRINT(
"MODM_CACHEPATCHES");
350
352 DPRINT(
"MODM_CACHEDRUMPATCHES");
354
355 };
356
358}
static DWORD WriteMidi(PBYTE pData, ULONG Length, PMIDIALLOC pClient)
static DWORD OpenMidiDevice(UINT DeviceType, DWORD ID, DWORD User, DWORD Param1, DWORD Param2)
static int GetMidiLength(PMIDIALLOC pClient, BYTE b)
#define MODM_CACHEDRUMPATCHES
#define MODM_CACHEPATCHES
static const WCHAR Message[]
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
◆ OpenMidiDevice()
Definition at line 103 of file midi.c.
104{
107
108
109 DPRINT(
"OpenMidiDevice()\n");
110
112 {
116 break;
117
121 break;
122 };
123
124 if ( !pClient )
126
128 {
132 {
134 }
135 }
136
142
144
146 {
147
149 }
150
152
153 if ( !pClient->
Event )
154 {
155
157 }
158
160 {
161
164 {
165
167 }
168
171 {
172
174 }
175
176
177
178
179
181 }
182
185 *pUserHandle = pClient;
186
187
188
190}
MMRESULT OpenDevice(DeviceInfo **private_data, MIDIOPENDESC *open_desc, DWORD flags)
struct tag_MIDIALLOC * PMIDIALLOC
struct LOCALMIDIDATA * PLOCALMIDIDATA
#define LOCAL_MIDI_BUFFERS
struct MIDIOPENDESC * LPMIDIOPENDESC
LOCALMIDIHDR Bufs[LOCAL_MIDI_BUFFERS]
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
_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
Referenced by modMessage().
◆ WriteMidi()
Definition at line 194 of file midi.c.
195{
197
199
203
205}
BOOL WINAPI DeviceIoControl(IN HANDLE hDevice, IN DWORD dwIoControlCode, IN LPVOID lpInBuffer OPTIONAL, IN DWORD nInBufferSize OPTIONAL, OUT LPVOID lpOutBuffer OPTIONAL, IN DWORD nOutBufferSize OPTIONAL, OUT LPDWORD lpBytesReturned OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
DWORD TranslateStatus(void)
_In_ ULONG _In_ ULONG _In_ ULONG Length
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesReturned
Referenced by modMessage().
◆ MidiHandleList