summaryrefslogtreecommitdiffstats
path: root/src/emu/luaengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/luaengine.cpp')
-rw-r--r--src/emu/luaengine.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/emu/luaengine.cpp b/src/emu/luaengine.cpp
index 331d2b1372e..8e1ddbf8d93 100644
--- a/src/emu/luaengine.cpp
+++ b/src/emu/luaengine.cpp
@@ -2075,6 +2075,49 @@ int lua_engine::lua_machine::l_logerror(lua_State *L)
return 0;
}
+std::string lua_engine::get_print_buffer(lua_State *L)
+{
+ int nargs = lua_gettop(L);
+
+ const std::string sep = " ";
+
+ std::ostringstream ss;
+ bool first = true;
+
+ for (int i = 1; i <= nargs; i++) {
+ const char* c = lua_tostring(L, i);
+ const std::string str = c ? c : "<nil>";
+ if (first) first = false;
+ else ss << sep;
+ ss << str;
+ }
+
+ return ss.str();
+}
+int lua_engine::l_osd_printf_verbose(lua_State *L)
+{
+ osd_printf_verbose("%s\n",get_print_buffer(L).c_str());
+ return 0;
+}
+
+int lua_engine::l_osd_printf_error(lua_State *L)
+{
+ osd_printf_error("%s\n",get_print_buffer(L).c_str());
+ return 0;
+}
+
+int lua_engine::l_osd_printf_info(lua_State *L)
+{
+ osd_printf_info("%s\n",get_print_buffer(L).c_str());
+ return 0;
+}
+
+int lua_engine::l_osd_printf_debug(lua_State *L)
+{
+ osd_printf_debug("%s\n",get_print_buffer(L).c_str());
+ return 0;
+}
+
//-------------------------------------------------
// initialize - initialize lua hookup to emu engine
//-------------------------------------------------
@@ -2106,6 +2149,10 @@ void lua_engine::initialize()
.addCFunction ("register_frame", l_emu_register_frame )
.addCFunction ("register_frame_done", l_emu_register_frame_done )
.addCFunction ("register_menu", l_emu_register_menu )
+ .addCFunction ("print_verbose", l_osd_printf_verbose )
+ .addCFunction ("print_error", l_osd_printf_error )
+ .addCFunction ("print_info", l_osd_printf_info )
+ .addCFunction ("print_debug", l_osd_printf_debug )
.beginClass <machine_manager> ("manager")
.addFunction ("machine", &machine_manager::machine)
.addFunction ("options", &machine_manager::options)