X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fgui%2Fgamepad.cpp;h=b8ebdde5c21a8bf9827d906b2ac92508c2e0c3b2;hb=0d7e70c5e34e691b15365901951700f43242065f;hp=8706e17643667499b39d8fe78caed6190898181a;hpb=94d59c2c8c14b9ac51dffd117ec507418b4d0881;p=virtualjaguar diff --git a/src/gui/gamepad.cpp b/src/gui/gamepad.cpp index 8706e17..b8ebdde 100644 --- a/src/gui/gamepad.cpp +++ b/src/gui/gamepad.cpp @@ -7,7 +7,7 @@ // JLH = James Hammons // // Who When What -// --- ---------- ------------------------------------------------------------- +// --- ---------- ------------------------------------------------------------ // JLH 01/05/2013 Created this file // @@ -18,7 +18,7 @@ // Class member initialization /*static*/ int Gamepad::numJoysticks = 0; /*static*/ SDL_Joystick * Gamepad::pad[8]; -/*static*/ const char * Gamepad::padName[8]; +/*static*/ char Gamepad::padName[8][128]; /*static*/ int Gamepad::numButtons[8]; /*static*/ int Gamepad::numHats[8]; /*static*/ int Gamepad::numAxes[8]; @@ -51,18 +51,27 @@ void Gamepad::AllocateJoysticks(void) for(int i=0; i 127 if (pad[i]) { numButtons[i] = SDL_JoystickNumButtons(pad[i]); numHats[i] = SDL_JoystickNumHats(pad[i]); numAxes[i] = SDL_JoystickNumAxes(pad[i]); + WriteLog("Gamepad: Joystick #%i: %s\n", i, padName[i]); } } WriteLog("Gamepad: Found %u joystick%s.\n", numJoysticks, (numJoysticks == 1 ? "" : "s")); +#if 0 +for(int i=0; i= 8) return NULL; +//printf("GAMEPAD: Getting name (%s) for joystick #%i...\n", padName[joystickID], joystickID); return padName[joystickID]; } @@ -104,14 +114,21 @@ bool Gamepad::GetState(int joystickID, int buttonID) { int axisNum = (buttonID & JOY_AXISNUM_MASK) >> 1; int direction = (buttonID & JOY_AXISDIR_MASK); +//printf("Checking pad #%u axis %u: axis = %i, direction = %u\n", joystickID, axisNum, axis[joystickID][axisNum], direction); if (axis[joystickID][axisNum] != 0) { - if (axis[joystickID][axisNum] > 16000 && (direction == 0)) + if ((axis[joystickID][axisNum] > 32000) && (direction == 0)) +//{ +//printf("Axis + hit!\n"); return true; +//} - if (axis[joystickID][axisNum] < -16000 && (direction == 1)) + if ((axis[joystickID][axisNum] < -32000) && (direction == 1)) +//{ +//printf("Axis - hit!\n"); return true; +//} } } @@ -120,6 +137,7 @@ bool Gamepad::GetState(int joystickID, int buttonID) } +//UNUSED int Gamepad::CheckButtonPressed(void) { // This translates the hat direction to a mask index. @@ -158,6 +176,7 @@ int Gamepad::CheckButtonPressed(void) } +// UNUSED int Gamepad::GetButtonID(void) { // Return single button ID being pressed (if any) @@ -165,6 +184,7 @@ int Gamepad::GetButtonID(void) } +// UNUSED int Gamepad::GetJoystickID(void) { // Return joystick ID of button being pressed (if any) @@ -191,6 +211,7 @@ void Gamepad::Update(void) } +// However, SDL 2 *does* support hot-plugging! :-D #if 0 // Need to test this. It may be that the only time joysticks are detected is // when the program is first run. That would suck.