コード例 #1
0
	    public TabletPacketEventArgs(PACKET packet, TabletSettings tabletSettings)
	    {
	        this.packet = packet;
	        this.tabletSettings = tabletSettings;
	    }
コード例 #2
0
		protected override void WndProc(ref Message m)
		{			
			switch (m.Msg) {
					
				case WinTab.WT_PROXIMITY:
					ushort lowWord = (ushort) (m.LParam.ToInt32() & 0xFFFF);
					ushort hiWord = (ushort) (m.LParam.ToInt32() >> 16);
					string logLine = "Proximity: handle = " + m.WParam.ToString();
					if (lowWord != 0) logLine += " Entering";
						else logLine += " Leaving";
					if (hiWord != 0) logLine += " Hardware";
						else logLine += " Context";
					Log(logLine);
					//base.WndProc(ref m);
					break;
					
				case WinTab.WT_PACKET:
					PACKET p = new PACKET();
					WinTab.WTPacket(m.LParam.ToInt32(),(UInt32)m.WParam.ToInt32(),out p);
					EnqueuePacket(p);
					break;
					
				default:
					base.WndProc(ref m);
					break;
					
			}
		}
コード例 #3
0
		private void TabletThread() 
		{	
			PACKET[] Packets = new PACKET[16];
			Int32 numPackets = 0;
			
			while(tabletSettings.Handle != 0) {
				try {
					numPackets = WinTab.WTPacketsGet(tabletSettings.Handle,32,Packets);
				} catch (Exception e) {
					Log(e.ToString());
				}
				//if (numPackets>0) Log("Received "+numPackets+" packets");
				for(int i=0; i<numPackets; i++) {
					EnqueuePacket(Packets[i]);
				}
				
				if (numPackets == 0) Thread.Sleep(1);
			}
		}
コード例 #4
0
		private void EnqueuePacket(PACKET packet) {
			//Log("Packet: pkX = "+p.pkX+" pkY = "+p.pkY+" pkNormalPressure = "+p.pkNormalPressure);
			TabletPacketEventArgs evArgs = 
				new TabletPacketEventArgs(packet, tabletSettings);
        
			OnTabletPacket(evArgs);
		}