From 95a14ca8308630a0d5f41ad163dc01c31a808d90 Mon Sep 17 00:00:00 2001 From: LunaMoo Date: Fri, 1 Dec 2017 23:48:58 +0100 Subject: [PATCH] Add hotkey to toggle audio and video dumping together in sync. --- Common/KeyMap.cpp | 1 + Common/KeyMap.h | 1 + UI/EmuScreen.cpp | 22 ++++++++++++++++++++++ 3 files changed, 24 insertions(+) diff --git a/Common/KeyMap.cpp b/Common/KeyMap.cpp index d14d0a832a..ffe76c87a0 100644 --- a/Common/KeyMap.cpp +++ b/Common/KeyMap.cpp @@ -649,6 +649,7 @@ const KeyMap_IntStrPair psp_button_names[] = { #ifndef MOBILE_DEVICE {VIRTKEY_FRAME_ADVANCE, "Frame Advance"}, {VIRTKEY_REWIND, "Rewind"}, + {VIRTKEY_RECORD, "Audio/Video Recording" }, #endif {VIRTKEY_SAVE_STATE, "Save State"}, {VIRTKEY_LOAD_STATE, "Load State"}, diff --git a/Common/KeyMap.h b/Common/KeyMap.h index 5305d9d424..fd56d4d8f5 100644 --- a/Common/KeyMap.h +++ b/Common/KeyMap.h @@ -51,6 +51,7 @@ enum { VIRTKEY_AXIS_SWAP = 0x40000013, VIRTKEY_DEVMENU = 0x40000014, VIRTKEY_FRAME_ADVANCE = 0x40000015, + VIRTKEY_RECORD = 0x40000016, VIRTKEY_LAST, VIRTKEY_COUNT = VIRTKEY_LAST - VIRTKEY_FIRST }; diff --git a/UI/EmuScreen.cpp b/UI/EmuScreen.cpp index f8d8727899..403aaa5275 100644 --- a/UI/EmuScreen.cpp +++ b/UI/EmuScreen.cpp @@ -454,6 +454,28 @@ void EmuScreen::onVKeyDown(int virtualKeyCode) { break; } +#ifndef MOBILE_DEVICE + case VIRTKEY_RECORD: + { + if (g_Config.bDumpFrames == g_Config.bDumpAudio) { + g_Config.bDumpFrames = !g_Config.bDumpFrames; + g_Config.bDumpAudio = !g_Config.bDumpAudio; + } else { + // This hotkey should always toggle both audio and video together. + // So let's make sure that's the only outcome even if video OR audio was already being dumped. + if (g_Config.bDumpFrames) { + AVIDump::Stop(); + AVIDump::Start(PSP_CoreParameter().renderWidth, PSP_CoreParameter().renderHeight); + g_Config.bDumpAudio = true; + } else { + WAVDump::Reset(); + g_Config.bDumpFrames = true; + } + } + break; + } +#endif + case VIRTKEY_AXIS_X_MIN: case VIRTKEY_AXIS_X_MAX: setVKeyAnalogX(CTRL_STICK_LEFT, VIRTKEY_AXIS_X_MIN, VIRTKEY_AXIS_X_MAX);