Update of /cvsroot/pure-data/externals/hcs/hid In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2782
Modified Files: hid_linux.c Log Message: code cleanup and [print( msg implementation
Index: hid_linux.c =================================================================== RCS file: /cvsroot/pure-data/externals/hcs/hid/hid_linux.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** hid_linux.c 28 Nov 2004 01:27:47 -0000 1.7 --- hid_linux.c 28 Nov 2004 02:49:28 -0000 1.8 *************** *** 39,50 ****
! /* ============================================================================== */ /* LINUX-SPECIFIC SUPPORT FUNCTIONS */ ! /* ============================================================================== */
void hid_print_element_list(t_hid *x) { unsigned long bitmask[EV_MAX][NBITS(KEY_MAX)]; ! char devicename[256] = "Unknown"; t_int event_type, event_code; char *event_type_name = ""; --- 39,71 ----
! /* ------------------------------------------------------------------------------ */ /* LINUX-SPECIFIC SUPPORT FUNCTIONS */ ! /* ------------------------------------------------------------------------------ */ ! ! void hid_convert_linux_buttons_to_numbers(__u16 linux_code, char *hid_code) ! { ! if(linux_code >= 0x100) ! { ! if(linux_code < BTN_MOUSE) ! sprintf(hid_code,"btn_%d",linux_code - BTN_MISC); /* numbered buttons */ ! else if(linux_code < BTN_JOYSTICK) ! sprintf(hid_code,"btn_%d",linux_code - BTN_MOUSE); /* mouse buttons */ ! else if(linux_code < BTN_GAMEPAD) ! sprintf(hid_code,"btn_%d",linux_code - BTN_JOYSTICK); /* joystick buttons */ ! else if(linux_code < BTN_DIGI) ! sprintf(hid_code,"btn_%d",linux_code - BTN_GAMEPAD); /* gamepad buttons */ ! else if(linux_code < BTN_WHEEL) ! sprintf(hid_code,"btn_%d",linux_code - BTN_DIGI); /* tablet buttons */ ! else if(linux_code < KEY_OK) ! sprintf(hid_code,"btn_%d",linux_code - BTN_WHEEL); /* wheel buttons */ ! } ! } !
void hid_print_element_list(t_hid *x) { unsigned long bitmask[EV_MAX][NBITS(KEY_MAX)]; ! char device_name[256] = "Unknown"; ! char dev_handle_name[20] = "/dev/input/event0"; t_int event_type, event_code; char *event_type_name = ""; *************** *** 52,60 **** t_int synCount,keyCount,relCount,absCount,mscCount,ledCount,sndCount,repCount,ffCount,pwrCount,ff_statusCount;
- /* get name of device */ - ioctl(x->x_fd, EVIOCGNAME(sizeof(devicename)), devicename); - post ("\nConfiguring device %d as %s (%s)", - x->x_device_number,devicename,device_name); - /* get bitmask representing supported events (axes, keys, etc.) */ memset(bitmask, 0, sizeof(bitmask)); --- 73,76 ---- *************** *** 112,116 **** } else ! post(" %s\t\t%s\t%s", ev[event_type] ? ev[event_type] : "?", event_names[event_type] ? (event_names[event_type][event_code] ? event_names[event_type][event_code] : "?") : "?", --- 128,132 ---- } else ! post(" %s\t%s\t%s", ev[event_type] ? ev[event_type] : "?", event_names[event_type] ? (event_names[event_type][event_code] ? event_names[event_type][event_code] : "?") : "?", *************** *** 163,176 **** int i,fd; char device_output_string[256] = "Unknown"; ! char device_name[20] = "/dev/input/event0";
post(""); for (i=0;i<128;++i) { ! sprintf(device_name,"/dev/input/event%d",i); ! if (device_name) { /* open the device read-only, non-exclusive */ ! fd = open (device_name, O_RDONLY | O_NONBLOCK); /* test if device open */ if (fd < 0 ) --- 179,192 ---- int i,fd; char device_output_string[256] = "Unknown"; ! char dev_handle_name[20] = "/dev/input/event0";
post(""); for (i=0;i<128;++i) { ! sprintf(dev_handle_name,"/dev/input/event%d",i); ! if (dev_handle_name) { /* open the device read-only, non-exclusive */ ! fd = open (dev_handle_name, O_RDONLY | O_NONBLOCK); /* test if device open */ if (fd < 0 ) *************** *** 182,186 **** /* get name of device */ ioctl(fd, EVIOCGNAME(sizeof(device_output_string)), device_output_string); ! post("Device %d: '%s' on '%s'", i, device_output_string, device_name); close (fd); --- 198,202 ---- /* get name of device */ ioctl(fd, EVIOCGNAME(sizeof(device_output_string)), device_output_string); ! post("Device %d: '%s' on '%s'", i, device_output_string, dev_handle_name); close (fd); *************** *** 191,216 **** }
! void hid_convert_linux_buttons_to_numbers(__u16 linux_code, char *hid_code) ! { ! if(linux_code >= 0x100) ! { ! if(linux_code < BTN_MOUSE) ! sprintf(hid_code,"btn_%d",linux_code - BTN_MISC); /* numbered buttons */ ! else if(linux_code < BTN_JOYSTICK) ! sprintf(hid_code,"btn_%d",linux_code - BTN_MOUSE); /* mouse buttons */ ! else if(linux_code < BTN_GAMEPAD) ! sprintf(hid_code,"btn_%d",linux_code - BTN_JOYSTICK); /* joystick buttons */ ! else if(linux_code < BTN_DIGI) ! sprintf(hid_code,"btn_%d",linux_code - BTN_GAMEPAD); /* gamepad buttons */ ! else if(linux_code < BTN_WHEEL) ! sprintf(hid_code,"btn_%d",linux_code - BTN_DIGI); /* tablet buttons */ ! else if(linux_code < KEY_OK) ! sprintf(hid_code,"btn_%d",linux_code - BTN_WHEEL); /* wheel buttons */ ! } ! } ! ! /* ============================================================================== */ /* Pd [hid] FUNCTIONS */ ! /* ============================================================================== */
t_int hid_get_events(t_hid *x) --- 207,213 ---- }
! /* ------------------------------------------------------------------------------ */ /* Pd [hid] FUNCTIONS */ ! /* ------------------------------------------------------------------------------ */
t_int hid_get_events(t_hid *x) *************** *** 266,269 **** --- 263,267 ---- { hid_print_device_list(); + hid_print_element_list(x); }
*************** *** 273,277 **** DEBUG(post("hid_open_device"););
! char device_name[20]; struct input_event hid_input_event;
--- 271,276 ---- DEBUG(post("hid_open_device"););
! char device_name[256] = "Unknown"; ! char dev_handle_name[20] = "/dev/input/event0"; struct input_event hid_input_event;
*************** *** 279,292 ****
x->x_device_number = device_number; ! sprintf(device_name,"/dev/input/event%d",x->x_device_number);
! if (device_name) { /* open the device read-only, non-exclusive */ ! x->x_fd = open(device_name, O_RDONLY | O_NONBLOCK); /* test if device open */ if (x->x_fd < 0 ) { ! error("[hid] open %s failed",device_name); x->x_fd = -1; return 1; --- 278,291 ----
x->x_device_number = device_number; ! sprintf(dev_handle_name,"/dev/input/event%d",x->x_device_number);
! if (dev_handle_name) { /* open the device read-only, non-exclusive */ ! x->x_fd = open(dev_handle_name, O_RDONLY | O_NONBLOCK); /* test if device open */ if (x->x_fd < 0 ) { ! error("[hid] open %s failed",dev_handle_name); x->x_fd = -1; return 1; *************** *** 299,302 **** --- 298,306 ---- while (read (x->x_fd, &(hid_input_event), sizeof(struct input_event)) > -1);
+ /* get name of device */ + ioctl(x->x_fd, EVIOCGNAME(sizeof(device_name)), device_name); + post ("[hid] opened device %d (%s): %s", + x->x_device_number,dev_handle_name,device_name); + return (0); }