mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-09-11 07:30:57 +02:00
Merge branch 'cst-next' into nmp-cst-next
Origin commit data
------------------
Branch: ni/coolstream
Commit: ad8f7d2400
Author: Michael Liebmann <tuxcode.bbg@gmail.com>
Date: 2016-01-17 (Sun, 17 Jan 2016)
------------------
No further description and justification available within origin commit message!
------------------
This commit was generated by Migit
This commit is contained in:
@@ -4,4 +4,4 @@
|
||||
* to luainstance.h changes
|
||||
*/
|
||||
#define LUA_API_VERSION_MAJOR 1
|
||||
#define LUA_API_VERSION_MINOR 35
|
||||
#define LUA_API_VERSION_MINOR 36
|
||||
|
@@ -27,6 +27,7 @@
|
||||
#include <global.h>
|
||||
#include <system/debug.h>
|
||||
#include <gui/movieplayer.h>
|
||||
#include <gui/widget/messagebox.h>
|
||||
#include <zapit/zapit.h>
|
||||
#include <video.h>
|
||||
#include <neutrino.h>
|
||||
@@ -58,6 +59,7 @@ void CLuaInstVideo::LuaVideoRegister(lua_State *L)
|
||||
{ "ShowPicture", CLuaInstVideo::ShowPicture },
|
||||
{ "StopPicture", CLuaInstVideo::StopPicture },
|
||||
{ "PlayFile", CLuaInstVideo::PlayFile },
|
||||
{ "setInfoFunc", CLuaInstVideo::setInfoFunc },
|
||||
{ "zapitStopPlayBack", CLuaInstVideo::zapitStopPlayBack },
|
||||
{ "channelRezap", CLuaInstVideo::channelRezap },
|
||||
{ "createChannelIDfromUrl", CLuaInstVideo::createChannelIDfromUrl },
|
||||
@@ -170,13 +172,56 @@ int CLuaInstVideo::PlayFile(lua_State *L)
|
||||
std::string si1(info1);
|
||||
std::string si2(info2);
|
||||
std::string sf(fname);
|
||||
if (D != NULL && !D->infoFunc.empty())
|
||||
CMoviePlayerGui::getInstance().setLuaInfoFunc(L, true);
|
||||
CMoviePlayerGui::getInstance().SetFile(st, sf, si1, si2);
|
||||
CMoviePlayerGui::getInstance().exec(NULL, "http_lua");
|
||||
CMoviePlayerGui::getInstance().setLuaInfoFunc(L, false);
|
||||
int ret = CMoviePlayerGui::getInstance().getKeyPressed();
|
||||
lua_pushinteger(L, ret);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int CLuaInstVideo::setInfoFunc(lua_State *L)
|
||||
{
|
||||
CLuaVideo *D = VideoCheckData(L, 1);
|
||||
if (!D) return 0;
|
||||
|
||||
int numargs = lua_gettop(L);
|
||||
if (numargs < 2) {
|
||||
printf("CLuaInstVideo::%s: not enough arguments (%d, expected 1)\n", __func__, numargs-1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
D->infoFunc = luaL_checkstring(L, 2);
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool CLuaInstVideo::execLuaInfoFunc(lua_State *L, int xres, int yres, int aspectRatio, int framerate)
|
||||
{
|
||||
CLuaVideo *D = VideoCheckData(L, 1);
|
||||
if (!D) return false;
|
||||
|
||||
lua_getglobal(L, D->infoFunc.c_str());
|
||||
lua_pushinteger(L, (lua_Integer)xres);
|
||||
lua_pushinteger(L, (lua_Integer)yres);
|
||||
lua_pushinteger(L, (lua_Integer)aspectRatio);
|
||||
lua_pushinteger(L, (lua_Integer)framerate);
|
||||
int status = lua_pcall(L, 4, 0, 0);
|
||||
if (status) {
|
||||
char msg[1024];
|
||||
lua_Debug ar;
|
||||
lua_getstack(L, 1, &ar);
|
||||
lua_getinfo(L, "Sl", &ar);
|
||||
memset(msg, '\0', sizeof(msg));
|
||||
snprintf(msg, sizeof(msg)-1, "[%s:%d] error running function '%s': %s", ar.short_src, ar.currentline, D->infoFunc.c_str(), lua_tostring(L, -1));
|
||||
fprintf(stderr, "[CLuaInstVideo::%s:%d] %s\n", __func__, __LINE__, msg);
|
||||
DisplayErrorMessage(msg);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
int CLuaInstVideo::zapitStopPlayBack(lua_State *L)
|
||||
{
|
||||
/* workaround for deprecated functions */
|
||||
|
@@ -24,7 +24,8 @@ class CLuaVideo
|
||||
{
|
||||
public:
|
||||
bool singlePlay;
|
||||
CLuaVideo() { singlePlay=false; };
|
||||
std::string infoFunc;
|
||||
CLuaVideo() { singlePlay=false; infoFunc=""; };
|
||||
~CLuaVideo() {};
|
||||
};
|
||||
|
||||
@@ -36,6 +37,7 @@ class CLuaInstVideo
|
||||
static CLuaInstVideo* getInstance();
|
||||
static void LuaVideoRegister(lua_State *L);
|
||||
static int channelRezap(lua_State *L);
|
||||
static bool execLuaInfoFunc(lua_State *L, int xres, int yres, int aspectRatio, int framerate);
|
||||
|
||||
/* deprecated functions */
|
||||
static int setBlank_old(lua_State *L);
|
||||
@@ -53,6 +55,7 @@ class CLuaInstVideo
|
||||
static int ShowPicture(lua_State *L);
|
||||
static int StopPicture(lua_State *L);
|
||||
static int PlayFile(lua_State *L);
|
||||
static int setInfoFunc(lua_State *L);
|
||||
static int zapitStopPlayBack(lua_State *L);
|
||||
static int createChannelIDfromUrl(lua_State *L);
|
||||
static int getNeutrinoMode(lua_State *L);
|
||||
|
@@ -45,6 +45,7 @@
|
||||
#include <gui/plugins.h>
|
||||
#include <gui/videosettings.h>
|
||||
#include <gui/streaminfo2.h>
|
||||
#include <gui/lua/lua_video.h>
|
||||
#include <gui/screensaver.h>
|
||||
#include <driver/screenshot.h>
|
||||
#include <driver/volume.h>
|
||||
@@ -206,6 +207,7 @@ void CMoviePlayerGui::Init(void)
|
||||
filelist_it = filelist.end();
|
||||
keyPressed = CMoviePlayerGui::PLUGIN_PLAYSTATE_NORMAL;
|
||||
isLuaPlay = false;
|
||||
haveLuaInfoFunc = false;
|
||||
blockedFromPlugin = false;
|
||||
m_screensaver = false;
|
||||
m_idletime = time(NULL);
|
||||
@@ -337,6 +339,7 @@ int CMoviePlayerGui::exec(CMenuTarget * parent, const std::string & actionKey)
|
||||
isLuaPlay = true;
|
||||
is_file_player = true;
|
||||
PlayFile();
|
||||
haveLuaInfoFunc = false;
|
||||
}
|
||||
else {
|
||||
return menu_return::RETURN_REPAINT;
|
||||
@@ -1758,13 +1761,24 @@ void CMoviePlayerGui::handleMovieBrowser(neutrino_msg_t msg, int /*position*/)
|
||||
cMovieInfo.saveMovieInfo(*p_movie_info); /* save immediately in xml file */
|
||||
}
|
||||
}
|
||||
} else if (msg == NeutrinoMessages::SHOW_EPG && p_movie_info) {
|
||||
} else if (msg == NeutrinoMessages::SHOW_EPG && (p_movie_info || (isLuaPlay && haveLuaInfoFunc))) {
|
||||
CTimeOSD::mode m_mode = FileTime.getMode();
|
||||
bool restore = FileTime.IsVisible();
|
||||
if (restore)
|
||||
FileTime.kill();
|
||||
InfoClock->enableInfoClock(false);
|
||||
|
||||
if (isLuaPlay && haveLuaInfoFunc) {
|
||||
int xres = 0, yres = 0, aspectRatio = 0, framerate = -1;
|
||||
if (!videoDecoder->getBlank()) {
|
||||
videoDecoder->getPictureInfo(xres, yres, framerate);
|
||||
if (yres == 1088)
|
||||
yres = 1080;
|
||||
aspectRatio = videoDecoder->getAspectRatio();
|
||||
}
|
||||
CLuaInstVideo::getInstance()->execLuaInfoFunc(luaState, xres, yres, aspectRatio, framerate);
|
||||
}
|
||||
else if (p_movie_info)
|
||||
cMovieInfo.showMovieInfo(*p_movie_info);
|
||||
|
||||
InfoClock->enableInfoClock(true);
|
||||
|
@@ -53,6 +53,12 @@
|
||||
#include <OpenThreads/Thread>
|
||||
#include <OpenThreads/Condition>
|
||||
|
||||
extern "C" {
|
||||
#include <lua.h>
|
||||
#include <lauxlib.h>
|
||||
#include <lualib.h>
|
||||
}
|
||||
|
||||
class CMoviePlayerGui : public CMenuTarget
|
||||
{
|
||||
public:
|
||||
@@ -91,6 +97,8 @@ class CMoviePlayerGui : public CMenuTarget
|
||||
CMoviePlayerGui::state playstate;
|
||||
int keyPressed;
|
||||
bool isLuaPlay;
|
||||
bool haveLuaInfoFunc;
|
||||
lua_State* luaState;
|
||||
bool blockedFromPlugin;
|
||||
int speed;
|
||||
int startposition;
|
||||
@@ -230,6 +238,7 @@ class CMoviePlayerGui : public CMenuTarget
|
||||
void restoreNeutrino();
|
||||
void setBlockedFromPlugin(bool b) { blockedFromPlugin = b; };
|
||||
bool getBlockedFromPlugin() { return blockedFromPlugin; };
|
||||
void setLuaInfoFunc(lua_State* L, bool func) { luaState = L; haveLuaInfoFunc = func; };
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -111,7 +111,7 @@ void CScreenSaver::Start()
|
||||
|
||||
if(!thrScreenSaver)
|
||||
{
|
||||
//printf("[%s] %s: starting thread\n", __FILE__, __FUNCTION__);
|
||||
//printf("[%s] %s: starting thread\n", __file__, __FUNCTION__);
|
||||
pthread_create(&thrScreenSaver, NULL, ScreenSaverPrg, (void*) this);
|
||||
pthread_detach(thrScreenSaver);
|
||||
}
|
||||
@@ -290,12 +290,12 @@ void CScreenSaver::paint()
|
||||
do {
|
||||
clr.i_color = rand();
|
||||
brightness = (unsigned int)clr.uc_color.r * 19595 + (unsigned int)clr.uc_color.g * 38469 + (unsigned int)clr.uc_color.b * 7471;
|
||||
//printf("[%s] %s: brightness: %d\n", __FILE__, __FUNCTION__, brightness>> 16);
|
||||
//printf("[%s] %s: brightness: %d\n", __file__, __FUNCTION__, brightness>> 16);
|
||||
}
|
||||
while(brightness >> 16 < 80);
|
||||
|
||||
clr.i_color &= 0x00FFFFFF;
|
||||
//printf("[%s] %s: clr.i_color: r %02x g %02x b %02x a %02x\n", __FILE__, __FUNCTION__, clr.uc_color.r, clr.uc_color.g, clr.uc_color.b, clr.uc_color.a);
|
||||
//printf("[%s] %s: clr.i_color: r %02x g %02x b %02x a %02x\n", __file__, __FUNCTION__, clr.uc_color.r, clr.uc_color.g, clr.uc_color.b, clr.uc_color.a);
|
||||
}
|
||||
else
|
||||
clr.i_color = COL_DARK_GRAY;
|
||||
|
Reference in New Issue
Block a user