68 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  *		joystick utility functions
 | |
|  */
 | |
| #include  <stdio.h>
 | |
| #include  <stdlib.h>
 | |
| #include  <string.h>
 | |
| #include  <unistd.h>
 | |
| #include  <fcntl.h>
 | |
| 
 | |
| #include  <linux/joystick.h>
 | |
| 
 | |
| #include  "joyutils.h"
 | |
| 
 | |
| /* ----------------------------------------------------------------- */
 | |
| static char *type2txt(unsigned char type)
 | |
| {
 | |
| static char	temp[100];
 | |
| 
 | |
| if (!(type & JS_EVENT_INIT)) {
 | |
| 	switch(type) {
 | |
| 		case JS_EVENT_BUTTON:		return "button";
 | |
| 		case JS_EVENT_AXIS:		return "axis";
 | |
| 		}
 | |
| 	}
 | |
| else	{
 | |
| 	sprintf(temp, "init %d", type & 0x7f);
 | |
| 	return temp;
 | |
| 	}
 | |
| return "???";
 | |
| }
 | |
| /* ----------------------------------------------------------------- */
 | |
| void dump_my_joystick(char *joy_device)
 | |
| {
 | |
| int			joy_fd, foo;
 | |
| struct js_event 	js;
 | |
| int			flag = 0;
 | |
| unsigned long		debut;
 | |
| char			joy_name[128];
 | |
| 
 | |
| if( ( joy_fd = open(joy_device , O_RDONLY)) == -1 ) {
 | |
| 	fprintf(stderr, "%s: couldn't open %s\n", __func__, joy_device);
 | |
| 	exit(1);
 | |
| 	}
 | |
| 
 | |
| if (ioctl(joy_fd, JSIOCGNAME(sizeof(joy_name)), joy_name) < 0)
 | |
| 	strncpy(joy_name, "Unknown", sizeof(joy_name));
 | |
| fprintf(stderr, "Name: \"%s\"\n", joy_name);
 | |
| 
 | |
| for (;;) {
 | |
| 	foo = read(joy_fd, &js, sizeof(struct js_event));
 | |
| 	if (8 != foo) {
 | |
| 		fprintf(stderr, "%s: err reading joy\n", __func__);
 | |
| 		exit(1);
 | |
| 		}
 | |
| 	if ( ! flag ) {
 | |
| 		debut = js.time;
 | |
| 		flag = 1;
 | |
| 		}
 | |
| 	printf("%8lu     %4d      %-8s    %3d      %7d\n",
 | |
| 			js.time-debut,
 | |
| 			js.type, type2txt(js.type),
 | |
| 			js.number, js.value);
 | |
| 	}
 | |
| }
 | |
| /* ----------------------------------------------------------------- */
 | |
| 
 | |
| /* ----------------------------------------------------------------- */
 | 
