mirror of https://github.com/stella-emu/stella.git
first pass on converting int into JoyAxis/JoyDir
This commit is contained in:
parent
55d3c9106f
commit
80a5c5c6bf
|
@ -666,7 +666,7 @@ void PhysicalJoystickHandler::handleAxisEvent(int stick, int axis, int value)
|
||||||
if (value != j->axisLastValue[axis])
|
if (value != j->axisLastValue[axis])
|
||||||
{
|
{
|
||||||
#ifdef GUI_SUPPORT
|
#ifdef GUI_SUPPORT
|
||||||
myHandler.overlay().handleJoyAxisEvent(stick, axis, value, button);
|
myHandler.overlay().handleJoyAxisEvent(stick, JoyAxis(axis), value, button);
|
||||||
#endif
|
#endif
|
||||||
j->axisLastValue[axis] = value;
|
j->axisLastValue[axis] = value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,9 +90,9 @@ class PhysicalJoystickHandler
|
||||||
void handleBtnEvent(int stick, int button, bool pressed);
|
void handleBtnEvent(int stick, int button, bool pressed);
|
||||||
void handleHatEvent(int stick, int hat, int value);
|
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);
|
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 {
|
Event::Type eventForButton(EventMode mode, int stick, int button) const {
|
||||||
const PhysicalJoystickPtr j = joy(stick);
|
const PhysicalJoystickPtr j = joy(stick);
|
||||||
|
|
|
@ -162,7 +162,7 @@ class EventHandler
|
||||||
Event::Type eventForKey(EventMode mode, StellaKey key, StellaMod mod) const {
|
Event::Type eventForKey(EventMode mode, StellaKey key, StellaMod mod) const {
|
||||||
return myPKeyHandler->eventForKey(mode, key, mod);
|
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);
|
return myPJoyHandler->eventForAxis(mode, stick, axis, value, button);
|
||||||
}
|
}
|
||||||
Event::Type eventForJoyButton(EventMode mode, int stick, int button) const {
|
Event::Type eventForJoyButton(EventMode mode, int stick, int button) const {
|
||||||
|
|
|
@ -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));
|
handleEvent(instance().eventHandler().eventForJoyAxis(EventMode::kMenuMode, stick, axis, value, button));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ class ContextMenu : public Dialog, public CommandSender
|
||||||
void handleMouseWheel(int x, int y, int direction) override;
|
void handleMouseWheel(int x, int y, int direction) override;
|
||||||
void handleKeyDown(StellaKey key, StellaMod mod, bool repeated) override;
|
void handleKeyDown(StellaKey key, StellaMod mod, bool repeated) override;
|
||||||
void handleJoyDown(int stick, int button, bool longPress) 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;
|
bool handleJoyHat(int stick, int hat, JoyHat value, int button) override;
|
||||||
void handleEvent(Event::Type e);
|
void handleEvent(Event::Type e);
|
||||||
|
|
||||||
|
|
|
@ -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);
|
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);
|
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)
|
if(_focusedWidget->wantsRaw() || e == Event::NoType)
|
||||||
_focusedWidget->handleJoyAxis(stick, axis, value, button);
|
_focusedWidget->handleJoyAxis(stick, axis, value, button);
|
||||||
else if(value != 0)
|
else if(value != int(JoyDir::NONE))
|
||||||
_focusedWidget->handleEvent(e);
|
_focusedWidget->handleEvent(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -139,10 +139,10 @@ class Dialog : public GuiObject
|
||||||
virtual bool handleMouseClicks(int x, int y, MouseButton b);
|
virtual bool handleMouseClicks(int x, int y, MouseButton b);
|
||||||
virtual void handleJoyDown(int stick, int button, bool longPress = false);
|
virtual void handleJoyDown(int stick, int button, bool longPress = false);
|
||||||
virtual void handleJoyUp(int stick, int button);
|
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 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 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
|
Widget* findWidget(int x, int y) const; // Find the widget at pos x,y if any
|
||||||
|
|
||||||
|
|
|
@ -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())
|
if(myDialogStack.empty())
|
||||||
return;
|
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
|
// Only stop firing events if it's the current stick
|
||||||
if(myCurrentAxisDown.stick == stick && value == 0)
|
if(myCurrentAxisDown.stick == stick && value == 0)
|
||||||
{
|
{
|
||||||
myCurrentAxisDown.stick = myCurrentAxisDown.axis = -1;
|
myCurrentAxisDown.stick = -1;
|
||||||
|
myCurrentAxisDown.axis = JoyAxis::NONE;
|
||||||
myAxisRepeatTime = 0;
|
myAxisRepeatTime = 0;
|
||||||
}
|
}
|
||||||
else if(value != 0 && myAxisRepeatTime < myTime) // never repeat the 'off' event; prevent pending repeats after enabling repeat again
|
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;
|
myLastClick.count = 0;
|
||||||
|
|
||||||
myCurrentButtonDown.stick = myCurrentButtonDown.button = -1;
|
myCurrentButtonDown.stick = myCurrentButtonDown.button = -1;
|
||||||
myCurrentAxisDown.stick = myCurrentAxisDown.axis = -1;
|
myCurrentAxisDown.stick = -1;
|
||||||
|
myCurrentAxisDown.axis = JoyAxis::NONE;
|
||||||
myCurrentHatDown.stick = myCurrentHatDown.hat = -1;
|
myCurrentHatDown.stick = myCurrentHatDown.hat = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -108,7 +108,7 @@ class DialogContainer
|
||||||
@param axis The joystick axis
|
@param axis The joystick axis
|
||||||
@param value Value associated with given 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.
|
Handle a joystick hat event.
|
||||||
|
@ -208,7 +208,7 @@ class DialogContainer
|
||||||
// For continuous 'joy axis down' events
|
// For continuous 'joy axis down' events
|
||||||
struct {
|
struct {
|
||||||
int stick;
|
int stick;
|
||||||
int axis;
|
JoyAxis axis;
|
||||||
int value;
|
int value;
|
||||||
} myCurrentAxisDown;
|
} myCurrentAxisDown;
|
||||||
uInt64 myAxisRepeatTime;
|
uInt64 myAxisRepeatTime;
|
||||||
|
|
|
@ -44,7 +44,7 @@ EventMappingWidget::EventMappingWidget(GuiObject* boss, const GUI::Font& font,
|
||||||
myActionSelected(-1),
|
myActionSelected(-1),
|
||||||
myRemapStatus(false),
|
myRemapStatus(false),
|
||||||
myLastStick(0),
|
myLastStick(0),
|
||||||
myLastAxis(0),
|
myLastAxis(JoyAxis::NONE),
|
||||||
myLastHat(0),
|
myLastHat(0),
|
||||||
myLastValue(0),
|
myLastValue(0),
|
||||||
myLastButton(JOY_CTRL_NONE),
|
myLastButton(JOY_CTRL_NONE),
|
||||||
|
@ -165,7 +165,7 @@ void EventMappingWidget::startRemapping()
|
||||||
// Reset all previous events for determining correct axis/hat values
|
// Reset all previous events for determining correct axis/hat values
|
||||||
myLastStick = -1;
|
myLastStick = -1;
|
||||||
myLastButton = JOY_CTRL_NONE;
|
myLastButton = JOY_CTRL_NONE;
|
||||||
myLastAxis = int(JoyAxis::NONE);
|
myLastAxis = JoyAxis::NONE;
|
||||||
myLastHat = -1;
|
myLastHat = -1;
|
||||||
myLastValue = int(JoyDir::NONE);
|
myLastValue = int(JoyDir::NONE);
|
||||||
|
|
||||||
|
@ -223,7 +223,7 @@ void EventMappingWidget::stopRemapping()
|
||||||
// Reset all previous events for determining correct axis/hat values
|
// Reset all previous events for determining correct axis/hat values
|
||||||
myLastStick = -1;
|
myLastStick = -1;
|
||||||
myLastButton = JOY_CTRL_NONE;
|
myLastButton = JOY_CTRL_NONE;
|
||||||
myLastAxis = int(JoyAxis::NONE);
|
myLastAxis = JoyAxis::NONE;
|
||||||
myLastHat = -1;
|
myLastHat = -1;
|
||||||
myLastValue = int(JoyDir::NONE);
|
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
|
// Remap joystick axes in remap mode
|
||||||
// There are two phases to detection:
|
// 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)
|
if(myRemapStatus && myActionSelected >= 0)
|
||||||
{
|
{
|
||||||
// Detect the first axis event that represents 'on'
|
// 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;
|
myLastStick = stick;
|
||||||
myLastAxis = axis;
|
myLastAxis = axis;
|
||||||
|
|
|
@ -60,7 +60,7 @@ class EventMappingWidget : public Widget, public CommandSender
|
||||||
bool handleKeyUp(StellaKey key, StellaMod mod) override;
|
bool handleKeyUp(StellaKey key, StellaMod mod) override;
|
||||||
void handleJoyDown(int stick, int button, bool longPress = false) override;
|
void handleJoyDown(int stick, int button, bool longPress = false) override;
|
||||||
void handleJoyUp(int stick, int button) 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;
|
bool handleJoyHat(int stick, int hat, JoyHat value, int button) override;
|
||||||
|
|
||||||
void loadConfig() 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
|
// Therefore, we map these events when they've been 'released', rather
|
||||||
// than on their first occurrence (aka, when they're 'pressed')
|
// than on their first occurrence (aka, when they're 'pressed')
|
||||||
// As a result, we need to keep track of their old values
|
// 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
|
// Aggregates the modifier flags of the mapping
|
||||||
int myMod;
|
int myMod;
|
||||||
|
|
|
@ -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
|
// Remap joystick axis in remap mode, otherwise pass to parent dialog
|
||||||
if(myEmulEventMapper->remapMode())
|
if(myEmulEventMapper->remapMode())
|
||||||
|
|
|
@ -51,7 +51,7 @@ class InputDialog : public Dialog
|
||||||
void handleKeyUp(StellaKey key, StellaMod mod) override;
|
void handleKeyUp(StellaKey key, StellaMod mod) override;
|
||||||
void handleJoyDown(int stick, int button, bool longPress) override;
|
void handleJoyDown(int stick, int button, bool longPress) override;
|
||||||
void handleJoyUp(int stick, int button) 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;
|
bool handleJoyHat(int stick, int hat, JoyHat value, int button) override;
|
||||||
void handleCommand(CommandSender* sender, int cmd, int data, int id) override;
|
void handleCommand(CommandSender* sender, int cmd, int data, int id) override;
|
||||||
|
|
||||||
|
|
|
@ -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);
|
Event::Type e = instance().eventHandler().eventForJoyAxis(EventMode::kMenuMode, stick, axis, value, button);
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,7 @@ class LauncherDialog : public Dialog
|
||||||
void handleCommand(CommandSender* sender, int cmd, int data, int id) override;
|
void handleCommand(CommandSender* sender, int cmd, int data, int id) override;
|
||||||
void handleJoyDown(int stick, int button, bool longPress) override;
|
void handleJoyDown(int stick, int button, bool longPress) override;
|
||||||
void handleJoyUp(int stick, int button) 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 loadConfig() override;
|
||||||
void updateUI();
|
void updateUI();
|
||||||
|
|
|
@ -79,7 +79,7 @@ class Widget : public GuiObject
|
||||||
virtual bool handleMouseClicks(int x, int y, MouseButton b) { return false; }
|
virtual bool handleMouseClicks(int x, int y, MouseButton b) { return false; }
|
||||||
virtual void handleJoyDown(int stick, int button, bool longPress = false) { }
|
virtual void handleJoyDown(int stick, int button, bool longPress = false) { }
|
||||||
virtual void handleJoyUp(int stick, int button) { }
|
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 handleJoyHat(int stick, int hat, JoyHat value, int button = JOY_CTRL_NONE) { return false; }
|
||||||
virtual bool handleEvent(Event::Type event) { return false; }
|
virtual bool handleEvent(Event::Type event) { return false; }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue