diff --git a/src/common/bspf.hxx b/src/common/bspf.hxx index 24c4bc246..f31e4624e 100644 --- a/src/common/bspf.hxx +++ b/src/common/bspf.hxx @@ -87,8 +87,6 @@ using StringList = std::vector; using ByteBuffer = std::unique_ptr; // NOLINT using DWordBuffer = std::unique_ptr; // NOLINT -using AdjustFunction = std::function; - // We use KB a lot; let's make a literal for it constexpr size_t operator "" _KB(unsigned long long size) { diff --git a/src/emucore/EventHandler.cxx b/src/emucore/EventHandler.cxx index 94a9b51b3..bfa397403 100644 --- a/src/emucore/EventHandler.cxx +++ b/src/emucore/EventHandler.cxx @@ -481,7 +481,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.sound().adjustVolume(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::VOLUME); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::VOLUME); } return; @@ -489,7 +489,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.sound().adjustVolume(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::VOLUME); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::VOLUME); } return; @@ -497,7 +497,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.sound().toggleMute(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::VOLUME); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::VOLUME); } return; @@ -505,7 +505,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.frameBuffer().switchVideoMode(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::ZOOM); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::ZOOM); } return; @@ -513,7 +513,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.frameBuffer().switchVideoMode(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::ZOOM); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::ZOOM); } return; @@ -521,7 +521,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.frameBuffer().toggleFullscreen(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::FULLSCREEN); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::FULLSCREEN); } return; @@ -530,7 +530,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.frameBuffer().toggleAdaptRefresh(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::ADAPT_REFRESH); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::ADAPT_REFRESH); } return; #endif @@ -539,7 +539,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.frameBuffer().changeOverscan(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::OVERSCAN); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::OVERSCAN); } return; @@ -547,7 +547,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.frameBuffer().changeOverscan(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::OVERSCAN); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::OVERSCAN); } return; @@ -555,7 +555,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().selectFormat(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::TVFORMAT); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::TVFORMAT); } return; @@ -563,7 +563,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().selectFormat(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::TVFORMAT); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::TVFORMAT); } return; @@ -571,7 +571,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.console().changeVerticalCenter(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::VCENTER); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::VCENTER); } return; @@ -579,14 +579,14 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.console().changeVerticalCenter(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::VCENTER); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::VCENTER); } return; case Event::VSizeAdjustDecrease: if(pressed) { myOSystem.console().changeVSizeAdjust(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::VSIZE); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::VSIZE); } return; @@ -594,7 +594,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.console().changeVSizeAdjust(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::VSIZE); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::VSIZE); } return; @@ -602,7 +602,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleCorrectAspectRatio(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::ASPECT_RATIO); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::ASPECT_RATIO); } break; @@ -610,7 +610,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.frameBuffer().tiaSurface().paletteHandler().cyclePalette(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::PALETTE); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::PALETTE); } return; @@ -618,7 +618,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.frameBuffer().tiaSurface().paletteHandler().cyclePalette(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::PALETTE); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::PALETTE); } return; @@ -626,7 +626,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.frameBuffer().tiaSurface().changeNTSC(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::NTSC_PRESET); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::NTSC_PRESET); } return; @@ -634,7 +634,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.frameBuffer().tiaSurface().changeNTSC(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::NTSC_PRESET); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::NTSC_PRESET); } return; @@ -642,7 +642,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::Preset::OFF); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::NTSC_PRESET); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::NTSC_PRESET); } return; @@ -650,7 +650,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::Preset::RGB); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::NTSC_PRESET); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::NTSC_PRESET); } return; @@ -658,7 +658,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::Preset::SVIDEO); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::NTSC_PRESET); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::NTSC_PRESET); } return; @@ -666,7 +666,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::Preset::COMPOSITE); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::NTSC_PRESET); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::NTSC_PRESET); } return; @@ -674,7 +674,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::Preset::BAD); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::NTSC_PRESET); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::NTSC_PRESET); } return; @@ -682,14 +682,14 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::Preset::CUSTOM); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::NTSC_PRESET); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::NTSC_PRESET); } return; case Event::PhosphorDecrease: if(pressed) { myOSystem.console().changePhosphor(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::PHOSPHOR); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::PHOSPHOR); } return; @@ -697,7 +697,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.console().changePhosphor(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::PHOSPHOR); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::PHOSPHOR); } return; @@ -705,7 +705,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().togglePhosphor(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::PHOSPHOR); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::PHOSPHOR); } return; @@ -713,7 +713,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.frameBuffer().tiaSurface().setScanlineIntensity(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::SCANLINES); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::SCANLINES); } return; @@ -721,7 +721,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.frameBuffer().tiaSurface().setScanlineIntensity(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::SCANLINES); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::SCANLINES); } return; @@ -729,7 +729,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleInter(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::INTERPOLATION); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::INTERPOLATION); } return; @@ -739,7 +739,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.frameBuffer().tiaSurface().paletteHandler().cycleAdjustable(-1); - myGlobalKeyHandler->setAdjustDirect(GlobalKeyHandler::AdjustSetting::PALETTE_CHANGE_ATTRIBUTE); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::PALETTE_ATTRIBUTE); } return; @@ -747,7 +747,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.frameBuffer().tiaSurface().paletteHandler().cycleAdjustable(+1); - myGlobalKeyHandler->setAdjustDirect(GlobalKeyHandler::AdjustSetting::PALETTE_CHANGE_ATTRIBUTE); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::PALETTE_ATTRIBUTE); } return; @@ -755,7 +755,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.frameBuffer().tiaSurface().paletteHandler().changeCurrentAdjustable(-1); - myGlobalKeyHandler->setAdjustDirect(GlobalKeyHandler::AdjustSetting::PALETTE_CHANGE_ATTRIBUTE); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::PALETTE_ATTRIBUTE); } return; @@ -763,7 +763,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.frameBuffer().tiaSurface().paletteHandler().changeCurrentAdjustable(+1); - myGlobalKeyHandler->setAdjustDirect(GlobalKeyHandler::AdjustSetting::PALETTE_CHANGE_ATTRIBUTE); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::PALETTE_ATTRIBUTE); } return; @@ -771,7 +771,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.frameBuffer().tiaSurface().setNTSCAdjustable(-1); - myGlobalKeyHandler->setAdjustDirect(GlobalKeyHandler::AdjustSetting::NTSC_CHANGE_ATTRIBUTE); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::NTSC_ATTRIBUTE); } return; @@ -779,7 +779,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.frameBuffer().tiaSurface().setNTSCAdjustable(+1); - myGlobalKeyHandler->setAdjustDirect(GlobalKeyHandler::AdjustSetting::NTSC_CHANGE_ATTRIBUTE); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::NTSC_ATTRIBUTE); } return; @@ -787,7 +787,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.frameBuffer().tiaSurface().changeCurrentNTSCAdjustable(-1); - myGlobalKeyHandler->setAdjustDirect(GlobalKeyHandler::AdjustSetting::NTSC_CHANGE_ATTRIBUTE); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::NTSC_ATTRIBUTE); } return; @@ -795,7 +795,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.frameBuffer().tiaSurface().changeCurrentNTSCAdjustable(+1); - myGlobalKeyHandler->setAdjustDirect(GlobalKeyHandler::AdjustSetting::NTSC_CHANGE_ATTRIBUTE); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::NTSC_ATTRIBUTE); } return; @@ -805,7 +805,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.frameBuffer().toggleFrameStats(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::STATS); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::STATS); } return; @@ -813,7 +813,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleP0Collision(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::P0_CX); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::P0_CX); } return; @@ -821,7 +821,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleP0Bit(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::P0_ENAM); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::P0_ENAM); } return; @@ -829,7 +829,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleP1Collision(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::P1_CX); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::P1_CX); } return; @@ -837,7 +837,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleP1Bit(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::P1_ENAM); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::P1_ENAM); } return; @@ -845,7 +845,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleM0Collision(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::M0_CX); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::M0_CX); } return; @@ -853,7 +853,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleM0Bit(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::M0_ENAM); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::M0_ENAM); } return; @@ -861,7 +861,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleM1Collision(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::M1_CX); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::M1_CX); } return; @@ -869,7 +869,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleM1Bit(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::M1_ENAM); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::M1_ENAM); } return; @@ -877,7 +877,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleBLCollision(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::BL_CX); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::BL_CX); } return; @@ -885,7 +885,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleBLBit(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::BL_ENAM); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::BL_ENAM); } return; @@ -893,7 +893,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().togglePFCollision(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::PF_CX); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::PF_CX); } return; @@ -901,7 +901,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().togglePFBit(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::PF_ENAM); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::PF_ENAM); } return; @@ -909,7 +909,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleCollisions(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::ALL_CX); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::ALL_CX); } return; @@ -917,7 +917,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleBits(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::ALL_ENAM); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::ALL_ENAM); } return; @@ -925,7 +925,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleFixedColors(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::FIXED_COL); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::FIXED_COL); } return; @@ -933,7 +933,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleColorLoss(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::COLOR_LOSS); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::COLOR_LOSS); } return; @@ -941,7 +941,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleJitter(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::JITTER); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::JITTER); } return; @@ -951,7 +951,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changeDigitalDeadZone(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::DEADZONE); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::DEADZONE); } return; @@ -959,7 +959,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changeDigitalDeadZone(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::DEADZONE); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::DEADZONE); } return; @@ -967,7 +967,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changeAnalogPaddleDeadZone(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::ANALOG_DEADZONE); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::ANALOG_DEADZONE); } return; @@ -975,7 +975,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changeAnalogPaddleDeadZone(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::ANALOG_DEADZONE); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::ANALOG_DEADZONE); } return; @@ -983,7 +983,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changeAnalogPaddleSensitivity(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::ANALOG_SENSITIVITY); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::ANALOG_SENSITIVITY); } return; @@ -991,7 +991,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changeAnalogPaddleSensitivity(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::ANALOG_SENSITIVITY); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::ANALOG_SENSITIVITY); } return; @@ -999,7 +999,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changeAnalogPaddleLinearity(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::ANALOG_LINEARITY); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::ANALOG_LINEARITY); } return; @@ -1007,7 +1007,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changeAnalogPaddleLinearity(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::ANALOG_LINEARITY); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::ANALOG_LINEARITY); } return; @@ -1015,7 +1015,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changePaddleDejitterAveraging(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::DEJITTER_AVERAGING); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::DEJITTER_AVERAGING); } return; @@ -1023,7 +1023,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changePaddleDejitterAveraging(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::DEJITTER_AVERAGING); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::DEJITTER_AVERAGING); } return; @@ -1031,7 +1031,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changePaddleDejitterReaction(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::DEJITTER_REACTION); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::DEJITTER_REACTION); } return; @@ -1039,7 +1039,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changePaddleDejitterReaction(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::DEJITTER_REACTION); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::DEJITTER_REACTION); } return; @@ -1047,7 +1047,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changeDigitalPaddleSensitivity(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::DIGITAL_SENSITIVITY); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::DIGITAL_SENSITIVITY); } return; @@ -1055,7 +1055,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changeDigitalPaddleSensitivity(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::DIGITAL_SENSITIVITY); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::DIGITAL_SENSITIVITY); } return; @@ -1063,7 +1063,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.console().changeAutoFireRate(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::AUTO_FIRE); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::AUTO_FIRE); } return; @@ -1071,7 +1071,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.console().changeAutoFireRate(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::AUTO_FIRE); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::AUTO_FIRE); } return; @@ -1079,7 +1079,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { toggleAllow4JoyDirections(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::FOUR_DIRECTIONS); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::FOUR_DIRECTIONS); } return; @@ -1087,7 +1087,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myPKeyHandler->toggleModKeys(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::MOD_KEY_COMBOS); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::MOD_KEY_COMBOS); } return; @@ -1095,7 +1095,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { toggleSAPortOrder(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::SA_PORT_ORDER); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::SA_PORT_ORDER); } return; @@ -1103,7 +1103,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { changeMouseControllerMode(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::USE_MOUSE); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::USE_MOUSE); } return; @@ -1111,7 +1111,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { changeMouseControllerMode(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::USE_MOUSE); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::USE_MOUSE); } return; @@ -1119,7 +1119,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changeMousePaddleSensitivity(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::PADDLE_SENSITIVITY); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::PADDLE_SENSITIVITY); } return; @@ -1127,7 +1127,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changeMousePaddleSensitivity(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::PADDLE_SENSITIVITY); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::PADDLE_SENSITIVITY); } return; @@ -1135,7 +1135,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changeMouseTrackballSensitivity(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::TRACKBALL_SENSITIVITY); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::TRACKBALL_SENSITIVITY); } return; @@ -1143,7 +1143,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changeMouseTrackballSensitivity(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::TRACKBALL_SENSITIVITY); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::TRACKBALL_SENSITIVITY); } return; @@ -1151,7 +1151,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changeDrivingSensitivity(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::DRIVING_SENSITIVITY); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::DRIVING_SENSITIVITY); } return; @@ -1159,7 +1159,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myPJoyHandler->changeDrivingSensitivity(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::DRIVING_SENSITIVITY); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::DRIVING_SENSITIVITY); } return; @@ -1167,7 +1167,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { changeMouseCursor(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::MOUSE_CURSOR); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::MOUSE_CURSOR); } return; @@ -1175,7 +1175,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { changeMouseCursor(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::MOUSE_CURSOR); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::MOUSE_CURSOR); } return; @@ -1183,7 +1183,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated && !myOSystem.frameBuffer().fullScreen()) { myOSystem.frameBuffer().toggleGrabMouse(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::GRAB_MOUSE); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::GRAB_MOUSE); } return; @@ -1191,7 +1191,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().changeLeftController(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::LEFT_PORT); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::LEFT_PORT); } return; @@ -1199,7 +1199,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().changeLeftController(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::LEFT_PORT); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::LEFT_PORT); } return; @@ -1208,7 +1208,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().changeRightController(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::RIGHT_PORT); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::RIGHT_PORT); } return; @@ -1216,7 +1216,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().changeRightController(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::RIGHT_PORT); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::RIGHT_PORT); } return; @@ -1224,7 +1224,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleSwapPorts(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::SWAP_PORTS); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::SWAP_PORTS); } return; @@ -1232,7 +1232,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { myOSystem.console().toggleSwapPaddles(); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::SWAP_PADDLES); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::SWAP_PADDLES); } return; @@ -1240,7 +1240,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.console().changePaddleCenterX(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::PADDLE_CENTER_X); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::PADDLE_CENTER_X); } return; @@ -1248,7 +1248,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.console().changePaddleCenterX(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::PADDLE_CENTER_X); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::PADDLE_CENTER_X); } return; @@ -1256,7 +1256,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.console().changePaddleCenterY(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::PADDLE_CENTER_Y); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::PADDLE_CENTER_Y); } return; @@ -1264,7 +1264,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.console().changePaddleCenterY(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::PADDLE_CENTER_Y); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::PADDLE_CENTER_Y); } return; @@ -1272,7 +1272,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { changeMouseControl(-1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::MOUSE_CONTROL); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::MOUSE_CONTROL); } return; @@ -1280,92 +1280,102 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed && !repeated) { changeMouseControl(+1); - myGlobalKeyHandler->setAdjustSetting(GlobalKeyHandler::AdjustSetting::MOUSE_CONTROL); + myGlobalKeyHandler->setSetting(GlobalKeyHandler::Setting::MOUSE_CONTROL); } return; /////////////////////////////////////////////////////////////////////////// // State events case Event::SaveState: - if (pressed && !repeated) + if(pressed && !repeated) { myOSystem.state().saveState(); - myGlobalKeyHandler->setAdjustDirect(GlobalKeyHandler::AdjustSetting::STATE); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::STATE); } return; case Event::SaveAllStates: - if (pressed && !repeated) + if(pressed && !repeated) + { myOSystem.frameBuffer().showTextMessage(myOSystem.state().rewindManager().saveAllStates()); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::STATE); + } return; case Event::PreviousState: - if (pressed) + if(pressed) { myOSystem.state().changeState(-1); - myGlobalKeyHandler->setAdjustDirect(GlobalKeyHandler::AdjustSetting::STATE); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::STATE); } return; case Event::NextState: - if (pressed) + if(pressed) { myOSystem.state().changeState(+1); - myGlobalKeyHandler->setAdjustDirect(GlobalKeyHandler::AdjustSetting::STATE); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::STATE); } return; case Event::ToggleAutoSlot: - if (pressed && !repeated) myOSystem.state().toggleAutoSlot(); + if(pressed && !repeated) + { + myOSystem.state().toggleAutoSlot(); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::STATE); + } return; case Event::LoadState: - if (pressed && !repeated) + if(pressed && !repeated) { myOSystem.state().loadState(); - myGlobalKeyHandler->setAdjustDirect(GlobalKeyHandler::AdjustSetting::STATE); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::STATE); } return; case Event::LoadAllStates: - if (pressed && !repeated) + if(pressed && !repeated) + { myOSystem.frameBuffer().showTextMessage(myOSystem.state().rewindManager().loadAllStates()); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::STATE); + } return; case Event::RewindPause: - if (pressed) myOSystem.state().rewindStates(); + if(pressed) myOSystem.state().rewindStates(); if (myState == EventHandlerState::EMULATION) setState(EventHandlerState::PAUSE); return; case Event::UnwindPause: - if (pressed) myOSystem.state().unwindStates(); + if(pressed) myOSystem.state().unwindStates(); if (myState == EventHandlerState::EMULATION) setState(EventHandlerState::PAUSE); return; case Event::Rewind1Menu: - if (pressed) enterTimeMachineMenuMode(1, false); + if(pressed) enterTimeMachineMenuMode(1, false); return; case Event::Rewind10Menu: - if (pressed) enterTimeMachineMenuMode(10, false); + if(pressed) enterTimeMachineMenuMode(10, false); return; case Event::RewindAllMenu: - if (pressed) enterTimeMachineMenuMode(1000, false); + if(pressed) enterTimeMachineMenuMode(1000, false); return; case Event::Unwind1Menu: - if (pressed) enterTimeMachineMenuMode(1, true); + if(pressed) enterTimeMachineMenuMode(1, true); return; case Event::Unwind10Menu: - if (pressed) enterTimeMachineMenuMode(10, true); + if(pressed) enterTimeMachineMenuMode(10, true); return; case Event::UnwindAllMenu: - if (pressed) enterTimeMachineMenuMode(1000, true); + if(pressed) enterTimeMachineMenuMode(1000, true); return; /////////////////////////////////////////////////////////////////////////// @@ -1374,7 +1384,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.console().changeSpeed(-1); - myGlobalKeyHandler->setAdjustDirect(GlobalKeyHandler::AdjustSetting::CHANGE_SPEED); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::CHANGE_SPEED); } return; @@ -1382,37 +1392,41 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if(pressed) { myOSystem.console().changeSpeed(+1); - myGlobalKeyHandler->setAdjustDirect(GlobalKeyHandler::AdjustSetting::CHANGE_SPEED); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::CHANGE_SPEED); } return; case Event::ToggleTurbo: - if (pressed && !repeated) myOSystem.console().toggleTurbo(); + if(pressed && !repeated) + { + myOSystem.console().toggleTurbo(); + myGlobalKeyHandler->setDirectSetting(GlobalKeyHandler::Setting::CHANGE_SPEED); + } return; case Event::Fry: - if (!repeated) myFryingFlag = pressed; + if(!repeated) myFryingFlag = pressed; return; case Event::ReloadConsole: - if (pressed && !repeated) myOSystem.reloadConsole(true); + if(pressed && !repeated) myOSystem.reloadConsole(true); return; case Event::PreviousMultiCartRom: - if (pressed && !repeated) myOSystem.reloadConsole(false); + if(pressed && !repeated) myOSystem.reloadConsole(false); return; case Event::ToggleTimeMachine: - if (pressed && !repeated) myOSystem.toggleTimeMachine(); + if(pressed && !repeated) myOSystem.toggleTimeMachine(); return; #ifdef PNG_SUPPORT case Event::ToggleContSnapshots: - if (pressed && !repeated) myOSystem.png().toggleContinuousSnapshots(false); + if(pressed && !repeated) myOSystem.png().toggleContinuousSnapshots(false); return; case Event::ToggleContSnapshotsFrame: - if (pressed && !repeated) myOSystem.png().toggleContinuousSnapshots(true); + if(pressed && !repeated) myOSystem.png().toggleContinuousSnapshots(true); return; #endif @@ -1423,26 +1437,26 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) case Event::ExitMode: // Special handling for Escape key // Basically, exit whichever mode we're currently in - switch (myState) + switch(myState) { case EventHandlerState::PAUSE: - if (pressed && !repeated) changeStateByEvent(Event::TogglePauseMode); + if(pressed && !repeated) changeStateByEvent(Event::TogglePauseMode); return; case EventHandlerState::CMDMENU: - if (pressed && !repeated) changeStateByEvent(Event::CmdMenuMode); + if(pressed && !repeated) changeStateByEvent(Event::CmdMenuMode); return; case EventHandlerState::TIMEMACHINE: - if (pressed && !repeated) changeStateByEvent(Event::TimeMachineMode); + if(pressed && !repeated) changeStateByEvent(Event::TimeMachineMode); return; case EventHandlerState::PLAYBACK: - if (pressed && !repeated) changeStateByEvent(Event::TogglePlayBackMode); + if(pressed && !repeated) changeStateByEvent(Event::TogglePlayBackMode); return; case EventHandlerState::EMULATION: - if (pressed && !repeated) + if(pressed && !repeated) { #ifdef GUI_SUPPORT if (myOSystem.settings().getBool("confirmexit")) @@ -1471,7 +1485,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) #ifdef GUI_SUPPORT case EventHandlerState::MESSAGEMENU: - if (pressed && !repeated) + if(pressed && !repeated) { leaveMenuMode(); if (myOSystem.messageMenu().confirmed()) @@ -1499,7 +1513,7 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) return; case Event::StartPauseMode: - if (pressed && !repeated && myState == EventHandlerState::EMULATION) + if(pressed && !repeated && myState == EventHandlerState::EMULATION) setState(EventHandlerState::PAUSE); return; diff --git a/src/emucore/GlobalKeyHandler.cxx b/src/emucore/GlobalKeyHandler.cxx index ecbfb7390..63d496bd3 100644 --- a/src/emucore/GlobalKeyHandler.cxx +++ b/src/emucore/GlobalKeyHandler.cxx @@ -43,17 +43,17 @@ bool GlobalKeyHandler::handleEvent(const Event::Type event, bool pressed, bool r // b) other keys have been pressed if(!myOSystem.frameBuffer().messageShown()) { - myAdjustActive = false; - myAdjustDirect = AdjustSetting::NONE; + mySettingActive = false; + myDirectSetting = Setting::NONE; } - const bool adjustActive = myAdjustActive; - const AdjustSetting adjustAVDirect = myAdjustDirect; + const bool settingActive = mySettingActive; + const Setting directSetting = myDirectSetting; if(pressed) { - myAdjustActive = false; - myAdjustDirect = AdjustSetting::NONE; + mySettingActive = false; + myDirectSetting = Setting::NONE; } bool handled = true; @@ -66,50 +66,35 @@ bool GlobalKeyHandler::handleEvent(const Event::Type event, bool pressed, bool r case Event::NextSettingGroup: if(pressed && !repeated) { - const int direction = event == Event::PreviousSettingGroup ? -1 : +1; - AdjustGroup adjustGroup = AdjustGroup(BSPF::clampw(int(getAdjustGroup()) + direction, - 0, int(AdjustGroup::NUM_GROUPS) - 1)); - string msg; + const int direction = (event == Event::PreviousSettingGroup ? -1 : +1); + Group group = Group(BSPF::clampw(int(getGroup()) + direction, + 0, int(Group::NUM_GROUPS) - 1)); + const std::map GroupMap = { + {Group::AV, {Setting::START_AV_ADJ, "Audio & Video"}}, + {Group::INPUT, {Setting::START_INPUT_ADJ, "Input Devices & Ports"}}, + {Group::DEBUG, {Setting::START_DEBUG_ADJ, "Debug"}}, + }; + const auto result = GroupMap.find(group); - switch(adjustGroup) - { - case AdjustGroup::AV: - msg = "Audio & Video"; - myAdjustSetting = AdjustSetting::START_AV_ADJ; - break; - - case AdjustGroup::INPUT: - msg = "Input Devices & Ports"; - myAdjustSetting = AdjustSetting::START_INPUT_ADJ; - break; - - case AdjustGroup::DEBUG: - msg = "Debug"; - myAdjustSetting = AdjustSetting::START_DEBUG_ADJ; - break; - - default: - break; - } - myOSystem.frameBuffer().showTextMessage(msg + " settings"); - myAdjustActive = false; + myOSystem.frameBuffer().showTextMessage(result->second.name + " settings"); + mySetting = result->second.start; + mySettingActive = false; } break; - // Allow adjusting several (mostly repeated) settings using the same four hotkeys case Event::PreviousSetting: case Event::NextSetting: if(pressed && !repeated) { - const int direction = event == Event::PreviousSetting ? -1 : +1; + const int direction = (event == Event::PreviousSetting ? -1 : +1); // Get (and display) the previous|next adjustment function, // but do not change its value - cycleAdjustSetting(adjustActive ? direction : 0)(0); + cycleSetting(settingActive ? direction : 0)(0); // Fallback message when no message is displayed by method //if(!myOSystem.frameBuffer().messageShown()) - // myOSystem.frameBuffer().showMessage("Message " + std::to_string(int(myAdjustSetting))); - myAdjustActive = true; + // myOSystem.frameBuffer().showMessage("Message " + std::to_string(int(mySetting))); + mySettingActive = true; } break; @@ -117,23 +102,27 @@ bool GlobalKeyHandler::handleEvent(const Event::Type event, bool pressed, bool r case Event::SettingIncrease: if(pressed) { - const int direction = event == Event::SettingDecrease ? -1 : +1; + const int direction = (event == Event::SettingDecrease ? -1 : +1); // if a "direct only" hotkey was pressed last, use this one - if(adjustAVDirect != AdjustSetting::NONE) + if(directSetting != Setting::NONE) { - myAdjustDirect = adjustAVDirect; - if(!repeated || isAdjustRepeated(myAdjustDirect)) - getAdjustSetting(myAdjustDirect)(direction); + const SettingData& data = getSettingData(directSetting); + + myDirectSetting = directSetting; + if(!repeated || data.repeated) + data.function(direction); } else { // Get (and display) the current adjustment function, // but only change its value if the function was already active before - if(!repeated || isAdjustRepeated(myAdjustSetting)) + const SettingData& data = getSettingData(mySetting); + + if(!repeated || data.repeated) { - getAdjustSetting(myAdjustSetting)(adjustActive ? direction : 0); - myAdjustActive = true; + data.function(settingActive ? direction : 0); + mySettingActive = true; } } } @@ -146,27 +135,28 @@ bool GlobalKeyHandler::handleEvent(const Event::Type event, bool pressed, bool r } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void GlobalKeyHandler::setAdjustSetting(const AdjustSetting setting) +void GlobalKeyHandler::setSetting(const Setting setting) { - myAdjustSetting = setting; - myAdjustActive = true; + mySetting = setting; + mySettingActive = true; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void GlobalKeyHandler::setAdjustDirect(const AdjustSetting setting) +void GlobalKeyHandler::setDirectSetting(const Setting setting) { - myAdjustDirect = setting; + myDirectSetting = setting; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -const GlobalKeyHandler::AdjustGroup GlobalKeyHandler::getAdjustGroup() const +const GlobalKeyHandler::Group GlobalKeyHandler::getGroup() const { - if(myAdjustSetting >= AdjustSetting::START_DEBUG_ADJ && myAdjustSetting <= AdjustSetting::END_DEBUG_ADJ) - return AdjustGroup::DEBUG; - if(myAdjustSetting >= AdjustSetting::START_INPUT_ADJ && myAdjustSetting <= AdjustSetting::END_INPUT_ADJ) - return AdjustGroup::INPUT; + if(mySetting >= Setting::START_DEBUG_ADJ && mySetting <= Setting::END_DEBUG_ADJ) + return Group::DEBUG; - return AdjustGroup::AV; + if(mySetting >= Setting::START_INPUT_ADJ && mySetting <= Setting::END_INPUT_ADJ) + return Group::INPUT; + + return Group::AV; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -210,17 +200,17 @@ bool GlobalKeyHandler::skipAVSetting() const const bool isSoftwareRenderer = myOSystem.settings().getString("video") == "software"; - return (myAdjustSetting == AdjustSetting::OVERSCAN && !isFullScreen) - #ifdef ADAPTABLE_REFRESH_SUPPORT - || (myAdjustSetting == AdjustSetting::ADAPT_REFRESH && !isFullScreen) - #endif - || (myAdjustSetting >= AdjustSetting::PALETTE_PHASE - && myAdjustSetting <= AdjustSetting::PALETTE_BLUE_SHIFT + return (mySetting == Setting::OVERSCAN && !isFullScreen) +#ifdef ADAPTABLE_REFRESH_SUPPORT + || (mySetting == Setting::ADAPT_REFRESH && !isFullScreen) +#endif + || (mySetting >= Setting::PALETTE_PHASE + && mySetting <= Setting::PALETTE_BLUE_SHIFT && !isCustomPalette) - || (myAdjustSetting >= AdjustSetting::NTSC_SHARPNESS - && myAdjustSetting <= AdjustSetting::NTSC_BLEEDING + || (mySetting >= Setting::NTSC_SHARPNESS + && mySetting <= Setting::NTSC_BLEEDING && !isCustomFilter) - || (myAdjustSetting == AdjustSetting::INTERPOLATION && isSoftwareRenderer); + || (mySetting == Setting::INTERPOLATION && isSoftwareRenderer); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -244,32 +234,32 @@ bool GlobalKeyHandler::skipInputSetting() const && analog); const bool stelladapter = joyHandler().hasStelladaptors(); - return (!grabMouseAllowed && myAdjustSetting == AdjustSetting::GRAB_MOUSE) + return (!grabMouseAllowed && mySetting == Setting::GRAB_MOUSE) || (!joystick - && (myAdjustSetting == AdjustSetting::DEADZONE - || myAdjustSetting == AdjustSetting::FOUR_DIRECTIONS)) + && (mySetting == Setting::DEADZONE + || mySetting == Setting::FOUR_DIRECTIONS)) || (!paddle - && (myAdjustSetting == AdjustSetting::ANALOG_DEADZONE - || myAdjustSetting == AdjustSetting::ANALOG_SENSITIVITY - || myAdjustSetting == AdjustSetting::ANALOG_LINEARITY - || myAdjustSetting == AdjustSetting::DEJITTER_AVERAGING - || myAdjustSetting == AdjustSetting::DEJITTER_REACTION - || myAdjustSetting == AdjustSetting::DIGITAL_SENSITIVITY - || myAdjustSetting == AdjustSetting::SWAP_PADDLES - || myAdjustSetting == AdjustSetting::PADDLE_CENTER_X - || myAdjustSetting == AdjustSetting::PADDLE_CENTER_Y)) + && (mySetting == Setting::ANALOG_DEADZONE + || mySetting == Setting::ANALOG_SENSITIVITY + || mySetting == Setting::ANALOG_LINEARITY + || mySetting == Setting::DEJITTER_AVERAGING + || mySetting == Setting::DEJITTER_REACTION + || mySetting == Setting::DIGITAL_SENSITIVITY + || mySetting == Setting::SWAP_PADDLES + || mySetting == Setting::PADDLE_CENTER_X + || mySetting == Setting::PADDLE_CENTER_Y)) || ((!paddle || !useMouse) - && myAdjustSetting == AdjustSetting::PADDLE_SENSITIVITY) + && mySetting == Setting::PADDLE_SENSITIVITY) || ((!trackball || !useMouse) - && myAdjustSetting == AdjustSetting::TRACKBALL_SENSITIVITY) + && mySetting == Setting::TRACKBALL_SENSITIVITY) || (!driving - && myAdjustSetting == AdjustSetting::DRIVING_SENSITIVITY) // also affects digital device input sensitivity + && mySetting == Setting::DRIVING_SENSITIVITY) // also affects digital device input sensitivity || ((!myOSystem.eventHandler().hasMouseControl() || !useMouse) - && myAdjustSetting == AdjustSetting::MOUSE_CONTROL) + && mySetting == Setting::MOUSE_CONTROL) || ((!paddle || !useMouse) - && myAdjustSetting == AdjustSetting::MOUSE_RANGE) + && mySetting == Setting::MOUSE_RANGE) || (!stelladapter - && myAdjustSetting == AdjustSetting::SA_PORT_ORDER); + && mySetting == Setting::SA_PORT_ORDER); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -277,37 +267,38 @@ bool GlobalKeyHandler::skipDebugSetting() const { const bool isPAL = myOSystem.console().timing() == ConsoleTiming::pal; - return (myAdjustSetting == AdjustSetting::COLOR_LOSS && !isPAL); + return (mySetting == Setting::COLOR_LOSS && !isPAL); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -const AdjustFunction GlobalKeyHandler::cycleAdjustSetting(int direction) +const GlobalKeyHandler::Function GlobalKeyHandler::cycleSetting(int direction) { bool skip = false; + do { - switch(getAdjustGroup()) + switch(getGroup()) { - case AdjustGroup::AV: - myAdjustSetting = - AdjustSetting(BSPF::clampw(int(myAdjustSetting) + direction, - int(AdjustSetting::START_AV_ADJ), int(AdjustSetting::END_AV_ADJ))); + case Group::AV: + mySetting = + Setting(BSPF::clampw(int(mySetting) + direction, + int(Setting::START_AV_ADJ), int(Setting::END_AV_ADJ))); // skip currently non-relevant adjustments skip = skipAVSetting(); break; - case AdjustGroup::INPUT: - myAdjustSetting = - AdjustSetting(BSPF::clampw(int(myAdjustSetting) + direction, - int(AdjustSetting::START_INPUT_ADJ), int(AdjustSetting::END_INPUT_ADJ))); + case Group::INPUT: + mySetting = + Setting(BSPF::clampw(int(mySetting) + direction, + int(Setting::START_INPUT_ADJ), int(Setting::END_INPUT_ADJ))); // skip currently non-relevant adjustments skip = skipInputSetting(); break; - case AdjustGroup::DEBUG: - myAdjustSetting = - AdjustSetting(BSPF::clampw(int(myAdjustSetting) + direction, - int(AdjustSetting::START_DEBUG_ADJ), int(AdjustSetting::END_DEBUG_ADJ))); + case Group::DEBUG: + mySetting = + Setting(BSPF::clampw(int(mySetting) + direction, + int(Setting::START_DEBUG_ADJ), int(Setting::END_DEBUG_ADJ))); // skip currently non-relevant adjustments skip = skipDebugSetting(); break; @@ -320,222 +311,130 @@ const AdjustFunction GlobalKeyHandler::cycleAdjustSetting(int direction) direction = 1; } while(skip); - return getAdjustSetting(myAdjustSetting); + return getSettingData(mySetting).function; } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -const AdjustFunction GlobalKeyHandler::getAdjustSetting(const AdjustSetting setting) const +const GlobalKeyHandler::SettingData GlobalKeyHandler::getSettingData(const Setting setting) const { // Notes: - // - All methods MUST show a message - // - This array MUST have the same order as AdjustSetting - const AdjustFunction ADJUST_FUNCTIONS[int(AdjustSetting::NUM_ADJ)] = - { - // *** Audio & Video settings *** - std::bind(&Sound::adjustVolume, &myOSystem.sound(), _1), - std::bind(&FrameBuffer::switchVideoMode, &myOSystem.frameBuffer(), _1), - std::bind(&FrameBuffer::toggleFullscreen, &myOSystem.frameBuffer(), _1), - #ifdef ADAPTABLE_REFRESH_SUPPORT - std::bind(&FrameBuffer::toggleAdaptRefresh, &myOSystem.frameBuffer(), _1), - #endif - std::bind(&FrameBuffer::changeOverscan, &myOSystem.frameBuffer(), _1), - std::bind(&Console::selectFormat, &myOSystem.console(), _1), // property, not persisted - std::bind(&Console::changeVerticalCenter, &myOSystem.console(), _1), // property, not persisted - std::bind(&Console::toggleCorrectAspectRatio, &myOSystem.console(), _1), - std::bind(&Console::changeVSizeAdjust, &myOSystem.console(), _1), - // Palette adjustables - std::bind(&PaletteHandler::cyclePalette, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), _1), - std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), - PaletteHandler::PHASE_SHIFT, _1), - std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), - PaletteHandler::RED_SCALE, _1), - std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), - PaletteHandler::RED_SHIFT, _1), - std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), - PaletteHandler::GREEN_SCALE, _1), - std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), - PaletteHandler::GREEN_SHIFT, _1), - std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), - PaletteHandler::BLUE_SCALE, _1), - std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), - PaletteHandler::BLUE_SHIFT, _1), - std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), - PaletteHandler::HUE, _1), - std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), - PaletteHandler::SATURATION, _1), - std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), - PaletteHandler::CONTRAST, _1), - std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), - PaletteHandler::BRIGHTNESS, _1), - std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), - PaletteHandler::GAMMA, _1), - // NTSC filter adjustables - std::bind(&TIASurface::changeNTSC, &myOSystem.frameBuffer().tiaSurface(), _1), - std::bind(&TIASurface::changeNTSCAdjustable, &myOSystem.frameBuffer().tiaSurface(), - int(NTSCFilter::Adjustables::SHARPNESS), _1), - std::bind(&TIASurface::changeNTSCAdjustable, &myOSystem.frameBuffer().tiaSurface(), - int(NTSCFilter::Adjustables::RESOLUTION), _1), - std::bind(&TIASurface::changeNTSCAdjustable, &myOSystem.frameBuffer().tiaSurface(), - int(NTSCFilter::Adjustables::ARTIFACTS), _1), - std::bind(&TIASurface::changeNTSCAdjustable, &myOSystem.frameBuffer().tiaSurface(), - int(NTSCFilter::Adjustables::FRINGING), _1), - std::bind(&TIASurface::changeNTSCAdjustable, &myOSystem.frameBuffer().tiaSurface(), - int(NTSCFilter::Adjustables::BLEEDING), _1), - std::bind(&Console::changePhosphor, &myOSystem.console(), _1), - std::bind(&TIASurface::setScanlineIntensity, &myOSystem.frameBuffer().tiaSurface(), _1), - std::bind(&Console::toggleInter, &myOSystem.console(), _1), - - // *** Input settings *** - std::bind(&PhysicalJoystickHandler::changeDigitalDeadZone, &joyHandler(), _1), - std::bind(&PhysicalJoystickHandler::changeAnalogPaddleDeadZone, &joyHandler(), _1), - std::bind(&PhysicalJoystickHandler::changeAnalogPaddleSensitivity, &joyHandler(), _1), - std::bind(&PhysicalJoystickHandler::changeAnalogPaddleLinearity, &joyHandler(), _1), - std::bind(&PhysicalJoystickHandler::changePaddleDejitterAveraging, &joyHandler(), _1), - std::bind(&PhysicalJoystickHandler::changePaddleDejitterReaction, &joyHandler(), _1), - std::bind(&PhysicalJoystickHandler::changeDigitalPaddleSensitivity, &joyHandler(), _1), - std::bind(&Console::changeAutoFireRate, &myOSystem.console(), _1), - std::bind(&EventHandler::toggleAllow4JoyDirections, &myOSystem.eventHandler(), _1), - std::bind(&PhysicalKeyboardHandler::toggleModKeys, &keyHandler(), _1), - std::bind(&EventHandler::toggleSAPortOrder, &myOSystem.eventHandler(), _1), - std::bind(&EventHandler::changeMouseControllerMode, &myOSystem.eventHandler(), _1), - std::bind(&PhysicalJoystickHandler::changeMousePaddleSensitivity, &joyHandler(), _1), - std::bind(&PhysicalJoystickHandler::changeMouseTrackballSensitivity, &joyHandler(), _1), - std::bind(&PhysicalJoystickHandler::changeDrivingSensitivity, &joyHandler(), _1), - std::bind(&EventHandler::changeMouseCursor, &myOSystem.eventHandler(), _1), - std::bind(&FrameBuffer::toggleGrabMouse, &myOSystem.frameBuffer(), _1), - // Game properties/Controllers - std::bind(&Console::changeLeftController, &myOSystem.console(), _1), // property, not persisted - std::bind(&Console::changeRightController, &myOSystem.console(), _1), // property, not persisted - std::bind(&Console::toggleSwapPorts, &myOSystem.console(), _1), // property, not persisted - std::bind(&Console::toggleSwapPaddles, &myOSystem.console(), _1), // property, not persisted - std::bind(&Console::changePaddleCenterX, &myOSystem.console(), _1), // property, not persisted - std::bind(&Console::changePaddleCenterY, &myOSystem.console(), _1), // property, not persisted - std::bind(&EventHandler::changeMouseControl, &myOSystem.eventHandler(), _1), // property, not persisted - std::bind(&Console::changePaddleAxesRange, &myOSystem.console(), _1), // property, not persisted - - // *** Debug settings *** - std::bind(&FrameBuffer::toggleFrameStats, &myOSystem.frameBuffer(), _1), - std::bind(&Console::toggleP0Bit, &myOSystem.console(), _1), // debug, not persisted - std::bind(&Console::toggleP1Bit, &myOSystem.console(), _1), // debug, not persisted - std::bind(&Console::toggleM0Bit, &myOSystem.console(), _1), // debug, not persisted - std::bind(&Console::toggleM1Bit, &myOSystem.console(), _1), // debug, not persisted - std::bind(&Console::toggleBLBit, &myOSystem.console(), _1), // debug, not persisted - std::bind(&Console::togglePFBit, &myOSystem.console(), _1), // debug, not persisted - std::bind(&Console::toggleBits, &myOSystem.console(), _1), // debug, not persisted - std::bind(&Console::toggleP0Collision, &myOSystem.console(), _1), // debug, not persisted - std::bind(&Console::toggleP1Collision, &myOSystem.console(), _1), // debug, not persisted - std::bind(&Console::toggleM0Collision, &myOSystem.console(), _1), // debug, not persisted - std::bind(&Console::toggleM1Collision, &myOSystem.console(), _1), // debug, not persisted - std::bind(&Console::toggleBLCollision, &myOSystem.console(), _1), // debug, not persisted - std::bind(&Console::togglePFCollision, &myOSystem.console(), _1), // debug, not persisted - std::bind(&Console::toggleCollisions, &myOSystem.console(), _1), // debug, not persisted - std::bind(&Console::toggleFixedColors, &myOSystem.console(), _1), // debug, not persisted - std::bind(&Console::toggleColorLoss, &myOSystem.console(), _1), - std::bind(&Console::toggleJitter, &myOSystem.console(), _1), - - // *** Following functions are not used when cycling settings, but for "direct only" hotkeys *** - std::bind(&StateManager::changeState, &myOSystem.state(), _1), // temporary, not persisted - std::bind(&PaletteHandler::changeCurrentAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), _1), - std::bind(&TIASurface::changeCurrentNTSCAdjustable, &myOSystem.frameBuffer().tiaSurface(), _1), - std::bind(&Console::changeSpeed, &myOSystem.console(), _1), - }; - - return ADJUST_FUNCTIONS[int(setting)]; -} - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -bool GlobalKeyHandler::isAdjustRepeated(const AdjustSetting setting) const -{ - const bool ADJUST_REPEATED[int(AdjustSetting::NUM_ADJ)] = - { + // - all setting methods MUST always display a message + // - some settings reset the repeat state, therefore the code cannot detect repeats + const std::map SettingMap = { // *** Audio & Video group *** - true, // VOLUME - false, // ZOOM (always repeating) - false, // FULLSCREEN (always repeating) + {Setting::VOLUME, {true, std::bind(&Sound::adjustVolume, &myOSystem.sound(), _1)}}, + {Setting::ZOOM, {false, std::bind(&FrameBuffer::switchVideoMode, &myOSystem.frameBuffer(), _1)}}, // always repeating + {Setting::FULLSCREEN, {false, std::bind(&FrameBuffer::toggleFullscreen, &myOSystem.frameBuffer(), _1)}}, // always repeating #ifdef ADAPTABLE_REFRESH_SUPPORT - false, // ADAPT_REFRESH (always repeating) + {Setting::ADAPT_REFRESH, {false, std::bind(&FrameBuffer::toggleAdaptRefresh, &myOSystem.frameBuffer(), _1)}}, // always repeating #endif - true, // OVERSCAN - false, // TVFORMAT - true, // VCENTER - false, // ASPECT_RATIO (always repeating) - true, // VSIZE + {Setting::OVERSCAN, {true, std::bind(&FrameBuffer::changeOverscan, &myOSystem.frameBuffer(), _1)}}, + {Setting::TVFORMAT, {false, std::bind(&Console::selectFormat, &myOSystem.console(), _1)}}, // property, not persisted + {Setting::VCENTER, {true, std::bind(&Console::changeVerticalCenter, &myOSystem.console(), _1)}}, // property, not persisted + {Setting::ASPECT_RATIO, {false, std::bind(&Console::toggleCorrectAspectRatio, &myOSystem.console(), _1)}}, // always repeating + {Setting::VSIZE, {true, std::bind(&Console::changeVSizeAdjust, &myOSystem.console(), _1)}}, // Palette adjustables - false, // PALETTE - true, // PALETTE_PHASE - true, // PALETTE_RED_SCALE - true, // PALETTE_RED_SHIFT - true, // PALETTE_GREEN_SCALE - true, // PALETTE_GREEN_SHIFT - true, // PALETTE_BLUE_SCALE - true, // PALETTE_BLUE_SHIFT - true, // PALETTE_HUE - true, // PALETTE_SATURATION - true, // PALETTE_CONTRAST - true, // PALETTE_BRIGHTNESS - true, // PALETTE_GAMMA + {Setting::PALETTE, {false, std::bind(&PaletteHandler::cyclePalette, + &myOSystem.frameBuffer().tiaSurface().paletteHandler(), _1)}}, + {Setting::PALETTE_PHASE, {true, std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), + PaletteHandler::PHASE_SHIFT, _1)}}, + {Setting::PALETTE_RED_SCALE, {true, std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), + PaletteHandler::RED_SCALE, _1)}}, + {Setting::PALETTE_RED_SHIFT, {true, std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), + PaletteHandler::RED_SHIFT, _1)}}, + {Setting::PALETTE_GREEN_SCALE, {true, std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), + PaletteHandler::GREEN_SCALE, _1)}}, + {Setting::PALETTE_GREEN_SHIFT, {true, std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), + PaletteHandler::GREEN_SHIFT, _1)}}, + {Setting::PALETTE_BLUE_SCALE, {true, std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), + PaletteHandler::BLUE_SCALE, _1)}}, + {Setting::PALETTE_BLUE_SHIFT, {true, std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), + PaletteHandler::BLUE_SHIFT, _1)}}, + {Setting::PALETTE_HUE, {true, std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), + PaletteHandler::HUE, _1)}}, + {Setting::PALETTE_SATURATION, {true, std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), + PaletteHandler::SATURATION, _1)}}, + {Setting::PALETTE_CONTRAST, {true, std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), + PaletteHandler::CONTRAST, _1)}}, + {Setting::PALETTE_BRIGHTNESS, {true, std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), + PaletteHandler::BRIGHTNESS, _1)}}, + {Setting::PALETTE_GAMMA, {true, std::bind(&PaletteHandler::changeAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), + PaletteHandler::GAMMA, _1)}}, // NTSC filter adjustables - false, // NTSC_PRESET - true, // NTSC_SHARPNESS - true, // NTSC_RESOLUTION - true, // NTSC_ARTIFACTS - true, // NTSC_FRINGING - true, // NTSC_BLEEDING + {Setting::NTSC_PRESET, {false, std::bind(&TIASurface::changeNTSC, &myOSystem.frameBuffer().tiaSurface(), _1)}}, + {Setting::NTSC_SHARPNESS, {true, std::bind(&TIASurface::changeNTSCAdjustable, &myOSystem.frameBuffer().tiaSurface(), + int(NTSCFilter::Adjustables::SHARPNESS), _1)}}, + {Setting::NTSC_RESOLUTION, {true, std::bind(&TIASurface::changeNTSCAdjustable, &myOSystem.frameBuffer().tiaSurface(), + int(NTSCFilter::Adjustables::RESOLUTION), _1)}}, + {Setting::NTSC_ARTIFACTS, {true, std::bind(&TIASurface::changeNTSCAdjustable, &myOSystem.frameBuffer().tiaSurface(), + int(NTSCFilter::Adjustables::ARTIFACTS), _1)}}, + {Setting::NTSC_FRINGING, {true, std::bind(&TIASurface::changeNTSCAdjustable, &myOSystem.frameBuffer().tiaSurface(), + int(NTSCFilter::Adjustables::FRINGING), _1)}}, + {Setting::NTSC_BLEEDING, {true, std::bind(&TIASurface::changeNTSCAdjustable, &myOSystem.frameBuffer().tiaSurface(), + int(NTSCFilter::Adjustables::BLEEDING), _1)}}, // Other TV effects adjustables - true, // PHOSPHOR - true, // SCANLINES - false, // INTERPOLATION + {Setting::PHOSPHOR, {true, std::bind(&Console::changePhosphor, &myOSystem.console(), _1)}}, + {Setting::SCANLINES, {true, std::bind(&TIASurface::setScanlineIntensity, &myOSystem.frameBuffer().tiaSurface(), _1)}}, + {Setting::INTERPOLATION, {false, std::bind(&Console::toggleInter, &myOSystem.console(), _1)}}, // *** Input group *** - true, // DEADZONE - true, // ANALOG_DEADZONE - true, // ANALOG_SENSITIVITY - true, // ANALOG_LINEARITY - true, // DEJITTER_AVERAGING - true, // DEJITTER_REACTION - true, // DIGITAL_SENSITIVITY - true, // AUTO_FIRE - false, // FOUR_DIRECTIONS - false, // MOD_KEY_COMBOS - false, // SA_PORT_ORDER - false, // USE_MOUSE - true, // PADDLE_SENSITIVITY - true, // TRACKBALL_SENSITIVITY - true, // DRIVING_SENSITIVITY - false, // MOUSE_CURSOR - false, // GRAB_MOUSE - false, // LEFT_PORT - false, // RIGHT_PORT - false, // SWAP_PORTS - false, // SWAP_PADDLES - true, // PADDLE_CENTER_X - true, // PADDLE_CENTER_Y - false, // MOUSE_CONTROL - true, // MOUSE_RANGE + {Setting::DEADZONE, {true, std::bind(&PhysicalJoystickHandler::changeDigitalDeadZone, &joyHandler(), _1)}}, + {Setting::ANALOG_DEADZONE, {true, std::bind(&PhysicalJoystickHandler::changeAnalogPaddleDeadZone, &joyHandler(), _1)}}, + {Setting::ANALOG_SENSITIVITY, {true, std::bind(&PhysicalJoystickHandler::changeAnalogPaddleSensitivity, &joyHandler(), _1)}}, + {Setting::ANALOG_LINEARITY, {true, std::bind(&PhysicalJoystickHandler::changeAnalogPaddleLinearity, &joyHandler(), _1)}}, + {Setting::DEJITTER_AVERAGING, {true, std::bind(&PhysicalJoystickHandler::changePaddleDejitterAveraging, &joyHandler(), _1)}}, + {Setting::DEJITTER_REACTION, {true, std::bind(&PhysicalJoystickHandler::changePaddleDejitterReaction, &joyHandler(), _1)}}, + {Setting::DIGITAL_SENSITIVITY, {true, std::bind(&PhysicalJoystickHandler::changeDigitalPaddleSensitivity, &joyHandler(), _1)}}, + {Setting::AUTO_FIRE, {true, std::bind(&Console::changeAutoFireRate, &myOSystem.console(), _1)}}, + {Setting::FOUR_DIRECTIONS, {false, std::bind(&EventHandler::toggleAllow4JoyDirections, &myOSystem.eventHandler(), _1)}}, + {Setting::MOD_KEY_COMBOS, {false, std::bind(&PhysicalKeyboardHandler::toggleModKeys, &keyHandler(), _1)}}, + {Setting::SA_PORT_ORDER, {false, std::bind(&EventHandler::toggleSAPortOrder, &myOSystem.eventHandler(), _1)}}, + {Setting::USE_MOUSE, {false, std::bind(&EventHandler::changeMouseControllerMode, &myOSystem.eventHandler(), _1)}}, + {Setting::PADDLE_SENSITIVITY, {true, std::bind(&PhysicalJoystickHandler::changeMousePaddleSensitivity, &joyHandler(), _1)}}, + {Setting::TRACKBALL_SENSITIVITY, {true, std::bind(&PhysicalJoystickHandler::changeMouseTrackballSensitivity, &joyHandler(), _1)}}, + {Setting::DRIVING_SENSITIVITY, {true, std::bind(&PhysicalJoystickHandler::changeDrivingSensitivity, &joyHandler(), _1)}}, + {Setting::MOUSE_CURSOR, {false, std::bind(&EventHandler::changeMouseCursor, &myOSystem.eventHandler(), _1)}}, + {Setting::GRAB_MOUSE, {false, std::bind(&FrameBuffer::toggleGrabMouse, &myOSystem.frameBuffer(), _1)}}, + // Game properties/Controllers + {Setting::LEFT_PORT, {false, std::bind(&Console::changeLeftController, &myOSystem.console(), _1)}}, // property, not persisted + {Setting::RIGHT_PORT, {false, std::bind(&Console::changeRightController, &myOSystem.console(), _1)}}, // property, not persisted + {Setting::SWAP_PORTS, {false, std::bind(&Console::toggleSwapPorts, &myOSystem.console(), _1)}}, // property, not persisted + {Setting::SWAP_PADDLES, {false, std::bind(&Console::toggleSwapPaddles, &myOSystem.console(), _1)}}, // property, not persisted + {Setting::PADDLE_CENTER_X, {true, std::bind(&Console::changePaddleCenterX, &myOSystem.console(), _1)}}, // property, not persisted + {Setting::PADDLE_CENTER_Y, {true, std::bind(&Console::changePaddleCenterY, &myOSystem.console(), _1)}}, // property, not persisted + {Setting::MOUSE_CONTROL, {false, std::bind(&EventHandler::changeMouseControl, &myOSystem.eventHandler(), _1)}}, // property, not persisted + {Setting::MOUSE_RANGE, {true, std::bind(&Console::changePaddleAxesRange, &myOSystem.console(), _1)}}, // property, not persisted // *** Debug group *** - false, // STATS - false, // P0_ENAM - false, // P1_ENAM - false, // M0_ENAM - false, // M1_ENAM - false, // BL_ENAM - false, // PF_ENAM - false, // ALL_ENAM - false, // P0_CX - false, // P1_CX - false, // M0_CX - false, // M1_CX - false, // BL_CX - false, // PF_CX - false, // ALL_CX - false, // FIXED_COL - false, // COLOR_LOSS - false, // JITTER - // *** Only used via direct hotkeys *** - true, // STATE - true, // PALETTE_CHANGE_ATTRIBUTE - true, // NTSC_CHANGE_ATTRIBUTE - true, // CHANGE_SPEED + {Setting::STATS, {false, std::bind(&FrameBuffer::toggleFrameStats, &myOSystem.frameBuffer(), _1)}}, + {Setting::P0_ENAM, {false, std::bind(&Console::toggleP0Bit, &myOSystem.console(), _1)}}, // debug, not persisted + {Setting::P1_ENAM, {false, std::bind(&Console::toggleP1Bit, &myOSystem.console(), _1)}}, // debug, not persisted + {Setting::M0_ENAM, {false, std::bind(&Console::toggleM0Bit, &myOSystem.console(), _1)}}, // debug, not persisted + {Setting::M1_ENAM, {false, std::bind(&Console::toggleM1Bit, &myOSystem.console(), _1)}}, // debug, not persisted + {Setting::BL_ENAM, {false, std::bind(&Console::toggleBLBit, &myOSystem.console(), _1)}}, // debug, not persisted + {Setting::PF_ENAM, {false, std::bind(&Console::togglePFBit, &myOSystem.console(), _1)}}, // debug, not persisted + {Setting::ALL_ENAM, {false, std::bind(&Console::toggleBits, &myOSystem.console(), _1)}}, // debug, not persisted + {Setting::P0_CX, {false, std::bind(&Console::toggleP0Collision, &myOSystem.console(), _1)}}, // debug, not persisted + {Setting::P1_CX, {false, std::bind(&Console::toggleP1Collision, &myOSystem.console(), _1)}}, // debug, not persisted + {Setting::M0_CX, {false, std::bind(&Console::toggleM0Collision, &myOSystem.console(), _1)}}, // debug, not persisted + {Setting::M1_CX, {false, std::bind(&Console::toggleM1Collision, &myOSystem.console(), _1)}}, // debug, not persisted + {Setting::BL_CX, {false, std::bind(&Console::toggleBLCollision, &myOSystem.console(), _1)}}, // debug, not persisted + {Setting::PF_CX, {false, std::bind(&Console::togglePFCollision, &myOSystem.console(), _1)}}, // debug, not persisted + {Setting::ALL_CX, {false, std::bind(&Console::toggleCollisions, &myOSystem.console(), _1)}}, // debug, not persisted + {Setting::FIXED_COL, {false, std::bind(&Console::toggleFixedColors, &myOSystem.console(), _1)}}, // debug, not persisted + {Setting::COLOR_LOSS, {false, std::bind(&Console::toggleColorLoss, &myOSystem.console(), _1)}}, + {Setting::JITTER, {false, std::bind(&Console::toggleJitter, &myOSystem.console(), _1)}}, + // *** Following functions are not used when cycling settings, but for "direct only" hotkeys *** + {Setting::STATE, {true, std::bind(&StateManager::changeState, &myOSystem.state(), _1)}}, // temporary, not persisted + {Setting::PALETTE_ATTRIBUTE, {true, std::bind(&PaletteHandler::changeCurrentAdjustable, &myOSystem.frameBuffer().tiaSurface().paletteHandler(), _1)}}, + {Setting::NTSC_ATTRIBUTE, {true, std::bind(&TIASurface::changeCurrentNTSCAdjustable, &myOSystem.frameBuffer().tiaSurface(), _1)}}, + {Setting::CHANGE_SPEED, {true, std::bind(&Console::changeSpeed, &myOSystem.console(), _1)}}, }; + const auto result = SettingMap.find(setting); - return ADJUST_REPEATED[int(setting)]; + if(result != SettingMap.end()) + return result->second; + else + { + cerr << "Error: setting " << int(setting) << " missing in SettingMap!" << endl; + return SettingMap.find(Setting::VOLUME)->second; // default function! + } } diff --git a/src/emucore/GlobalKeyHandler.hxx b/src/emucore/GlobalKeyHandler.hxx index 926a7c001..c6316f2ef 100644 --- a/src/emucore/GlobalKeyHandler.hxx +++ b/src/emucore/GlobalKeyHandler.hxx @@ -31,7 +31,7 @@ class GlobalKeyHandler GlobalKeyHandler(OSystem& osystem); public: - enum class AdjustSetting + enum class Setting { NONE = -1, // *** Audio & Video group *** @@ -118,8 +118,8 @@ class GlobalKeyHandler JITTER, // *** Only used via direct hotkeys *** STATE, - PALETTE_CHANGE_ATTRIBUTE, - NTSC_CHANGE_ATTRIBUTE, + PALETTE_ATTRIBUTE, + NTSC_ATTRIBUTE, CHANGE_SPEED, // *** Ranges *** NUM_ADJ, @@ -133,11 +133,13 @@ class GlobalKeyHandler public: bool handleEvent(const Event::Type event, bool pressed, bool repeated); - void setAdjustSetting(const AdjustSetting setting); - void setAdjustDirect(const AdjustSetting setting); + void setSetting(const Setting setting); + void setDirectSetting(const Setting setting); private: - enum class AdjustGroup + using Function = std::function; + + enum class Group { AV, INPUT, @@ -145,18 +147,30 @@ class GlobalKeyHandler NUM_GROUPS }; + struct GroupData + { + Setting start{Setting::NONE}; + string name{EmptyString}; + }; + + struct SettingData + { + bool repeated{true}; + Function function{nullptr}; + }; + private: - // The following methods are used for adjusting several settings using global hotkeys - // They return the function used to adjust the currenly selected setting - const AdjustGroup getAdjustGroup() const; - const AdjustFunction cycleAdjustSetting(int direction); - const AdjustFunction getAdjustSetting(const AdjustSetting setting) const; - // Check if the current adjustment should be repeated - bool isAdjustRepeated(const AdjustSetting setting) const; + // Get group based on given setting + const Group getGroup() const; + // Cycle settings using given direction (can be 0) + const Function cycleSetting(int direction); + // Get adjustment function and if it is repeated + const SettingData getSettingData(const Setting setting) const; PhysicalJoystickHandler& joyHandler() const { return myOSystem.eventHandler().joyHandler(); } PhysicalKeyboardHandler& keyHandler() const { return myOSystem.eventHandler().keyHandler(); } + // Check if controller type is used (skips related input settings if not) bool isJoystick(const Controller& controller) const; bool isPaddle(const Controller& controller) const; bool isTrackball(const Controller& controller) const; @@ -171,13 +185,16 @@ class GlobalKeyHandler OSystem& myOSystem; // If true, the setting's message is visible and its value can be changed - bool myAdjustActive{false}; + bool mySettingActive{false}; - // ID of the currently selected global setting - AdjustSetting myAdjustSetting{AdjustSetting::START_AV_ADJ}; + // Currently selected setting + Setting mySetting{Setting::VOLUME}; - // ID of the currently selected direct hotkey setting (0 if none) - AdjustSetting myAdjustDirect{AdjustSetting::NONE}; + // Currently selected direct setting (0 if none). These settings are not + // selected using global hotkeys, but direct hotkeys only. Nevertheless + // they can be changed with global hotkeys while their message is still + // displayed + Setting myDirectSetting{Setting::NONE}; }; #endif