mirror of https://github.com/stella-emu/stella.git
JSON mappings for keyboard.
This commit is contained in:
parent
24e802e490
commit
62bd47f56d
|
@ -16,8 +16,11 @@
|
|||
//============================================================================
|
||||
|
||||
#include "KeyMap.hxx"
|
||||
#include "jsonDefinitions.hxx"
|
||||
#include <map>
|
||||
|
||||
using json = nlohmann::json;
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
void KeyMap::add(const Event::Type event, const Mapping& mapping)
|
||||
{
|
||||
|
@ -169,40 +172,45 @@ KeyMap::MappingArray KeyMap::getEventMapping(const Event::Type event, const Even
|
|||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
string KeyMap::saveMapping(const EventMode mode) const
|
||||
json KeyMap::saveMapping(const EventMode mode) const
|
||||
{
|
||||
using MapType = std::pair<Mapping, Event::Type>;
|
||||
std::vector<MapType> sortedMap(myMap.begin(), myMap.end());
|
||||
json mappings = json::array();
|
||||
|
||||
std::sort(sortedMap.begin(), sortedMap.end(),
|
||||
[](const MapType& a, const MapType& b)
|
||||
{
|
||||
// Event::Type first
|
||||
if(a.second != b.second)
|
||||
return a.second < b.second;
|
||||
for (auto item : myMap) {
|
||||
if (item.first.mode != mode) continue;
|
||||
|
||||
if(a.first.key != b.first.key)
|
||||
return a.first.key < b.first.key;
|
||||
json mapping = json::object();
|
||||
|
||||
return a.first.mod < b.first.mod;
|
||||
}
|
||||
);
|
||||
mapping["event"] = item.second;
|
||||
mapping["key"] = item.first.key;
|
||||
|
||||
ostringstream buf;
|
||||
if (item.first.mod != StellaMod::KBDM_NONE)
|
||||
mapping["mod"] = item.first.mod;
|
||||
|
||||
for (auto item : sortedMap)
|
||||
{
|
||||
if (item.first.mode == mode)
|
||||
{
|
||||
if (buf.str() != "")
|
||||
buf << "|";
|
||||
buf << item.second << ":" << item.first.key << "," << item.first.mod;
|
||||
}
|
||||
mappings.push_back(mapping);
|
||||
}
|
||||
return buf.str();
|
||||
|
||||
return mappings;
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
int KeyMap::loadMapping(const json& mappings, const EventMode mode) {
|
||||
int i = 0;
|
||||
|
||||
for (const json& mapping: mappings) {
|
||||
add(
|
||||
mapping.at("event").get<Event::Type>(),
|
||||
mode,
|
||||
mapping.at("key").get<StellaKey>(),
|
||||
mapping.contains("mod") ? mapping.at("mod").get<StellaMod>() : StellaMod::KBDM_NONE
|
||||
);
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
return i;
|
||||
}
|
||||
/*
|
||||
int KeyMap::loadMapping(string& list, const EventMode mode)
|
||||
{
|
||||
// Since istringstream swallows whitespace, we have to make the
|
||||
|
@ -218,6 +226,7 @@ int KeyMap::loadMapping(string& list, const EventMode mode)
|
|||
|
||||
return i;
|
||||
}
|
||||
*/
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
void KeyMap::eraseMode(const EventMode mode)
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "Event.hxx"
|
||||
#include "EventHandlerConstants.hxx"
|
||||
#include "StellaKeys.hxx"
|
||||
#include "json.hxx"
|
||||
|
||||
/**
|
||||
This class handles keyboard mappings in Stella.
|
||||
|
@ -86,8 +87,8 @@ class KeyMap
|
|||
|
||||
MappingArray getEventMapping(const Event::Type event, const EventMode mode) const;
|
||||
|
||||
string saveMapping(const EventMode mode) const;
|
||||
int loadMapping(string& list, const EventMode mode);
|
||||
nlohmann::json saveMapping(const EventMode mode) const;
|
||||
int loadMapping(const nlohmann::json& mapping, const EventMode mode);
|
||||
|
||||
/** Erase all mappings for given mode */
|
||||
void eraseMode(const EventMode mode);
|
||||
|
|
|
@ -19,6 +19,9 @@
|
|||
#include "Console.hxx"
|
||||
#include "EventHandler.hxx"
|
||||
#include "PKeyboardHandler.hxx"
|
||||
#include "json.hxx"
|
||||
|
||||
using json = nlohmann::json;
|
||||
|
||||
#ifdef DEBUGGER_SUPPORT
|
||||
#include "Debugger.hxx"
|
||||
|
@ -46,16 +49,36 @@ PhysicalKeyboardHandler::PhysicalKeyboardHandler(OSystem& system, EventHandler&
|
|||
// Compare if event list version has changed so that key maps became invalid
|
||||
if (version == Event::VERSION)
|
||||
{
|
||||
string list = myOSystem.settings().getString("keymap_emu");
|
||||
myKeyMap.loadMapping(list, EventMode::kCommonMode);
|
||||
list = myOSystem.settings().getString("keymap_joy");
|
||||
myKeyMap.loadMapping(list, EventMode::kJoystickMode);
|
||||
list = myOSystem.settings().getString("keymap_pad");
|
||||
myKeyMap.loadMapping(list, EventMode::kPaddlesMode);
|
||||
list = myOSystem.settings().getString("keymap_key");
|
||||
myKeyMap.loadMapping(list, EventMode::kKeypadMode);
|
||||
list = myOSystem.settings().getString("keymap_ui");
|
||||
myKeyMap.loadMapping(list, EventMode::kMenuMode);
|
||||
try {
|
||||
myKeyMap.loadMapping(json::parse(myOSystem.settings().getString("keymap_emu")), EventMode::kCommonMode);
|
||||
} catch (json::exception) {
|
||||
Logger::error("ignoring bad keyboard mappings for mode: common");
|
||||
}
|
||||
|
||||
try {
|
||||
myKeyMap.loadMapping(json::parse(myOSystem.settings().getString("keymap_joy")), EventMode::kJoystickMode);
|
||||
} catch (json::exception) {
|
||||
Logger::error("ignoring bad keyboard mappings for mode: joystick");
|
||||
}
|
||||
|
||||
try {
|
||||
myKeyMap.loadMapping(json::parse(myOSystem.settings().getString("keymap_pad")), EventMode::kPaddlesMode);
|
||||
} catch (json::exception) {
|
||||
Logger::error("ignoring bad keyboard mappings for mode: paddles");
|
||||
}
|
||||
|
||||
try {
|
||||
myKeyMap.loadMapping(json::parse(myOSystem.settings().getString("keymap_key")), EventMode::kKeypadMode);
|
||||
} catch (json::exception) {
|
||||
Logger::error("ignoring bad keyboard mappings for mode: keypad");
|
||||
}
|
||||
|
||||
try {
|
||||
myKeyMap.loadMapping(json::parse(myOSystem.settings().getString("keymap_ui")), EventMode::kMenuMode);
|
||||
} catch (json::exception) {
|
||||
Logger::error("ignoring bad keyboard mappings for mode: UI");
|
||||
}
|
||||
|
||||
updateDefaults = true;
|
||||
}
|
||||
myKeyMap.enableMod() = myOSystem.settings().getBool("modcombo");
|
||||
|
@ -357,11 +380,11 @@ void PhysicalKeyboardHandler::eraseMapping(Event::Type event, EventMode mode)
|
|||
void PhysicalKeyboardHandler::saveMapping()
|
||||
{
|
||||
myOSystem.settings().setValue("event_ver", Event::VERSION);
|
||||
myOSystem.settings().setValue("keymap_emu", myKeyMap.saveMapping(EventMode::kCommonMode));
|
||||
myOSystem.settings().setValue("keymap_joy", myKeyMap.saveMapping(EventMode::kJoystickMode));
|
||||
myOSystem.settings().setValue("keymap_pad", myKeyMap.saveMapping(EventMode::kPaddlesMode));
|
||||
myOSystem.settings().setValue("keymap_key", myKeyMap.saveMapping(EventMode::kKeypadMode));
|
||||
myOSystem.settings().setValue("keymap_ui", myKeyMap.saveMapping(EventMode::kMenuMode));
|
||||
myOSystem.settings().setValue("keymap_emu", myKeyMap.saveMapping(EventMode::kCommonMode).dump());
|
||||
myOSystem.settings().setValue("keymap_joy", myKeyMap.saveMapping(EventMode::kJoystickMode).dump());
|
||||
myOSystem.settings().setValue("keymap_pad", myKeyMap.saveMapping(EventMode::kPaddlesMode).dump());
|
||||
myOSystem.settings().setValue("keymap_key", myKeyMap.saveMapping(EventMode::kKeypadMode).dump());
|
||||
myOSystem.settings().setValue("keymap_ui", myKeyMap.saveMapping(EventMode::kMenuMode).dump());
|
||||
enableEmulationMappings();
|
||||
}
|
||||
|
||||
|
|
|
@ -4,340 +4,606 @@
|
|||
#include "EventHandlerConstants.hxx"
|
||||
#include "Event.hxx"
|
||||
#include "json.hxx"
|
||||
#include "StellaKeys.hxx"
|
||||
|
||||
NLOHMANN_JSON_SERIALIZE_ENUM(JoyAxis, {
|
||||
{JoyAxis::X, "x"},
|
||||
{JoyAxis::Y, "y"},
|
||||
{JoyAxis::Z, "z"},
|
||||
{JoyAxis::A3, "a3"},
|
||||
{JoyAxis::NONE, nullptr}
|
||||
})
|
||||
{JoyAxis::NONE, nullptr},
|
||||
{JoyAxis::X, "x"},
|
||||
{JoyAxis::Y, "y"},
|
||||
{JoyAxis::Z, "z"},
|
||||
{JoyAxis::A3, "a3"}
|
||||
})
|
||||
|
||||
NLOHMANN_JSON_SERIALIZE_ENUM(JoyDir, {
|
||||
{JoyDir::ANALOG, "analog"},
|
||||
{JoyDir::NEG, "negative"},
|
||||
{JoyDir::NONE, nullptr},
|
||||
{JoyDir::POS, "position"}
|
||||
})
|
||||
NLOHMANN_JSON_SERIALIZE_ENUM(JoyDir, {
|
||||
{JoyDir::NONE, nullptr},
|
||||
{JoyDir::ANALOG, "analog"},
|
||||
{JoyDir::NEG, "negative"},
|
||||
{JoyDir::POS, "position"}
|
||||
})
|
||||
|
||||
NLOHMANN_JSON_SERIALIZE_ENUM(JoyHatDir, {
|
||||
{JoyHatDir::CENTER, "center"},
|
||||
{JoyHatDir::DOWN, "down"},
|
||||
{JoyHatDir::LEFT, "left"},
|
||||
{JoyHatDir::RIGHT, "right"},
|
||||
{JoyHatDir::UP, "up"}
|
||||
});
|
||||
NLOHMANN_JSON_SERIALIZE_ENUM(JoyHatDir, {
|
||||
{JoyHatDir::CENTER, "center"},
|
||||
{JoyHatDir::DOWN, "down"},
|
||||
{JoyHatDir::LEFT, "left"},
|
||||
{JoyHatDir::RIGHT, "right"},
|
||||
{JoyHatDir::UP, "up"}
|
||||
});
|
||||
|
||||
NLOHMANN_JSON_SERIALIZE_ENUM(EventMode, {
|
||||
{EventMode::kEditMode, "kEditMode"},
|
||||
{EventMode::kMenuMode, "kMenuMode"},
|
||||
{EventMode::kEmulationMode, "kEmulationMode"},
|
||||
{EventMode::kJoystickMode, "kJoystickMode"},
|
||||
{EventMode::kPaddlesMode, "kPaddlesMode"},
|
||||
{EventMode::kKeypadMode, "kKeypadMode"},
|
||||
{EventMode::kCompuMateMode, "kCompuMateMode"},
|
||||
{EventMode::kCommonMode, "kCommonMode"},
|
||||
{EventMode::kNumModes, "kNumModes"},
|
||||
});
|
||||
NLOHMANN_JSON_SERIALIZE_ENUM(EventMode, {
|
||||
{EventMode::kEditMode, "kEditMode"},
|
||||
{EventMode::kMenuMode, "kMenuMode"},
|
||||
{EventMode::kEmulationMode, "kEmulationMode"},
|
||||
{EventMode::kJoystickMode, "kJoystickMode"},
|
||||
{EventMode::kPaddlesMode, "kPaddlesMode"},
|
||||
{EventMode::kKeypadMode, "kKeypadMode"},
|
||||
{EventMode::kCompuMateMode, "kCompuMateMode"},
|
||||
{EventMode::kCommonMode, "kCommonMode"},
|
||||
{EventMode::kNumModes, "kNumModes"},
|
||||
});
|
||||
|
||||
NLOHMANN_JSON_SERIALIZE_ENUM(Event::Type, {
|
||||
{Event::NoType, "NoType"},
|
||||
{Event::ConsoleColor, "ConsoleColor"},
|
||||
{Event::ConsoleBlackWhite, "ConsoleBlackWhite"},
|
||||
{Event::ConsoleColorToggle, "ConsoleColorToggle"},
|
||||
{Event::Console7800Pause, "Console7800Pause"},
|
||||
{Event::ConsoleLeftDiffA, "ConsoleLeftDiffA"},
|
||||
{Event::ConsoleLeftDiffB, "ConsoleLeftDiffB"},
|
||||
{Event::ConsoleLeftDiffToggle, "ConsoleLeftDiffToggle"},
|
||||
{Event::ConsoleRightDiffA, "ConsoleRightDiffA"},
|
||||
{Event::ConsoleRightDiffB, "ConsoleRightDiffB"},
|
||||
{Event::ConsoleRightDiffToggle, "ConsoleRightDiffToggle"},
|
||||
{Event::ConsoleSelect, "ConsoleSelect"},
|
||||
{Event::ConsoleReset, "ConsoleReset"},
|
||||
{Event::JoystickZeroUp, "JoystickZeroUp"},
|
||||
{Event::JoystickZeroDown, "JoystickZeroDown"},
|
||||
{Event::JoystickZeroLeft, "JoystickZeroLeft"},
|
||||
{Event::JoystickZeroRight, "JoystickZeroRight"},
|
||||
{Event::JoystickZeroFire, "JoystickZeroFire"},
|
||||
{Event::JoystickZeroFire5, "JoystickZeroFire5"},
|
||||
{Event::JoystickZeroFire9, "JoystickZeroFire9"},
|
||||
{Event::JoystickOneUp, "JoystickOneUp"},
|
||||
{Event::JoystickOneDown, "JoystickOneDown"},
|
||||
{Event::JoystickOneLeft, "JoystickOneLeft"},
|
||||
{Event::JoystickOneRight, "JoystickOneRight"},
|
||||
{Event::JoystickOneFire, "JoystickOneFire"},
|
||||
{Event::JoystickOneFire5, "JoystickOneFire5"},
|
||||
{Event::JoystickOneFire9, "JoystickOneFire9"},
|
||||
{Event::PaddleZeroDecrease, "PaddleZeroDecrease"},
|
||||
{Event::PaddleZeroIncrease, "PaddleZeroIncrease"},
|
||||
{Event::PaddleZeroAnalog, "PaddleZeroAnalog"},
|
||||
{Event::PaddleZeroFire, "PaddleZeroFire"},
|
||||
{Event::PaddleOneDecrease, "PaddleOneDecrease"},
|
||||
{Event::PaddleOneIncrease, "PaddleOneIncrease"},
|
||||
{Event::PaddleOneAnalog, "PaddleOneAnalog"},
|
||||
{Event::PaddleOneFire, "PaddleOneFire"},
|
||||
{Event::PaddleTwoDecrease, "PaddleTwoDecrease"},
|
||||
{Event::PaddleTwoIncrease, "PaddleTwoIncrease"},
|
||||
{Event::PaddleTwoAnalog, "PaddleTwoAnalog"},
|
||||
{Event::PaddleTwoFire, "PaddleTwoFire"},
|
||||
{Event::PaddleThreeDecrease, "PaddleThreeDecrease"},
|
||||
{Event::PaddleThreeIncrease, "PaddleThreeIncrease"},
|
||||
{Event::PaddleThreeAnalog, "PaddleThreeAnalog"},
|
||||
{Event::PaddleThreeFire, "PaddleThreeFire"},
|
||||
{Event::KeyboardZero1, "KeyboardZero1"},
|
||||
{Event::KeyboardZero2, "KeyboardZero2"},
|
||||
{Event::KeyboardZero3, "KeyboardZero3"},
|
||||
{Event::KeyboardZero4, "KeyboardZero4"},
|
||||
{Event::KeyboardZero5, "KeyboardZero5"},
|
||||
{Event::KeyboardZero6, "KeyboardZero6"},
|
||||
{Event::KeyboardZero7, "KeyboardZero7"},
|
||||
{Event::KeyboardZero8, "KeyboardZero8"},
|
||||
{Event::KeyboardZero9, "KeyboardZero9"},
|
||||
{Event::KeyboardZeroStar, "KeyboardZeroStar"},
|
||||
{Event::KeyboardZero0, "KeyboardZero0"},
|
||||
{Event::KeyboardZeroPound, "KeyboardZeroPound"},
|
||||
{Event::KeyboardOne1, "KeyboardOne1"},
|
||||
{Event::KeyboardOne2, "KeyboardOne2"},
|
||||
{Event::KeyboardOne3, "KeyboardOne3"},
|
||||
{Event::KeyboardOne4, "KeyboardOne4"},
|
||||
{Event::KeyboardOne5, "KeyboardOne5"},
|
||||
{Event::KeyboardOne6, "KeyboardOne6"},
|
||||
{Event::KeyboardOne7, "KeyboardOne7"},
|
||||
{Event::KeyboardOne8, "KeyboardOne8"},
|
||||
{Event::KeyboardOne9, "KeyboardOne9"},
|
||||
{Event::KeyboardOneStar, "KeyboardOneStar"},
|
||||
{Event::KeyboardOne0, "KeyboardOne0"},
|
||||
{Event::KeyboardOnePound, "KeyboardOnePound"},
|
||||
{Event::CompuMateFunc, "CompuMateFunc"},
|
||||
{Event::CompuMateShift, "CompuMateShift"},
|
||||
{Event::CompuMate0, "CompuMate0"},
|
||||
{Event::CompuMate1, "CompuMate1"},
|
||||
{Event::CompuMate2, "CompuMate2"},
|
||||
{Event::CompuMate3, "CompuMate3"},
|
||||
{Event::CompuMate4, "CompuMate4"},
|
||||
{Event::CompuMate5, "CompuMate5"},
|
||||
{Event::CompuMate6, "CompuMate6"},
|
||||
{Event::CompuMate7, "CompuMate7"},
|
||||
{Event::CompuMate8, "CompuMate8"},
|
||||
{Event::CompuMate9, "CompuMate9"},
|
||||
{Event::CompuMateA, "CompuMateA"},
|
||||
{Event::CompuMateB, "CompuMateB"},
|
||||
{Event::CompuMateC, "CompuMateC"},
|
||||
{Event::CompuMateD, "CompuMateD"},
|
||||
{Event::CompuMateE, "CompuMateE"},
|
||||
{Event::CompuMateF, "CompuMateF"},
|
||||
{Event::CompuMateG, "CompuMateG"},
|
||||
{Event::CompuMateH, "CompuMateH"},
|
||||
{Event::CompuMateI, "CompuMateI"},
|
||||
{Event::CompuMateJ, "CompuMateJ"},
|
||||
{Event::CompuMateK, "CompuMateK"},
|
||||
{Event::CompuMateL, "CompuMateL"},
|
||||
{Event::CompuMateM, "CompuMateM"},
|
||||
{Event::CompuMateN, "CompuMateN"},
|
||||
{Event::CompuMateO, "CompuMateO"},
|
||||
{Event::CompuMateP, "CompuMateP"},
|
||||
{Event::CompuMateQ, "CompuMateQ"},
|
||||
{Event::CompuMateR, "CompuMateR"},
|
||||
{Event::CompuMateS, "CompuMateS"},
|
||||
{Event::CompuMateT, "CompuMateT"},
|
||||
{Event::CompuMateU, "CompuMateU"},
|
||||
{Event::CompuMateV, "CompuMateV"},
|
||||
{Event::CompuMateW, "CompuMateW"},
|
||||
{Event::CompuMateX, "CompuMateX"},
|
||||
{Event::CompuMateY, "CompuMateY"},
|
||||
{Event::CompuMateZ, "CompuMateZ"},
|
||||
{Event::CompuMateComma, "CompuMateComma"},
|
||||
{Event::CompuMatePeriod, "CompuMatePeriod"},
|
||||
{Event::CompuMateEnter, "CompuMateEnter"},
|
||||
{Event::CompuMateSpace, "CompuMateSpace"},
|
||||
{Event::CompuMateQuestion, "CompuMateQuestion"},
|
||||
{Event::CompuMateLeftBracket, "CompuMateLeftBracket"},
|
||||
{Event::CompuMateRightBracket, "CompuMateRightBracket"},
|
||||
{Event::CompuMateMinus, "CompuMateMinus"},
|
||||
{Event::CompuMateQuote, "CompuMateQuote"},
|
||||
{Event::CompuMateBackspace, "CompuMateBackspace"},
|
||||
{Event::CompuMateEquals, "CompuMateEquals"},
|
||||
{Event::CompuMatePlus, "CompuMatePlus"},
|
||||
{Event::CompuMateSlash, "CompuMateSlash"},
|
||||
{Event::Combo1, "Combo1"},
|
||||
{Event::Combo2, "Combo2"},
|
||||
{Event::Combo3, "Combo3"},
|
||||
{Event::Combo4, "Combo4"},
|
||||
{Event::Combo5, "Combo5"},
|
||||
{Event::Combo6, "Combo6"},
|
||||
{Event::Combo7, "Combo7"},
|
||||
{Event::Combo8, "Combo8"},
|
||||
{Event::Combo9, "Combo9"},
|
||||
{Event::Combo10, "Combo10"},
|
||||
{Event::Combo11, "Combo11"},
|
||||
{Event::Combo12, "Combo12"},
|
||||
{Event::Combo13, "Combo13"},
|
||||
{Event::Combo14, "Combo14"},
|
||||
{Event::Combo15, "Combo15"},
|
||||
{Event::Combo16, "Combo16"},
|
||||
{Event::UIUp, "UIUp"},
|
||||
{Event::UIDown, "UIDown"},
|
||||
{Event::UILeft, "UILeft"},
|
||||
{Event::UIRight, "UIRight"},
|
||||
{Event::UIHome, "UIHome"},
|
||||
{Event::UIEnd, "UIEnd"},
|
||||
{Event::UIPgUp, "UIPgUp"},
|
||||
{Event::UIPgDown, "UIPgDown"},
|
||||
{Event::UISelect, "UISelect"},
|
||||
{Event::UINavPrev, "UINavPrev"},
|
||||
{Event::UINavNext, "UINavNext"},
|
||||
{Event::UIOK, "UIOK"},
|
||||
{Event::UICancel, "UICancel"},
|
||||
{Event::UIPrevDir, "UIPrevDir"},
|
||||
{Event::UITabPrev, "UITabPrev"},
|
||||
{Event::UITabNext, "UITabNext"},
|
||||
{Event::HandleMouseControl, "HandleMouseControl"},
|
||||
{Event::ToggleGrabMouse, "ToggleGrabMouse"},
|
||||
{Event::MouseAxisXMove, "MouseAxisXMove"},
|
||||
{Event::MouseAxisYMove, "MouseAxisYMove"},
|
||||
{Event::MouseAxisXValue, "MouseAxisXValue"},
|
||||
{Event::MouseAxisYValue, "MouseAxisYValue"},
|
||||
{Event::MouseButtonLeftValue, "MouseButtonLeftValue"},
|
||||
{Event::MouseButtonRightValue, "MouseButtonRightValue"},
|
||||
{Event::Quit, "Quit"},
|
||||
{Event::ReloadConsole, "ReloadConsole"},
|
||||
{Event::Fry, "Fry"},
|
||||
{Event::TogglePauseMode, "TogglePauseMode"},
|
||||
{Event::StartPauseMode, "StartPauseMode"},
|
||||
{Event::OptionsMenuMode, "OptionsMenuMode"},
|
||||
{Event::CmdMenuMode, "CmdMenuMode"},
|
||||
{Event::DebuggerMode, "DebuggerMode"},
|
||||
{Event::ExitMode, "ExitMode"},
|
||||
{Event::TakeSnapshot, "TakeSnapshot"},
|
||||
{Event::ToggleContSnapshots, "ToggleContSnapshots"},
|
||||
{Event::ToggleContSnapshotsFrame, "ToggleContSnapshotsFrame"},
|
||||
{Event::ToggleTurbo, "ToggleTurbo"},
|
||||
{Event::NextState, "NextState"},
|
||||
{Event::PreviousState, "PreviousState"},
|
||||
{Event::LoadState, "LoadState"},
|
||||
{Event::SaveState, "SaveState"},
|
||||
{Event::SaveAllStates, "SaveAllStates"},
|
||||
{Event::LoadAllStates, "LoadAllStates"},
|
||||
{Event::ToggleAutoSlot, "ToggleAutoSlot"},
|
||||
{Event::ToggleTimeMachine, "ToggleTimeMachine"},
|
||||
{Event::TimeMachineMode, "TimeMachineMode"},
|
||||
{Event::Rewind1Menu, "Rewind1Menu"},
|
||||
{Event::Rewind10Menu, "Rewind10Menu"},
|
||||
{Event::RewindAllMenu, "RewindAllMenu"},
|
||||
{Event::Unwind1Menu, "Unwind1Menu"},
|
||||
{Event::Unwind10Menu, "Unwind10Menu"},
|
||||
{Event::UnwindAllMenu, "UnwindAllMenu"},
|
||||
{Event::RewindPause, "RewindPause"},
|
||||
{Event::UnwindPause, "UnwindPause"},
|
||||
{Event::FormatDecrease, "FormatDecrease"},
|
||||
{Event::FormatIncrease, "FormatIncrease"},
|
||||
{Event::PaletteDecrease, "PaletteDecrease"},
|
||||
{Event::PaletteIncrease, "PaletteIncrease"},
|
||||
{Event::ToggleColorLoss, "ToggleColorLoss"},
|
||||
{Event::PreviousPaletteAttribute, "PreviousPaletteAttribute"},
|
||||
{Event::NextPaletteAttribute, "NextPaletteAttribute"},
|
||||
{Event::PaletteAttributeDecrease, "PaletteAttributeDecrease"},
|
||||
{Event::PaletteAttributeIncrease, "PaletteAttributeIncrease"},
|
||||
{Event::ToggleFullScreen, "ToggleFullScreen"},
|
||||
{Event::VidmodeDecrease, "VidmodeDecrease"},
|
||||
{Event::VidmodeIncrease, "VidmodeIncrease"},
|
||||
{Event::VCenterDecrease, "VCenterDecrease"},
|
||||
{Event::VCenterIncrease, "VCenterIncrease"},
|
||||
{Event::VSizeAdjustDecrease, "VSizeAdjustDecrease"},
|
||||
{Event::VSizeAdjustIncrease, "VSizeAdjustIncrease"},
|
||||
{Event::OverscanDecrease, "OverscanDecrease"},
|
||||
{Event::OverscanIncrease, "OverscanIncrease"},
|
||||
{Event::VidmodeStd, "VidmodeStd"},
|
||||
{Event::VidmodeRGB, "VidmodeRGB"},
|
||||
{Event::VidmodeSVideo, "VidmodeSVideo"},
|
||||
{Event::VidModeComposite, "VidModeComposite"},
|
||||
{Event::VidModeBad, "VidModeBad"},
|
||||
{Event::VidModeCustom, "VidModeCustom"},
|
||||
{Event::PreviousVideoMode, "PreviousVideoMode"},
|
||||
{Event::NextVideoMode, "NextVideoMode"},
|
||||
{Event::PreviousAttribute, "PreviousAttribute"},
|
||||
{Event::NextAttribute, "NextAttribute"},
|
||||
{Event::DecreaseAttribute, "DecreaseAttribute"},
|
||||
{Event::IncreaseAttribute, "IncreaseAttribute"},
|
||||
{Event::ScanlinesDecrease, "ScanlinesDecrease"},
|
||||
{Event::ScanlinesIncrease, "ScanlinesIncrease"},
|
||||
{Event::PhosphorDecrease, "PhosphorDecrease"},
|
||||
{Event::PhosphorIncrease, "PhosphorIncrease"},
|
||||
{Event::TogglePhosphor, "TogglePhosphor"},
|
||||
{Event::ToggleInter, "ToggleInter"},
|
||||
{Event::ToggleJitter, "ToggleJitter"},
|
||||
{Event::VolumeDecrease, "VolumeDecrease"},
|
||||
{Event::VolumeIncrease, "VolumeIncrease"},
|
||||
{Event::SoundToggle, "SoundToggle"},
|
||||
{Event::ToggleP0Collision, "ToggleP0Collision"},
|
||||
{Event::ToggleP0Bit, "ToggleP0Bit"},
|
||||
{Event::ToggleP1Collision, "ToggleP1Collision"},
|
||||
{Event::ToggleP1Bit, "ToggleP1Bit"},
|
||||
{Event::ToggleM0Collision, "ToggleM0Collision"},
|
||||
{Event::ToggleM0Bit, "ToggleM0Bit"},
|
||||
{Event::ToggleM1Collision, "ToggleM1Collision"},
|
||||
{Event::ToggleM1Bit, "ToggleM1Bit"},
|
||||
{Event::ToggleBLCollision, "ToggleBLCollision"},
|
||||
{Event::ToggleBLBit, "ToggleBLBit"},
|
||||
{Event::TogglePFCollision, "TogglePFCollision"},
|
||||
{Event::TogglePFBit, "TogglePFBit"},
|
||||
{Event::ToggleCollisions, "ToggleCollisions"},
|
||||
{Event::ToggleBits, "ToggleBits"},
|
||||
{Event::ToggleFixedColors, "ToggleFixedColors"},
|
||||
{Event::ToggleFrameStats, "ToggleFrameStats"},
|
||||
{Event::ToggleSAPortOrder, "ToggleSAPortOrder"},
|
||||
{Event::ExitGame, "ExitGame"},
|
||||
{Event::SettingDecrease, "SettingDecrease"},
|
||||
{Event::SettingIncrease, "SettingIncrease"},
|
||||
{Event::PreviousSetting, "PreviousSetting"},
|
||||
{Event::NextSetting, "NextSetting"},
|
||||
{Event::ToggleAdaptRefresh, "ToggleAdaptRefresh"},
|
||||
{Event::PreviousMultiCartRom, "PreviousMultiCartRom"},
|
||||
{Event::PreviousSettingGroup, "PreviousSettingGroup"},
|
||||
{Event::NextSettingGroup, "NextSettingGroup"},
|
||||
{Event::TogglePlayBackMode, "TogglePlayBackMode"},
|
||||
{Event::DecreaseAutoFire, "DecreaseAutoFire"},
|
||||
{Event::IncreaseAutoFire, "IncreaseAutoFire"},
|
||||
{Event::DecreaseSpeed, "DecreaseSpeed"},
|
||||
{Event::IncreaseSpeed, "IncreaseSpeed"},
|
||||
{Event::JoystickTwoUp, "JoystickTwoUp"},
|
||||
{Event::JoystickTwoDown, "JoystickTwoDown"},
|
||||
{Event::JoystickTwoLeft, "JoystickTwoLeft"},
|
||||
{Event::JoystickTwoRight, "JoystickTwoRight"},
|
||||
{Event::JoystickTwoFire, "JoystickTwoFire"},
|
||||
{Event::JoystickThreeUp, "JoystickThreeUp"},
|
||||
{Event::JoystickThreeDown, "JoystickThreeDown"},
|
||||
{Event::JoystickThreeLeft, "JoystickThreeLeft"},
|
||||
{Event::JoystickThreeRight, "JoystickThreeRight"},
|
||||
{Event::JoystickThreeFire, "JoystickThreeFire"},
|
||||
{Event::ToggleCorrectAspectRatio, "ToggleCorrectAspectRatio"},
|
||||
{Event::MoveLeftChar, "MoveLeftChar"},
|
||||
{Event::MoveRightChar, "MoveRightChar"},
|
||||
{Event::MoveLeftWord, "MoveLeftWord"},
|
||||
{Event::MoveRightWord, "MoveRightWord"},
|
||||
{Event::MoveHome, "MoveHome"},
|
||||
{Event::MoveEnd, "MoveEnd"},
|
||||
{Event::SelectLeftChar, "SelectLeftChar"},
|
||||
{Event::SelectRightChar, "SelectRightChar"},
|
||||
{Event::SelectLeftWord, "SelectLeftWord"},
|
||||
{Event::SelectRightWord, "SelectRightWord"},
|
||||
{Event::SelectHome, "SelectHome"},
|
||||
{Event::SelectEnd, "SelectEnd"},
|
||||
{Event::SelectAll, "SelectAll"},
|
||||
{Event::Delete, "Delete"},
|
||||
{Event::DeleteLeftWord, "DeleteLeftWord"},
|
||||
{Event::DeleteRightWord, "DeleteRightWord"},
|
||||
{Event::DeleteHome, "DeleteHome"},
|
||||
{Event::DeleteEnd, "DeleteEnd"},
|
||||
{Event::Backspace, "Backspace"},
|
||||
{Event::Cut, "Cut"},
|
||||
{Event::Copy, "Copy"},
|
||||
{Event::Paste, "Paste"},
|
||||
{Event::Undo, "Undo"},
|
||||
{Event::Redo, "Redo"},
|
||||
{Event::AbortEdit, "AbortEdit"},
|
||||
{Event::EndEdit, "EndEdit"},
|
||||
{Event::LastType, "LastType"}
|
||||
});
|
||||
NLOHMANN_JSON_SERIALIZE_ENUM(Event::Type, {
|
||||
{Event::NoType, "NoType"},
|
||||
{Event::ConsoleColor, "ConsoleColor"},
|
||||
{Event::ConsoleBlackWhite, "ConsoleBlackWhite"},
|
||||
{Event::ConsoleColorToggle, "ConsoleColorToggle"},
|
||||
{Event::Console7800Pause, "Console7800Pause"},
|
||||
{Event::ConsoleLeftDiffA, "ConsoleLeftDiffA"},
|
||||
{Event::ConsoleLeftDiffB, "ConsoleLeftDiffB"},
|
||||
{Event::ConsoleLeftDiffToggle, "ConsoleLeftDiffToggle"},
|
||||
{Event::ConsoleRightDiffA, "ConsoleRightDiffA"},
|
||||
{Event::ConsoleRightDiffB, "ConsoleRightDiffB"},
|
||||
{Event::ConsoleRightDiffToggle, "ConsoleRightDiffToggle"},
|
||||
{Event::ConsoleSelect, "ConsoleSelect"},
|
||||
{Event::ConsoleReset, "ConsoleReset"},
|
||||
{Event::JoystickZeroUp, "JoystickZeroUp"},
|
||||
{Event::JoystickZeroDown, "JoystickZeroDown"},
|
||||
{Event::JoystickZeroLeft, "JoystickZeroLeft"},
|
||||
{Event::JoystickZeroRight, "JoystickZeroRight"},
|
||||
{Event::JoystickZeroFire, "JoystickZeroFire"},
|
||||
{Event::JoystickZeroFire5, "JoystickZeroFire5"},
|
||||
{Event::JoystickZeroFire9, "JoystickZeroFire9"},
|
||||
{Event::JoystickOneUp, "JoystickOneUp"},
|
||||
{Event::JoystickOneDown, "JoystickOneDown"},
|
||||
{Event::JoystickOneLeft, "JoystickOneLeft"},
|
||||
{Event::JoystickOneRight, "JoystickOneRight"},
|
||||
{Event::JoystickOneFire, "JoystickOneFire"},
|
||||
{Event::JoystickOneFire5, "JoystickOneFire5"},
|
||||
{Event::JoystickOneFire9, "JoystickOneFire9"},
|
||||
{Event::PaddleZeroDecrease, "PaddleZeroDecrease"},
|
||||
{Event::PaddleZeroIncrease, "PaddleZeroIncrease"},
|
||||
{Event::PaddleZeroAnalog, "PaddleZeroAnalog"},
|
||||
{Event::PaddleZeroFire, "PaddleZeroFire"},
|
||||
{Event::PaddleOneDecrease, "PaddleOneDecrease"},
|
||||
{Event::PaddleOneIncrease, "PaddleOneIncrease"},
|
||||
{Event::PaddleOneAnalog, "PaddleOneAnalog"},
|
||||
{Event::PaddleOneFire, "PaddleOneFire"},
|
||||
{Event::PaddleTwoDecrease, "PaddleTwoDecrease"},
|
||||
{Event::PaddleTwoIncrease, "PaddleTwoIncrease"},
|
||||
{Event::PaddleTwoAnalog, "PaddleTwoAnalog"},
|
||||
{Event::PaddleTwoFire, "PaddleTwoFire"},
|
||||
{Event::PaddleThreeDecrease, "PaddleThreeDecrease"},
|
||||
{Event::PaddleThreeIncrease, "PaddleThreeIncrease"},
|
||||
{Event::PaddleThreeAnalog, "PaddleThreeAnalog"},
|
||||
{Event::PaddleThreeFire, "PaddleThreeFire"},
|
||||
{Event::KeyboardZero1, "KeyboardZero1"},
|
||||
{Event::KeyboardZero2, "KeyboardZero2"},
|
||||
{Event::KeyboardZero3, "KeyboardZero3"},
|
||||
{Event::KeyboardZero4, "KeyboardZero4"},
|
||||
{Event::KeyboardZero5, "KeyboardZero5"},
|
||||
{Event::KeyboardZero6, "KeyboardZero6"},
|
||||
{Event::KeyboardZero7, "KeyboardZero7"},
|
||||
{Event::KeyboardZero8, "KeyboardZero8"},
|
||||
{Event::KeyboardZero9, "KeyboardZero9"},
|
||||
{Event::KeyboardZeroStar, "KeyboardZeroStar"},
|
||||
{Event::KeyboardZero0, "KeyboardZero0"},
|
||||
{Event::KeyboardZeroPound, "KeyboardZeroPound"},
|
||||
{Event::KeyboardOne1, "KeyboardOne1"},
|
||||
{Event::KeyboardOne2, "KeyboardOne2"},
|
||||
{Event::KeyboardOne3, "KeyboardOne3"},
|
||||
{Event::KeyboardOne4, "KeyboardOne4"},
|
||||
{Event::KeyboardOne5, "KeyboardOne5"},
|
||||
{Event::KeyboardOne6, "KeyboardOne6"},
|
||||
{Event::KeyboardOne7, "KeyboardOne7"},
|
||||
{Event::KeyboardOne8, "KeyboardOne8"},
|
||||
{Event::KeyboardOne9, "KeyboardOne9"},
|
||||
{Event::KeyboardOneStar, "KeyboardOneStar"},
|
||||
{Event::KeyboardOne0, "KeyboardOne0"},
|
||||
{Event::KeyboardOnePound, "KeyboardOnePound"},
|
||||
{Event::CompuMateFunc, "CompuMateFunc"},
|
||||
{Event::CompuMateShift, "CompuMateShift"},
|
||||
{Event::CompuMate0, "CompuMate0"},
|
||||
{Event::CompuMate1, "CompuMate1"},
|
||||
{Event::CompuMate2, "CompuMate2"},
|
||||
{Event::CompuMate3, "CompuMate3"},
|
||||
{Event::CompuMate4, "CompuMate4"},
|
||||
{Event::CompuMate5, "CompuMate5"},
|
||||
{Event::CompuMate6, "CompuMate6"},
|
||||
{Event::CompuMate7, "CompuMate7"},
|
||||
{Event::CompuMate8, "CompuMate8"},
|
||||
{Event::CompuMate9, "CompuMate9"},
|
||||
{Event::CompuMateA, "CompuMateA"},
|
||||
{Event::CompuMateB, "CompuMateB"},
|
||||
{Event::CompuMateC, "CompuMateC"},
|
||||
{Event::CompuMateD, "CompuMateD"},
|
||||
{Event::CompuMateE, "CompuMateE"},
|
||||
{Event::CompuMateF, "CompuMateF"},
|
||||
{Event::CompuMateG, "CompuMateG"},
|
||||
{Event::CompuMateH, "CompuMateH"},
|
||||
{Event::CompuMateI, "CompuMateI"},
|
||||
{Event::CompuMateJ, "CompuMateJ"},
|
||||
{Event::CompuMateK, "CompuMateK"},
|
||||
{Event::CompuMateL, "CompuMateL"},
|
||||
{Event::CompuMateM, "CompuMateM"},
|
||||
{Event::CompuMateN, "CompuMateN"},
|
||||
{Event::CompuMateO, "CompuMateO"},
|
||||
{Event::CompuMateP, "CompuMateP"},
|
||||
{Event::CompuMateQ, "CompuMateQ"},
|
||||
{Event::CompuMateR, "CompuMateR"},
|
||||
{Event::CompuMateS, "CompuMateS"},
|
||||
{Event::CompuMateT, "CompuMateT"},
|
||||
{Event::CompuMateU, "CompuMateU"},
|
||||
{Event::CompuMateV, "CompuMateV"},
|
||||
{Event::CompuMateW, "CompuMateW"},
|
||||
{Event::CompuMateX, "CompuMateX"},
|
||||
{Event::CompuMateY, "CompuMateY"},
|
||||
{Event::CompuMateZ, "CompuMateZ"},
|
||||
{Event::CompuMateComma, "CompuMateComma"},
|
||||
{Event::CompuMatePeriod, "CompuMatePeriod"},
|
||||
{Event::CompuMateEnter, "CompuMateEnter"},
|
||||
{Event::CompuMateSpace, "CompuMateSpace"},
|
||||
{Event::CompuMateQuestion, "CompuMateQuestion"},
|
||||
{Event::CompuMateLeftBracket, "CompuMateLeftBracket"},
|
||||
{Event::CompuMateRightBracket, "CompuMateRightBracket"},
|
||||
{Event::CompuMateMinus, "CompuMateMinus"},
|
||||
{Event::CompuMateQuote, "CompuMateQuote"},
|
||||
{Event::CompuMateBackspace, "CompuMateBackspace"},
|
||||
{Event::CompuMateEquals, "CompuMateEquals"},
|
||||
{Event::CompuMatePlus, "CompuMatePlus"},
|
||||
{Event::CompuMateSlash, "CompuMateSlash"},
|
||||
{Event::Combo1, "Combo1"},
|
||||
{Event::Combo2, "Combo2"},
|
||||
{Event::Combo3, "Combo3"},
|
||||
{Event::Combo4, "Combo4"},
|
||||
{Event::Combo5, "Combo5"},
|
||||
{Event::Combo6, "Combo6"},
|
||||
{Event::Combo7, "Combo7"},
|
||||
{Event::Combo8, "Combo8"},
|
||||
{Event::Combo9, "Combo9"},
|
||||
{Event::Combo10, "Combo10"},
|
||||
{Event::Combo11, "Combo11"},
|
||||
{Event::Combo12, "Combo12"},
|
||||
{Event::Combo13, "Combo13"},
|
||||
{Event::Combo14, "Combo14"},
|
||||
{Event::Combo15, "Combo15"},
|
||||
{Event::Combo16, "Combo16"},
|
||||
{Event::UIUp, "UIUp"},
|
||||
{Event::UIDown, "UIDown"},
|
||||
{Event::UILeft, "UILeft"},
|
||||
{Event::UIRight, "UIRight"},
|
||||
{Event::UIHome, "UIHome"},
|
||||
{Event::UIEnd, "UIEnd"},
|
||||
{Event::UIPgUp, "UIPgUp"},
|
||||
{Event::UIPgDown, "UIPgDown"},
|
||||
{Event::UISelect, "UISelect"},
|
||||
{Event::UINavPrev, "UINavPrev"},
|
||||
{Event::UINavNext, "UINavNext"},
|
||||
{Event::UIOK, "UIOK"},
|
||||
{Event::UICancel, "UICancel"},
|
||||
{Event::UIPrevDir, "UIPrevDir"},
|
||||
{Event::UITabPrev, "UITabPrev"},
|
||||
{Event::UITabNext, "UITabNext"},
|
||||
{Event::HandleMouseControl, "HandleMouseControl"},
|
||||
{Event::ToggleGrabMouse, "ToggleGrabMouse"},
|
||||
{Event::MouseAxisXMove, "MouseAxisXMove"},
|
||||
{Event::MouseAxisYMove, "MouseAxisYMove"},
|
||||
{Event::MouseAxisXValue, "MouseAxisXValue"},
|
||||
{Event::MouseAxisYValue, "MouseAxisYValue"},
|
||||
{Event::MouseButtonLeftValue, "MouseButtonLeftValue"},
|
||||
{Event::MouseButtonRightValue, "MouseButtonRightValue"},
|
||||
{Event::Quit, "Quit"},
|
||||
{Event::ReloadConsole, "ReloadConsole"},
|
||||
{Event::Fry, "Fry"},
|
||||
{Event::TogglePauseMode, "TogglePauseMode"},
|
||||
{Event::StartPauseMode, "StartPauseMode"},
|
||||
{Event::OptionsMenuMode, "OptionsMenuMode"},
|
||||
{Event::CmdMenuMode, "CmdMenuMode"},
|
||||
{Event::DebuggerMode, "DebuggerMode"},
|
||||
{Event::ExitMode, "ExitMode"},
|
||||
{Event::TakeSnapshot, "TakeSnapshot"},
|
||||
{Event::ToggleContSnapshots, "ToggleContSnapshots"},
|
||||
{Event::ToggleContSnapshotsFrame, "ToggleContSnapshotsFrame"},
|
||||
{Event::ToggleTurbo, "ToggleTurbo"},
|
||||
{Event::NextState, "NextState"},
|
||||
{Event::PreviousState, "PreviousState"},
|
||||
{Event::LoadState, "LoadState"},
|
||||
{Event::SaveState, "SaveState"},
|
||||
{Event::SaveAllStates, "SaveAllStates"},
|
||||
{Event::LoadAllStates, "LoadAllStates"},
|
||||
{Event::ToggleAutoSlot, "ToggleAutoSlot"},
|
||||
{Event::ToggleTimeMachine, "ToggleTimeMachine"},
|
||||
{Event::TimeMachineMode, "TimeMachineMode"},
|
||||
{Event::Rewind1Menu, "Rewind1Menu"},
|
||||
{Event::Rewind10Menu, "Rewind10Menu"},
|
||||
{Event::RewindAllMenu, "RewindAllMenu"},
|
||||
{Event::Unwind1Menu, "Unwind1Menu"},
|
||||
{Event::Unwind10Menu, "Unwind10Menu"},
|
||||
{Event::UnwindAllMenu, "UnwindAllMenu"},
|
||||
{Event::RewindPause, "RewindPause"},
|
||||
{Event::UnwindPause, "UnwindPause"},
|
||||
{Event::FormatDecrease, "FormatDecrease"},
|
||||
{Event::FormatIncrease, "FormatIncrease"},
|
||||
{Event::PaletteDecrease, "PaletteDecrease"},
|
||||
{Event::PaletteIncrease, "PaletteIncrease"},
|
||||
{Event::ToggleColorLoss, "ToggleColorLoss"},
|
||||
{Event::PreviousPaletteAttribute, "PreviousPaletteAttribute"},
|
||||
{Event::NextPaletteAttribute, "NextPaletteAttribute"},
|
||||
{Event::PaletteAttributeDecrease, "PaletteAttributeDecrease"},
|
||||
{Event::PaletteAttributeIncrease, "PaletteAttributeIncrease"},
|
||||
{Event::ToggleFullScreen, "ToggleFullScreen"},
|
||||
{Event::VidmodeDecrease, "VidmodeDecrease"},
|
||||
{Event::VidmodeIncrease, "VidmodeIncrease"},
|
||||
{Event::VCenterDecrease, "VCenterDecrease"},
|
||||
{Event::VCenterIncrease, "VCenterIncrease"},
|
||||
{Event::VSizeAdjustDecrease, "VSizeAdjustDecrease"},
|
||||
{Event::VSizeAdjustIncrease, "VSizeAdjustIncrease"},
|
||||
{Event::OverscanDecrease, "OverscanDecrease"},
|
||||
{Event::OverscanIncrease, "OverscanIncrease"},
|
||||
{Event::VidmodeStd, "VidmodeStd"},
|
||||
{Event::VidmodeRGB, "VidmodeRGB"},
|
||||
{Event::VidmodeSVideo, "VidmodeSVideo"},
|
||||
{Event::VidModeComposite, "VidModeComposite"},
|
||||
{Event::VidModeBad, "VidModeBad"},
|
||||
{Event::VidModeCustom, "VidModeCustom"},
|
||||
{Event::PreviousVideoMode, "PreviousVideoMode"},
|
||||
{Event::NextVideoMode, "NextVideoMode"},
|
||||
{Event::PreviousAttribute, "PreviousAttribute"},
|
||||
{Event::NextAttribute, "NextAttribute"},
|
||||
{Event::DecreaseAttribute, "DecreaseAttribute"},
|
||||
{Event::IncreaseAttribute, "IncreaseAttribute"},
|
||||
{Event::ScanlinesDecrease, "ScanlinesDecrease"},
|
||||
{Event::ScanlinesIncrease, "ScanlinesIncrease"},
|
||||
{Event::PhosphorDecrease, "PhosphorDecrease"},
|
||||
{Event::PhosphorIncrease, "PhosphorIncrease"},
|
||||
{Event::TogglePhosphor, "TogglePhosphor"},
|
||||
{Event::ToggleInter, "ToggleInter"},
|
||||
{Event::ToggleJitter, "ToggleJitter"},
|
||||
{Event::VolumeDecrease, "VolumeDecrease"},
|
||||
{Event::VolumeIncrease, "VolumeIncrease"},
|
||||
{Event::SoundToggle, "SoundToggle"},
|
||||
{Event::ToggleP0Collision, "ToggleP0Collision"},
|
||||
{Event::ToggleP0Bit, "ToggleP0Bit"},
|
||||
{Event::ToggleP1Collision, "ToggleP1Collision"},
|
||||
{Event::ToggleP1Bit, "ToggleP1Bit"},
|
||||
{Event::ToggleM0Collision, "ToggleM0Collision"},
|
||||
{Event::ToggleM0Bit, "ToggleM0Bit"},
|
||||
{Event::ToggleM1Collision, "ToggleM1Collision"},
|
||||
{Event::ToggleM1Bit, "ToggleM1Bit"},
|
||||
{Event::ToggleBLCollision, "ToggleBLCollision"},
|
||||
{Event::ToggleBLBit, "ToggleBLBit"},
|
||||
{Event::TogglePFCollision, "TogglePFCollision"},
|
||||
{Event::TogglePFBit, "TogglePFBit"},
|
||||
{Event::ToggleCollisions, "ToggleCollisions"},
|
||||
{Event::ToggleBits, "ToggleBits"},
|
||||
{Event::ToggleFixedColors, "ToggleFixedColors"},
|
||||
{Event::ToggleFrameStats, "ToggleFrameStats"},
|
||||
{Event::ToggleSAPortOrder, "ToggleSAPortOrder"},
|
||||
{Event::ExitGame, "ExitGame"},
|
||||
{Event::SettingDecrease, "SettingDecrease"},
|
||||
{Event::SettingIncrease, "SettingIncrease"},
|
||||
{Event::PreviousSetting, "PreviousSetting"},
|
||||
{Event::NextSetting, "NextSetting"},
|
||||
{Event::ToggleAdaptRefresh, "ToggleAdaptRefresh"},
|
||||
{Event::PreviousMultiCartRom, "PreviousMultiCartRom"},
|
||||
{Event::PreviousSettingGroup, "PreviousSettingGroup"},
|
||||
{Event::NextSettingGroup, "NextSettingGroup"},
|
||||
{Event::TogglePlayBackMode, "TogglePlayBackMode"},
|
||||
{Event::DecreaseAutoFire, "DecreaseAutoFire"},
|
||||
{Event::IncreaseAutoFire, "IncreaseAutoFire"},
|
||||
{Event::DecreaseSpeed, "DecreaseSpeed"},
|
||||
{Event::IncreaseSpeed, "IncreaseSpeed"},
|
||||
{Event::JoystickTwoUp, "JoystickTwoUp"},
|
||||
{Event::JoystickTwoDown, "JoystickTwoDown"},
|
||||
{Event::JoystickTwoLeft, "JoystickTwoLeft"},
|
||||
{Event::JoystickTwoRight, "JoystickTwoRight"},
|
||||
{Event::JoystickTwoFire, "JoystickTwoFire"},
|
||||
{Event::JoystickThreeUp, "JoystickThreeUp"},
|
||||
{Event::JoystickThreeDown, "JoystickThreeDown"},
|
||||
{Event::JoystickThreeLeft, "JoystickThreeLeft"},
|
||||
{Event::JoystickThreeRight, "JoystickThreeRight"},
|
||||
{Event::JoystickThreeFire, "JoystickThreeFire"},
|
||||
{Event::ToggleCorrectAspectRatio, "ToggleCorrectAspectRatio"},
|
||||
{Event::MoveLeftChar, "MoveLeftChar"},
|
||||
{Event::MoveRightChar, "MoveRightChar"},
|
||||
{Event::MoveLeftWord, "MoveLeftWord"},
|
||||
{Event::MoveRightWord, "MoveRightWord"},
|
||||
{Event::MoveHome, "MoveHome"},
|
||||
{Event::MoveEnd, "MoveEnd"},
|
||||
{Event::SelectLeftChar, "SelectLeftChar"},
|
||||
{Event::SelectRightChar, "SelectRightChar"},
|
||||
{Event::SelectLeftWord, "SelectLeftWord"},
|
||||
{Event::SelectRightWord, "SelectRightWord"},
|
||||
{Event::SelectHome, "SelectHome"},
|
||||
{Event::SelectEnd, "SelectEnd"},
|
||||
{Event::SelectAll, "SelectAll"},
|
||||
{Event::Delete, "Delete"},
|
||||
{Event::DeleteLeftWord, "DeleteLeftWord"},
|
||||
{Event::DeleteRightWord, "DeleteRightWord"},
|
||||
{Event::DeleteHome, "DeleteHome"},
|
||||
{Event::DeleteEnd, "DeleteEnd"},
|
||||
{Event::Backspace, "Backspace"},
|
||||
{Event::Cut, "Cut"},
|
||||
{Event::Copy, "Copy"},
|
||||
{Event::Paste, "Paste"},
|
||||
{Event::Undo, "Undo"},
|
||||
{Event::Redo, "Redo"},
|
||||
{Event::AbortEdit, "AbortEdit"},
|
||||
{Event::EndEdit, "EndEdit"},
|
||||
{Event::LastType, "LastType"}
|
||||
})
|
||||
|
||||
NLOHMANN_JSON_SERIALIZE_ENUM(StellaKey, {
|
||||
{StellaKey::KBDK_UNKNOWN, "unknown"},
|
||||
{StellaKey::KBDK_A, "a"},
|
||||
{StellaKey::KBDK_B, "b"},
|
||||
{StellaKey::KBDK_C, "c"},
|
||||
{StellaKey::KBDK_D, "d"},
|
||||
{StellaKey::KBDK_E, "e"},
|
||||
{StellaKey::KBDK_F, "f"},
|
||||
{StellaKey::KBDK_G, "g"},
|
||||
{StellaKey::KBDK_H, "h"},
|
||||
{StellaKey::KBDK_I, "i"},
|
||||
{StellaKey::KBDK_J, "j"},
|
||||
{StellaKey::KBDK_K, "k"},
|
||||
{StellaKey::KBDK_L, "l"},
|
||||
{StellaKey::KBDK_M, "m"},
|
||||
{StellaKey::KBDK_N, "n"},
|
||||
{StellaKey::KBDK_O, "o"},
|
||||
{StellaKey::KBDK_P, "p"},
|
||||
{StellaKey::KBDK_Q, "q"},
|
||||
{StellaKey::KBDK_R, "r"},
|
||||
{StellaKey::KBDK_S, "s"},
|
||||
{StellaKey::KBDK_T, "t"},
|
||||
{StellaKey::KBDK_U, "u"},
|
||||
{StellaKey::KBDK_V, "v"},
|
||||
{StellaKey::KBDK_W, "w"},
|
||||
{StellaKey::KBDK_X, "x"},
|
||||
{StellaKey::KBDK_Y, "y"},
|
||||
{StellaKey::KBDK_Z, "z"},
|
||||
{StellaKey::KBDK_1, "1"},
|
||||
{StellaKey::KBDK_2, "2"},
|
||||
{StellaKey::KBDK_3, "3"},
|
||||
{StellaKey::KBDK_4, "4"},
|
||||
{StellaKey::KBDK_5, "5"},
|
||||
{StellaKey::KBDK_6, "6"},
|
||||
{StellaKey::KBDK_7, "7"},
|
||||
{StellaKey::KBDK_8, "8"},
|
||||
{StellaKey::KBDK_9, "9"},
|
||||
{StellaKey::KBDK_0, "0"},
|
||||
{StellaKey::KBDK_RETURN, "return"},
|
||||
{StellaKey::KBDK_ESCAPE, "escape"},
|
||||
{StellaKey::KBDK_BACKSPACE, "backspace"},
|
||||
{StellaKey::KBDK_TAB, "tab"},
|
||||
{StellaKey::KBDK_SPACE, "space"},
|
||||
{StellaKey::KBDK_MINUS, "minus"},
|
||||
{StellaKey::KBDK_EQUALS, "equals"},
|
||||
{StellaKey::KBDK_LEFTBRACKET, "leftbracket"},
|
||||
{StellaKey::KBDK_RIGHTBRACKET, "rightbracket"},
|
||||
{StellaKey::KBDK_BACKSLASH, "backslash"},
|
||||
{StellaKey::KBDK_NONUSHASH, "nonushash"},
|
||||
{StellaKey::KBDK_SEMICOLON, "semicolon"},
|
||||
{StellaKey::KBDK_APOSTROPHE, "apostrophe"},
|
||||
{StellaKey::KBDK_GRAVE, "grave"},
|
||||
{StellaKey::KBDK_COMMA, "comma"},
|
||||
{StellaKey::KBDK_PERIOD, "period"},
|
||||
{StellaKey::KBDK_SLASH, "slash"},
|
||||
{StellaKey::KBDK_CAPSLOCK, "capslock"},
|
||||
{StellaKey::KBDK_F1, "f1"},
|
||||
{StellaKey::KBDK_F2, "f2"},
|
||||
{StellaKey::KBDK_F3, "f3"},
|
||||
{StellaKey::KBDK_F4, "f4"},
|
||||
{StellaKey::KBDK_F5, "f5"},
|
||||
{StellaKey::KBDK_F6, "f6"},
|
||||
{StellaKey::KBDK_F7, "f7"},
|
||||
{StellaKey::KBDK_F8, "f8"},
|
||||
{StellaKey::KBDK_F9, "f9"},
|
||||
{StellaKey::KBDK_F10, "f10"},
|
||||
{StellaKey::KBDK_F11, "f11"},
|
||||
{StellaKey::KBDK_F12, "f12"},
|
||||
{StellaKey::KBDK_PRINTSCREEN, "printscreen"},
|
||||
{StellaKey::KBDK_SCROLLLOCK, "scrolllock"},
|
||||
{StellaKey::KBDK_PAUSE, "pause"},
|
||||
{StellaKey::KBDK_INSERT, "insert"},
|
||||
{StellaKey::KBDK_HOME, "home"},
|
||||
{StellaKey::KBDK_PAGEUP, "pageup"},
|
||||
{StellaKey::KBDK_DELETE, "delete"},
|
||||
{StellaKey::KBDK_END, "end"},
|
||||
{StellaKey::KBDK_PAGEDOWN, "pagedown"},
|
||||
{StellaKey::KBDK_RIGHT, "right"},
|
||||
{StellaKey::KBDK_LEFT, "left"},
|
||||
{StellaKey::KBDK_DOWN, "down"},
|
||||
{StellaKey::KBDK_UP, "up"},
|
||||
{StellaKey::KBDK_NUMLOCKCLEAR, "numlockclear"},
|
||||
{StellaKey::KBDK_KP_DIVIDE, "kp_divide"},
|
||||
{StellaKey::KBDK_KP_MULTIPLY, "kp_multiply"},
|
||||
{StellaKey::KBDK_KP_MINUS, "kp_minus"},
|
||||
{StellaKey::KBDK_KP_PLUS, "kp_plus"},
|
||||
{StellaKey::KBDK_KP_ENTER, "kp_enter"},
|
||||
{StellaKey::KBDK_KP_1, "kp_1"},
|
||||
{StellaKey::KBDK_KP_2, "kp_2"},
|
||||
{StellaKey::KBDK_KP_3, "kp_3"},
|
||||
{StellaKey::KBDK_KP_4, "kp_4"},
|
||||
{StellaKey::KBDK_KP_5, "kp_5"},
|
||||
{StellaKey::KBDK_KP_6, "kp_6"},
|
||||
{StellaKey::KBDK_KP_7, "kp_7"},
|
||||
{StellaKey::KBDK_KP_8, "kp_8"},
|
||||
{StellaKey::KBDK_KP_9, "kp_9"},
|
||||
{StellaKey::KBDK_KP_0, "kp_0"},
|
||||
{StellaKey::KBDK_KP_PERIOD, "kp_period"},
|
||||
{StellaKey::KBDK_NONUSBACKSLASH, "nonusbackslash"},
|
||||
{StellaKey::KBDK_APPLICATION, "application"},
|
||||
{StellaKey::KBDK_POWER, "power"},
|
||||
{StellaKey::KBDK_KP_EQUALS, "kp_equals"},
|
||||
{StellaKey::KBDK_F13, "f13"},
|
||||
{StellaKey::KBDK_F14, "f14"},
|
||||
{StellaKey::KBDK_F15, "f15"},
|
||||
{StellaKey::KBDK_F16, "f16"},
|
||||
{StellaKey::KBDK_F17, "f17"},
|
||||
{StellaKey::KBDK_F18, "f18"},
|
||||
{StellaKey::KBDK_F19, "f19"},
|
||||
{StellaKey::KBDK_F20, "f20"},
|
||||
{StellaKey::KBDK_F21, "f21"},
|
||||
{StellaKey::KBDK_F22, "f22"},
|
||||
{StellaKey::KBDK_F23, "f23"},
|
||||
{StellaKey::KBDK_F24, "f24"},
|
||||
{StellaKey::KBDK_EXECUTE, "execute"},
|
||||
{StellaKey::KBDK_HELP, "help"},
|
||||
{StellaKey::KBDK_MENU, "menu"},
|
||||
{StellaKey::KBDK_SELECT, "select"},
|
||||
{StellaKey::KBDK_STOP, "stop"},
|
||||
{StellaKey::KBDK_AGAIN, "again"},
|
||||
{StellaKey::KBDK_UNDO, "undo"},
|
||||
{StellaKey::KBDK_CUT, "cut"},
|
||||
{StellaKey::KBDK_COPY, "copy"},
|
||||
{StellaKey::KBDK_PASTE, "paste"},
|
||||
{StellaKey::KBDK_FIND, "find"},
|
||||
{StellaKey::KBDK_MUTE, "mute"},
|
||||
{StellaKey::KBDK_VOLUMEUP, "volumeup"},
|
||||
{StellaKey::KBDK_VOLUMEDOWN, "volumedown"},
|
||||
{StellaKey::KBDK_KP_COMMA, "kp_comma"},
|
||||
{StellaKey::KBDK_KP_EQUALSAS400, "kp_equalsas400"},
|
||||
{StellaKey::KBDK_INTERNATIONAL1, "international1"},
|
||||
{StellaKey::KBDK_INTERNATIONAL2, "international2"},
|
||||
{StellaKey::KBDK_INTERNATIONAL3, "international3"},
|
||||
{StellaKey::KBDK_INTERNATIONAL4, "international4"},
|
||||
{StellaKey::KBDK_INTERNATIONAL5, "international5"},
|
||||
{StellaKey::KBDK_INTERNATIONAL6, "international6"},
|
||||
{StellaKey::KBDK_INTERNATIONAL7, "international7"},
|
||||
{StellaKey::KBDK_INTERNATIONAL8, "international8"},
|
||||
{StellaKey::KBDK_INTERNATIONAL9, "international9"},
|
||||
{StellaKey::KBDK_LANG1, "lang1"},
|
||||
{StellaKey::KBDK_LANG2, "lang2"},
|
||||
{StellaKey::KBDK_LANG3, "lang3"},
|
||||
{StellaKey::KBDK_LANG4, "lang4"},
|
||||
{StellaKey::KBDK_LANG5, "lang5"},
|
||||
{StellaKey::KBDK_LANG6, "lang6"},
|
||||
{StellaKey::KBDK_LANG7, "lang7"},
|
||||
{StellaKey::KBDK_LANG8, "lang8"},
|
||||
{StellaKey::KBDK_LANG9, "lang9"},
|
||||
{StellaKey::KBDK_ALTERASE, "alterase"},
|
||||
{StellaKey::KBDK_SYSREQ, "sysreq"},
|
||||
{StellaKey::KBDK_CANCEL, "cancel"},
|
||||
{StellaKey::KBDK_CLEAR, "clear"},
|
||||
{StellaKey::KBDK_PRIOR, "prior"},
|
||||
{StellaKey::KBDK_RETURN2, "return2"},
|
||||
{StellaKey::KBDK_SEPARATOR, "separator"},
|
||||
{StellaKey::KBDK_OUT, "out"},
|
||||
{StellaKey::KBDK_OPER, "oper"},
|
||||
{StellaKey::KBDK_CLEARAGAIN, "clearagain"},
|
||||
{StellaKey::KBDK_CRSEL, "crsel"},
|
||||
{StellaKey::KBDK_EXSEL, "exsel"},
|
||||
{StellaKey::KBDK_KP_00, "kp_00"},
|
||||
{StellaKey::KBDK_KP_000, "kp_000"},
|
||||
{StellaKey::KBDK_THOUSANDSSEPARATOR, "thousandsseparator"},
|
||||
{StellaKey::KBDK_DECIMALSEPARATOR, "decimalseparator"},
|
||||
{StellaKey::KBDK_CURRENCYUNIT, "currencyunit"},
|
||||
{StellaKey::KBDK_CURRENCYSUBUNIT, "currencysubunit"},
|
||||
{StellaKey::KBDK_KP_LEFTPAREN, "kp_leftparen"},
|
||||
{StellaKey::KBDK_KP_RIGHTPAREN, "kp_rightparen"},
|
||||
{StellaKey::KBDK_KP_LEFTBRACE, "kp_leftbrace"},
|
||||
{StellaKey::KBDK_KP_RIGHTBRACE, "kp_rightbrace"},
|
||||
{StellaKey::KBDK_KP_TAB, "kp_tab"},
|
||||
{StellaKey::KBDK_KP_BACKSPACE, "kp_backspace"},
|
||||
{StellaKey::KBDK_KP_A, "kp_a"},
|
||||
{StellaKey::KBDK_KP_B, "kp_b"},
|
||||
{StellaKey::KBDK_KP_C, "kp_c"},
|
||||
{StellaKey::KBDK_KP_D, "kp_d"},
|
||||
{StellaKey::KBDK_KP_E, "kp_e"},
|
||||
{StellaKey::KBDK_KP_F, "kp_f"},
|
||||
{StellaKey::KBDK_KP_XOR, "kp_xor"},
|
||||
{StellaKey::KBDK_KP_POWER, "kp_power"},
|
||||
{StellaKey::KBDK_KP_PERCENT, "kp_percent"},
|
||||
{StellaKey::KBDK_KP_LESS, "kp_less"},
|
||||
{StellaKey::KBDK_KP_GREATER, "kp_greater"},
|
||||
{StellaKey::KBDK_KP_AMPERSAND, "kp_ampersand"},
|
||||
{StellaKey::KBDK_KP_DBLAMPERSAND, "kp_dblampersand"},
|
||||
{StellaKey::KBDK_KP_VERTICALBAR, "kp_verticalbar"},
|
||||
{StellaKey::KBDK_KP_DBLVERTICALBAR, "kp_dblverticalbar"},
|
||||
{StellaKey::KBDK_KP_COLON, "kp_colon"},
|
||||
{StellaKey::KBDK_KP_HASH, "kp_hash"},
|
||||
{StellaKey::KBDK_KP_SPACE, "kp_space"},
|
||||
{StellaKey::KBDK_KP_AT, "kp_at"},
|
||||
{StellaKey::KBDK_KP_EXCLAM, "kp_exclam"},
|
||||
{StellaKey::KBDK_KP_MEMSTORE, "kp_memstore"},
|
||||
{StellaKey::KBDK_KP_MEMRECALL, "kp_memrecall"},
|
||||
{StellaKey::KBDK_KP_MEMCLEAR, "kp_memclear"},
|
||||
{StellaKey::KBDK_KP_MEMADD, "kp_memadd"},
|
||||
{StellaKey::KBDK_KP_MEMSUBTRACT, "kp_memsubtract"},
|
||||
{StellaKey::KBDK_KP_MEMMULTIPLY, "kp_memmultiply"},
|
||||
{StellaKey::KBDK_KP_MEMDIVIDE, "kp_memdivide"},
|
||||
{StellaKey::KBDK_KP_PLUSMINUS, "kp_plusminus"},
|
||||
{StellaKey::KBDK_KP_CLEAR, "kp_clear"},
|
||||
{StellaKey::KBDK_KP_CLEARENTRY, "kp_clearentry"},
|
||||
{StellaKey::KBDK_KP_BINARY, "kp_binary"},
|
||||
{StellaKey::KBDK_KP_OCTAL, "kp_octal"},
|
||||
{StellaKey::KBDK_KP_DECIMAL, "kp_decimal"},
|
||||
{StellaKey::KBDK_KP_HEXADECIMAL, "kp_hexadecimal"},
|
||||
{StellaKey::KBDK_LCTRL, "lctrl"},
|
||||
{StellaKey::KBDK_LSHIFT, "lshift"},
|
||||
{StellaKey::KBDK_LALT, "lalt"},
|
||||
{StellaKey::KBDK_LGUI, "lgui"},
|
||||
{StellaKey::KBDK_RCTRL, "rctrl"},
|
||||
{StellaKey::KBDK_RSHIFT, "rshift"},
|
||||
{StellaKey::KBDK_RALT, "ralt"},
|
||||
{StellaKey::KBDK_RGUI, "rgui"},
|
||||
{StellaKey::KBDK_MODE, "mode"},
|
||||
{StellaKey::KBDK_AUDIONEXT, "audionext"},
|
||||
{StellaKey::KBDK_AUDIOPREV, "audioprev"},
|
||||
{StellaKey::KBDK_AUDIOSTOP, "audiostop"},
|
||||
{StellaKey::KBDK_AUDIOPLAY, "audioplay"},
|
||||
{StellaKey::KBDK_AUDIOMUTE, "audiomute"},
|
||||
{StellaKey::KBDK_MEDIASELECT, "mediaselect"},
|
||||
{StellaKey::KBDK_WWW, "www"},
|
||||
{StellaKey::KBDK_MAIL, "mail"},
|
||||
{StellaKey::KBDK_CALCULATOR, "calculator"},
|
||||
{StellaKey::KBDK_COMPUTER, "computer"},
|
||||
{StellaKey::KBDK_AC_SEARCH, "ac_search"},
|
||||
{StellaKey::KBDK_AC_HOME, "ac_home"},
|
||||
{StellaKey::KBDK_AC_BACK, "ac_back"},
|
||||
{StellaKey::KBDK_AC_FORWARD, "ac_forward"},
|
||||
{StellaKey::KBDK_AC_STOP, "ac_stop"},
|
||||
{StellaKey::KBDK_AC_REFRESH, "ac_refresh"},
|
||||
{StellaKey::KBDK_AC_BOOKMARKS, "ac_bookmarks"},
|
||||
{StellaKey::KBDK_BRIGHTNESSDOWN, "brightnessdown"},
|
||||
{StellaKey::KBDK_BRIGHTNESSUP, "brightnessup"},
|
||||
{StellaKey::KBDK_DISPLAYSWITCH, "displayswitch"},
|
||||
{StellaKey::KBDK_KBDILLUMTOGGLE, "kbdillumtoggle"},
|
||||
{StellaKey::KBDK_KBDILLUMDOWN, "kbdillumdown"},
|
||||
{StellaKey::KBDK_KBDILLUMUP, "kbdillumup"},
|
||||
{StellaKey::KBDK_EJECT, "eject"},
|
||||
{StellaKey::KBDK_SLEEP, "sleep"},
|
||||
{StellaKey::KBDK_APP1, "app1"},
|
||||
{StellaKey::KBDK_APP2, "app2"},
|
||||
{StellaKey::KBDK_LAST, "last"}
|
||||
})
|
||||
|
||||
NLOHMANN_JSON_SERIALIZE_ENUM(StellaMod, {
|
||||
{StellaMod::KBDM_NONE, "none"},
|
||||
{StellaMod::KBDM_LSHIFT, "lshift"},
|
||||
{StellaMod::KBDM_RSHIFT, "rshift"},
|
||||
{StellaMod::KBDM_LCTRL, "lctrl"},
|
||||
{StellaMod::KBDM_RCTRL, "rctrl"},
|
||||
{StellaMod::KBDM_LALT, "lalt"},
|
||||
{StellaMod::KBDM_RALT, "ralt"},
|
||||
{StellaMod::KBDM_LGUI, "lgui"},
|
||||
{StellaMod::KBDM_RGUI, "rgui"},
|
||||
{StellaMod::KBDM_NUM, "num"},
|
||||
{StellaMod::KBDM_CAPS, "caps"},
|
||||
{StellaMod::KBDM_MODE, "mode"},
|
||||
{StellaMod::KBDM_RESERVED, "reserved"},
|
||||
{StellaMod::KBDM_CTRL, "ctrl"},
|
||||
{StellaMod::KBDM_SHIFT, "shift"},
|
||||
{StellaMod::KBDM_ALT, "alt"},
|
||||
{StellaMod::KBDM_GUI, "gui"}
|
||||
})
|
||||
|
||||
#endif // JSON_DEFINITIONS_HXX
|
||||
|
|
Loading…
Reference in New Issue