Linux::JoystickLinux::Joystick is an object-oriented, pure Perl API for accessing joystick devices under Linux-based operating systems. | |
Download |
Linux::Joystick Ranking & Summary
Advertisement
- License:
- Perl Artistic License
- Price:
- FREE
- Publisher Name:
- B. Watson
- Publisher web site:
- http://search.cpan.org/~bwatson/Linux-Joystick-0.0.1/Joystick.pm
Linux::Joystick Tags
Linux::Joystick Description
Linux::Joystick is an object-oriented, pure Perl API for accessing joystick devices under Linux-based operating systems. Linux::Joystick is an object-oriented, pure Perl API for accessing joystick devices under Linux-based operating systems. Linux::Joystick module is capable of using either blocking or non-blocking I/O, and represents each axis change or button press as a Linux::Joystick::Event object.USAGEIf you want your application to be driven by joystick events, use blocking I/O and an event loop: use Linux::Joystick; my $js = new Linux::Joystick; my $event; print "Joystick has " . $js->buttonCount() . " buttons ". "and " . $js->axisCount() . " axes.n"; # blocking reads: while( $event = $js->nextEvent ) { print "Event type: " . $event->type . ", "; if($event->isButton) { print "Button " . $event->button; if($event->buttonDown) { print " pressed"; } else { print " released"; } } elsif($event->isAxis) { print "Axis " . $event->axis . ", value " . $event->axisValue . ", "; print "UP" if $event->stickUp; print "DOWN" if $event->stickDown; print "LEFT" if $event->stickLeft; print "RIGHT" if $event->stickRight; } else { # should never happen print "Unknown event " . $event->hexDump; } print "n"; } # if the while loop terminates, we got a false (undefined) event: die "Error reading joystick: " . $js->errorString;You can also use non-blocking I/O, in which case nextEvent() returning undef just means there was no event to read: my $js = Linux::Joystick->new(nonblocking => 1); # use this to open 2nd joystick in nonblocking mode instead: # my $js = Linux::Joystick->new(device => 1, nonblocking => 1); while(1) { my $event = $js->nextEvent; if($event) { print "Got a joystick eventn"; # process the event here } # Do other processing here (graphics, sound, I/O, calculation) }It is possible to switch between blocking and non-blocking I/O without reopening the device (see the setNonblocking() method, below). Requirements: · Perl
Linux::Joystick Related Software