ReactOS  0.4.14-dev-315-gbb6fece
miditest.c
Go to the documentation of this file.
1 #include <windows.h>
2 #include <stdio.h>
3 #include <mmsystem.h>
4 
5 // WINE's mmsystem.h doesn't seem to define these properly:
6 
7 #define MIDIOUTCAPS MIDIOUTCAPSA
8 #define MIDIINCAPS MIDIINCAPSA
9 #undef midiOutGetDevCaps
10 #define midiOutGetDevCaps midiOutGetDevCapsA
11 #undef midiInGetDevCaps
12 #define midiInGetDevCaps midiInGetDevCapsA
13 
14 
15 int main()
16 {
17  UINT outs = midiOutGetNumDevs();
18 // UINT ins = midiInGetNumDevs();
19 
20  MIDIOUTCAPS outcaps;
21 // MIDIINCAPS incaps;
22 
23  int c;
24 
25  HMIDIOUT Handle = NULL;
26  UINT Result;
27 
28  printf("MIDI output devices: %d\n", outs);
29 
30  for (c = 0; c < outs; c ++)
31  {
32  if (midiOutGetDevCaps(c, &outcaps, sizeof(MIDIOUTCAPS)) == MMSYSERR_NOERROR)
33  printf("Device #%d: %s\n", c, outcaps.szPname);
34  }
35 
36  printf("Opening MIDI output #0\n");
37 
38  Result = midiOutOpen(&Handle, 0, 0, 0, CALLBACK_NULL);
39  printf("Result == %d Handle == %p\n", Result, Handle);
40 
41  // play something:
42  midiOutShortMsg(Handle, 0x007f3090);
43 
44 /*
45  printf("\nMIDI input devices: %d\n", ins);
46 
47  for (c = 0; c < ins; c ++)
48  {
49  midiInGetDevCaps(c, &incaps, sizeof(incaps));
50  printf("Device #%d: %s\n", c, incaps.szPname);
51  }
52 */
53  return 0;
54 }
MMRESULT WINAPI midiOutOpen(LPHMIDIOUT lphMidiOut, UINT uDeviceID, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD dwFlags)
Definition: winmm.c:942
CHAR szPname[MAXPNAMELEN]
Definition: mmsystem.h:1114
UINT WINAPI midiOutShortMsg(HMIDIOUT hMidiOut, DWORD dwMsg)
Definition: winmm.c:1042
int main()
Definition: miditest.c:15
smooth NULL
Definition: ftsmooth.c:416
_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:426
_In_ HANDLE Handle
Definition: extypes.h:390
#define MMSYSERR_NOERROR
Definition: mmsystem.h:96
const GLubyte * c
Definition: glext.h:8905
#define CALLBACK_NULL
Definition: mmsystem.h:147
unsigned int UINT
Definition: ndis.h:50
#define c
Definition: ke_i.h:80
UINT WINAPI midiOutGetNumDevs(void)
Definition: winmm.c:809
#define printf
Definition: config.h:203
#define midiOutGetDevCaps
Definition: miditest.c:10