This commit is contained in:
wheremyfoodat 2023-07-27 13:49:13 +03:00
parent 630d423a4d
commit 420abd26d0
2 changed files with 8 additions and 9 deletions

View file

@ -42,7 +42,7 @@ class HttpAction {
HttpActionType getType() const { return type; } HttpActionType getType() const { return type; }
static std::unique_ptr<HttpAction> createScreenshotAction(DeferredResponseWrapper& response); static std::unique_ptr<HttpAction> createScreenshotAction(DeferredResponseWrapper& response);
static std::unique_ptr<HttpAction> createKeyAction(uint32_t key, bool state); static std::unique_ptr<HttpAction> createKeyAction(u32 key, bool state);
static std::unique_ptr<HttpAction> createLoadRomAction(DeferredResponseWrapper& response, const std::filesystem::path& path, bool paused); static std::unique_ptr<HttpAction> createLoadRomAction(DeferredResponseWrapper& response, const std::filesystem::path& path, bool paused);
static std::unique_ptr<HttpAction> createTogglePauseAction(); static std::unique_ptr<HttpAction> createTogglePauseAction();
static std::unique_ptr<HttpAction> createResetAction(); static std::unique_ptr<HttpAction> createResetAction();

View file

@ -171,9 +171,9 @@ void HttpServer::startHttpServer() {
DeferredResponseWrapper wrapper(response); DeferredResponseWrapper wrapper(response);
std::unique_lock lock(wrapper.mutex); std::unique_lock lock(wrapper.mutex);
pushAction(HttpAction::createLoadRomAction(wrapper, romPath, paused)); pushAction(HttpAction::createLoadRomAction(wrapper, romPath, paused));
response.set_content("ok", "text/plain"); response.set_content("ok", "text/plain");
wrapper.cv.wait(lock, [&wrapper] { return wrapper.ready; }); wrapper.cv.wait(lock, [&wrapper] { return wrapper.ready; });
}); });
server->Get("/togglepause", [this](const httplib::Request&, httplib::Response& response) { server->Get("/togglepause", [this](const httplib::Request&, httplib::Response& response) {
pushAction(HttpAction::createTogglePauseAction()); pushAction(HttpAction::createTogglePauseAction());
@ -245,11 +245,7 @@ void HttpServer::processActions() {
DeferredResponseWrapper& response = loadRomAction->getResponse(); DeferredResponseWrapper& response = loadRomAction->getResponse();
bool loaded = emulator->loadROM(loadRomAction->getPath()); bool loaded = emulator->loadROM(loadRomAction->getPath());
if (!loaded) { response.inner_response.set_content(loaded ? "ok" : "error", "text/plain");
response.inner_response.set_content("error", "text/plain");
} else {
response.inner_response.set_content("ok", "text/plain");
}
std::unique_lock<std::mutex> lock(response.mutex); std::unique_lock<std::mutex> lock(response.mutex);
response.ready = true; response.ready = true;
@ -266,7 +262,10 @@ void HttpServer::processActions() {
break; break;
} }
case HttpActionType::TogglePause: emulator->togglePause(); paused ^= true; break; case HttpActionType::TogglePause:
emulator->togglePause();
paused = !paused;
break;
case HttpActionType::Reset: emulator->reset(Emulator::ReloadOption::Reload); break; case HttpActionType::Reset: emulator->reset(Emulator::ReloadOption::Reload); break;
default: break; default: break;