[PD-cvs] abstractions/tb find_hid-help.pd, 1.1, 1.2 find_hid.py, 1.1, 1.2 le3dp.pd, 1.1, 1.2

Tim Blechmann timblech at users.sourceforge.net
Fri Dec 9 13:50:08 CET 2005


Update of /cvsroot/pure-data/abstractions/tb
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22294

Modified Files:
	find_hid-help.pd find_hid.py le3dp.pd 
Log Message:
improved find_hid searching capabilities


Index: find_hid.py
===================================================================
RCS file: /cvsroot/pure-data/abstractions/tb/find_hid.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** find_hid.py	4 Dec 2005 18:11:08 -0000	1.1
--- find_hid.py	9 Dec 2005 12:50:06 -0000	1.2
***************
*** 22,43 ****
  from os import popen, listdir
  
  def find (*args):
  	name = ""
  	for token in args:
  		name+=" " + str(token)
  	name = name.strip()
  
! 	events = filter(lambda x: "event" in x,  listdir('/sys/class/input/'))
! 	
! 	for event in events:
! 		pipe = popen('udevinfo -a -p /sys/class/input/%s' % event)
  
! 		line = pipe.readline()
! 		while line:
! 			if name in line:
! 				print event
! 				return float(event.strip("event"))
  
! 			line = pipe.readline()
! 		pipe.close()
  	return -1
--- 22,75 ----
  from os import popen, listdir
  
+ def parse_device(event, rules):
+ 	pipe = popen('udevinfo -a -p /sys/class/input/%s' % event)
+ 	
+ 	line = pipe.readline()
+ 	while line:
+ 		line.strip()
+ 		if '==' in line:
+ 			setting, value = line.split('==')
+ 			setting = setting.strip()
+ 			if '{' in setting:
+ 				setting = setting.split('{')[1].split('}')[0]
+ 			value = value.strip().strip('"')
+ 
+ 			if setting in rules:
+ 				if rules [setting] == value:
+ 					# we matched one rule, so we remove it from the pending rules
+ 					del rules[setting]
+ 					
+ 		line = pipe.readline()
+ 
+ 		if len(rules) == 0:
+ 			pipe.close()
+ 			print event
+ 			return float(event.strip("event"))
+ 
+ 	pipe.close()
+ 	return -1
+ 
  def find (*args):
  	name = ""
  	for token in args:
  		name+=" " + str(token)
+ 
  	name = name.strip()
+ 	rules = name.split('" "')
+ 	rules = map (lambda x: x.strip('"'), rules)
  
! 	ruledict = dict()
  
! 	for rule in rules:
! 		setting, value = rule.split('=',1)
! 		ruledict[setting] = value
! 	rules = ruledict
  
! 	events = filter(lambda x: "event" in x,  listdir('/sys/class/input/'))
! 
! 	for event in events:
! 		ret = parse_device(event, dict(rules))
! 		if ret != -1:
! 			return int(ret)
! 		
  	return -1

Index: le3dp.pd
===================================================================
RCS file: /cvsroot/pure-data/abstractions/tb/le3dp.pd,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** le3dp.pd	20 Nov 2005 00:31:44 -0000	1.1
--- le3dp.pd	9 Dec 2005 12:50:06 -0000	1.2
***************
*** 110,114 ****
  #X connect 1 12 14 0;
  #X restore 51 266 pd buttons;
- #X msg 38 60 find Logitech Extreme 3D;
  #X obj 38 172 prepend open;
  #X obj 38 84 py find_hid;
--- 110,113 ----
***************
*** 121,135 ****
  #X text 116 220 abstraction to use a Logitech Extreme 3D Joystick with
  hid under linux;
! #X connect 0 0 7 0;
  #X connect 2 0 1 0;
  #X connect 2 1 3 0;
! #X connect 4 0 6 1;
  #X connect 5 0 8 0;
! #X connect 6 0 9 0;
! #X connect 7 0 11 0;
! #X connect 7 1 4 0;
! #X connect 8 0 2 0;
! #X connect 9 0 10 0;
! #X connect 9 1 5 0;
! #X connect 10 0 11 1;
! #X connect 11 0 8 0;
--- 120,135 ----
  #X text 116 220 abstraction to use a Logitech Extreme 3D Joystick with
  hid under linux;
! #X msg 38 60 find "product=Logitech Extreme 3D";
! #X connect 0 0 6 0;
  #X connect 2 0 1 0;
  #X connect 2 1 3 0;
! #X connect 4 0 7 0;
  #X connect 5 0 8 0;
! #X connect 6 0 10 0;
! #X connect 6 1 13 0;
! #X connect 7 0 2 0;
! #X connect 8 0 9 0;
! #X connect 8 1 4 0;
! #X connect 9 0 10 1;
! #X connect 10 0 7 0;
! #X connect 13 0 5 1;

Index: find_hid-help.pd
===================================================================
RCS file: /cvsroot/pure-data/abstractions/tb/find_hid-help.pd,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** find_hid-help.pd	4 Dec 2005 18:11:08 -0000	1.1
--- find_hid-help.pd	9 Dec 2005 12:50:06 -0000	1.2
***************
*** 3,10 ****
  #X obj 51 122 print;
  #X msg 51 65 reload;
! #X msg 158 69 find USB-PS/2 Optical Mouse;
! #X text 53 239 $Id$;
  #X text 49 153 find device in linux udevfs;
  #X connect 0 0 1 0;
  #X connect 2 0 0 0;
! #X connect 3 0 0 1;
--- 3,12 ----
  #X obj 51 122 print;
  #X msg 51 65 reload;
! #X text 53 239 $Id$
! ;
  #X text 49 153 find device in linux udevfs;
+ #X msg 158 69 "manufacturer=Logitech" "product=USB-PS/2 Optical Mouse"
+ ;
  #X connect 0 0 1 0;
  #X connect 2 0 0 0;
! #X connect 5 0 0 1;





More information about the Pd-cvs mailing list