/// <summary> /// Opens a MIDI output device. /// </summary> /// NOTE: This is adapted from the original Win32 function in order to make it typesafe. /// /// Win32 docs: http://msdn.microsoft.com/en-us/library/ms711632(VS.85).aspx public static MMRESULT midiOutOpen(out HMIDIOUT lphmo, UIntPtr uDeviceID, MidiOutProc dwCallback, UIntPtr dwCallbackInstance) { //return midiOutOpen(out lphmo, uDeviceID, dwCallback, dwCallbackInstance, // dwCallback == null ? MidiOpenFlags.CALLBACK_NULL : MidiOpenFlags.CALLBACK_FUNCTION); return(midiOutOpen(out lphmo, uDeviceID, dwCallback, dwCallbackInstance, dwCallback == null ? MidiOpenFlags.CALLBACK_NULL : MidiOpenFlags.CALLBACK_FUNCTION& MidiOpenFlags.MIDI_IO_STATUS)); }
public static extern MMRESULT midiOutLongMsg(HMIDIOUT hmo, IntPtr lpMidiOutHdr, UInt32 cbMidiOutHdr);
public static extern uint midiOutSetVolume(HMIDIOUT hmo, [NativeTypeName("DWORD")] uint dwVolume);
public static extern MMRESULT midiOutUnprepareHeader(HMIDIOUT hmo, IntPtr lpMidiOutHdr, UInt32 cbMidiOutHdr);
public static extern MMRESULT midiOutReset(HMIDIOUT hmo);
private static extern MMRESULT midiOutOpen(out HMIDIOUT lphmo, UIntPtr uDeviceID, MidiOutProc dwCallback, UIntPtr dwCallbackInstance, MidiOpenFlags dwFlags);
public static extern MMRESULT midiOutClose(HMIDIOUT hmo);
public static extern uint midiOutCacheDrumPatches(HMIDIOUT hmo, uint uPatch, [NativeTypeName("LPWORD")] ushort *pwkya, uint fuCache);
public static extern uint midiOutCachePatches(HMIDIOUT hmo, uint uBank, [NativeTypeName("LPWORD")] ushort *pwpa, uint fuCache);
public static extern uint midiOutReset(HMIDIOUT hmo);
public static extern uint midiOutLongMsg(HMIDIOUT hmo, [NativeTypeName("LPMIDIHDR")] MIDIHDR *pmh, uint cbmh);
public static extern uint midiOutShortMsg(HMIDIOUT hmo, [NativeTypeName("DWORD")] uint dwMsg);
public static extern uint midiOutUnprepareHeader(HMIDIOUT hmo, [NativeTypeName("LPMIDIHDR")] MIDIHDR *pmh, uint cbmh);
public static extern uint midiOutClose(HMIDIOUT hmo);
public static extern uint midiOutGetID(HMIDIOUT hmo, [NativeTypeName("LPUINT")] uint *puDeviceID);
public static extern MMRESULT midiOutShortMsg(HMIDIOUT hmo, UInt32 dwMsg);
public static extern uint midiOutMessage(HMIDIOUT hmo, uint uMsg, [NativeTypeName("DWORD_PTR")] nuint dw1, [NativeTypeName("DWORD_PTR")] nuint dw2);
public static extern MMRESULT midiOutPrepareHeader(HMIDIOUT hmo, ref MIDIHDR lpMidiOutHdr, uint cbMidiOutHdr);
/// <summary> /// Opens a MIDI output device. /// </summary> /// NOTE: This is adapted from the original Win32 function in order to make it typesafe. /// /// Win32 docs: http://msdn.microsoft.com/en-us/library/ms711632(VS.85).aspx public static MMRESULT midiOutOpen(out HMIDIOUT lphmo, UIntPtr uDeviceID, MidiOutProc dwCallback, UIntPtr dwCallbackInstance) { //return midiOutOpen(out lphmo, uDeviceID, dwCallback, dwCallbackInstance, // dwCallback == null ? MidiOpenFlags.CALLBACK_NULL : MidiOpenFlags.CALLBACK_FUNCTION); #region SysEx return midiOutOpen(out lphmo, uDeviceID, dwCallback, dwCallbackInstance, dwCallback == null ? MidiOpenFlags.CALLBACK_NULL : MidiOpenFlags.CALLBACK_FUNCTION & MidiOpenFlags.MIDI_IO_STATUS); #endregion }
public static extern MMRESULT midiOutLongMsg(HMIDIOUT hmo, ref MIDIHDR lpMidiOutHdr, uint cbMidiOutHdr);
/// <summary> /// Opens a MIDI output device. /// </summary> /// NOTE: This is adapted from the original Win32 function in order to make it typesafe. /// /// Win32 docs: http://msdn.microsoft.com/en-us/library/ms711632(VS.85).aspx public static MMRESULT midiOutOpen(out HMIDIOUT lphmo, UIntPtr uDeviceID, MidiOutProc dwCallback, UIntPtr dwCallbackInstance) { return midiOutOpen(out lphmo, uDeviceID, dwCallback, dwCallbackInstance, dwCallback == null ? MidiOpenFlags.CALLBACK_NULL : MidiOpenFlags.CALLBACK_FUNCTION); }
public static extern uint midiDisconnect(HMIDI hmi, HMIDIOUT hmo, [NativeTypeName("LPVOID")] void *pReserved);