From dee7d241f8b20262aebe6344b752bb0905ede628 Mon Sep 17 00:00:00 2001 From: Florian Jung Date: Tue, 4 Dec 2012 00:03:40 +0100 Subject: joystick und xorggrabber ausgelagert --- joystick.h | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 joystick.h (limited to 'joystick.h') diff --git a/joystick.h b/joystick.h new file mode 100644 index 0000000..2c55a2e --- /dev/null +++ b/joystick.h @@ -0,0 +1,64 @@ +#ifndef __JOYSTICK_H__ +#define __JOYSTICK_H__ + +#include "os.h" + +#ifdef FREEBSD +typedef union { + unsigned int Value; + struct { + unsigned R_DPAD : 1; + unsigned L_DPAD : 1; + unsigned D_DPAD : 1; + unsigned U_DPAD : 1; + unsigned START_BUTTON : 1; + unsigned Z_TRIG : 1; + unsigned B_BUTTON : 1; + unsigned A_BUTTON : 1; + + unsigned R_CBUTTON : 1; + unsigned L_CBUTTON : 1; + unsigned D_CBUTTON : 1; + unsigned U_CBUTTON : 1; + unsigned R_TRIG : 1; + unsigned L_TRIG : 1; + unsigned Reserved1 : 1; + unsigned Reserved2 : 1; + + signed X_AXIS : 8; + signed Y_AXIS : 8; + }; +} BUTTONS; + +#endif // FREEBSD + + +class Joystick +{ + public: + Joystick(); + ~Joystick(); + void steer(float dir, float dead_zone=0.0); + void throttle(float t); + void press_a(bool); + + + void process(); + void reset(); + + private: +#ifdef FREEBSD + BUTTONS buttons; + void send_data(); + int fifo_fd; +#endif +#ifdef LINUX + int fd; +#endif + + float throt; + int throttle_cnt; + +}; + +#endif // __JOYSTICK_H__ -- cgit v1.2.1