From 8ccc9125720f174ddeba545260426ebaf5e377ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ana=C3=AFs=20Betts?= Date: Sun, 9 Jan 2022 18:50:45 +0100 Subject: [PATCH] Set up RPC but stub it out --- bsnes/target-bsnes/program/program.cpp | 9 ++++++++- bsnes/target-bsnes/program/program.hpp | 3 ++- bsnes/target-bsnes/program/rpc.cpp | 11 +++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 bsnes/target-bsnes/program/rpc.cpp diff --git a/bsnes/target-bsnes/program/program.cpp b/bsnes/target-bsnes/program/program.cpp index 8b236dd3..086f5d3d 100644 --- a/bsnes/target-bsnes/program/program.cpp +++ b/bsnes/target-bsnes/program/program.cpp @@ -15,6 +15,7 @@ #include "hacks.cpp" #include "filter.cpp" #include "viewport.cpp" +#include "rpc.cpp" Program program; auto Program::create() -> void { @@ -44,6 +45,8 @@ auto Program::create() -> void { stateManager.create(); manifestViewer.create(); + startRpcListener(); + if(settings.general.crashed) { MessageDialog( "Driver crash detected. Hardware drivers have been disabled.\n" @@ -84,6 +87,7 @@ auto Program::main() -> void { inputManager.poll(); inputManager.pollHotkeys(); + processRpcCommands(); static bool previouslyInactive = true; bool currentlyInactive = inactive(); @@ -118,7 +122,8 @@ auto Program::main() -> void { emulator->unserialize(state); } - if(emulatorSettings.autoSaveMemory.checked()) { + if (emulatorSettings.autoSaveMemory.checked()) + { auto currentTime = chrono::timestamp(); if(currentTime - autoSaveTime >= settings.emulator.autoSaveMemory.interval) { autoSaveTime = currentTime; @@ -132,9 +137,11 @@ auto Program::quit() -> void { presentation.setVisible(false); Application::processEvents(); + //in case the emulator was closed prior to initialization completing: settings.general.crashed = false; + stopRpcListener(); unload(); settings.save(); video.reset(); diff --git a/bsnes/target-bsnes/program/program.hpp b/bsnes/target-bsnes/program/program.hpp index 04e18fc4..21cc5127 100644 --- a/bsnes/target-bsnes/program/program.hpp +++ b/bsnes/target-bsnes/program/program.hpp @@ -221,7 +221,8 @@ public: string arg; }; - vector pendingRpcCommands; + ProducerConsumerQueue pendingRpcCommands; + nall::thread* rpcHandlerThread; bool fastForwarding = false; bool rewinding = false; diff --git a/bsnes/target-bsnes/program/rpc.cpp b/bsnes/target-bsnes/program/rpc.cpp new file mode 100644 index 00000000..c081ed8b --- /dev/null +++ b/bsnes/target-bsnes/program/rpc.cpp @@ -0,0 +1,11 @@ +auto Program::startRpcListener() -> void { + +} + +auto Program::stopRpcListener() -> void { + +} + +auto Program::processRpcCommands() -> void { + +} \ No newline at end of file