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; }
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> createTogglePauseAction();
static std::unique_ptr<HttpAction> createResetAction();

View file

@ -171,9 +171,9 @@ void HttpServer::startHttpServer() {
DeferredResponseWrapper wrapper(response);
std::unique_lock lock(wrapper.mutex);
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; });
});
});
server->Get("/togglepause", [this](const httplib::Request&, httplib::Response& response) {
pushAction(HttpAction::createTogglePauseAction());
@ -245,11 +245,7 @@ void HttpServer::processActions() {
DeferredResponseWrapper& response = loadRomAction->getResponse();
bool loaded = emulator->loadROM(loadRomAction->getPath());
if (!loaded) {
response.inner_response.set_content("error", "text/plain");
} else {
response.inner_response.set_content("ok", "text/plain");
}
response.inner_response.set_content(loaded ? "ok" : "error", "text/plain");
std::unique_lock<std::mutex> lock(response.mutex);
response.ready = true;
@ -266,7 +262,10 @@ void HttpServer::processActions() {
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;
default: break;