示例#1
0
        private static void MessageWindow_PointsIntercepted(object sender, Common.Input.RawPointsDataMessageEventArgs e)
        {
            if (!_pipeClient.IsConnected)
            {
                return;
            }
            try
            {
                const int size         = 16;
                const int offset       = 8;
                int       rawDataCount = e.RawData.Count;

                byte[] buffer = new byte[rawDataCount * size + offset];

                BitConverter.GetBytes(e.RawData.Count).CopyTo(buffer, 0);
                BitConverter.GetBytes((int)e.SourceDevice).CopyTo(buffer, 4);
                for (int i = 0; i < rawDataCount; i++)
                {
                    var current = e.RawData[i];
                    BitConverter.GetBytes(current.Tip).CopyTo(buffer, offset + i * size);
                    BitConverter.GetBytes(current.ContactIdentifier).CopyTo(buffer, offset + 4 + i * size);
                    BitConverter.GetBytes(current.RawPoints.X).CopyTo(buffer, offset + 4 * 2 + i * size);
                    BitConverter.GetBytes(current.RawPoints.Y).CopyTo(buffer, offset + 4 * 3 + i * size);
                }

                _pipeClient.Write(buffer, 0, buffer.Length);
                _pipeClient.Flush();
                _pipeClient.WaitForPipeDrain();
            }
            catch (Exception exception)
            {
                Logging.LogException(exception);
            }
        }
示例#2
0
 private static void MessageWindow_PointsIntercepted(object sender, Common.Input.RawPointsDataMessageEventArgs e)
 {
     if (!_pipeClient.IsConnected)
     {
         return;
     }
     try
     {
         _binaryWriter.Write(e.RawTouchsData.Count);
         foreach (var touchData in e.RawTouchsData)
         {
             _binaryWriter.Write(touchData.Tip);
             _binaryWriter.Write(touchData.ContactIdentifier);
             _binaryWriter.Write(touchData.RawPoints.X);
             _binaryWriter.Write(touchData.RawPoints.Y);
         }
         _pipeClient.Flush();
         _pipeClient.WaitForPipeDrain();
     }
     catch (Exception exception)
     {
         Logging.LogException(exception);
     }
 }