From 64b3627672c142a723a879bf134dbe226d8cfbdf Mon Sep 17 00:00:00 2001 From: Tim Blechmann Date: Sun, 4 Dec 2005 18:11:08 +0000 Subject: find hid devices in udevfs svn path=/trunk/abstractions/tb/; revision=4133 --- find_hid-help.pd | 10 ++++++++++ find_hid.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 find_hid-help.pd create mode 100644 find_hid.py diff --git a/find_hid-help.pd b/find_hid-help.pd new file mode 100644 index 0000000..11f31c7 --- /dev/null +++ b/find_hid-help.pd @@ -0,0 +1,10 @@ +#N canvas 0 0 450 300 10; +#X obj 51 100 py find_hid find; +#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: find_hid-help.pd 192 2005-11-20 00:54:05Z tim $; +#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; diff --git a/find_hid.py b/find_hid.py new file mode 100644 index 0000000..15b56ff --- /dev/null +++ b/find_hid.py @@ -0,0 +1,43 @@ +# Python script to search the udev file system for devices +# Copyright (C) 2005 Tim Blechmann +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $Id: find_hid.py,v 1.1 2005-12-04 18:11:08 timblech Exp $ +# + +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 -- cgit v1.2.1