first pass on converting int into JoyAxis/JoyDir

This commit is contained in:
Thomas Jentzsch 2019-08-15 10:58:11 +02:00
parent bd03895556
commit b95197e4cc
16 changed files with 32 additions and 29 deletions

View File

@ -666,7 +666,7 @@ void PhysicalJoystickHandler::handleAxisEvent(int stick, int axis, int value)
if (value != j->axisLastValue[axis])
{
#ifdef GUI_SUPPORT
myHandler.overlay().handleJoyAxisEvent(stick, axis, value, button);
myHandler.overlay().handleJoyAxisEvent(stick, JoyAxis(axis), value, button);
#endif
j->axisLastValue[axis] = value;
}

View File

@ -90,9 +90,9 @@ class PhysicalJoystickHandler
void handleBtnEvent(int stick, int button, bool pressed);
void handleHatEvent(int stick, int hat, int value);
Event::Type eventForAxis(EventMode mode, int stick, int axis, int value, int button) const {
Event::Type eventForAxis(EventMode mode, int stick, JoyAxis axis, int value, int button) const {
const PhysicalJoystickPtr j = joy(stick);
return j->joyMap.get(mode, button, JoyAxis(axis), convertAxisValue(value));
return j->joyMap.get(mode, button, axis, convertAxisValue(value));
}
Event::Type eventForButton(EventMode mode, int stick, int button) const {
const PhysicalJoystickPtr j = joy(stick);

View File

@ -162,7 +162,7 @@ class EventHandler
Event::Type eventForKey(EventMode mode, StellaKey key, StellaMod mod) const {
return myPKeyHandler->eventForKey(mode, key, mod);
}
Event::Type eventForJoyAxis(EventMode mode, int stick, int axis, int value, int button) const {
Event::Type eventForJoyAxis(EventMode mode, int stick, JoyAxis axis, int value, int button) const {
return myPJoyHandler->eventForAxis(mode, stick, axis, value, button);
}
Event::Type eventForJoyButton(EventMode mode, int stick, int button) const {

View File

@ -292,9 +292,9 @@ void ContextMenu::handleJoyDown(int stick, int button, bool longPress)
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void ContextMenu::handleJoyAxis(int stick, int axis, int value, int button)
void ContextMenu::handleJoyAxis(int stick, JoyAxis axis, int value, int button)
{
if(value != 0) // we don't care about 'axis up' events
if(value != int(JoyDir::NONE)) // we don't care about 'axis off' events
handleEvent(instance().eventHandler().eventForJoyAxis(EventMode::kMenuMode, stick, axis, value, button));
}

View File

@ -88,7 +88,7 @@ class ContextMenu : public Dialog, public CommandSender
void handleMouseWheel(int x, int y, int direction) override;
void handleKeyDown(StellaKey key, StellaMod mod, bool repeated) override;
void handleJoyDown(int stick, int button, bool longPress) override;
void handleJoyAxis(int stick, int axis, int value, int button) override;
void handleJoyAxis(int stick, JoyAxis axis, int value, int button) override;
bool handleJoyHat(int stick, int hat, JoyHat value, int button) override;
void handleEvent(Event::Type e);

View File

@ -613,13 +613,13 @@ void Dialog::handleJoyUp(int stick, int button)
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Event::Type Dialog::getJoyAxisEvent(int stick, int axis, int value, int button)
Event::Type Dialog::getJoyAxisEvent(int stick, JoyAxis axis, int value, int button)
{
return instance().eventHandler().eventForJoyAxis(EventMode::kMenuMode, stick, axis, value, button);
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void Dialog::handleJoyAxis(int stick, int axis, int value, int button)
void Dialog::handleJoyAxis(int stick, JoyAxis axis, int value, int button)
{
Event::Type e = getJoyAxisEvent(stick, axis, value, button);
@ -629,7 +629,7 @@ void Dialog::handleJoyAxis(int stick, int axis, int value, int button)
{
if(_focusedWidget->wantsRaw() || e == Event::NoType)
_focusedWidget->handleJoyAxis(stick, axis, value, button);
else if(value != 0)
else if(value != int(JoyDir::NONE))
_focusedWidget->handleEvent(e);
}
}

View File

@ -139,10 +139,10 @@ class Dialog : public GuiObject
virtual bool handleMouseClicks(int x, int y, MouseButton b);
virtual void handleJoyDown(int stick, int button, bool longPress = false);
virtual void handleJoyUp(int stick, int button);
virtual void handleJoyAxis(int stick, int axis, int value, int button = JOY_CTRL_NONE);
virtual void handleJoyAxis(int stick, JoyAxis axis, int value, int button = JOY_CTRL_NONE);
virtual bool handleJoyHat(int stick, int hat, JoyHat value, int button = JOY_CTRL_NONE);
virtual void handleCommand(CommandSender* sender, int cmd, int data, int id) override;
virtual Event::Type getJoyAxisEvent(int stick, int axis, int value, int button);
virtual Event::Type getJoyAxisEvent(int stick, JoyAxis axis, int value, int button);
Widget* findWidget(int x, int y) const; // Find the widget at pos x,y if any

View File

@ -313,7 +313,7 @@ void DialogContainer::handleJoyBtnEvent(int stick, int button, bool pressed)
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void DialogContainer::handleJoyAxisEvent(int stick, int axis, int value, int button)
void DialogContainer::handleJoyAxisEvent(int stick, JoyAxis axis, int value, int button)
{
if(myDialogStack.empty())
return;
@ -327,7 +327,8 @@ void DialogContainer::handleJoyAxisEvent(int stick, int axis, int value, int but
// Only stop firing events if it's the current stick
if(myCurrentAxisDown.stick == stick && value == 0)
{
myCurrentAxisDown.stick = myCurrentAxisDown.axis = -1;
myCurrentAxisDown.stick = -1;
myCurrentAxisDown.axis = JoyAxis::NONE;
myAxisRepeatTime = 0;
}
else if(value != 0 && myAxisRepeatTime < myTime) // never repeat the 'off' event; prevent pending repeats after enabling repeat again
@ -379,7 +380,8 @@ void DialogContainer::reset()
myLastClick.count = 0;
myCurrentButtonDown.stick = myCurrentButtonDown.button = -1;
myCurrentAxisDown.stick = myCurrentAxisDown.axis = -1;
myCurrentAxisDown.stick = -1;
myCurrentAxisDown.axis = JoyAxis::NONE;
myCurrentHatDown.stick = myCurrentHatDown.hat = -1;
}

View File

@ -108,7 +108,7 @@ class DialogContainer
@param axis The joystick axis
@param value Value associated with given axis
*/
void handleJoyAxisEvent(int stick, int axis, int value, int button);
void handleJoyAxisEvent(int stick, JoyAxis axis, int value, int button);
/**
Handle a joystick hat event.
@ -208,7 +208,7 @@ class DialogContainer
// For continuous 'joy axis down' events
struct {
int stick;
int axis;
JoyAxis axis;
int value;
} myCurrentAxisDown;
uInt64 myAxisRepeatTime;

View File

@ -44,7 +44,7 @@ EventMappingWidget::EventMappingWidget(GuiObject* boss, const GUI::Font& font,
myActionSelected(-1),
myRemapStatus(false),
myLastStick(0),
myLastAxis(0),
myLastAxis(JoyAxis::NONE),
myLastHat(0),
myLastValue(0),
myLastButton(JOY_CTRL_NONE),
@ -165,7 +165,7 @@ void EventMappingWidget::startRemapping()
// Reset all previous events for determining correct axis/hat values
myLastStick = -1;
myLastButton = JOY_CTRL_NONE;
myLastAxis = int(JoyAxis::NONE);
myLastAxis = JoyAxis::NONE;
myLastHat = -1;
myLastValue = int(JoyDir::NONE);
@ -223,7 +223,7 @@ void EventMappingWidget::stopRemapping()
// Reset all previous events for determining correct axis/hat values
myLastStick = -1;
myLastButton = JOY_CTRL_NONE;
myLastAxis = int(JoyAxis::NONE);
myLastAxis = JoyAxis::NONE;
myLastHat = -1;
myLastValue = int(JoyDir::NONE);
@ -345,7 +345,7 @@ void EventMappingWidget::handleJoyUp(int stick, int button)
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void EventMappingWidget::handleJoyAxis(int stick, int axis, int value, int button)
void EventMappingWidget::handleJoyAxis(int stick, JoyAxis axis, int value, int button)
{
// Remap joystick axes in remap mode
// There are two phases to detection:
@ -354,7 +354,7 @@ void EventMappingWidget::handleJoyAxis(int stick, int axis, int value, int butto
if(myRemapStatus && myActionSelected >= 0)
{
// Detect the first axis event that represents 'on'
if((myLastStick == -1 || myLastStick == stick) && myLastAxis == -1 && value != 0)
if((myLastStick == -1 || myLastStick == stick) && myLastAxis == JoyAxis::NONE && value != 0)
{
myLastStick = stick;
myLastAxis = axis;

View File

@ -60,7 +60,7 @@ class EventMappingWidget : public Widget, public CommandSender
bool handleKeyUp(StellaKey key, StellaMod mod) override;
void handleJoyDown(int stick, int button, bool longPress = false) override;
void handleJoyUp(int stick, int button) override;
void handleJoyAxis(int stick, int axis, int value, int button) override;
void handleJoyAxis(int stick, JoyAxis axis, int value, int button) override;
bool handleJoyHat(int stick, int hat, JoyHat value, int button) override;
void loadConfig() override;
@ -105,7 +105,8 @@ class EventMappingWidget : public Widget, public CommandSender
// Therefore, we map these events when they've been 'released', rather
// than on their first occurrence (aka, when they're 'pressed')
// As a result, we need to keep track of their old values
int myLastStick, myLastAxis, myLastHat, myLastValue;
int myLastStick, myLastHat, myLastValue;
JoyAxis myLastAxis;
// Aggregates the modifier flags of the mapping
int myMod;

View File

@ -499,7 +499,7 @@ void InputDialog::handleJoyUp(int stick, int button)
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void InputDialog::handleJoyAxis(int stick, int axis, int value, int button)
void InputDialog::handleJoyAxis(int stick, JoyAxis axis, int value, int button)
{
// Remap joystick axis in remap mode, otherwise pass to parent dialog
if(myEmulEventMapper->remapMode())

View File

@ -51,7 +51,7 @@ class InputDialog : public Dialog
void handleKeyUp(StellaKey key, StellaMod mod) override;
void handleJoyDown(int stick, int button, bool longPress) override;
void handleJoyUp(int stick, int button) override;
void handleJoyAxis(int stick, int axis, int value, int button) override;
void handleJoyAxis(int stick, JoyAxis axis, int value, int button) override;
bool handleJoyHat(int stick, int hat, JoyHat value, int button) override;
void handleCommand(CommandSender* sender, int cmd, int data, int id) override;

View File

@ -493,7 +493,7 @@ void LauncherDialog::handleJoyUp(int stick, int button)
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Event::Type LauncherDialog::getJoyAxisEvent(int stick, int axis, int value, int button)
Event::Type LauncherDialog::getJoyAxisEvent(int stick, JoyAxis axis, int value, int button)
{
Event::Type e = instance().eventHandler().eventForJoyAxis(EventMode::kMenuMode, stick, axis, value, button);

View File

@ -93,7 +93,7 @@ class LauncherDialog : public Dialog
void handleCommand(CommandSender* sender, int cmd, int data, int id) override;
void handleJoyDown(int stick, int button, bool longPress) override;
void handleJoyUp(int stick, int button) override;
Event::Type getJoyAxisEvent(int stick, int axis, int value, int button) override;
Event::Type getJoyAxisEvent(int stick, JoyAxis axis, int value, int button) override;
void loadConfig() override;
void updateUI();

View File

@ -79,7 +79,7 @@ class Widget : public GuiObject
virtual bool handleMouseClicks(int x, int y, MouseButton b) { return false; }
virtual void handleJoyDown(int stick, int button, bool longPress = false) { }
virtual void handleJoyUp(int stick, int button) { }
virtual void handleJoyAxis(int stick, int axis, int value, int button = JOY_CTRL_NONE) { }
virtual void handleJoyAxis(int stick, JoyAxis axis, int value, int button = JOY_CTRL_NONE) { }
virtual bool handleJoyHat(int stick, int hat, JoyHat value, int button = JOY_CTRL_NONE) { return false; }
virtual bool handleEvent(Event::Type event) { return false; }