aboutsummaryrefslogtreecommitdiff
path: root/src/libui_sdl/main.cpp
diff options
context:
space:
mode:
authorJon Pacheco <jon.pacheco2@gmail.com>2019-05-12 11:41:46 +0100
committerJon Pacheco <jon.pacheco2@gmail.com>2019-05-12 11:41:46 +0100
commit7d2ba09fd7d43397e1e2915de0e9a7e8e0abb6c2 (patch)
treeba2255b5b32af36adce4f5f0dd78401660889f49 /src/libui_sdl/main.cpp
parent99b07f930084b6faa7ac130b0d2c82a6f2060306 (diff)
Add fast forward hotkeys
Diffstat (limited to 'src/libui_sdl/main.cpp')
-rw-r--r--src/libui_sdl/main.cpp49
1 files changed, 46 insertions, 3 deletions
diff --git a/src/libui_sdl/main.cpp b/src/libui_sdl/main.cpp
index 3eea39c..83cfb6e 100644
--- a/src/libui_sdl/main.cpp
+++ b/src/libui_sdl/main.cpp
@@ -81,6 +81,8 @@ uiMenuItem* MenuItem_ScreenGap[6];
uiMenuItem* MenuItem_ScreenLayout[3];
uiMenuItem* MenuItem_ScreenSizing[4];
+uiMenuItem* MenuItem_LimitFPS;
+
SDL_Thread* EmuThread;
int EmuRunning;
volatile int EmuStatus;
@@ -127,6 +129,7 @@ s16* MicWavBuffer;
u32 MicCommand;
+bool HotkeyFPSToggle = false;
void SetupScreenRects(int width, int height);
@@ -497,6 +500,27 @@ int EmuThreadFunc(void* burp)
HotkeyMask |= 0x1;
}
+ if (JoyButtonPressed(Config::HKJoyMapping[HK_FastForwardToggle], njoybuttons, joybuttons, joyhat))
+ {
+ HotkeyFPSToggle = !HotkeyFPSToggle;
+ Config::LimitFPS = !Config::LimitFPS;
+ uiMenuItemSetChecked(MenuItem_LimitFPS, Config::LimitFPS==1);
+ }
+
+ if (!HotkeyFPSToggle) // For fast forward (hold) hotkey
+ {
+ if (JoyButtonHeld(Config::HKJoyMapping[HK_FastForward], njoybuttons, joybuttons, joyhat))
+ {
+ Config::LimitFPS = false;
+ uiMenuItemSetChecked(MenuItem_LimitFPS, false);
+ }
+ else if (!Config::LimitFPS)
+ {
+ Config::LimitFPS = true;
+ uiMenuItemSetChecked(MenuItem_LimitFPS, true);
+ }
+ }
+
if (JoyButtonHeld(Config::HKJoyMapping[HK_Mic], njoybuttons, joybuttons, joyhat))
MicCommand |= 2;
else
@@ -745,6 +769,19 @@ int OnAreaKeyEvent(uiAreaHandler* handler, uiArea* area, uiAreaKeyEvent* evt)
if (evt->Scancode == Config::HKKeyMapping[HK_Mic])
MicCommand &= ~1;
+
+ if (evt->Scancode == Config::HKKeyMapping[HK_FastForwardToggle])
+ {
+ HotkeyFPSToggle = !HotkeyFPSToggle;
+ Config::LimitFPS = !Config::LimitFPS;
+ uiMenuItemSetChecked(MenuItem_LimitFPS, Config::LimitFPS==1);
+ }
+
+ if (evt->Scancode == Config::HKKeyMapping[HK_FastForward] && !HotkeyFPSToggle)
+ {
+ Config::LimitFPS = true;
+ uiMenuItemSetChecked(MenuItem_LimitFPS, Config::LimitFPS==1);
+ }
}
else if (!evt->Repeat)
{
@@ -776,6 +813,12 @@ int OnAreaKeyEvent(uiAreaHandler* handler, uiArea* area, uiAreaKeyEvent* evt)
if (evt->Scancode == Config::HKKeyMapping[HK_Mic])
MicCommand |= 1;
+ if (evt->Scancode == Config::HKKeyMapping[HK_FastForward] && !HotkeyFPSToggle)
+ {
+ Config::LimitFPS = false;
+ uiMenuItemSetChecked(MenuItem_LimitFPS, Config::LimitFPS==1);
+ }
+
if (evt->Scancode == 0x57) // F11
NDS::debug(0);
}
@@ -1932,9 +1975,9 @@ int main(int argc, char** argv)
uiMenuItemOnClicked(menuitem, OnSetScreenFiltering, NULL);
uiMenuItemSetChecked(menuitem, Config::ScreenFilter==1);
- menuitem = uiMenuAppendCheckItem(menu, "Limit framerate");
- uiMenuItemOnClicked(menuitem, OnSetLimitFPS, NULL);
- uiMenuItemSetChecked(menuitem, Config::LimitFPS==1);
+ MenuItem_LimitFPS = uiMenuAppendCheckItem(menu, "Limit framerate");
+ uiMenuItemOnClicked(MenuItem_LimitFPS, OnSetLimitFPS, NULL);
+ uiMenuItemSetChecked(MenuItem_LimitFPS, Config::LimitFPS==1);
int w = Config::WindowWidth;