summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/machine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/machine.cpp')
-rw-r--r--src/emu/machine.cpp46
1 files changed, 24 insertions, 22 deletions
diff --git a/src/emu/machine.cpp b/src/emu/machine.cpp
index 36e107e838d..68b4b170b6c 100644
--- a/src/emu/machine.cpp
+++ b/src/emu/machine.cpp
@@ -344,8 +344,6 @@ int running_machine::run(bool quiet)
export_http_api();
- m_manager.http()->update();
-
// run the CPUs until a reset or exit
m_hard_reset_pending = false;
while ((!m_hard_reset_pending && !m_exit_pending) || m_saveload_schedule != saveload_schedule::NONE)
@@ -1193,26 +1191,30 @@ running_machine::logerror_callback_item::logerror_callback_item(logerror_callbac
void running_machine::export_http_api()
{
- m_manager.http()->add("/api/machine", [this](std::string)
- {
- rapidjson::StringBuffer s;
- rapidjson::Writer<rapidjson::StringBuffer> writer(s);
- writer.StartObject();
- writer.Key("name");
- writer.String(m_basename.c_str());
-
- writer.Key("devices");
- writer.StartArray();
-
- device_iterator iter(this->root_device());
- for (device_t &device : iter)
- writer.String(device.tag());
-
- writer.EndArray();
- writer.EndObject();
-
- return std::make_tuple(std::string(s.GetString()), 200, "application/json");
- });
+ if (m_manager.http()->is_active()) {
+ m_manager.http()->add_http_handler("/api/machine", [this](http_manager::http_request_ptr request, http_manager::http_response_ptr response)
+ {
+ rapidjson::StringBuffer s;
+ rapidjson::Writer<rapidjson::StringBuffer> writer(s);
+ writer.StartObject();
+ writer.Key("name");
+ writer.String(m_basename.c_str());
+
+ writer.Key("devices");
+ writer.StartArray();
+
+ device_iterator iter(this->root_device());
+ for (device_t &device : iter)
+ writer.String(device.tag());
+
+ writer.EndArray();
+ writer.EndObject();
+
+ response->set_status(200);
+ response->set_content_type("application/json");
+ response->set_body(s.GetString());
+ });
+ }
}
//**************************************************************************