#!/usr/bin/env python

import time, sys, math, csv
from evdev import Device

def mouseRun():

	ms = Device(sys.argv[1])
	
	pos = 0
	vel = 0

	data=[]
	meter = 0
	
	while 1:
		ms.poll()
		time.sleep(0.05) #change this to what you want
		if len(ms.axes) > 1: #mare sure movement in both axes
			vel = abs((abs(ms.axes["REL_Y"]) +  abs(ms.axes["REL_X"]) - pos))
			pos = abs(ms.axes["REL_Y"]) + abs(ms.axes["REL_X"])

			# use the folllowing code for meter falloff	
			#if vel > meter:
			#	meter = vel
			#elif meter > 1:
			#	meter = meter / 1.5
			#elif meter > 0:
			#	meter = 0

			# straight logging
			meter = vel

			data = [(round(meter),)]
			writer = csv.writer(sys.stdout)

			for item in data:
				writer.writerow(item)

def kbdRun():

	kbd = Device(sys.argv[1])

	count = 0

	while 1:
		kbd.poll()
		if len(kbd.buttons) > 0:
			list = kbd.buttons.values()
			
			try :
				try:
					for i in range(len(list)):
						list.remove(1)
						count += 1
						print "Button pressed (%d)" % count
				except ValueError:
					pass
				
				for i in range(len(list)):
					list.remove(2)
					count += 1
					print "Button down (%d)" % count

			except ValueError:
				pass


		time.sleep(0.1)

if __name__ == "__main__":
		#kbdRun()
		mouseRun()
