mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-08-27 15:32:52 +02:00
plugins: allow to control menu_return value
Origin commit data
------------------
Branch: ni/coolstream
Commit: 8b38584ac1
Author: vanhofen <vanhofen@gmx.de>
Date: 2021-02-28 (Sun, 28 Feb 2021)
Origin message was:
------------------
- plugins: allow to control menu_return value
------------------
No further description and justification available within origin commit message!
------------------
This commit was generated by Migit
This commit is contained in:
@@ -193,6 +193,7 @@ bool CPlugins::parseCfg(plugin *plugin_data)
|
||||
plugin_data->description = "";
|
||||
plugin_data->shellwindow = false;
|
||||
plugin_data->hide = false;
|
||||
plugin_data->menu_return = menu_return::RETURN_REPAINT;
|
||||
plugin_data->type = CPlugins::P_TYPE_DISABLED;
|
||||
plugin_data->integration = PLUGIN_INTEGRATION_DISABLED;
|
||||
plugin_data->hinticon = NEUTRINO_ICON_HINT_PLUGIN;
|
||||
@@ -260,6 +261,17 @@ bool CPlugins::parseCfg(plugin *plugin_data)
|
||||
{
|
||||
plugin_data->hide = atoi(parm);
|
||||
}
|
||||
else if (cmd == "menu_return")
|
||||
{
|
||||
if (parm == "none")
|
||||
plugin_data->menu_return = menu_return::RETURN_NONE;
|
||||
else if (parm == "exit")
|
||||
plugin_data->menu_return = menu_return::RETURN_EXIT;
|
||||
else if (parm == "exit_all")
|
||||
plugin_data->menu_return = menu_return::RETURN_EXIT_ALL;
|
||||
else // (parm == "repaint")
|
||||
plugin_data->menu_return = menu_return::RETURN_REPAINT;
|
||||
}
|
||||
else if (cmd == "needenigma")
|
||||
{
|
||||
reject = atoi(parm);
|
||||
@@ -284,28 +296,29 @@ bool CPlugins::parseCfg(plugin *plugin_data)
|
||||
return !reject;
|
||||
}
|
||||
|
||||
void CPlugins::startPlugin_by_name(const std::string & name)
|
||||
int CPlugins::startPlugin_by_name(const std::string & name)
|
||||
{
|
||||
for (int i = 0; i < (int) plugin_list.size(); i++)
|
||||
{
|
||||
if (name.compare(g_Plugins->getName(i)) == 0)
|
||||
{
|
||||
startPlugin(i);
|
||||
return;
|
||||
return startPlugin(i);
|
||||
}
|
||||
}
|
||||
return menu_return::RETURN_REPAINT;
|
||||
}
|
||||
|
||||
void CPlugins::startPlugin(const char * const filename)
|
||||
int CPlugins::startPlugin(const char * const filename)
|
||||
{
|
||||
int pluginnr = find_plugin(filename);
|
||||
if (pluginnr > -1)
|
||||
startPlugin(pluginnr);
|
||||
return startPlugin(pluginnr);
|
||||
else
|
||||
printf("[CPlugins] could not find %s\n", filename);
|
||||
return menu_return::RETURN_REPAINT;
|
||||
}
|
||||
|
||||
void CPlugins::popenScriptPlugin(const char * script)
|
||||
int CPlugins::popenScriptPlugin(int number, const char * script)
|
||||
{
|
||||
pid_t pid = 0;
|
||||
FILE *f = my_popen(pid, script, "r");
|
||||
@@ -324,9 +337,11 @@ void CPlugins::popenScriptPlugin(const char * script)
|
||||
}
|
||||
else
|
||||
printf("[CPlugins] can't execute %s\n",script);
|
||||
|
||||
return plugin_list[number].menu_return;
|
||||
}
|
||||
|
||||
void CPlugins::startScriptPlugin(int number)
|
||||
int CPlugins::startScriptPlugin(int number)
|
||||
{
|
||||
const char *script = plugin_list[number].pluginfile.c_str();
|
||||
printf("[CPlugins] executing script %s\n",script);
|
||||
@@ -334,7 +349,7 @@ void CPlugins::startScriptPlugin(int number)
|
||||
{
|
||||
printf("[CPlugins] could not find %s,\nperhaps wrong plugin type in %s\n",
|
||||
script, plugin_list[number].cfgfile.c_str());
|
||||
return;
|
||||
return menu_return::RETURN_REPAINT;
|
||||
}
|
||||
|
||||
// workaround for manually messed up permissions
|
||||
@@ -347,10 +362,12 @@ void CPlugins::startScriptPlugin(int number)
|
||||
scriptOutput = "";
|
||||
}
|
||||
else
|
||||
popenScriptPlugin(script);
|
||||
return popenScriptPlugin(number, script);
|
||||
|
||||
return plugin_list[number].menu_return;
|
||||
}
|
||||
|
||||
void CPlugins::startLuaPlugin(int number)
|
||||
int CPlugins::startLuaPlugin(int number)
|
||||
{
|
||||
const char *script = plugin_list[number].pluginfile.c_str();
|
||||
printf("[CPlugins] executing lua script %s\n",script);
|
||||
@@ -358,10 +375,11 @@ void CPlugins::startLuaPlugin(int number)
|
||||
{
|
||||
printf("[CPlugins] could not find %s,\nperhaps wrong plugin type in %s\n",
|
||||
script, plugin_list[number].cfgfile.c_str());
|
||||
return;
|
||||
return menu_return::RETURN_REPAINT;
|
||||
}
|
||||
#ifdef ENABLE_LUA
|
||||
CLuaInstance *lua = new CLuaInstance();
|
||||
// FIXME: runScript() should return the exit-code from script
|
||||
lua->runScript(script);
|
||||
delete lua;
|
||||
#endif
|
||||
@@ -370,9 +388,11 @@ void CPlugins::startLuaPlugin(int number)
|
||||
#endif
|
||||
videoDecoder->Pig(-1, -1, -1, -1);
|
||||
frameBuffer->paintBackground();
|
||||
|
||||
return plugin_list[number].menu_return;
|
||||
}
|
||||
|
||||
void CPlugins::startPlugin(int number)
|
||||
int CPlugins::startPlugin(int number)
|
||||
{
|
||||
// always delete old output
|
||||
delScriptOutput();
|
||||
@@ -390,22 +410,21 @@ void CPlugins::startPlugin(int number)
|
||||
bool ispip = strstr(plugin_list[number].pluginfile.c_str(), "pip") != 0;
|
||||
//printf("exec: %s pip: %d\n", plugin_list[number].pluginfile.c_str(), ispip);
|
||||
if (ispip && !g_RemoteControl->is_video_started)
|
||||
return;
|
||||
return menu_return::RETURN_REPAINT;
|
||||
|
||||
if (plugin_list[number].type == CPlugins::P_TYPE_SCRIPT)
|
||||
{
|
||||
startScriptPlugin(number);
|
||||
return;
|
||||
return startScriptPlugin(number);
|
||||
}
|
||||
if (plugin_list[number].type == CPlugins::P_TYPE_LUA)
|
||||
{
|
||||
startLuaPlugin(number);
|
||||
return;
|
||||
return startLuaPlugin(number);
|
||||
}
|
||||
if (!file_exists(plugin_list[number].pluginfile.c_str()))
|
||||
{
|
||||
printf("[CPlugins] could not find %s,\nperhaps wrong plugin type in %s\n",
|
||||
plugin_list[number].pluginfile.c_str(), plugin_list[number].cfgfile.c_str());
|
||||
return;
|
||||
return menu_return::RETURN_REPAINT;
|
||||
}
|
||||
|
||||
g_RCInput->clearRCMsg();
|
||||
@@ -429,6 +448,8 @@ void CPlugins::startPlugin(int number)
|
||||
frameBuffer->paintBackground();
|
||||
g_RCInput->restartInput();
|
||||
g_RCInput->clearRCMsg();
|
||||
|
||||
return plugin_list[number].menu_return;
|
||||
}
|
||||
|
||||
bool CPlugins::hasPlugin(CPlugins::p_type_t type)
|
||||
|
Reference in New Issue
Block a user