Previous 199869 Revisions Next

r33791 Monday 8th December, 2014 at 11:05:16 UTC by Luca Bruno
luaengine: add emu.app_name()/app_version() methods

This commit adds two methods to LUA interface, allowing scripts to
programatically retrieve current running application name and version.
The idea is to make scripts aware of changes in the API, by
linking it to current version number. Compatibility helpers can then
be added to LUA scripts to keep working across API changes.

Signed-off-by: Luca Bruno <lucab@debian.org>
[src/emu]luaengine.c luaengine.h

trunk/src/emu/luaengine.c
r242302r242303
197197}
198198
199199//-------------------------------------------------
200//  emu_app_name - return application name
201//-------------------------------------------------
202
203int lua_engine::l_emu_app_name(lua_State *L)
204{
205   lua_pushstring(L, emulator_info::get_appname_lower());
206   return 1;
207}
208
209//-------------------------------------------------
210//  emu_app_version - return application version
211//-------------------------------------------------
212
213int lua_engine::l_emu_app_version(lua_State *L)
214{
215   lua_pushstring(L, bare_build_version);
216   return 1;
217}
218
219
220//-------------------------------------------------
200221//  emu_gamename - returns game full name
201222//-------------------------------------------------
202223
r242302r242303
521542{
522543   luabridge::getGlobalNamespace (m_lua_state)
523544      .beginNamespace ("emu")
545         .addCFunction ("app_name",    l_emu_app_name )
546         .addCFunction ("app_version", l_emu_app_version )
524547         .addCFunction ("gamename",    l_emu_gamename )
525548         .addCFunction ("romname",     l_emu_romname )
526549         .addCFunction ("keypost",     l_emu_keypost )
r242302r242303
549572            .addData ("manufacturer", &game_driver::manufacturer)
550573         .endClass ()
551574      .endNamespace ();
575
552576   luabridge::push (m_lua_state, machine_manager::instance());
553577   lua_setglobal(m_lua_state, "manager");
554578}
trunk/src/emu/luaengine.h
r242302r242303
7676
7777   static int l_ioport_write(lua_State *L);
7878   static int l_emu_after(lua_State *L);
79   static int l_emu_app_name(lua_State *L);
80   static int l_emu_app_version(lua_State *L);
7981   static int l_emu_wait(lua_State *L);
8082   static int l_emu_time(lua_State *L);
8183   static int l_emu_gamename(lua_State *L);


Previous 199869 Revisions Next


© 1997-2024 The MAME Team