diff --git a/src/gui/lua/lua_video.cpp b/src/gui/lua/lua_video.cpp index b1736833d..0503fa325 100644 --- a/src/gui/lua/lua_video.cpp +++ b/src/gui/lua/lua_video.cpp @@ -32,10 +32,29 @@ #include #include "luainstance.h" +#include "lua_video.h" extern cVideo * videoDecoder; -int CLuaInstance::setBlank(lua_State *L) +CLuaInstVideo* CLuaInstVideo::getInstance() +{ + static CLuaInstVideo* LuaInstVideo = NULL; + + if(!LuaInstVideo) + LuaInstVideo = new CLuaInstVideo(); + return LuaInstVideo; +} + +CLuaData *CLuaInstVideo::CheckData(lua_State *L, int narg) +{ + luaL_checktype(L, narg, LUA_TUSERDATA); + void *ud = luaL_checkudata(L, narg, LUA_CLASSNAME); + if (!ud) + fprintf(stderr, "[CLuaInstVideo::%s] wrong type %p, %d, %s\n", __func__, L, narg, LUA_CLASSNAME); + return *(CLuaData **)ud; // unbox pointer +} + +int CLuaInstVideo::setBlank_old(lua_State *L) { bool enable = true; int numargs = lua_gettop(L); @@ -45,26 +64,26 @@ int CLuaInstance::setBlank(lua_State *L) return 0; } -int CLuaInstance::ShowPicture(lua_State *L) +int CLuaInstVideo::ShowPicture_old(lua_State *L) { const char *fname = luaL_checkstring(L, 2); CFrameBuffer::getInstance()->showFrame(fname); return 0; } -int CLuaInstance::StopPicture(lua_State */*L*/) +int CLuaInstVideo::StopPicture_old(lua_State */*L*/) { CFrameBuffer::getInstance()->stopFrame(); return 0; } -int CLuaInstance::PlayFile(lua_State *L) +int CLuaInstVideo::PlayFile_old(lua_State *L) { - printf("CLuaInstance::%s %d\n", __func__, lua_gettop(L)); + printf("CLuaInstVideo::%s %d\n", __func__, lua_gettop(L)); int numargs = lua_gettop(L); if (numargs < 3) { - printf("CLuaInstance::%s: not enough arguments (%d, expected 3)\n", __func__, numargs); + printf("CLuaInstVideo::%s: not enough arguments (%d, expected 3)\n", __func__, numargs); return 0; } @@ -87,7 +106,7 @@ int CLuaInstance::PlayFile(lua_State *L) info1 = luaL_checkstring(L, 4); if (numargs > 4) info2 = luaL_checkstring(L, 5); - printf("CLuaInstance::%s: title %s file %s\n", __func__, title, fname); + printf("CLuaInstVideo::%s: title %s file %s\n", __func__, title, fname); std::string st(title); std::string si1(info1); std::string si2(info2); @@ -99,7 +118,7 @@ int CLuaInstance::PlayFile(lua_State *L) return 1; } -int CLuaInstance::zapitStopPlayBack(lua_State *L) +int CLuaInstVideo::zapitStopPlayBack_old(lua_State *L) { bool stop = true; int numargs = lua_gettop(L); @@ -114,7 +133,7 @@ int CLuaInstance::zapitStopPlayBack(lua_State *L) return 0; } -int CLuaInstance::channelRezap(lua_State */*L*/) +int CLuaInstVideo::channelRezap_old(lua_State */*L*/) { CNeutrinoApp::getInstance()->channelRezap(); if (CNeutrinoApp::getInstance()->getMode() == CNeutrinoApp::mode_radio) diff --git a/src/gui/lua/lua_video.h b/src/gui/lua/lua_video.h new file mode 100644 index 000000000..07904cddd --- /dev/null +++ b/src/gui/lua/lua_video.h @@ -0,0 +1,51 @@ +/* + * lua video functions + * + * (C) 2014 [CST ]Focus + * (C) 2014-2015 M. Liebmann (micha-bbg) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef _LUAVIDEO_H +#define _LUAVIDEO_H + +/* +class CLuaVideo +{ + public: + CLuaVideo() {}; + ~CLuaVideo() {}; +}; +*/ + +class CLuaInstVideo +{ + static CLuaData *CheckData(lua_State *L, int narg); + public: + CLuaInstVideo() {}; + ~CLuaInstVideo() {}; + static CLuaInstVideo* getInstance(); +// static void LuaVideoRegister(lua_State *L); + + static int setBlank_old(lua_State *L); + static int ShowPicture_old(lua_State *L); + static int StopPicture_old(lua_State *L); + static int PlayFile_old(lua_State *L); + static int zapitStopPlayBack_old(lua_State *L); + static int channelRezap_old(lua_State *L); + +// private: +}; + +#endif //_LUAVIDEO_H diff --git a/src/gui/lua/lua_video.inc b/src/gui/lua/lua_video.inc deleted file mode 100644 index 5f70d2171..000000000 --- a/src/gui/lua/lua_video.inc +++ /dev/null @@ -1,7 +0,0 @@ - -static int setBlank(lua_State *L); -static int ShowPicture(lua_State *L); -static int StopPicture(lua_State *L); -static int PlayFile(lua_State *L); -static int zapitStopPlayBack(lua_State *L); -static int channelRezap(lua_State *L); diff --git a/src/gui/lua/luainstance.cpp b/src/gui/lua/luainstance.cpp index 6cdd59655..22ac38fb9 100644 --- a/src/gui/lua/luainstance.cpp +++ b/src/gui/lua/luainstance.cpp @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include @@ -41,6 +40,7 @@ #include "luainstance.h" #include "lua_configfile.h" +#include "lua_video.h" static void set_lua_variables(lua_State *L) { @@ -489,13 +489,16 @@ const luaL_Reg CLuaInstance::methods[] = { "enableInfoClock", CLuaInstance::enableInfoClock }, { "getDynFont", CLuaInstance::getDynFont }, - /* gui/lua/lua_video.cpp*/ - { "setBlank", CLuaInstance::setBlank }, - { "ShowPicture", CLuaInstance::ShowPicture }, - { "StopPicture", CLuaInstance::StopPicture }, - { "PlayFile", CLuaInstance::PlayFile }, - { "zapitStopPlayBack", CLuaInstance::zapitStopPlayBack }, - { "channelRezap", CLuaInstance::channelRezap }, + /* + lua_video.cpp + Deprecated, for the future separate class for video + */ + { "setBlank", CLuaInstVideo::getInstance()->setBlank_old }, + { "ShowPicture", CLuaInstVideo::getInstance()->ShowPicture_old }, + { "StopPicture", CLuaInstVideo::getInstance()->StopPicture_old }, + { "PlayFile", CLuaInstVideo::getInstance()->PlayFile_old }, + { "zapitStopPlayBack", CLuaInstVideo::getInstance()->zapitStopPlayBack_old }, + { "channelRezap", CLuaInstVideo::getInstance()->channelRezap_old }, { NULL, NULL } }; diff --git a/src/gui/lua/luainstance.h b/src/gui/lua/luainstance.h index 802ea873d..a0c7cbc16 100644 --- a/src/gui/lua/luainstance.h +++ b/src/gui/lua/luainstance.h @@ -34,7 +34,6 @@ extern "C" { #include "luainstance_helpers.h" - #define LUA_API_VERSION_MAJOR 1 #define LUA_API_VERSION_MINOR 22 @@ -294,8 +293,6 @@ private: static int enableInfoClock(lua_State *L); static int getDynFont(lua_State *L); -#include "lua_video.inc" - }; #endif /* _LUAINSTANCE_H */