From: <hik...@us...> - 2012-01-16 21:44:25
|
Revision: 10685 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=10685&view=rev Author: hikerstk Date: 2012-01-16 21:44:19 +0000 (Mon, 16 Jan 2012) Log Message: ----------- Yet another fix to linux compilation. Modified Paths: -------------- main/trunk/src/input/wiimote_manager.cpp Modified: main/trunk/src/input/wiimote_manager.cpp =================================================================== --- main/trunk/src/input/wiimote_manager.cpp 2012-01-16 20:52:08 UTC (rev 10684) +++ main/trunk/src/input/wiimote_manager.cpp 2012-01-16 21:44:19 UTC (rev 10685) @@ -23,6 +23,7 @@ #include "graphics/irr_driver.hpp" #include "input/input_manager.hpp" #include "input/device_manager.hpp" +#include "utils/string_utils.hpp" WiimoteManager* wiimote_manager; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2012-12-20 10:51:05
|
Revision: 12293 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=12293&view=rev Author: funto66 Date: 2012-12-20 10:50:58 +0000 (Thu, 20 Dec 2012) Log Message: ----------- Fixed compilation with USE_WIIUSE + tests with the nunchuk Modified Paths: -------------- main/trunk/src/input/wiimote_manager.cpp Modified: main/trunk/src/input/wiimote_manager.cpp =================================================================== --- main/trunk/src/input/wiimote_manager.cpp 2012-12-19 00:04:10 UTC (rev 12292) +++ main/trunk/src/input/wiimote_manager.cpp 2012-12-20 10:50:58 UTC (rev 12293) @@ -19,7 +19,7 @@ #ifdef ENABLE_WIIUSE #include "input/wiimote_manager.hpp" -#include "wiiuse/wiiuse.h" +#include "wiiuse.h" #include "graphics/irr_driver.hpp" #include "input/input_manager.hpp" #include "input/device_manager.hpp" @@ -99,12 +99,12 @@ if (device_manager->getConfigForGamepad(id, name, &gamepadConfig) == true) { if(UserConfigParams::logMisc()) - printf("creating new configuration.\n"); + printf("creating new configuration for wiimote.\n"); } else { if(UserConfigParams::logMisc()) - printf("using existing configuration.\n"); + printf("using existing configuration for wiimote.\n"); } gamepadConfig->setPlugged(); @@ -165,42 +165,88 @@ // Simulate an Irrlicht joystick event; resetEvent(event, gamepad_id); + // --------------------- Wiimote -------------------- // Send button states + if(IS_PRESSED(wm, WIIMOTE_BUTTON_LEFT)) + { + printf("DEBUG: Left\n"); + event->JoystickEvent.ButtonStates |= (1<<1); + } + if(IS_PRESSED(wm, WIIMOTE_BUTTON_RIGHT)) + { + printf("DEBUG: Right\n"); + event->JoystickEvent.ButtonStates |= (1<<2); + } + if(IS_PRESSED(wm, WIIMOTE_BUTTON_UP)) + { + printf("DEBUG: Up\n"); + event->JoystickEvent.ButtonStates |= (1<<3); + } + if(IS_PRESSED(wm, WIIMOTE_BUTTON_DOWN)) + { + printf("DEBUG: Down\n"); + event->JoystickEvent.ButtonStates |= (1<<4); + } + if(IS_PRESSED(wm, WIIMOTE_BUTTON_A)) { printf("DEBUG: A\n"); - event->JoystickEvent.ButtonStates |= (1<<1); + event->JoystickEvent.ButtonStates |= (1<<5); } if(IS_PRESSED(wm, WIIMOTE_BUTTON_B)) { printf("DEBUG: B\n"); - event->JoystickEvent.ButtonStates |= (1<<2); + event->JoystickEvent.ButtonStates |= (1<<6); } if(IS_PRESSED(wm, WIIMOTE_BUTTON_PLUS)) { printf("DEBUG: +\n"); - event->JoystickEvent.ButtonStates |= (1<<3); + event->JoystickEvent.ButtonStates |= (1<<7); } if(IS_PRESSED(wm, WIIMOTE_BUTTON_MINUS)) { printf("DEBUG: -\n"); - event->JoystickEvent.ButtonStates |= (1<<4); + event->JoystickEvent.ButtonStates |= (1<<8); } if(IS_PRESSED(wm, WIIMOTE_BUTTON_ONE)) { printf("DEBUG: 1\n"); - event->JoystickEvent.ButtonStates |= (1<<5); + event->JoystickEvent.ButtonStates |= (1<<9); } if(IS_PRESSED(wm, WIIMOTE_BUTTON_TWO)) { printf("DEBUG: 2\n"); - event->JoystickEvent.ButtonStates |= (1<<6); + event->JoystickEvent.ButtonStates |= (1<<10); } if(IS_PRESSED(wm, WIIMOTE_BUTTON_HOME)) { printf("DEBUG: Home\n"); - event->JoystickEvent.ButtonStates |= (1<<7); + event->JoystickEvent.ButtonStates |= (1<<11); } + + // ------------------ Nunchuk ---------------------- + if (wm->exp.type == EXP_NUNCHUK) + { + struct nunchuk_t* nc = (nunchuk_t*)&wm->exp.nunchuk; + + if (IS_PRESSED(nc, NUNCHUK_BUTTON_C)) + { + printf("DEBUG: C\n"); + event->JoystickEvent.ButtonStates |= (1<<12); + } + if (IS_PRESSED(nc, NUNCHUK_BUTTON_Z)) + { + printf("DEBUG: Z\n"); + event->JoystickEvent.ButtonStates |= (1<<13); + } + + printf("nunchuk roll = %f\n", nc->orient.roll); + printf("nunchuk pitch = %f\n", nc->orient.pitch); + printf("nunchuk yaw = %f\n", nc->orient.yaw); + + printf("nunchuk joystick angle: %f\n", nc->js.ang); + printf("nunchuk joystick magnitude: %f\n", nc->js.mag); + } } void WiimoteManager::resetEvent(irr::SEvent* event, int gamepad_id) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2013-01-16 22:37:29
|
Revision: 12367 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=12367&view=rev Author: funto66 Date: 2013-01-16 22:37:21 +0000 (Wed, 16 Jan 2013) Log Message: ----------- Handling wiimote buttons Modified Paths: -------------- main/trunk/src/input/wiimote_manager.cpp Modified: main/trunk/src/input/wiimote_manager.cpp =================================================================== --- main/trunk/src/input/wiimote_manager.cpp 2013-01-16 22:18:07 UTC (rev 12366) +++ main/trunk/src/input/wiimote_manager.cpp 2013-01-16 22:37:21 UTC (rev 12367) @@ -52,26 +52,56 @@ } // ----------------------------------------------------------------------------- +struct WiimoteAction +{ + int button_id; + int wiimote_action_id; + const char* wiimote_action_name; +}; + +static WiimoteAction wiimote_actions[] = { + {0, WIIMOTE_BUTTON_LEFT, "WIIMOTE_BUTTON_LEFT"}, + {1, WIIMOTE_BUTTON_RIGHT, "WIIMOTE_BUTTON_RIGHT"}, + {2, WIIMOTE_BUTTON_UP, "WIIMOTE_BUTTON_UP"}, + {3, WIIMOTE_BUTTON_DOWN, "WIIMOTE_BUTTON_DOWN"}, + {4, WIIMOTE_BUTTON_A, "WIIMOTE_BUTTON_A"}, + {5, WIIMOTE_BUTTON_B, "WIIMOTE_BUTTON_B"}, + {6, WIIMOTE_BUTTON_PLUS, "WIIMOTE_BUTTON_PLUS"}, + {7, WIIMOTE_BUTTON_MINUS, "WIIMOTE_BUTTON_MINUS"}, + {8, WIIMOTE_BUTTON_ONE, "WIIMOTE_BUTTON_ONE"}, + {9, WIIMOTE_BUTTON_TWO, "WIIMOTE_BUTTON_TWO"}, + {10, WIIMOTE_BUTTON_HOME, "WIIMOTE_BUTTON_HOME"}, +}; + +static int getButtonId(int wiimote_action_id) +{ + for(unsigned int i=0 ; i < sizeof(wiimote_actions)/sizeof(WiimoteAction) ; i++) + if(wiimote_actions[i].wiimote_action_id == wiimote_action_id) + return wiimote_actions[i].button_id; + assert(false && "shouldn't happen"); + return -1; +} + +// ----------------------------------------------------------------------------- static void setWiimoteBindings(GamepadConfig* gamepad_config) { - // TODO!! gamepad_config->setBinding(PA_STEER_LEFT, Input::IT_STICKMOTION, 0, Input::AD_NEGATIVE); gamepad_config->setBinding(PA_STEER_RIGHT, Input::IT_STICKMOTION, 0, Input::AD_POSITIVE); - gamepad_config->setBinding(PA_ACCEL, Input::IT_STICKMOTION, 1, Input::AD_NEGATIVE); - gamepad_config->setBinding(PA_BRAKE, Input::IT_STICKMOTION, 1, Input::AD_POSITIVE); - gamepad_config->setBinding(PA_FIRE, Input::IT_STICKBUTTON, 0); - gamepad_config->setBinding(PA_NITRO, Input::IT_STICKBUTTON, 1); - gamepad_config->setBinding(PA_DRIFT, Input::IT_STICKBUTTON, 2); - gamepad_config->setBinding(PA_RESCUE, Input::IT_STICKBUTTON, 3); - gamepad_config->setBinding(PA_LOOK_BACK, Input::IT_STICKBUTTON, 4); - gamepad_config->setBinding(PA_PAUSE_RACE, Input::IT_STICKBUTTON, 5); + gamepad_config->setBinding(PA_ACCEL, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_TWO)); + gamepad_config->setBinding(PA_BRAKE, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_ONE)); + gamepad_config->setBinding(PA_FIRE, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_RIGHT)); + gamepad_config->setBinding(PA_NITRO, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_UP)); + gamepad_config->setBinding(PA_DRIFT, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_B)); + gamepad_config->setBinding(PA_RESCUE, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_PLUS)); + gamepad_config->setBinding(PA_LOOK_BACK, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_DOWN)); + gamepad_config->setBinding(PA_PAUSE_RACE, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_MINUS)); - gamepad_config->setBinding(PA_MENU_UP, Input::IT_STICKMOTION, 1, Input::AD_NEGATIVE); - gamepad_config->setBinding(PA_MENU_DOWN, Input::IT_STICKMOTION, 1, Input::AD_POSITIVE); - gamepad_config->setBinding(PA_MENU_LEFT, Input::IT_STICKMOTION, 0, Input::AD_NEGATIVE); - gamepad_config->setBinding(PA_MENU_RIGHT, Input::IT_STICKMOTION, 0, Input::AD_POSITIVE); - gamepad_config->setBinding(PA_MENU_SELECT, Input::IT_STICKBUTTON, 0); - gamepad_config->setBinding(PA_MENU_CANCEL, Input::IT_STICKBUTTON, 3); + gamepad_config->setBinding(PA_MENU_UP, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_RIGHT)); + gamepad_config->setBinding(PA_MENU_DOWN, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_LEFT)); + gamepad_config->setBinding(PA_MENU_LEFT, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_UP)); + gamepad_config->setBinding(PA_MENU_RIGHT, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_DOWN)); + gamepad_config->setBinding(PA_MENU_SELECT, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_TWO)); + gamepad_config->setBinding(PA_MENU_CANCEL, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_ONE)); } // ============================ Wiimote device implementation ============================ @@ -127,63 +157,20 @@ // --------------------- Wiimote -------------------- // Send button states - if(IS_PRESSED(m_wiimote_handle, WIIMOTE_BUTTON_LEFT)) + for(unsigned int i=0 ; i < sizeof(wiimote_actions)/sizeof(WiimoteAction) ; i++) { - printf("DEBUG: Left\n"); - m_irr_event.JoystickEvent.ButtonStates |= (1<<1); + if(IS_PRESSED(m_wiimote_handle, wiimote_actions[i].wiimote_action_id)) + { + /* + printf("wiimote %d: pressed button %s -> button id: %d\n", + m_wiimote_id, + wiimote_actions[i].wiimote_action_name, + wiimote_actions[i].button_id); + */ + m_irr_event.JoystickEvent.ButtonStates |= (1<<(wiimote_actions[i].button_id)); + } } - if(IS_PRESSED(m_wiimote_handle, WIIMOTE_BUTTON_RIGHT)) - { - printf("DEBUG: Right\n"); - m_irr_event.JoystickEvent.ButtonStates |= (1<<2); - } - if(IS_PRESSED(m_wiimote_handle, WIIMOTE_BUTTON_UP)) - { - printf("DEBUG: Up\n"); - m_irr_event.JoystickEvent.ButtonStates |= (1<<3); - } - if(IS_PRESSED(m_wiimote_handle, WIIMOTE_BUTTON_DOWN)) - { - printf("DEBUG: Down\n"); - m_irr_event.JoystickEvent.ButtonStates |= (1<<4); - } - if(IS_PRESSED(m_wiimote_handle, WIIMOTE_BUTTON_A)) - { - printf("DEBUG: A\n"); - m_irr_event.JoystickEvent.ButtonStates |= (1<<5); - } - if(IS_PRESSED(m_wiimote_handle, WIIMOTE_BUTTON_B)) - { - printf("DEBUG: B\n"); - m_irr_event.JoystickEvent.ButtonStates |= (1<<6); - } - if(IS_PRESSED(m_wiimote_handle, WIIMOTE_BUTTON_PLUS)) - { - printf("DEBUG: +\n"); - m_irr_event.JoystickEvent.ButtonStates |= (1<<7); - } - if(IS_PRESSED(m_wiimote_handle, WIIMOTE_BUTTON_MINUS)) - { - printf("DEBUG: -\n"); - m_irr_event.JoystickEvent.ButtonStates |= (1<<8); - } - if(IS_PRESSED(m_wiimote_handle, WIIMOTE_BUTTON_ONE)) - { - printf("DEBUG: 1\n"); - m_irr_event.JoystickEvent.ButtonStates |= (1<<9); - } - if(IS_PRESSED(m_wiimote_handle, WIIMOTE_BUTTON_TWO)) - { - printf("DEBUG: 2\n"); - m_irr_event.JoystickEvent.ButtonStates |= (1<<10); - } - if(IS_PRESSED(m_wiimote_handle, WIIMOTE_BUTTON_HOME)) - { - printf("DEBUG: Home\n"); - m_irr_event.JoystickEvent.ButtonStates |= (1<<11); - } - // ------------------ Nunchuk ---------------------- /* if (m_wiimote_handle->exp.type == EXP_NUNCHUK) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2013-01-17 20:06:13
|
Revision: 12377 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=12377&view=rev Author: funto66 Date: 2013-01-17 20:06:06 +0000 (Thu, 17 Jan 2013) Log Message: ----------- Added wiimote accelerometer handling - finally\! Modified Paths: -------------- main/trunk/src/input/wiimote_manager.cpp Modified: main/trunk/src/input/wiimote_manager.cpp =================================================================== --- main/trunk/src/input/wiimote_manager.cpp 2013-01-17 11:42:34 UTC (rev 12376) +++ main/trunk/src/input/wiimote_manager.cpp 2013-01-17 20:06:06 UTC (rev 12377) @@ -33,6 +33,9 @@ /** Irrlicht device IDs for the wiimotes start at this value */ static const int WIIMOTE_START_IRR_ID = 32; +static const float WIIMOTE_ABS_MAX_ANGLE = 80.0f; +static const float JOYSTICK_ABS_MAX_ANGLE = 32767.0f; + // ============================ Helper functions ============================ // ----------------------------------------------------------------------------- static int wiimoteIdToIrrId(int wiimote_id) @@ -144,6 +147,11 @@ WIIMOTE_BUTTONS, gamepad_config ); device_manager->addGamepad(m_gamepad_device); + + // Enable accelerometer reporting + // TODO: this should only be done when needed (i.e when racing) + // so as to avoid wasting wiimote batteries. + wiiuse_motion_sensing(m_wiimote_handle, 1); } // ----------------------------------------------------------------------------- @@ -155,18 +163,25 @@ // Simulate an Irrlicht joystick event resetIrrEvent(&m_irr_event, wiimoteIdToIrrId(m_wiimote_id)); - // --------------------- Wiimote -------------------- + // --------------------- Wiimote accelerometers -------------------- + //printf("yaw: %f\n", m_wiimote_handle->orient.yaw); + //printf("pitch: %f\n", m_wiimote_handle->orient.pitch); + //printf("roll: %f\n", m_wiimote_handle->orient.roll); + const float wiimote_to_joystick = -JOYSTICK_ABS_MAX_ANGLE / WIIMOTE_ABS_MAX_ANGLE; + const float angle = wiimote_to_joystick * m_wiimote_handle->orient.pitch; + m_irr_event.JoystickEvent.Axis[SEvent::SJoystickEvent::AXIS_X] = + (irr::s16)(irr::core::clamp(angle, -JOYSTICK_ABS_MAX_ANGLE, +JOYSTICK_ABS_MAX_ANGLE)); + + // --------------------- Wiimote buttons -------------------- // Send button states for(unsigned int i=0 ; i < sizeof(wiimote_actions)/sizeof(WiimoteAction) ; i++) { if(IS_PRESSED(m_wiimote_handle, wiimote_actions[i].wiimote_action_id)) { - /* - printf("wiimote %d: pressed button %s -> button id: %d\n", - m_wiimote_id, - wiimote_actions[i].wiimote_action_name, - wiimote_actions[i].button_id); - */ + //printf("wiimote %d: pressed button %s -> button id: %d\n", + // m_wiimote_id, + // wiimote_actions[i].wiimote_action_name, + // wiimote_actions[i].button_id); m_irr_event.JoystickEvent.ButtonStates |= (1<<(wiimote_actions[i].button_id)); } } @@ -352,7 +367,6 @@ { case WIIUSE_EVENT: m_wiimotes[i].updateIrrEvent(); - //translateEvent(m_all_wiimote_handles[i], &m_irr_events[m_write_id]); // TODO //printf("DEBUG: wiimote event\n"); break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2013-01-19 22:37:56
|
Revision: 12392 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=12392&view=rev Author: funto66 Date: 2013-01-19 22:37:49 +0000 (Sat, 19 Jan 2013) Log Message: ----------- Fix wiimotes cleanup crash when several wiimotes are connected Modified Paths: -------------- main/trunk/src/input/wiimote_manager.cpp Modified: main/trunk/src/input/wiimote_manager.cpp =================================================================== --- main/trunk/src/input/wiimote_manager.cpp 2013-01-19 21:43:21 UTC (rev 12391) +++ main/trunk/src/input/wiimote_manager.cpp 2013-01-19 22:37:49 UTC (rev 12392) @@ -319,20 +319,17 @@ { if(m_nb_wiimotes > 0) { - // Remove all configs associated to the wiimotes (linked gamepad devices are removed automatically) DeviceManager* device_manager = input_manager->getDeviceList(); - for(int i=0 ; i < m_nb_wiimotes ; i++) - { - int irr_id = wiimoteIdToIrrId(i); - GamePadDevice* gamepad_device = device_manager->getGamePadFromIrrID(irr_id); - assert(gamepad_device); - - DeviceConfig* gamepad_config = gamepad_device->getConfiguration(); - assert(gamepad_config); - - device_manager->deleteConfig(gamepad_config); - } + GamePadDevice* first_gamepad_device = device_manager->getGamePadFromIrrID(WIIMOTE_START_IRR_ID); + assert(first_gamepad_device); + + DeviceConfig* gamepad_config = first_gamepad_device->getConfiguration(); + assert(gamepad_config); + + // Remove the wiimote configuration -> automatically removes all linked gamepad devices; + device_manager->deleteConfig(gamepad_config); + // Shut the update thread m_shut = true; pthread_join(m_thread, NULL); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2013-01-27 09:07:32
|
Revision: 12430 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=12430&view=rev Author: funto66 Date: 2013-01-27 09:07:23 +0000 (Sun, 27 Jan 2013) Log Message: ----------- Wiimote: use HOME for pause + hack to fix accelerometers reporting for some people (needs a better fix) Modified Paths: -------------- main/trunk/src/input/wiimote_manager.cpp Modified: main/trunk/src/input/wiimote_manager.cpp =================================================================== --- main/trunk/src/input/wiimote_manager.cpp 2013-01-27 00:52:03 UTC (rev 12429) +++ main/trunk/src/input/wiimote_manager.cpp 2013-01-27 09:07:23 UTC (rev 12430) @@ -97,7 +97,7 @@ gamepad_config->setBinding(PA_DRIFT, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_B)); gamepad_config->setBinding(PA_RESCUE, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_PLUS)); gamepad_config->setBinding(PA_LOOK_BACK, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_DOWN)); - gamepad_config->setBinding(PA_PAUSE_RACE, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_MINUS)); + gamepad_config->setBinding(PA_PAUSE_RACE, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_HOME)); gamepad_config->setBinding(PA_MENU_UP, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_RIGHT)); gamepad_config->setBinding(PA_MENU_DOWN, Input::IT_STICKBUTTON, getButtonId(WIIMOTE_BUTTON_LEFT)); @@ -147,11 +147,6 @@ WIIMOTE_BUTTONS, gamepad_config ); device_manager->addGamepad(m_gamepad_device); - - // Enable accelerometer reporting - // TODO: this should only be done when needed (i.e when racing) - // so as to avoid wasting wiimote batteries. - wiiuse_motion_sensing(m_wiimote_handle, 1); } // ----------------------------------------------------------------------------- @@ -370,6 +365,13 @@ if(!m_wiimotes[i].isConnected()) continue; + // Enable accelerometer reporting + // TODO: this should only be done when needed (i.e when racing) + // so as to avoid wasting wiimote batteries. + // TODO: this should only be done once, but there have been reports that it didn't + // work for some people -> need to find a better fix + wiiuse_motion_sensing(m_wiimotes[i].getWiimoteHandle(), 1); + switch (m_all_wiimote_handles[i]->event) { case WIIUSE_EVENT: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fu...@us...> - 2013-02-06 22:29:26
|
Revision: 12459 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=12459&view=rev Author: funto66 Date: 2013-02-06 22:29:19 +0000 (Wed, 06 Feb 2013) Log Message: ----------- Fix compilation with USE_WIIUSE Modified Paths: -------------- main/trunk/src/input/wiimote_manager.cpp Modified: main/trunk/src/input/wiimote_manager.cpp =================================================================== --- main/trunk/src/input/wiimote_manager.cpp 2013-02-06 21:40:11 UTC (rev 12458) +++ main/trunk/src/input/wiimote_manager.cpp 2013-02-06 22:29:19 UTC (rev 12459) @@ -458,7 +458,7 @@ /** Calles when the user clicks on OK, i.e. all wiimotes are in discovery * mode. */ -void WiimoteManager::WiimoteDialogListener::onConfirm() OVERRIDE +void WiimoteManager::WiimoteDialogListener::onConfirm() { GUIEngine::ModalDialog::dismiss(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hik...@us...> - 2013-02-07 21:49:44
|
Revision: 12460 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=12460&view=rev Author: hikerstk Date: 2013-02-07 21:49:38 +0000 (Thu, 07 Feb 2013) Log Message: ----------- Some adjustments to steering curve. Modified Paths: -------------- main/trunk/src/input/wiimote_manager.cpp Modified: main/trunk/src/input/wiimote_manager.cpp =================================================================== --- main/trunk/src/input/wiimote_manager.cpp 2013-02-06 22:29:19 UTC (rev 12459) +++ main/trunk/src/input/wiimote_manager.cpp 2013-02-07 21:49:38 UTC (rev 12460) @@ -173,7 +173,11 @@ //const float angle = wiimote_to_joystick * m_wiimote_handle->orient.pitch; // --- Quadratic response version --- - const float normalized_angle = -m_wiimote_handle->orient.pitch / UserConfigParams::m_wiimote_max; + float normalized_angle = -m_wiimote_handle->orient.pitch / UserConfigParams::m_wiimote_max; + if(normalized_angle<-1.0f) + normalized_angle = -1.0f; + else if(normalized_angle>1.0f) + normalized_angle = 1.0f; // Shape the curve that determines steering depending on wiimote angle. // Linear might be too sensitive around 0, while quadratic is not sensitive // enough - blend between those curves using weight w This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hik...@us...> - 2013-03-07 13:06:57
|
Revision: 12543 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=12543&view=rev Author: hikerstk Date: 2013-03-07 13:06:47 +0000 (Thu, 07 Mar 2013) Log Message: ----------- Avoid that wiimote events are handled as digital events (which means that the actual steering value will be changed over time, not immediately, resulting in a delay). Fixed by avoiding +-32767 as input, which indicates a digital event. Note that the same problem likely exists for gamepads! Modified Paths: -------------- main/trunk/src/input/wiimote_manager.cpp Modified: main/trunk/src/input/wiimote_manager.cpp =================================================================== --- main/trunk/src/input/wiimote_manager.cpp 2013-03-06 23:12:24 UTC (rev 12542) +++ main/trunk/src/input/wiimote_manager.cpp 2013-03-07 13:06:47 UTC (rev 12543) @@ -38,7 +38,7 @@ /** Irrlicht device IDs for the wiimotes start at this value */ static const int WIIMOTE_START_IRR_ID = 32; -static const float JOYSTICK_ABS_MAX_ANGLE = 32767.0f; +static const float JOYSTICK_ABS_MAX_ANGLE = 32766.0f; // ============================ Helper functions ============================ // ----------------------------------------------------------------------------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hik...@us...> - 2013-05-15 12:22:22
|
Revision: 12766 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=12766&view=rev Author: hikerstk Date: 2013-05-15 12:22:16 +0000 (Wed, 15 May 2013) Log Message: ----------- Fixed wiimote handling on OSX. Modified Paths: -------------- main/trunk/src/input/wiimote_manager.cpp Modified: main/trunk/src/input/wiimote_manager.cpp =================================================================== --- main/trunk/src/input/wiimote_manager.cpp 2013-05-15 00:18:57 UTC (rev 12765) +++ main/trunk/src/input/wiimote_manager.cpp 2013-05-15 12:22:16 UTC (rev 12766) @@ -376,6 +376,17 @@ /** Thread update method - wiimotes state is updated in another thread to avoid latency problems */ void WiimoteManager::threadFunc() { + // Enable accelerometer reporting + // TODO: this should only be done when needed (i.e when racing) + // so as to avoid wasting wiimote batteries. + // TODO: this should only be done once, but there have been reports that it didn't + // work for some people -> need to find a better fix + for (int i=0; i < MAX_WIIMOTES; ++i) + { + if(m_wiimotes[i].isConnected()) + wiiuse_motion_sensing(m_wiimotes[i].getWiimoteHandle(), 1); + } + while(!m_shut) { if(wiiuse_poll(m_all_wiimote_handles, MAX_WIIMOTES)) @@ -385,12 +396,6 @@ if(!m_wiimotes[i].isConnected()) continue; - // Enable accelerometer reporting - // TODO: this should only be done when needed (i.e when racing) - // so as to avoid wasting wiimote batteries. - // TODO: this should only be done once, but there have been reports that it didn't - // work for some people -> need to find a better fix - wiiuse_motion_sensing(m_wiimotes[i].getWiimoteHandle(), 1); /* if(WIIUSE_USING_EXP(m_wiimotes[i].getWiimoteHandle())) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2013-09-24 22:44:40
|
Revision: 14154 http://sourceforge.net/p/supertuxkart/code/14154 Author: magned Date: 2013-09-24 22:44:37 +0000 (Tue, 24 Sep 2013) Log Message: ----------- Align Wiimote connect instruction with actual confirm button text, and added link to wiki with detailed instructions (yet to be written). Modified Paths: -------------- main/trunk/src/input/wiimote_manager.cpp Modified: main/trunk/src/input/wiimote_manager.cpp =================================================================== --- main/trunk/src/input/wiimote_manager.cpp 2013-09-24 18:35:10 UTC (rev 14153) +++ main/trunk/src/input/wiimote_manager.cpp 2013-09-24 22:44:37 UTC (rev 14154) @@ -306,7 +306,8 @@ { new MessageDialog( _("Press the buttons 1+2 simultaneously on your wiimote to put " - "it in discovery mode, then click on OK."), + "it in discovery mode, then click on Yes." + "Detailed instructions at supertuxkart.net/Wiimote"), MessageDialog::MESSAGE_DIALOG_CONFIRM, new WiimoteDialogListener(), true); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |