midiInStart() private method

private midiInStart ( HMIDIIN hMidiIn ) : MMRESULT
hMidiIn HMIDIIN
return MMRESULT
Ejemplo n.º 1
0
        public void StartReceiving(Clock clock, bool handleSysEx)
        {
            if (isInsideInputHandler)
            {
                throw new InvalidOperationException("Device is receiving.");
            }
            lock (this)
            {
                CheckOpen();
                CheckNotReceiving();

                #region SysEx

                if (handleSysEx)
                {
                    LongMsgBuffers.Add(CreateLongMsgBuffer());
                }

                #endregion

                CheckReturnCode(Win32API.midiInStart(handle));
                isReceiving = true;
                this.clock  = clock;
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Starts this input device receiving messages.
 /// </summary>
 /// <param name="clock">If non-null, the clock's <see cref="Clock.Time"/> property will
 /// be used to assign a timestamp to each incoming message.  If null, timestamps will be in
 /// seconds since StartReceiving() was called.</param>
 /// <exception cref="InvalidOperationException">The device is not open or is already
 /// receiving.
 /// </exception>
 /// <exception cref="DeviceException">The device cannot start receiving.</exception>
 /// <remarks>
 /// <para>This method launches a background thread to listen for input events, and as events
 /// are received, the event handlers are invoked on that background thread.  Event handlers
 /// should be written to work from a background thread.  (For example, if they want to
 /// update the GUI, they may need to BeginInvoke to arrange for GUI updates to happen on
 /// the correct thread.)</para>
 /// <para>The background thread which is created by this method is joined (shut down) in
 /// <see cref="StopReceiving"/>.</para>
 /// </remarks>
 public void StartReceiving(Clock clock)
 {
     if (isInsideInputHandler)
     {
         throw new InvalidOperationException("Device is receiving.");
     }
     lock (this)
     {
         CheckOpen();
         CheckNotReceiving();
         CheckReturnCode(Win32API.midiInStart(handle));
         isReceiving = true;
         this.clock  = clock;
     }
 }