virtual bool CheckEvent(SDL_Event * event) { #if OLD_JOYSTICK SDL_JoyAxisEvent * jaxis = NULL; SDL_JoyButtonEvent * jbutton = NULL; switch(event->type) { case SDL_JOYAXISMOTION: jaxis = &event->jaxis; if(jaxis->which == stick) if(jaxis->axis == 0) JOYSTICK_Move_X(emustick,(float)(jaxis->value/32768.0)); else if(jaxis->axis == 1) JOYSTICK_Move_Y(emustick,(float)(jaxis->value/32768.0)); break; case SDL_JOYBUTTONDOWN: case SDL_JOYBUTTONUP: jbutton = &event->jbutton; bool state; state=jbutton->type==SDL_JOYBUTTONDOWN; if ((jbutton->which == stick) && (jbutton->button<2)) { JOYSTICK_Button(emustick,jbutton->button,state); } break; } #endif return false; }
void process() { const float value = (float)input_cb(retroPort, RDEV(ANALOG), retroSide, retroAxis); if(dosboxAxis == 0) JOYSTICK_Move_X(dosboxPort, value / 32768.0f); else JOYSTICK_Move_Y(dosboxPort, value / 32768.0f); }
void release() const { if(dosboxAxis==0) { if(retroID==RETRO_DEVICE_ID_JOYPAD_LEFT) JOYSTICK_Move_X(dosboxPort, -0); if(retroID==RETRO_DEVICE_ID_JOYPAD_RIGHT) JOYSTICK_Move_X(dosboxPort, 0); } else { if(retroID==RETRO_DEVICE_ID_JOYPAD_UP) JOYSTICK_Move_Y(dosboxPort, -0); if(retroID==RETRO_DEVICE_ID_JOYPAD_DOWN) JOYSTICK_Move_Y(dosboxPort, 0); } }
void press() const { if(dosboxAxis==0) { if(retroID==RETRO_DEVICE_ID_JOYPAD_LEFT) JOYSTICK_Move_X(dosboxPort, -1.0f); if(retroID==RETRO_DEVICE_ID_JOYPAD_RIGHT) JOYSTICK_Move_X(dosboxPort, 1.0f); } else { if(retroID==RETRO_DEVICE_ID_JOYPAD_UP) JOYSTICK_Move_Y(dosboxPort, -1); if(retroID==RETRO_DEVICE_ID_JOYPAD_DOWN) JOYSTICK_Move_Y(dosboxPort, 1); } }