internal MidiOutputDevice(int index)
 {
     _index = index;
     _CheckOutResult(midiOutGetDevCaps(index, ref _caps, Marshal.SizeOf(typeof(MIDIOUTCAPS))));
     _handle      = IntPtr.Zero;
     _outCallback = new MidiOutProc(_MidiOutProc);
 }
示例#2
0
    public MIDIOutDevice(int deviceID) : base(deviceID)
    {
        // query number of input devices
        int numOutputDevices = midiOutGetNumDevs();

        if (numOutputDevices <= 0)
        {
            return;
        }

        // look for the input device that's MIDI controller
        for (int i = 0; i < numOutputDevices; i++)
        {
            MidiOutCaps caps = GetDeviceCapabilities(i);
        }

        // open the output device
        midiOutProc = HandleMessage;
        int result = midiOutOpen(ref hndle, deviceID, midiOutProc, 0, CALLBACK_FUNCTION);

        if (result != MIDIExceptions.MMSYSERR_NOERROR)
        {
            throw new OutputDeviceException(result);
        }
    }
示例#3
0
 public static extern uint midiOutOpen(
    out IntPtr lphmo,
        int uDeviceID,
        MidiOutProc dwCallback,
        int dwCallbackInstance,
        CALLBACK dwFlags
    );
示例#4
0
 /// <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));
 }
示例#5
0
        /// <summary>
        /// Initializes output device.
        /// </summary>
        private void InitializeOutputDevice()
        {
            // Create delegate for handling messages from Windows.
            messageHandler = new MidiOutProc(OnMessage);

            // Create synchronized queue for holding headers.
            syncHeaderQueue = Queue.Synchronized(headerQueue);
        }
示例#6
0
 internal MidiStream(int index) : base(index)
 {
     _sendQueue                  = null;
     _sendQueuePosition          = 0;
     _outCallback                = new MidiOutProc(_MidiOutProc);
     _timerCallback              = new TimerProc(_TimerProc);
     _tempoSyncEnabled           = 0;
     _tempoSyncMessageCount      = 100;
     _tempoSyncMessagesSentCount = 0;
 }
        /// <summary>
        /// Initializes a new instance of the OutputDevice class.
        /// </summary>
        public OutputDevice(int deviceID) : base(deviceID)
        {
            midiOutProc = HandleMessage;

            int result = NativeMethods.midiOutOpen(out hndle, deviceID, midiOutProc, IntPtr.Zero, CALLBACK_FUNCTION);

            if(result != MidiDeviceException.MMSYSERR_NOERROR)
            {
                throw new OutputDeviceException(result);
            }
        }
示例#8
0
        public OutputStream(int deviceID) : base(deviceID)
        {
            midiOutProc = HandleMessage;

            int result = midiStreamOpen(ref hndle, ref deviceID, 1, midiOutProc, 0, CALLBACK_FUNCTION);

            if (result != MidiDeviceException.MMSYSERR_NOERROR)
            {
                throw new OutputDeviceException(result);
            }
        }
示例#9
0
        /// <summary>
        /// Initializes a new instance of the OutputDevice class.
        /// </summary>
        public OutputDevice(int deviceID) : base(deviceID)
        {
            midiOutProc = HandleMessage;

            int result = midiOutOpen(ref hndle, deviceID, midiOutProc, 0, CALLBACK_FUNCTION);

            if(result != MidiDeviceException.MMSYSERR_NOERROR)
            {
                throw new OutputDeviceException(result);
            }
        }
示例#10
0
        /// <summary>
        /// Initializes a new instance of the OutputDevice class.
        /// </summary>
        public OutputDevice(int deviceID) : base(deviceID)
        {
            midiOutProc = HandleMessage;

            int result = midiOutOpen(out handle, deviceID, midiOutProc, IntPtr.Zero, CALLBACK_FUNCTION);

            if (result != MidiDeviceException.MMSYSERR_NOERROR)
            {
                throw new OutputDeviceException(result);
            }
        }
示例#11
0
 internal MidiStream(int deviceIndex)
 {
     if (0 > deviceIndex)
     {
         throw new ArgumentOutOfRangeException("deviceIndex");
     }
     _deviceIndex                = deviceIndex;
     _handle                     = IntPtr.Zero;
     _sendHeader                 = default(MIDIHDR);
     _sendEventBuffer            = IntPtr.Zero;
     _sendQueuePosition          = 0;
     _outCallback                = new MidiOutProc(_MidiOutProc);
     _timerCallback              = new TimerProc(_TimerProc);
     _tempoSyncEnabled           = 0;
     _tempoSyncMessageCount      = 100;
     _tempoSyncMessagesSentCount = 0;
 }
示例#12
0
 public static extern int midiOutOpen(out int lphMidiOut, int uDeviceID,
                 MidiOutProc proc, int dwInstance, int dwFlags);
示例#13
0
 static extern int midiStreamOpen(ref IntPtr handle, ref int deviceID, int cMidi,
                                  MidiOutProc proc, int instance, int flags);
示例#14
0
 /// <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);
 }
示例#15
0
 public static extern uint midiOutOpen(out IntPtr phmo, int uDeviceID, MidiOutProc dwCallback, uint dwInstance,
                                       uint fdwOpen);
示例#16
0
        /// <summary>
        /// Initializes output device.
        /// </summary>
        private void InitializeOutputDevice()
        {
            // Create delegate for handling messages from Windows.
            messageHandler = new MidiOutProc(OnMessage);

            // Create synchronized queue for holding headers.
            syncHeaderQueue = Queue.Synchronized(headerQueue);
        }
 /// <summary>
 /// Initializes a new instance of the OutputDevice class.
 /// </summary>
 OutputDevice(int deviceID, SynchronizationContext context)
     : base(deviceID)
 {
     this.context = context;
     midiOutProc  = HandleMessage;
 }
示例#18
0
 /// <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
 }
示例#19
0
 internal static extern int midiOutOpen(
     out IntPtr hMidiOut,
     int uDeviceID,
     MidiOutProc dwCallback,
     IntPtr dwInstance,
     uint dwFlags);
 /// <summary>
 /// Initializes a new instance of the OutputDevice class.
 /// </summary>
 OutputDevice(int deviceID, SynchronizationContext context)
     : base(deviceID)
 {
     this.context = context;
     midiOutProc = HandleMessage;
 }
示例#21
0
 private static extern int midiOutOpen(ref int handle, int deviceId,
     MidiOutProc proc, int instance, int flags); 
示例#22
0
 public static extern int midiOutOpen(out IntPtr lphMidiOut, uint uDeviceID, MidiOutProc dwCallback, uint dwInstance, uint dwFlags);
示例#23
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="deviceID"></param>

        public OutputDeviceBase(int deviceID)
        {
            midiOutProc = HandleMessage;
            int result = midiOutOpen(ref hndle, 0, midiOutProc, 0, CALLBACK_FUNCTION);
        }
示例#24
0
 private static extern int midiOutOpen(
     out HandleMidiOut lphMidiOut,
     UIntPtr uDeviceId,
     MidiOutProc dwCallback,
     UIntPtr dwCallbackInstance,
     MidiOpenFlags dwFlags);
示例#25
0
 private static extern int midiOutOpen(out IntPtr handle, int deviceID,
     MidiOutProc proc, int instance, int flags);
 private static extern MMRESULT midiOutOpen(out HMIDIOUT lphmo, UIntPtr uDeviceID,
                                            MidiOutProc dwCallback, UIntPtr dwCallbackInstance, MidiOpenFlags dwFlags);
示例#27
0
 public static int MidiOutOpen(out HandleMidiOut lphMidiOut, UIntPtr uDeviceId, MidiOutProc dwCallback, UIntPtr dwCallbackInstance) =>
 midiOutOpen(
     out lphMidiOut,
     uDeviceId,
     dwCallback,
     dwCallbackInstance,
     dwCallback == null ? MidiOpenFlags.CALLBACK_NULL : MidiOpenFlags.CALLBACK_FUNCTION & MidiOpenFlags.MIDI_IO_STATUS);
示例#28
0
文件: Midi.cs 项目: rosc77/MidiServer
 internal static extern int midiOutOpen(
     out IntPtr lphMidiOut,
     int uDeviceID,
     MidiOutProc dwCallback,
     IntPtr dwCallbackInstance,
     int dwFlags);
示例#29
0
 internal static extern int midiOutOpen(out IntPtr midiIn, uint deviceID, MidiOutProc callback, IntPtr callbackInstance, MidiOutOpenFlags flags);
 private static extern int midiOutOpen(ref int handle, int deviceID,
                                       MidiOutProc proc, int instance, int flags);
 public static extern int midiOutOpen(out IntPtr handle, int deviceID,
     MidiOutProc proc, IntPtr instance, int flags);
示例#32
0
 private static extern MMRESULT midiOutOpen(out HMIDIOUT lphmo, UIntPtr uDeviceID,
     MidiOutProc dwCallback, UIntPtr dwCallbackInstance, MidiOpenFlags dwFlags);
 public static extern int midiStreamOpen(out IntPtr handle, ref int deviceID, int reserved,
     MidiOutProc proc, int instance, uint flag);
示例#34
0
 private static extern int midiOutOpen(out IntPtr handle, int deviceID,
                                       MidiOutProc proc, IntPtr instance, int flags);
示例#35
0
 public static extern int midiStreamOpen(out IntPtr handle, ref int deviceID, int reserved, MidiOutProc proc, IntPtr instance, uint flag);
示例#36
0
 static extern int midiOutOpen(ref IntPtr handle, int deviceID,
                               MidiOutProc proc, int instance, int flags);
 internal static extern EMMError midiOutOpen(
     out IntPtr lphMidiOut,
     uint uDeviceID,
     MidiOutProc dwCallback,
     IntPtr dwCallbackInstance,
     int dwFlags);