add pause hotkey (#509)

This commit is contained in:
Logan McNaughton
2025-07-15 20:43:31 +02:00
committed by GitHub
parent abc39e74ef
commit 3e95059ec7
3 changed files with 15 additions and 1 deletions
+8
View File
@@ -151,6 +151,7 @@ bool sdl_event_filter(void *userdata, SDL_Event *event)
{
if (event->type == SDL_EVENT_WINDOW_CLOSE_REQUESTED)
{
callback.paused = false;
callback.emu_running = false;
}
else if (event->type == SDL_EVENT_WINDOW_RESIZED && callback.emu_running)
@@ -174,6 +175,12 @@ bool sdl_event_filter(void *userdata, SDL_Event *event)
callback.enable_speedlimiter = !callback.enable_speedlimiter;
}
break;
case SDL_SCANCODE_P:
if (event->key.mod & SDL_KMOD_ALT)
{
callback.paused = !callback.paused;
}
break;
case SDL_SCANCODE_ESCAPE:
if (gfx_info.fullscreen)
callback.emu_running = false;
@@ -281,6 +288,7 @@ void rdp_init(void *_window, GFX_INFO _gfx_info)
callback.emu_running = true;
callback.enable_speedlimiter = true;
callback.paused = false;
crop_letterbox = false;
}
+1
View File
@@ -33,6 +33,7 @@ extern "C"
bool enable_speedlimiter;
bool lower_volume;
bool raise_volume;
bool paused;
} CALL_BACK;
void rdp_init(void *_window, GFX_INFO _gfx_info);
+6 -1
View File
@@ -124,7 +124,7 @@ pub fn load_state(device: &mut device::Device, rdp_state: *const u8) {
pub fn check_callback(device: &mut device::Device) -> bool {
let mut speed_limiter_toggled = false;
let callback = unsafe { rdp_check_callback() };
let mut callback = unsafe { rdp_check_callback() };
device.cpu.running = callback.emu_running;
if device.netplay.is_none() {
if callback.save_state {
@@ -136,6 +136,11 @@ pub fn check_callback(device: &mut device::Device) -> bool {
speed_limiter_toggled = true;
device.vi.enable_speed_limiter = callback.enable_speedlimiter;
}
while callback.paused {
std::thread::sleep(std::time::Duration::from_secs_f64(1.0 / 60.0));
unsafe { sdl3_sys::events::SDL_PumpEvents() };
callback = unsafe { rdp_check_callback() };
}
}
if callback.lower_volume {