From b692edd95858bc183fe5d2b101e3235038e344dd Mon Sep 17 00:00:00 2001 From: Leif Berg Date: Fri, 1 Mar 2013 10:04:19 -0600 Subject: [PATCH] added support to get X and Y values from nunchuck joystick --- src/dynamics.c | 2 ++ src/wiiuse.h | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/dynamics.c b/src/dynamics.c index 76ac202..906b90e 100644 --- a/src/dynamics.c +++ b/src/dynamics.c @@ -180,6 +180,8 @@ void calc_joystick_state(struct joystick_t* js, float x, float y) { */ rx = applyCalibration(x, js->min.x, js->max.x, js->center.x); ry = applyCalibration(y, js->min.y, js->max.y, js->center.y); + js->x = rx; + js->y = ry; /* calculate the joystick angle and magnitude */ ang = RAD_TO_DEGREE(atan2f(ry, rx)); js->ang = ang + 180.0f; diff --git a/src/wiiuse.h b/src/wiiuse.h index 065ba5f..8f4ef62 100644 --- a/src/wiiuse.h +++ b/src/wiiuse.h @@ -73,7 +73,10 @@ #define WIIUSE_MAJOR 0 #define WIIUSE_MINOR 14 -#define WIIUSE_MICRO 0 +#define WIIUSE_MICRO 2 + +#define WIIUSE_VERSION_TRANSFORM(MAJ, MIN, MICRO) (MAJ * 1000000 + MIN * 1000 + MICRO) +#define WIIUSE_HAS_VERSION(MAJ, MIN, MICRO) ( WIIUSE_VERSION_TRANSFORM(MAJ, MIN, MICRO) <= WIIUSE_VERSION_TRANSFORM(WIIUSE_MAJOR, WIIUSE_MINOR, WIIUSE_MICRO) ) #ifndef WIIUSE_PLATFORM #if defined(_WIN32) @@ -510,6 +513,8 @@ typedef struct joystick_t { float ang; /**< angle the joystick is being held */ float mag; /**< magnitude of the joystick (range 0-1) */ + float x; /**< horizontal position of the joystick (range [-1, 1] */ + float y; /**< vertical position of the joystick (range [-1, 1] */ } joystick_t;