コード例 #1
0
ファイル: TabletPointer.cs プロジェクト: dzetah/MidiTouch
 public void PaintFingerTraces(WacomMTFingerCollection fingerCollection)
 {
     _fingerCollection = fingerCollection;
     if (this.Visible)
     {
         panel1.Invalidate();
     }
 }
コード例 #2
0
ファイル: TabletPointer.cs プロジェクト: Gramatiik/MidiTouch
 public void PaintFingerTraces(WacomMTFingerCollection fingerCollection)
 {
     _fingerCollection = fingerCollection;
     if(this.Visible)
     {
         panel1.Invalidate();
     }
 }
コード例 #3
0
ファイル: TouchHelper.cs プロジェクト: dzetah/MidiTouch
 public static bool AllFingersUp(ref WacomMTFingerCollection fingercollection)
 {
     for (uint i = 0; i < fingercollection.FingerCount; i++)
     {
         if (fingercollection.GetFingerByIndex(i).TouchState != WacomMTFingerState.WMTFingerStateUp)
         {
             return(false);
         }
     }
     return(true);
 }
コード例 #4
0
ファイル: TouchHelper.cs プロジェクト: Gramatiik/MidiTouch
 public static bool AllFingersUp(ref WacomMTFingerCollection fingercollection)
 {
     for(uint i=0; i< fingercollection.FingerCount; i++)
     {
         if(fingercollection.GetFingerByIndex(i).TouchState != WacomMTFingerState.WMTFingerStateUp)
         {
             return false;
         }
     }
     return true;
 }
コード例 #5
0
ファイル: MainForm.cs プロジェクト: dzetah/MidiTouch
        private void DoSendMidiMessage(ref WacomMTFingerCollection fingercollection)
        {
            //if we decided to skip early frames
            if (skipEarlyFrames && fingercollection.FrameNumber >= framesToSkip)
            {
                if (!TouchHelper.AllFingersUp(ref fingercollection) && fingercollection.FingerCount <= 5)
                {
                    //X value for messages
                    MidiFingerMessage fmX = mtouchMessages[fingercollection.FingerCount - 1].MessageX;
                    int val = (int)(((fingercollection.GetFingerByIndex(0).X * 10000) * fmX.MaxValue) / 10000) + fmX.MinValue;
                    SendMidiMessage(fmX.MidiCtrlr, val, fmX.MidiChannel);

                    //Y value for messages
                    MidiFingerMessage fmY = mtouchMessages[fingercollection.FingerCount - 1].MessageY;
                    val = (int)(fmY.MaxValue - (((fingercollection.GetFingerByIndex(0).Y * 10000) * fmY.MaxValue) / 10000) + fmY.MinValue);
                    SendMidiMessage(fmY.MidiCtrlr, val, fmY.MidiChannel);
                }
            }
        }
コード例 #6
0
ファイル: MainForm.cs プロジェクト: dzetah/MidiTouch
        public UInt32 DoFingerDataUpdateCallback(IntPtr packet_I, IntPtr userData_I)
        {
            try
            {
                // Recover the finger collection sent back.
                WacomMTFingerCollection fingerCollection =
                    CMemUtils.PtrToStructure <WacomMTFingerCollection>(packet_I);

                // Recover the user data sent back.
                mUserDataStringReturned = CMemUtils.PtrToManagedString(userData_I);

                Invoke(mUpdateRealTimeLabel, fingerCollection);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

            return(0);
        }
コード例 #7
0
ファイル: MainForm.cs プロジェクト: dzetah/MidiTouch
 private void DoUpdateGraphicsControl(ref WacomMTFingerCollection fingercollection)
 {
     tabletPointer1.PaintFingerTraces(fingercollection);
 }
コード例 #8
0
ファイル: MainForm.cs プロジェクト: Gramatiik/MidiTouch
        private void DoSendMidiMessage(ref WacomMTFingerCollection fingercollection)
        {
            //if we decided to skip early frames
            if (skipEarlyFrames && fingercollection.FrameNumber >= framesToSkip)
            {

                if (!TouchHelper.AllFingersUp(ref fingercollection) && fingercollection.FingerCount <= 5)
                {
                    //X value for messages
                    MidiFingerMessage fmX = mtouchMessages[fingercollection.FingerCount - 1].MessageX;
                    int val = (int)(((fingercollection.GetFingerByIndex(0).X * 10000) * fmX.MaxValue) / 10000) + fmX.MinValue;
                    SendMidiMessage(fmX.MidiCtrlr, val, fmX.MidiChannel);

                    //Y value for messages
                    MidiFingerMessage fmY = mtouchMessages[fingercollection.FingerCount - 1].MessageY;
                    val = (int)(fmY.MaxValue - (((fingercollection.GetFingerByIndex(0).Y * 10000) * fmY.MaxValue) / 10000) + fmY.MinValue);
                    SendMidiMessage(fmY.MidiCtrlr, val, fmY.MidiChannel);
                }
            }
            
        }
コード例 #9
0
ファイル: MainForm.cs プロジェクト: Gramatiik/MidiTouch
 private void DoUpdateGraphicsControl(ref WacomMTFingerCollection fingercollection)
 {
    tabletPointer1.PaintFingerTraces(fingercollection);
 }