summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author cracyc <cracyc@users.noreply.github.com>2016-03-23 10:31:40 -0500
committer cracyc <cracyc@users.noreply.github.com>2016-03-23 10:31:40 -0500
commit0825bf2a2f3eedc7af1709816d0a88aab66845a8 (patch)
treed7dd3790d398ba5ab363a3fd8576204f206a5c02
parent67339c5dfd9b4ce6ea870ea6e609fe4a78c5477f (diff)
luaengine: add popmessage and logerror for lua (nw)
-rw-r--r--src/emu/luaengine.cpp22
-rw-r--r--src/emu/luaengine.h4
2 files changed, 25 insertions, 1 deletions
diff --git a/src/emu/luaengine.cpp b/src/emu/luaengine.cpp
index cd55b2bde4c..7b384fa62e9 100644
--- a/src/emu/luaengine.cpp
+++ b/src/emu/luaengine.cpp
@@ -1390,6 +1390,22 @@ void lua_engine::attach_notifiers()
machine().add_notifier(MACHINE_NOTIFY_FRAME, machine_notify_delegate(FUNC(lua_engine::on_machine_frame), this));
}
+int lua_engine::lua_machine::l_popmessage(lua_State *L)
+{
+ running_machine *m = luabridge::Stack<running_machine *>::get(L, 1);
+ luaL_argcheck(L, lua_isstring(L, 2), 2, "message (string) expected");
+ m->popmessage("%s", luaL_checkstring(L, 2));
+ return 0;
+}
+
+int lua_engine::lua_machine::l_logerror(lua_State *L)
+{
+ running_machine *m = luabridge::Stack<running_machine *>::get(L, 1);
+ luaL_argcheck(L, lua_isstring(L, 2), 2, "message (string) expected");
+ m->logerror("[luaengine] %s\n", luaL_checkstring(L, 2));
+ return 0;
+}
+
//-------------------------------------------------
// initialize - initialize lua hookup to emu engine
//-------------------------------------------------
@@ -1421,7 +1437,11 @@ void lua_engine::initialize()
.addFunction ("machine", &machine_manager::machine)
.addFunction ("options", &machine_manager::options)
.endClass ()
- .beginClass <running_machine> ("machine")
+ .beginClass <lua_machine> ("lua_machine")
+ .addCFunction ("popmessage", &lua_machine::l_popmessage)
+ .addCFunction ("logerror", &lua_machine::l_logerror)
+ .endClass ()
+ .deriveClass <running_machine, lua_machine> ("machine")
.addFunction ("exit", &running_machine::schedule_exit)
.addFunction ("hard_reset", &running_machine::schedule_hard_reset)
.addFunction ("soft_reset", &running_machine::schedule_soft_reset)
diff --git a/src/emu/luaengine.h b/src/emu/luaengine.h
index 0ec72f501d5..19c362c66a2 100644
--- a/src/emu/luaengine.h
+++ b/src/emu/luaengine.h
@@ -130,6 +130,10 @@ private:
static UINT64 l_state_get_value(const device_state_entry *d);
static void l_state_set_value(device_state_entry *d, UINT64 v);
static luabridge::LuaRef l_dev_get_memspaces(const device_t *d);
+ struct lua_machine {
+ int l_popmessage(lua_State *L);
+ int l_logerror(lua_State *L);
+ };
struct lua_addr_space {
template<typename T> int l_mem_read(lua_State *L);
template<typename T> int l_mem_write(lua_State *L);