CLuaInstance: Move video functions in separate class

- No api changes, code only
This commit is contained in:
M. Liebmann
2015-12-12 10:21:53 +01:00
parent f52ba5ba4a
commit aff947af92
5 changed files with 90 additions and 27 deletions

View File

@@ -32,10 +32,29 @@
#include <neutrino.h> #include <neutrino.h>
#include "luainstance.h" #include "luainstance.h"
#include "lua_video.h"
extern cVideo * videoDecoder; 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; bool enable = true;
int numargs = lua_gettop(L); int numargs = lua_gettop(L);
@@ -45,26 +64,26 @@ int CLuaInstance::setBlank(lua_State *L)
return 0; return 0;
} }
int CLuaInstance::ShowPicture(lua_State *L) int CLuaInstVideo::ShowPicture_old(lua_State *L)
{ {
const char *fname = luaL_checkstring(L, 2); const char *fname = luaL_checkstring(L, 2);
CFrameBuffer::getInstance()->showFrame(fname); CFrameBuffer::getInstance()->showFrame(fname);
return 0; return 0;
} }
int CLuaInstance::StopPicture(lua_State */*L*/) int CLuaInstVideo::StopPicture_old(lua_State */*L*/)
{ {
CFrameBuffer::getInstance()->stopFrame(); CFrameBuffer::getInstance()->stopFrame();
return 0; 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); int numargs = lua_gettop(L);
if (numargs < 3) { 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; return 0;
} }
@@ -87,7 +106,7 @@ int CLuaInstance::PlayFile(lua_State *L)
info1 = luaL_checkstring(L, 4); info1 = luaL_checkstring(L, 4);
if (numargs > 4) if (numargs > 4)
info2 = luaL_checkstring(L, 5); 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 st(title);
std::string si1(info1); std::string si1(info1);
std::string si2(info2); std::string si2(info2);
@@ -99,7 +118,7 @@ int CLuaInstance::PlayFile(lua_State *L)
return 1; return 1;
} }
int CLuaInstance::zapitStopPlayBack(lua_State *L) int CLuaInstVideo::zapitStopPlayBack_old(lua_State *L)
{ {
bool stop = true; bool stop = true;
int numargs = lua_gettop(L); int numargs = lua_gettop(L);
@@ -114,7 +133,7 @@ int CLuaInstance::zapitStopPlayBack(lua_State *L)
return 0; return 0;
} }
int CLuaInstance::channelRezap(lua_State */*L*/) int CLuaInstVideo::channelRezap_old(lua_State */*L*/)
{ {
CNeutrinoApp::getInstance()->channelRezap(); CNeutrinoApp::getInstance()->channelRezap();
if (CNeutrinoApp::getInstance()->getMode() == CNeutrinoApp::mode_radio) if (CNeutrinoApp::getInstance()->getMode() == CNeutrinoApp::mode_radio)

51
src/gui/lua/lua_video.h Normal file
View File

@@ -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 <http://www.gnu.org/licenses/>.
*/
#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

View File

@@ -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);

View File

@@ -29,7 +29,6 @@
#include <system/settings.h> #include <system/settings.h>
#include <system/set_threadname.h> #include <system/set_threadname.h>
#include <gui/widget/msgbox.h> #include <gui/widget/msgbox.h>
#include <gui/widget/messagebox.h>
#include <gui/widget/keyboard_input.h> #include <gui/widget/keyboard_input.h>
#include <gui/filebrowser.h> #include <gui/filebrowser.h>
#include <gui/movieplayer.h> #include <gui/movieplayer.h>
@@ -41,6 +40,7 @@
#include "luainstance.h" #include "luainstance.h"
#include "lua_configfile.h" #include "lua_configfile.h"
#include "lua_video.h"
static void set_lua_variables(lua_State *L) static void set_lua_variables(lua_State *L)
{ {
@@ -489,13 +489,16 @@ const luaL_Reg CLuaInstance::methods[] =
{ "enableInfoClock", CLuaInstance::enableInfoClock }, { "enableInfoClock", CLuaInstance::enableInfoClock },
{ "getDynFont", CLuaInstance::getDynFont }, { "getDynFont", CLuaInstance::getDynFont },
/* gui/lua/lua_video.cpp*/ /*
{ "setBlank", CLuaInstance::setBlank }, lua_video.cpp
{ "ShowPicture", CLuaInstance::ShowPicture }, Deprecated, for the future separate class for video
{ "StopPicture", CLuaInstance::StopPicture }, */
{ "PlayFile", CLuaInstance::PlayFile }, { "setBlank", CLuaInstVideo::getInstance()->setBlank_old },
{ "zapitStopPlayBack", CLuaInstance::zapitStopPlayBack }, { "ShowPicture", CLuaInstVideo::getInstance()->ShowPicture_old },
{ "channelRezap", CLuaInstance::channelRezap }, { "StopPicture", CLuaInstVideo::getInstance()->StopPicture_old },
{ "PlayFile", CLuaInstVideo::getInstance()->PlayFile_old },
{ "zapitStopPlayBack", CLuaInstVideo::getInstance()->zapitStopPlayBack_old },
{ "channelRezap", CLuaInstVideo::getInstance()->channelRezap_old },
{ NULL, NULL } { NULL, NULL }
}; };

View File

@@ -34,7 +34,6 @@ extern "C" {
#include "luainstance_helpers.h" #include "luainstance_helpers.h"
#define LUA_API_VERSION_MAJOR 1 #define LUA_API_VERSION_MAJOR 1
#define LUA_API_VERSION_MINOR 22 #define LUA_API_VERSION_MINOR 22
@@ -294,8 +293,6 @@ private:
static int enableInfoClock(lua_State *L); static int enableInfoClock(lua_State *L);
static int getDynFont(lua_State *L); static int getDynFont(lua_State *L);
#include "lua_video.inc"
}; };
#endif /* _LUAINSTANCE_H */ #endif /* _LUAINSTANCE_H */