diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 81571ac83..5b9c45c61 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -681,6 +681,15 @@ flashupdate.selectimage Verfügbare Images/Files flashupdate.settings Update-Einstellungen flashupdate.titlereadflash Flash auslesen flashupdate.titlewriteflash Flash schreiben +flashupdate.type_addon Erweiterung +flashupdate.type_beta Beta +flashupdate.type_internal Intern +flashupdate.type_locale Sprachdatei +flashupdate.type_release Release +flashupdate.type_settings Einstellungen +flashupdate.type_text Text +flashupdate.type_unknown Unbekannt +flashupdate.type_update Aktualisierung flashupdate.update_with_settings_del_skipped Ordner [%s] kann nicht gelöscht werden. Eintrag wird übersprungen. flashupdate.update_with_settings_error Error Flashspeicher!\n \nIm neuen Image sind nur noch %ld KB (von %ld KB) frei,\ndas ist zu wenig, um einen sicheren Betrieb zu gewährleisten.\n \nDer Vorgang wird abgebrochen! flashupdate.update_with_settings_processed Image wird bearbeitet ... diff --git a/data/locale/english.locale b/data/locale/english.locale index 9cec3d22b..d8d2fbe20 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -681,6 +681,15 @@ flashupdate.selectimage Available Images/Files flashupdate.settings Update settings flashupdate.titlereadflash Reading Flash flashupdate.titlewriteflash Writing Flash +flashupdate.type_addon Addon +flashupdate.type_beta Beta +flashupdate.type_internal Internal +flashupdate.type_locale Locale +flashupdate.type_release Release +flashupdate.type_settings Settings +flashupdate.type_text Text +flashupdate.type_unknown Unknown +flashupdate.type_update Update flashupdate.update_with_settings_del_skipped Folder [%s] can not be deleted. Entry is skipped. flashupdate.update_with_settings_error Flash Error!\n \nNew Image only has %ld KB (out of %ld KB) left. Not\nenough space to complete this operation.\n \nCanceling operation! flashupdate.update_with_settings_processed Image is being processed ... diff --git a/data/y-web/Y_Baselib.js b/data/y-web/Y_Baselib.js index 7bd0552e6..e47890961 100644 --- a/data/y-web/Y_Baselib.js +++ b/data/y-web/Y_Baselib.js @@ -412,11 +412,16 @@ function dbox_popup(_msg) { return loadSyncURL("/control/message?popup="+_msg); } -function dbox_set_timer(_channel_id, _start, _stop) +function dbox_set_timer_rec(_channel_id, _start, _stop) { var _url = "/control/timer?action=new&type=5&alarm="+_start+"&stop="+_stop+"&announce="+_start+"&channel_id="+_channel_id+"&rs=1"; return loadSyncURL(_url); } +function dbox_set_timer_zap(_channel_id, _start) +{ + var _url = "/control/timer?action=new&type=3&alarm="+_start+"&channel_id="+_channel_id; + return loadSyncURL(_url); +} function dbox_zapto(_channel_id) { var _url = "/control/zapto?"+_channel_id; diff --git a/data/y-web/Y_EPG.js b/data/y-web/Y_EPG.js index f3d3ebd96..bfaec3e13 100644 --- a/data/y-web/Y_EPG.js +++ b/data/y-web/Y_EPG.js @@ -30,12 +30,11 @@ function epg_plus_calc_dimensions(){ function epg_zapto(){ dbox_zapto($('d_channel_id').innerHTML); } -function epg_set_timer(){ - dbox_set_timer($("d_channel_id").innerHTML, $("d_start").innerHTML, $("d_stop").innerHTML); +function epg_set_timer_rec(){ + dbox_set_timer_rec($("d_channel_id").innerHTML, $("d_start").innerHTML, $("d_stop").innerHTML); } -function set_zapit(){ - var rec = "/control/timer?action=new&type=3&alarm="+$("d_start").innerHTML+"&channel_id="+$("d_channel_id").innerHTML; - var res = loadSyncURL(rec); +function epg_set_timer_zap(){ + dbox_set_timer_zap($("d_channel_id").innerHTML, $("d_start").innerHTML); } function build_epg_clear(){ var ep = $("epg_plus"); diff --git a/data/y-web/Y_EPG_Plus.yhtm b/data/y-web/Y_EPG_Plus.yhtm index 4a4eb7c2e..cf4ef0066 100644 --- a/data/y-web/Y_EPG_Plus.yhtm +++ b/data/y-web/Y_EPG_Plus.yhtm @@ -59,8 +59,8 @@ function epg_imdb(){
- - + + diff --git a/data/y-web/Y_Live_EPG.yhtm b/data/y-web/Y_Live_EPG.yhtm index 8d0dc53f0..efb7e9dbf 100644 --- a/data/y-web/Y_Live_EPG.yhtm +++ b/data/y-web/Y_Live_EPG.yhtm @@ -20,29 +20,27 @@ function sLog_clear() } sLog_line_number = 0; } -function sLog_addRow(_body, _date, _rec, _zapit, _start, _end, _title) +function sLog_addRow(_body, _date, _rec, _zap, _start, _end, _title) { sLog_line_number++; var mycurrent_row = y_add_row_to_table(_body, ((sLog_line_number % 2) ==0)?"a":"b" ); y_add_html_cell_to_row(mycurrent_row, "rec", _rec); - y_add_html_cell_to_row(mycurrent_row, "zap", _zapit); + y_add_html_cell_to_row(mycurrent_row, "zap", _zap); y_add_html_cell_to_row(mycurrent_row, "date", _date); y_add_html_cell_to_row(mycurrent_row, "starttime", _start); y_add_html_cell_to_row(mycurrent_row, "endtime", _end); y_add_html_cell_to_row(mycurrent_row, "epgtitle", _title); } -function set_timer(_channel_id, _start, _stop) +function set_timer_rec(_channel_id, _start, _stop) { - var rec = "/control/timer?action=new&type=5&alarm="+_start+"&stop="+_stop+"&announce="+_start+"&channel_id="+_channel_id+"&rs=1"; - var res = loadSyncURL(rec); - alert("{=L:epg.set_timer=}"); + var res = dbox_set_timer_rec(_channel_id, _start, _stop); + alert("{=L:epg.set_timer_rec=}"); } -function set_zapit(_channel_id, _start) +function set_timer_zap(_channel_id, _start) { - var rec = "/control/timer?action=new&type=3&alarm="+_start+"&channel_id="+_channel_id; - var res = loadSyncURL(rec); - alert("{=L:epg.zap_to=}"); + var res = dbox_set_timer_zap(_channel_id, _start); + alert("{=L:epg.set_timer_zap=}"); } function show_info(_index) { @@ -102,10 +100,10 @@ function _show_epg() var epg_obj= new Array(_desc, _info1, _info2, _start, _start_t, _stop.toString(), "{=channel=}"); epg_data.push(epg_obj); - var _rec = ""; - var _zapit = ""; - var _tit = ""+_desc+""; - sLog_addRow(sLog_body, _date, _rec, _zapit, _start_t, _stop_t, _tit); + var _rec = ""; + var _zap = ""; + var _title = ""+_desc+""; + sLog_addRow(sLog_body, _date, _rec, _zap, _start_t, _stop_t, _title); epg_data_index++; } } diff --git a/data/y-web/Y_Version.txt b/data/y-web/Y_Version.txt index cdf6bc930..df5cf3f7c 100644 --- a/data/y-web/Y_Version.txt +++ b/data/y-web/Y_Version.txt @@ -1,4 +1,4 @@ -version=2.9.0.39 -date=26.08.2016 +version=2.9.0.40 +date=01.03.2017 type=Release info=Port Tuxbox-Neutrino diff --git a/data/y-web/languages/Deutsch b/data/y-web/languages/Deutsch index e726ac538..47bbe3947 100644 --- a/data/y-web/languages/Deutsch +++ b/data/y-web/languages/Deutsch @@ -203,8 +203,8 @@ epg.hover_for_details=Für Details: Maus über die entsprechende Sendung epg.refresh=EPG Daten aktualisieren epg.past_hours=Stunden zurück epg.next_hours=Stunden vor -epg.set_timer=Timer für Aufnahme gesetzt -epg.zap_to=Umschalt-Timer gesetzt +epg.set_timer_rec=Aufnahme-Timer gesetzt +epg.set_timer_zap=Umschalt-Timer gesetzt ========EPG Streaminfo epg.si.streaminfo=Streaminfo diff --git a/data/y-web/languages/English b/data/y-web/languages/English index 8ee0e178d..e3af6cbae 100644 --- a/data/y-web/languages/English +++ b/data/y-web/languages/English @@ -206,8 +206,8 @@ epg.hover_for_details=move to program for more details epg.refresh=get or refresh EPG epg.past_hours=past hours epg.next_hours=next hours -epg.set_timer=Set timer for recording. Done. -epg.zap_to=Set switch to channel. Done. +epg.set_timer_rec=Set timer for recording. Done. +epg.set_timer_zap=Set switch to channel. Done. ========EPG Streaminfo epg.si.streaminfo=Streaminfo diff --git a/data/y-web/languages/Polski b/data/y-web/languages/Polski index 034d3f54a..7588b3cfc 100644 --- a/data/y-web/languages/Polski +++ b/data/y-web/languages/Polski @@ -187,8 +187,8 @@ epg.hover_for_details=Przełącz, aby uzyskać więcej informacji epg.refresh=Aktualizacja EPG epg.past_hours=Poprzednie epg.next_hours=Następne -epg.set_timer=Ustawianie timera -epg.zap_to=Przełączanie kanału +epg.set_timer_rec=Ustawianie timera +epg.set_timer_zap=Przełączanie kanału # ========= EPG Stream Informacje epg.si.streaminfo=Informacje Stream diff --git a/data/y-web/languages/Portuguese b/data/y-web/languages/Portuguese index 1dffab32c..37d51e692 100644 --- a/data/y-web/languages/Portuguese +++ b/data/y-web/languages/Portuguese @@ -191,8 +191,8 @@ epg.hover_for_details=mover para programa para ver detalhes epg.refresh=buscar ou actualizar a EPG epg.past_hours=últimas horas epg.next_hours=próximas horas -epg.set_timer=Ajustar o programador para gravação. Realizado. -epg.zap_to=Coloque o canal para mudar. Realizado. +epg.set_timer_rec=Ajustar o programador para gravação. Realizado. +epg.set_timer_zap=Coloque o canal para mudar. Realizado. ========EPG Streaminfo diff --git a/data/y-web/languages/Slovak b/data/y-web/languages/Slovak index 440ce4ea7..c6ea61153 100644 --- a/data/y-web/languages/Slovak +++ b/data/y-web/languages/Slovak @@ -185,8 +185,8 @@ epg.hover_for_details=Presun ukazovateľa na stanicu pre získanie podrobností epg.refresh=obnovovanie EPG epg.past_hours=predchádzajúce hodiny epg.next_hours=nasledujúce hodiny -epg.set_timer=Nastavenie časovaca. Vykonané. -epg.zap_to=Prepnutie na kanál. Vykonané. +epg.set_timer_rec=Nastavenie časovaca. Vykonané. +epg.set_timer_zap=Prepnutie na kanál. Vykonané. ======= EPG Streaminfo epg.si.streaminfo=Informácie streamu diff --git a/src/gui/infoviewer.cpp b/src/gui/infoviewer.cpp index cf640d883..693f543c4 100644 --- a/src/gui/infoviewer.cpp +++ b/src/gui/infoviewer.cpp @@ -2169,9 +2169,13 @@ void CInfoViewer::killTitle() sigbox->kill(); #endif header->kill(); -#if 0 //not really required to kill clock, header does this +#if 1 //not really required to kill clock, header does this <--- really ???? if (clock) + { clock->kill(); + delete clock; + clock = NULL; + } #endif body->kill(); @@ -2381,7 +2385,10 @@ void CInfoViewer::ResetModules() delete header; header = NULL; delete body; body = NULL; delete infobar_txt; infobar_txt = NULL; - delete clock; clock = NULL; + if (clock) + { + delete clock; clock = NULL; + } delete txt_cur_start; txt_cur_start = NULL; delete txt_cur_event; txt_cur_event = NULL; delete txt_cur_event_rest; txt_cur_event_rest = NULL; diff --git a/src/gui/lua/lua_api_version.h b/src/gui/lua/lua_api_version.h index 6c8b8bc22..55b19f4e0 100644 --- a/src/gui/lua/lua_api_version.h +++ b/src/gui/lua/lua_api_version.h @@ -4,4 +4,4 @@ * to luainstance.h changes */ #define LUA_API_VERSION_MAJOR 1 -#define LUA_API_VERSION_MINOR 69 +#define LUA_API_VERSION_MINOR 70 diff --git a/src/gui/lua/luainstance.cpp b/src/gui/lua/luainstance.cpp index b3aaea15b..8df8c00ec 100644 --- a/src/gui/lua/luainstance.cpp +++ b/src/gui/lua/luainstance.cpp @@ -273,6 +273,19 @@ static void set_lua_variables(lua_State *L) { NULL, 0 } }; + /* offsets, exported as e.g. OFFSET['SHADOW'] */ + table_key offsets[] = + { + { "SHADOW", OFFSET_SHADOW }, + { "INTER", OFFSET_INTER }, + { "INNER_LARGE", OFFSET_INNER_LARGE }, + { "INNER_MID", OFFSET_INNER_MID }, + { "INNER_SMALL", OFFSET_INNER_SMALL }, + { "INNER_MIN", OFFSET_INNER_MIN }, + { "INNER_NONE", OFFSET_INNER_NONE }, + { NULL, 0 } + }; + /* screen offsets, exported as e.g. SCREEN['END_Y'] */ lua_Integer xRes = (lua_Integer)CFrameBuffer::getInstance()->getScreenWidth(true); lua_Integer yRes = (lua_Integer)CFrameBuffer::getInstance()->getScreenHeight(true); @@ -375,6 +388,7 @@ static void set_lua_variables(lua_State *L) { "SCREEN", screenopts }, { "FONT", fontlist }, { "CORNER", corners }, + { "OFFSET", offsets }, { "MENU_RETURN", menureturn }, { "APIVERSION", apiversion }, { "PLAYSTATE", playstate }, diff --git a/src/gui/miscsettings_menu.cpp b/src/gui/miscsettings_menu.cpp index 176629ac6..af84c0213 100644 --- a/src/gui/miscsettings_menu.cpp +++ b/src/gui/miscsettings_menu.cpp @@ -60,7 +60,7 @@ #include -extern CPlugins * g_PluginList; +extern CPlugins * g_Plugins; extern cVideo *videoDecoder; CMiscMenue::CMiscMenue() @@ -99,7 +99,7 @@ int CMiscMenue::exec(CMenuTarget* parent, const std::string &actionKey) { const char *action_str = "plugin"; if(chooserDir(g_settings.plugin_hdd_dir, false, action_str)) - g_PluginList->loadPlugins(); + g_Plugins->loadPlugins(); return menu_return::RETURN_REPAINT; } @@ -111,13 +111,13 @@ int CMiscMenue::exec(CMenuTarget* parent, const std::string &actionKey) MoviePluginSelector.addItem(GenericMenuSeparatorLine); char id[5]; int enabled_count = 0; - for(unsigned int count=0;count < (unsigned int) g_PluginList->getNumberOfPlugins();count++) + for(unsigned int count=0;count < (unsigned int) g_Plugins->getNumberOfPlugins();count++) { - if (!g_PluginList->isHidden(count)) + if (!g_Plugins->isHidden(count)) { sprintf(id, "%d", count); enabled_count++; - MoviePluginSelector.addItem(new CMenuForwarder(g_PluginList->getName(count), true, NULL, new CMoviePluginChangeExec(), id, CRCInput::convertDigitToKey(count))); + MoviePluginSelector.addItem(new CMenuForwarder(g_Plugins->getName(count), true, NULL, new CMoviePluginChangeExec(), id, CRCInput::convertDigitToKey(count))); } } diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index 05fd0b093..fead5c9be 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -1384,7 +1384,7 @@ void CMoviePlayerGui::PlayFileLoop(void) } if (msg == (neutrino_msg_t) g_settings.mpkey_plugin) { - g_PluginList->startPlugin_by_name(g_settings.movieplayer_plugin.c_str ()); + g_Plugins->startPlugin_by_name(g_settings.movieplayer_plugin.c_str ()); } else if (msg == (neutrino_msg_t) g_settings.mpkey_stop) { playstate = CMoviePlayerGui::STOPPED; keyPressed = CMoviePlayerGui::PLUGIN_PLAYSTATE_STOP; diff --git a/src/gui/osdlang_setup.cpp b/src/gui/osdlang_setup.cpp index dbf05ff02..4ac06cf4c 100644 --- a/src/gui/osdlang_setup.cpp +++ b/src/gui/osdlang_setup.cpp @@ -76,7 +76,7 @@ int COsdLangSetup::exec(CMenuTarget* parent, const std::string &actionKey) if (!actionKey.empty()) { g_settings.language = actionKey; - g_PluginList->loadPlugins(); + g_Plugins->loadPlugins(); g_Locale->loadLocale(g_settings.language.c_str()); return menu_return::RETURN_EXIT; } diff --git a/src/gui/personalize.cpp b/src/gui/personalize.cpp index 7461c0b76..0cf748993 100644 --- a/src/gui/personalize.cpp +++ b/src/gui/personalize.cpp @@ -390,7 +390,7 @@ int CPersonalizeGui::ShowPersonalizationMenu() ShowUserMenu(); } CMenuWidget* plMenu = NULL; - int pcount = g_PluginList->getNumberOfPlugins(); + int pcount = g_Plugins->getNumberOfPlugins(); std::string pldesc[pcount]; int pltype[pcount]; if (show_pluginmenu) @@ -418,31 +418,31 @@ int CPersonalizeGui::ShowPersonalizationMenu() if (pltype[i] & CPlugins::P_TYPE_DISABLED) { if (!g_settings.plugins_disabled.empty()) g_settings.plugins_disabled += ","; - g_settings.plugins_disabled += g_PluginList->getFileName(i); - g_PluginList->setType(i, CPlugins::P_TYPE_DISABLED); + g_settings.plugins_disabled += g_Plugins->getFileName(i); + g_Plugins->setType(i, CPlugins::P_TYPE_DISABLED); } else if (pltype[i] & CPlugins::P_TYPE_GAME) { if (!g_settings.plugins_game.empty()) g_settings.plugins_game += ","; - g_settings.plugins_game += g_PluginList->getFileName(i); - g_PluginList->setType(i, CPlugins::P_TYPE_GAME); + g_settings.plugins_game += g_Plugins->getFileName(i); + g_Plugins->setType(i, CPlugins::P_TYPE_GAME); } else if (pltype[i] & CPlugins::P_TYPE_TOOL) { if (!g_settings.plugins_tool.empty()) g_settings.plugins_tool += ","; - g_settings.plugins_tool += g_PluginList->getFileName(i); - g_PluginList->setType(i, CPlugins::P_TYPE_TOOL); + g_settings.plugins_tool += g_Plugins->getFileName(i); + g_Plugins->setType(i, CPlugins::P_TYPE_TOOL); } else if (pltype[i] & CPlugins::P_TYPE_SCRIPT) { if (!g_settings.plugins_script.empty()) g_settings.plugins_script += ","; - g_settings.plugins_script += g_PluginList->getFileName(i); - g_PluginList->setType(i, CPlugins::P_TYPE_SCRIPT); + g_settings.plugins_script += g_Plugins->getFileName(i); + g_Plugins->setType(i, CPlugins::P_TYPE_SCRIPT); } else if (pltype[i] & CPlugins::P_TYPE_LUA) { if (!g_settings.plugins_lua.empty()) g_settings.plugins_lua += ","; - g_settings.plugins_lua += g_PluginList->getFileName(i); - g_PluginList->setType(i, CPlugins::P_TYPE_LUA); + g_settings.plugins_lua += g_Plugins->getFileName(i); + g_Plugins->setType(i, CPlugins::P_TYPE_LUA); } } - g_PluginList->loadPlugins(); + g_Plugins->loadPlugins(); } if (show_usermenu) @@ -571,18 +571,18 @@ void CPersonalizeGui::ShowPluginMenu(CMenuWidget* p_widget, std::string da[], in p_widget->addIntroItems(LOCALE_PERSONALIZE_PLUGINS); uint d_key = 1; - int pcount = g_PluginList->getNumberOfPlugins(); + int pcount = g_Plugins->getNumberOfPlugins(); for (int i = 0; i < pcount; i++) { - ia[i] = g_PluginList->getType(i); - da[i] = g_PluginList->getName(i); + ia[i] = g_Plugins->getType(i); + da[i] = g_Plugins->getName(i); if (da[i].empty()) continue; - std::string pluginDesc = g_PluginList->getDescription(i); + std::string pluginDesc = g_Plugins->getDescription(i); if (!pluginDesc.empty()) da[i] += " (" + pluginDesc + ")"; p_widget->addItem(new CMenuOptionChooser(da[i].c_str(), &ia[i], PERSONALIZE_PLUGINTYPE_OPTIONS, PERSONALIZE_PLUGINTYPE_MAX, - !g_PluginList->isHidden(i), NULL, getShortcut(d_key++))); + !g_Plugins->isHidden(i), NULL, getShortcut(d_key++))); } } diff --git a/src/gui/personalize.h b/src/gui/personalize.h index 2a92f6f2b..7b63cda0a 100644 --- a/src/gui/personalize.h +++ b/src/gui/personalize.h @@ -61,7 +61,7 @@ #include class CPlugins; -extern CPlugins * g_PluginList; /* neutrino.cpp */ +extern CPlugins * g_Plugins; /* neutrino.cpp */ //helper class to enable/disable some items in usermenu setup class CUserMenuNotifier : public CChangeObserver diff --git a/src/gui/pluginlist.cpp b/src/gui/pluginlist.cpp index f44432096..33e743300 100644 --- a/src/gui/pluginlist.cpp +++ b/src/gui/pluginlist.cpp @@ -61,7 +61,7 @@ #include "plugins.h" -extern CPlugins * g_PluginList; /* neutrino.cpp */ +extern CPlugins * g_Plugins; /* neutrino.cpp */ CPluginList::CPluginList(const neutrino_locale_t Title, const uint32_t listtype) { @@ -74,10 +74,10 @@ CPluginList::CPluginList(const neutrino_locale_t Title, const uint32_t listtype) int CPluginList::run() { - g_PluginList->startPlugin(number); - if (!g_PluginList->getScriptOutput().empty()) { + g_Plugins->startPlugin(number); + if (!g_Plugins->getScriptOutput().empty()) { hide(); - ShowMsg(LOCALE_PLUGINS_RESULT, g_PluginList->getScriptOutput(), CMsgBox::mbrBack, CMsgBox::mbBack, NEUTRINO_ICON_SHELL, 320, g_settings.timing[SNeutrinoSettings::TIMING_STATIC_MESSAGES]); + ShowMsg(LOCALE_PLUGINS_RESULT, g_Plugins->getScriptOutput(), CMsgBox::mbrBack, CMsgBox::mbBack, NEUTRINO_ICON_SHELL, 320, g_settings.timing[SNeutrinoSettings::TIMING_STATIC_MESSAGES]); } return menu_return::RETURN_REPAINT; } @@ -108,14 +108,14 @@ int CPluginList::exec(CMenuTarget* parent, const std::string &actionKey) m.setSelected(selected); m.addIntroItems(); - int nop = g_PluginList->getNumberOfPlugins(); + int nop = g_Plugins->getNumberOfPlugins(); for(int count = 0; count < nop; count++) { - if ((g_PluginList->getType(count) & pluginlisttype) && !g_PluginList->isHidden(count) && (g_PluginList->getIntegration(count) == CPlugins::I_TYPE_DISABLED)) { - neutrino_msg_t d_key = g_PluginList->getKey(count); + if ((g_Plugins->getType(count) & pluginlisttype) && !g_Plugins->isHidden(count) && (g_Plugins->getIntegration(count) == CPlugins::I_TYPE_DISABLED)) { + neutrino_msg_t d_key = g_Plugins->getKey(count); keyhelper.get(&key, &dummy, d_key); - CMenuForwarder *f = new CMenuForwarder(std::string(g_PluginList->getName(count)), true, NULL, this, to_string(count).c_str(), key); - f->setHint(g_PluginList->getHintIcon(count), g_PluginList->getDescription(count)); + CMenuForwarder *f = new CMenuForwarder(std::string(g_Plugins->getName(count)), true, NULL, this, to_string(count).c_str(), key); + f->setHint(g_Plugins->getHintIcon(count), g_Plugins->getDescription(count)); m.addItem(f); } } @@ -134,7 +134,7 @@ CPluginChooser::CPluginChooser(const neutrino_locale_t Name, const uint32_t list int CPluginChooser::run() { if (number > -1) - *selectedFilePtr = g_PluginList->getFileName(number); + *selectedFilePtr = g_Plugins->getFileName(number); return menu_return::RETURN_EXIT; } @@ -165,12 +165,12 @@ int CPluginsExec::exec(CMenuTarget* parent, const std::string & actionKey) return menu_return::RETURN_EXIT; } else if (sel >= 0) - g_PluginList->startPlugin(sel); + g_Plugins->startPlugin(sel); - if (!g_PluginList->getScriptOutput().empty()) - ShowMsg(LOCALE_PLUGINS_RESULT, g_PluginList->getScriptOutput(), CMsgBox::mbrBack, CMsgBox::mbBack, NEUTRINO_ICON_SHELL); + if (!g_Plugins->getScriptOutput().empty()) + ShowMsg(LOCALE_PLUGINS_RESULT, g_Plugins->getScriptOutput(), CMsgBox::mbrBack, CMsgBox::mbBack, NEUTRINO_ICON_SHELL); - if (g_PluginList->getIntegration(sel) == CPlugins::I_TYPE_DISABLED) + if (g_Plugins->getIntegration(sel) == CPlugins::I_TYPE_DISABLED) return menu_return::RETURN_EXIT; return menu_return::RETURN_REPAINT; diff --git a/src/gui/plugins.cpp b/src/gui/plugins.cpp index 9f0b5f29e..0f7bdc7e6 100644 --- a/src/gui/plugins.cpp +++ b/src/gui/plugins.cpp @@ -71,7 +71,7 @@ extern cVideo * videoDecoder; #include #include -extern CPlugins * g_PluginList; /* neutrino.cpp */ +extern CPlugins * g_Plugins; /* neutrino.cpp */ extern CRemoteControl * g_RemoteControl; /* neutrino.cpp */ CPlugins::CPlugins() @@ -354,7 +354,7 @@ void CPlugins::startPlugin_by_name(const std::string & name) { for (int i = 0; i < (int) plugin_list.size(); i++) { - if (name.compare(g_PluginList->getName(i)) == 0) + if (name.compare(g_Plugins->getName(i)) == 0) { startPlugin(i); return; diff --git a/src/gui/update.cpp b/src/gui/update.cpp index eeca7c65c..e0ce4cf0a 100644 --- a/src/gui/update.cpp +++ b/src/gui/update.cpp @@ -80,6 +80,8 @@ extern int allow_flash; +//#define DRYRUN + //#define gTmpPath "/var/update/" #define gTmpPath "/tmp/" #define gUserAgent "neutrino/softupdater 1.0" @@ -175,7 +177,7 @@ bool CFlashUpdate::checkOnlineVersion() #ifdef DEBUG printf("[update] url %s version %s (%d) timestamp %s (%ld) md5 %s name %s\n", url.c_str(), version.c_str(), newVer, versionInfo.getDate(), versionInfo.getDateTime(), md5.c_str(), name.c_str()); #endif - if(versionInfo.snapshot < '3' && (newVer > curVer || versionInfo.getDateTime() > curInfo.getDateTime())) { + if(versionInfo.snapshot <= '2' && (newVer > curVer || versionInfo.getDateTime() > curInfo.getDateTime())) { newfound = true; printf("[update] found new image\n"); break; @@ -207,7 +209,7 @@ bool CFlashUpdate::selectHttpImage(void) curVer = curInfo.getVersion(); httpTool.setStatusViewer(this); - showStatusMessageUTF(g_Locale->getText(LOCALE_FLASHUPDATE_GETINFOFILE)); // UTF-8 + showStatusMessageUTF(g_Locale->getText(LOCALE_FLASHUPDATE_GETINFOFILE)); char current[200]; snprintf(current, 200, "%s: %s %s %s %s %s", g_Locale->getText(LOCALE_FLASHUPDATE_CURRENTVERSION_SEP), curInfo.getReleaseCycle(), @@ -239,24 +241,20 @@ bool CFlashUpdate::selectHttpImage(void) if (startpos == std::string::npos) { startpos = 0; - endpos = std::string::npos; - updates_lists.push_back(url.substr(startpos, endpos - startpos)); } else { - //startpos += 2; - //endpos = url.find('/', startpos); startpos = url.find('/', startpos+2)+1; - endpos = std::string::npos; - updates_lists.push_back(url.substr(startpos, endpos - startpos)); } - //updates_lists.push_back(url.substr(startpos, endpos - startpos)); + endpos = std::string::npos; + updates_lists.push_back(url.substr(startpos, endpos - startpos)); SelectionWidget.addItem(new CMenuSeparator(CMenuSeparator::STRING | CMenuSeparator::LINE, updates_lists.rbegin()->c_str())); if (httpTool.downloadFile(url, gTmpPath LIST_OF_UPDATES_LOCAL_FILENAME, 20)) { std::ifstream in(gTmpPath LIST_OF_UPDATES_LOCAL_FILENAME); bool enabled; + CMenuForwarder * mf; while (in >> url >> version >> md5 >> std::ws) { urls.push_back(url); @@ -272,12 +270,11 @@ bool CFlashUpdate::selectHttpImage(void) #ifdef DEBUG printf("[update] url %s version %s (%d) timestamp %s (%ld) md5 %s name %s\n", url.c_str(), version.c_str(), newVer, versionInfo.getDate(), versionInfo.getDateTime(), md5.c_str(), name.c_str()); #endif - if(versionInfo.snapshot < '3' && (newVer > curVer || versionInfo.getDateTime() > curInfo.getDateTime())) + if(versionInfo.snapshot <= '2' && (newVer > curVer || versionInfo.getDateTime() > curInfo.getDateTime())) newfound = 1; - if(!allow_flash && (versionInfo.snapshot < '3')) + if(!allow_flash && (versionInfo.snapshot <= '2')) enabled = false; fileTypes[i] = versionInfo.snapshot; - //std::string description = versionInfo.getType(); std::string description = versionInfo.getReleaseCycle(); description += ' '; description += versionInfo.getType(); @@ -288,9 +285,10 @@ bool CFlashUpdate::selectHttpImage(void) descriptions.push_back(description); /* workaround since CMenuForwarder does not store the Option String itself */ - //SelectionWidget.addItem(new CMenuForwarder(names[i].c_str(), enabled, descriptions[i].c_str(), new CUpdateMenuTarget(i, &selected))); CUpdateMenuTarget * up = new CUpdateMenuTarget(i, &selected); - SelectionWidget.addItem(new CMenuDForwarder(descriptions[i].c_str(), enabled, names[i].c_str(), up)); + mf = new CMenuDForwarder(descriptions[i].c_str(), enabled, names[i].c_str(), up); + //TODO mf->setHint(NEUTRINO_ICON_HINT_SW_UPDATE, ""); + SelectionWidget.addItem(mf); i++; } } @@ -300,7 +298,7 @@ bool CFlashUpdate::selectHttpImage(void) if (urls.empty()) { - ShowMsg(LOCALE_MESSAGEBOX_ERROR, g_Locale->getText(LOCALE_FLASHUPDATE_GETINFOFILEERROR), CMsgBox::mbrOk, CMsgBox::mbOk); // UTF-8 + ShowMsg(LOCALE_MESSAGEBOX_ERROR, LOCALE_FLASHUPDATE_GETINFOFILEERROR, CMsgBox::mbrOk, CMsgBox::mbOk); return false; } if (notify) { @@ -322,7 +320,7 @@ bool CFlashUpdate::selectHttpImage(void) file_md5 = md5s[selected]; fileType = fileTypes[selected]; #ifdef BOXMODEL_CS_HD2 - if(fileType < '3') { + if(fileType <= '2') { int esize = CMTDInfo::getInstance()->getMTDEraseSize(sysfs); printf("[update] erase size is %x\n", esize); if (esize == 0x40000) { @@ -349,11 +347,10 @@ bool CFlashUpdate::getUpdateImage(const std::string & version) else return false; sprintf(dest_name, "%s/%s", g_settings.update_dir.c_str(), fname); - showStatusMessageUTF(std::string(g_Locale->getText(LOCALE_FLASHUPDATE_GETUPDATEFILE)) + ' ' + version); // UTF-8 + showStatusMessageUTF(std::string(g_Locale->getText(LOCALE_FLASHUPDATE_GETUPDATEFILE)) + ' ' + version); printf("get update (url): %s - %s\n", filename.c_str(), dest_name); return httpTool.downloadFile(filename, dest_name, 40 ); - //return httpTool.downloadFile(filename, gTmpPath UPDATE_LOCAL_FILENAME, 40 ); } bool CFlashUpdate::checkVersion4Update() @@ -362,7 +359,7 @@ bool CFlashUpdate::checkVersion4Update() CFlashVersionInfo * versionInfo; neutrino_locale_t msg_body; #ifdef DEBUG -printf("[update] mode is %d\n", softupdate_mode); + printf("[update] mode is %d\n", softupdate_mode); #endif if(softupdate_mode==1) //internet-update { @@ -371,7 +368,7 @@ printf("[update] mode is %d\n", softupdate_mode); showLocalStatus(100); showGlobalStatus(20); - showStatusMessageUTF(g_Locale->getText(LOCALE_FLASHUPDATE_VERSIONCHECK)); // UTF-8 + showStatusMessageUTF(g_Locale->getText(LOCALE_FLASHUPDATE_VERSIONCHECK)); printf("internet version: %s\n", newVersion.c_str()); @@ -384,18 +381,18 @@ printf("[update] mode is %d\n", softupdate_mode); versionInfo = new CFlashVersionInfo(newVersion);//Memory leak: versionInfo sprintf(msg, g_Locale->getText(msg_body), versionInfo->getDate(), versionInfo->getTime(), versionInfo->getReleaseCycle(), versionInfo->getType()); - if(fileType < '3') + if(fileType <= '2') { if ((strncmp(RELEASE_CYCLE, versionInfo->getReleaseCycle(), 2) != 0) && - (ShowMsg(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_FLASHUPDATE_WRONGBASE), CMsgBox::mbrYes, CMsgBox::mbYes | CMsgBox::mbNo, NEUTRINO_ICON_UPDATE) != CMsgBox::mbrYes)) + (ShowMsg(LOCALE_MESSAGEBOX_INFO, LOCALE_FLASHUPDATE_WRONGBASE, CMsgBox::mbrYes, CMsgBox::mbYes | CMsgBox::mbNo, NEUTRINO_ICON_UPDATE) != CMsgBox::mbrYes)) { delete versionInfo; - //ShowHint(LOCALE_MESSAGEBOX_ERROR, g_Locale->getText(LOCALE_FLASHUPDATE_WRONGBASE)); // UTF-8 + //ShowHint(LOCALE_MESSAGEBOX_ERROR, LOCALE_FLASHUPDATE_WRONGBASE); return false; } if ((strcmp("Release", versionInfo->getType()) != 0) && - //(ShowMsg(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_FLASHUPDATE_EXPERIMENTALIMAGE), CMsgBox::mbrYes, CMsgBox::mbYes | CMsgBox::mbNo, NEUTRINO_ICON_UPDATE) != CMsgBox::mbrYes)) // UTF-8 + //(ShowMsg(LOCALE_MESSAGEBOX_INFO, LOCALE_FLASHUPDATE_EXPERIMENTALIMAGE, CMsgBox::mbrYes, CMsgBox::mbYes | CMsgBox::mbNo, NEUTRINO_ICON_UPDATE) != CMsgBox::mbrYes)) (ShowMsg(LOCALE_MESSAGEBOX_INFO, LOCALE_FLASHUPDATE_EXPERIMENTALIMAGE, CMsgBox::mbrYes, CMsgBox::mbYes | CMsgBox::mbNo, NEUTRINO_ICON_UPDATE) != CMsgBox::mbrYes)) { delete versionInfo; @@ -411,7 +408,8 @@ printf("[update] mode is %d\n", softupdate_mode); CFileBrowser UpdatesBrowser; CFileFilter UpdatesFilter; - if(allow_flash) UpdatesFilter.addFilter(FILEBROWSER_UPDATE_FILTER); + if (allow_flash) + UpdatesFilter.addFilter(FILEBROWSER_UPDATE_FILTER); string filters[] = {"bin", "txt", "opk", "ipk"}; for(size_t i=0; igetType() == CFile::FILE_PKG_PACKAGE){ COPKGManager opkg; if (opkg.hasOpkgSupport()){ - int msgres = ShowMsg(LOCALE_MESSAGEBOX_INFO, LOCALE_OPKG_WARNING_3RDPARTY_PACKAGES, CMsgBox::mbrNo, CMsgBox::mbYes | CMsgBox::mbNo, NEUTRINO_ICON_UPDATE, 700); // UTF-8 + int msgres = ShowMsg(LOCALE_MESSAGEBOX_INFO, LOCALE_OPKG_WARNING_3RDPARTY_PACKAGES, CMsgBox::mbrNo, CMsgBox::mbYes | CMsgBox::mbNo, NEUTRINO_ICON_UPDATE, 700); if (msgres == CMsgBox::mbrYes){ if (!opkg.installPackage(UpdatesBrowser.getSelectedFile()->Name)) DisplayErrorMessage(g_Locale->getText(LOCALE_OPKG_FAILURE_INSTALL)); @@ -476,9 +474,8 @@ printf("[update] mode is %d\n", softupdate_mode); } strcpy(msg, g_Locale->getText(LOCALE_FLASHUPDATE_NOVERSION)); -//never read msg_body = LOCALE_FLASHUPDATE_MSGBOX_MANUAL; } - return (ShowMsg(LOCALE_MESSAGEBOX_INFO, msg, CMsgBox::mbrYes, CMsgBox::mbYes | CMsgBox::mbNo, NEUTRINO_ICON_UPDATE) == CMsgBox::mbrYes); // UTF-8 + return (ShowMsg(LOCALE_MESSAGEBOX_INFO, msg, CMsgBox::mbrYes, CMsgBox::mbYes | CMsgBox::mbNo, NEUTRINO_ICON_UPDATE) == CMsgBox::mbrYes); } int CFlashUpdate::exec(CMenuTarget* parent, const std::string &actionKey) @@ -496,13 +493,13 @@ int CFlashUpdate::exec(CMenuTarget* parent, const std::string &actionKey) paint(); if(sysfs.size() < 8) { - ShowHint(LOCALE_MESSAGEBOX_ERROR, g_Locale->getText(LOCALE_FLASHUPDATE_CANTOPENMTD)); + ShowHint(LOCALE_MESSAGEBOX_ERROR, LOCALE_FLASHUPDATE_CANTOPENMTD); hide(); return menu_return::RETURN_REPAINT; } if(!checkVersion4Update()) { hide(); - return menu_ret; //menu_return::RETURN_REPAINT; + return menu_ret; } #ifdef VFD_UPDATE @@ -521,7 +518,7 @@ int CFlashUpdate::exec(CMenuTarget* parent, const std::string &actionKey) if(!getUpdateImage(newVersion)) { hide(); - ShowHint(LOCALE_MESSAGEBOX_ERROR, g_Locale->getText(LOCALE_FLASHUPDATE_GETUPDATEFILEERROR)); // UTF-8 + ShowHint(LOCALE_MESSAGEBOX_ERROR, LOCALE_FLASHUPDATE_GETUPDATEFILEERROR); return menu_return::RETURN_REPAINT; } sprintf(fullname, "%s/%s", g_settings.update_dir.c_str(), fname); @@ -531,18 +528,17 @@ int CFlashUpdate::exec(CMenuTarget* parent, const std::string &actionKey) showGlobalStatus(40); CFlashTool ft; - //ft.setMTDDevice(MTD_DEVICE_OF_UPDATE_PART); ft.setMTDDevice(sysfs); ft.setStatusViewer(this); - showStatusMessageUTF(g_Locale->getText(LOCALE_FLASHUPDATE_MD5CHECK)); // UTF-8 + showStatusMessageUTF(g_Locale->getText(LOCALE_FLASHUPDATE_MD5CHECK)); if((softupdate_mode==1) && !ft.check_md5(filename, file_md5)) { hide(); - ShowHint(LOCALE_MESSAGEBOX_ERROR, g_Locale->getText(LOCALE_FLASHUPDATE_MD5SUMERROR)); // UTF-8 + ShowHint(LOCALE_MESSAGEBOX_ERROR, LOCALE_FLASHUPDATE_MD5SUMERROR); return menu_return::RETURN_REPAINT; } if(softupdate_mode==1) { //internet-update - if ( ShowMsg(LOCALE_MESSAGEBOX_INFO, (fileType < '3') ? LOCALE_FLASHUPDATE_INSTALL_IMAGE : LOCALE_FLASHUPDATE_INSTALL_PACKAGE, CMsgBox::mbrYes, CMsgBox::mbYes | CMsgBox::mbNo, NEUTRINO_ICON_UPDATE) != CMsgBox::mbrYes) // UTF-8 + if ( ShowMsg(LOCALE_MESSAGEBOX_INFO, (fileType <= '2') ? LOCALE_FLASHUPDATE_INSTALL_IMAGE : LOCALE_FLASHUPDATE_INSTALL_PACKAGE, CMsgBox::mbrYes, CMsgBox::mbYes | CMsgBox::mbNo, NEUTRINO_ICON_UPDATE) != CMsgBox::mbrYes) { hide(); return menu_return::RETURN_REPAINT; @@ -554,11 +550,11 @@ int CFlashUpdate::exec(CMenuTarget* parent, const std::string &actionKey) #ifdef DEBUG printf("[update] flash/install filename %s type %c\n", filename.c_str(), fileType); #endif - if(fileType < '3') { + if(fileType <= '2') { //flash it... #ifndef BOXMODEL_CS_HD2 if (g_settings.apply_settings) { - if (ShowMsg(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_FLASHUPDATE_APPLY_SETTINGS), CMsgBox::mbrYes, CMsgBox::mbYes | CMsgBox::mbNo, NEUTRINO_ICON_UPDATE) == CMsgBox::mbrYes) + if (ShowMsg(LOCALE_MESSAGEBOX_INFO, LOCALE_FLASHUPDATE_APPLY_SETTINGS, CMsgBox::mbrYes, CMsgBox::mbYes | CMsgBox::mbNo, NEUTRINO_ICON_UPDATE) == CMsgBox::mbrYes) if (!CExtUpdate::getInstance()->applySettings(filename, CExtUpdate::MODE_SOFTUPDATE)) { hide(); return menu_return::RETURN_REPAINT; @@ -566,21 +562,21 @@ int CFlashUpdate::exec(CMenuTarget* parent, const std::string &actionKey) } #endif -#ifdef DEBUG1 +#ifdef DRYRUN if(1) { #else if(!ft.program(filename, 80, 100)) { #endif hide(); - ShowHint(LOCALE_MESSAGEBOX_ERROR, ft.getErrorMessage().c_str()); // UTF-8 + ShowHint(LOCALE_MESSAGEBOX_ERROR, ft.getErrorMessage().c_str()); return menu_return::RETURN_REPAINT; } //status anzeigen showGlobalStatus(100); - showStatusMessageUTF(g_Locale->getText(LOCALE_FLASHUPDATE_READY)); // UTF-8 + showStatusMessageUTF(g_Locale->getText(LOCALE_FLASHUPDATE_READY)); hide(); - ShowHint(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_FLASHUPDATE_FLASHREADYREBOOT)); // UTF-8 + ShowHint(LOCALE_MESSAGEBOX_INFO, LOCALE_FLASHUPDATE_FLASHREADYREBOOT); sleep(2); ft.reboot(); } @@ -595,30 +591,24 @@ int CFlashUpdate::exec(CMenuTarget* parent, const std::string &actionKey) fread(buffer, (uint32_t)filesize, 1, fd); fclose(fd); buffer[filesize] = 0; - ShowMsg(LOCALE_MESSAGEBOX_INFO, buffer, CMsgBox::mbrBack, CMsgBox::mbBack); // UTF-8 + ShowMsg(LOCALE_MESSAGEBOX_INFO, buffer, CMsgBox::mbrBack, CMsgBox::mbBack); free(buffer); } } else // not image, install { const char install_sh[] = "/bin/install.sh"; -#ifdef DEBUG1 - printf("[update] calling %s %s %s\n",install_sh, g_settings.update_dir.c_str(), filename.c_str() ); -#else printf("[update] calling %s %s %s\n",install_sh, g_settings.update_dir.c_str(), filename.c_str() ); +#ifndef DRYRUN my_system(3, install_sh, g_settings.update_dir.c_str(), filename.c_str()); #endif showGlobalStatus(100); - ShowHint(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_FLASHUPDATE_READY)); // UTF-8 + ShowHint(LOCALE_MESSAGEBOX_INFO, LOCALE_FLASHUPDATE_READY); } hide(); return menu_return::RETURN_REPAINT; } - -//-------------------------------------------------------------------------------------------------------------- - - CFlashExpert::CFlashExpert() :CProgressWindow() { @@ -830,17 +820,17 @@ void CFlashExpert::readmtd(int preadmtd) setTitle(LOCALE_FLASHUPDATE_TITLEREADFLASH); paint(); showGlobalStatus(0); - showStatusMessageUTF((std::string(g_Locale->getText(LOCALE_FLASHUPDATE_ACTIONREADFLASH)) + " (" + mtdInfo->getMTDName(preadmtd) + ')')); // UTF-8 + showStatusMessageUTF((std::string(g_Locale->getText(LOCALE_FLASHUPDATE_ACTIONREADFLASH)) + " (" + mtdInfo->getMTDName(preadmtd) + ')')); CFlashTool ft; ft.setStatusViewer( this ); ft.setMTDDevice(mtdInfo->getMTDFileName(preadmtd)); if(!ft.readFromMTD(filename, 100)) { - showStatusMessageUTF(ft.getErrorMessage()); // UTF-8 + showStatusMessageUTF(ft.getErrorMessage()); sleep(10); } else { showGlobalStatus(100); - showStatusMessageUTF(g_Locale->getText(LOCALE_FLASHUPDATE_READY)); // UTF-8 + showStatusMessageUTF(g_Locale->getText(LOCALE_FLASHUPDATE_READY)); char message[500]; sprintf(message, g_Locale->getText(LOCALE_FLASHUPDATE_SAVESUCCESS), filename.c_str()); sleep(1); @@ -863,7 +853,7 @@ void CFlashExpert::writemtd(const std::string & filename, int mtdNumber) FILESYSTEM_ENCODING_TO_UTF8_STRING(filename).c_str(), CMTDInfo::getInstance()->getMTDName(mtdNumber).c_str()); - if (ShowMsg(LOCALE_MESSAGEBOX_INFO, message, CMsgBox::mbrNo, CMsgBox::mbYes | CMsgBox::mbNo, NEUTRINO_ICON_UPDATE) != CMsgBox::mbrYes) // UTF-8 + if (ShowMsg(LOCALE_MESSAGEBOX_INFO, message, CMsgBox::mbrNo, CMsgBox::mbYes | CMsgBox::mbNo, NEUTRINO_ICON_UPDATE) != CMsgBox::mbrYes) return; #ifdef VFD_UPDATE CVFD::getInstance()->showProgressBar2(0,"checking",0,"Update Neutrino"); @@ -877,14 +867,14 @@ void CFlashExpert::writemtd(const std::string & filename, int mtdNumber) ft.setStatusViewer( this ); ft.setMTDDevice( CMTDInfo::getInstance()->getMTDFileName(mtdNumber) ); if(!ft.program( (std::string)g_settings.update_dir + "/" + filename, 50, 100)) { - showStatusMessageUTF(ft.getErrorMessage()); // UTF-8 + showStatusMessageUTF(ft.getErrorMessage()); sleep(10); } else { showGlobalStatus(100); - showStatusMessageUTF(g_Locale->getText(LOCALE_FLASHUPDATE_READY)); // UTF-8 + showStatusMessageUTF(g_Locale->getText(LOCALE_FLASHUPDATE_READY)); sleep(2); hide(); - ShowHint(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_FLASHUPDATE_FLASHREADYREBOOT)); // UTF-8 + ShowHint(LOCALE_MESSAGEBOX_INFO, LOCALE_FLASHUPDATE_FLASHREADYREBOOT); ft.reboot(); } } diff --git a/src/gui/user_menue.cpp b/src/gui/user_menue.cpp index bd5987f30..a7d77530d 100644 --- a/src/gui/user_menue.cpp +++ b/src/gui/user_menue.cpp @@ -84,7 +84,7 @@ #include extern CRemoteControl * g_RemoteControl; /* neutrino.cpp */ -extern CPlugins * g_PluginList; /* neutrino.cpp */ +extern CPlugins * g_Plugins; /* neutrino.cpp */ extern cVideo * videoDecoder; #if !HAVE_SPARK_HARDWARE extern CCAMMenuHandler * g_CamHandler; @@ -326,33 +326,33 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) } case SNeutrinoSettings::ITEM_PLUGIN_TYPES: { - unsigned int number_of_plugins = (unsigned int) g_PluginList->getNumberOfPlugins(); + unsigned int number_of_plugins = (unsigned int) g_Plugins->getNumberOfPlugins(); if (!number_of_plugins) continue; for (unsigned int count = 0; count < number_of_plugins; count++) { #if 0 - bool show = g_PluginList->getType(count) == CPlugins::P_TYPE_TOOL || - g_PluginList->getType(count) == CPlugins::P_TYPE_LUA; + bool show = g_Plugins->getType(count) == CPlugins::P_TYPE_TOOL || + g_Plugins->getType(count) == CPlugins::P_TYPE_LUA; #endif bool show = false; if (g_settings.personalize[SNeutrinoSettings::P_UMENU_PLUGIN_TYPE_GAMES]) - show = show || g_PluginList->getType(count) == CPlugins::P_TYPE_GAME; + show = show || g_Plugins->getType(count) == CPlugins::P_TYPE_GAME; if (g_settings.personalize[SNeutrinoSettings::P_UMENU_PLUGIN_TYPE_TOOLS]) - show = show || g_PluginList->getType(count) == CPlugins::P_TYPE_TOOL; + show = show || g_Plugins->getType(count) == CPlugins::P_TYPE_TOOL; if (g_settings.personalize[SNeutrinoSettings::P_UMENU_PLUGIN_TYPE_SCRIPTS]) - show = show || g_PluginList->getType(count) == CPlugins::P_TYPE_SCRIPT; + show = show || g_Plugins->getType(count) == CPlugins::P_TYPE_SCRIPT; if (g_settings.personalize[SNeutrinoSettings::P_UMENU_PLUGIN_TYPE_LUA]) - show = show || g_PluginList->getType(count) == CPlugins::P_TYPE_LUA; + show = show || g_Plugins->getType(count) == CPlugins::P_TYPE_LUA; - if (show && !g_PluginList->isHidden(count) && (g_PluginList->getIntegration(count) == CPlugins::I_TYPE_DISABLED)) + if (show && !g_Plugins->isHidden(count) && (g_Plugins->getIntegration(count) == CPlugins::I_TYPE_DISABLED)) { menu_items++; - neutrino_msg_t d_key = g_PluginList->getKey(count); - //printf("[neutrino usermenu] plugin %d, set key %d...\n", count, g_PluginList->getKey(count)); + neutrino_msg_t d_key = g_Plugins->getKey(count); + //printf("[neutrino usermenu] plugin %d, set key %d...\n", count, g_Plugins->getKey(count)); keyhelper.get(&key,&icon, d_key); - menu_item = new CMenuForwarder(g_PluginList->getName(count), true, NULL, CPluginsExec::getInstance(), to_string(count).c_str(), key, icon); - menu_item->setHint(g_PluginList->getHintIcon(count), g_PluginList->getDescription(count)); + menu_item = new CMenuForwarder(g_Plugins->getName(count), true, NULL, CPluginsExec::getInstance(), to_string(count).c_str(), key, icon); + menu_item->setHint(g_Plugins->getHintIcon(count), g_Plugins->getDescription(count)); menu->addItem(menu_item, false); } @@ -393,14 +393,14 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) case SNeutrinoSettings::ITEM_GAMES: { keyhelper.get(&key,&icon); - menu_item = new CMenuDForwarder(LOCALE_MAINMENU_GAMES, g_PluginList->hasPlugin(CPlugins::P_TYPE_GAME), NULL, new CPluginList(LOCALE_MAINMENU_GAMES,CPlugins::P_TYPE_GAME), "-1", key, icon ); + menu_item = new CMenuDForwarder(LOCALE_MAINMENU_GAMES, g_Plugins->hasPlugin(CPlugins::P_TYPE_GAME), NULL, new CPluginList(LOCALE_MAINMENU_GAMES,CPlugins::P_TYPE_GAME), "-1", key, icon ); menu_item->setHint(NEUTRINO_ICON_HINT_GAMES, LOCALE_MENU_HINT_GAMES); break; } case SNeutrinoSettings::ITEM_SCRIPTS: { keyhelper.get(&key,&icon); - menu_item = new CMenuDForwarder(LOCALE_MAINMENU_SCRIPTS, g_PluginList->hasPlugin(CPlugins::P_TYPE_SCRIPT), NULL, new CPluginList(LOCALE_MAINMENU_SCRIPTS,CPlugins::P_TYPE_SCRIPT), "-1", key, icon ); + menu_item = new CMenuDForwarder(LOCALE_MAINMENU_SCRIPTS, g_Plugins->hasPlugin(CPlugins::P_TYPE_SCRIPT), NULL, new CPluginList(LOCALE_MAINMENU_SCRIPTS,CPlugins::P_TYPE_SCRIPT), "-1", key, icon ); menu_item->setHint(NEUTRINO_ICON_HINT_SCRIPTS, LOCALE_MENU_HINT_SCRIPTS); break; } @@ -421,14 +421,14 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) case SNeutrinoSettings::ITEM_TOOLS: { keyhelper.get(&key,&icon); - menu_item = new CMenuDForwarder(LOCALE_MAINMENU_TOOLS, g_PluginList->hasPlugin(CPlugins::P_TYPE_TOOL), NULL, new CPluginList(LOCALE_MAINMENU_TOOLS,CPlugins::P_TYPE_TOOL), "-1", key, icon ); + menu_item = new CMenuDForwarder(LOCALE_MAINMENU_TOOLS, g_Plugins->hasPlugin(CPlugins::P_TYPE_TOOL), NULL, new CPluginList(LOCALE_MAINMENU_TOOLS,CPlugins::P_TYPE_TOOL), "-1", key, icon ); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; } case SNeutrinoSettings::ITEM_LUA: { keyhelper.get(&key,&icon); - menu_item = new CMenuDForwarder(LOCALE_MAINMENU_LUA, g_PluginList->hasPlugin(CPlugins::P_TYPE_LUA), NULL, new CPluginList(LOCALE_MAINMENU_LUA,CPlugins::P_TYPE_LUA), "-1", key, icon ); + menu_item = new CMenuDForwarder(LOCALE_MAINMENU_LUA, g_Plugins->hasPlugin(CPlugins::P_TYPE_LUA), NULL, new CPluginList(LOCALE_MAINMENU_LUA,CPlugins::P_TYPE_LUA), "-1", key, icon ); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; } @@ -485,17 +485,17 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) } case -1: // plugin { - int number_of_plugins = g_PluginList->getNumberOfPlugins(); + int number_of_plugins = g_Plugins->getNumberOfPlugins(); if (!number_of_plugins) continue; int count = 0; for(; count < number_of_plugins; count++) { - const char *pname = g_PluginList->getFileName(count); - if (pname && (std::string(pname) == *it) && !g_PluginList->isHidden(count)) { - neutrino_msg_t d_key = g_PluginList->getKey(count); + const char *pname = g_Plugins->getFileName(count); + if (pname && (std::string(pname) == *it) && !g_Plugins->isHidden(count)) { + neutrino_msg_t d_key = g_Plugins->getKey(count); keyhelper.get(&key,&icon, d_key); - menu_item = new CMenuForwarder(g_PluginList->getName(count), true, NULL, CPluginsExec::getInstance(), to_string(count).c_str(), key, icon); - menu_item->setHint(g_PluginList->getHintIcon(count), g_PluginList->getDescription(count)); + menu_item = new CMenuForwarder(g_Plugins->getName(count), true, NULL, CPluginsExec::getInstance(), to_string(count).c_str(), key, icon); + menu_item->setHint(g_Plugins->getHintIcon(count), g_Plugins->getDescription(count)); break; } } @@ -553,10 +553,10 @@ const char *CUserMenu::getUserMenuButtonName(int button, bool &active, bool retu if(loc != NONEXISTANT_LOCALE || text) return_title = true; else { - int nop = g_PluginList->getNumberOfPlugins(); + int nop = g_Plugins->getNumberOfPlugins(); for(int count = 0; count < nop; count++) { - if (std::string(g_PluginList->getFileName(count)) == *it) { - text = g_PluginList->getName(count); + if (std::string(g_Plugins->getFileName(count)) == *it) { + text = g_Plugins->getName(count); active = true; break; } diff --git a/src/gui/user_menue_setup.cpp b/src/gui/user_menue_setup.cpp index b67a76370..900ad3c75 100644 --- a/src/gui/user_menue_setup.cpp +++ b/src/gui/user_menue_setup.cpp @@ -120,10 +120,10 @@ CUserMenuSetup::CUserMenuSetup(neutrino_locale_t menue_title, int menue_button) vals[keys[loc]] = loc; } - int number_of_plugins = g_PluginList->getNumberOfPlugins(); + int number_of_plugins = g_Plugins->getNumberOfPlugins(); for (int count = 0; count < number_of_plugins; count++) { - const char *loc = g_PluginList->getName(count); - const char *key = g_PluginList->getFileName(count); + const char *loc = g_Plugins->getName(count); + const char *key = g_Plugins->getFileName(count); if (loc && *loc && key && *key) { options.push_back(loc); keys[loc] = key; diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index d859c966b..3ccd2905c 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1029,21 +1029,21 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &) void CMenuWidget::integratePlugins(CPlugins::i_type_t integration, const unsigned int shortcut, bool enabled) { bool separatorline = false; - unsigned int number_of_plugins = (unsigned int) g_PluginList->getNumberOfPlugins(); + unsigned int number_of_plugins = (unsigned int) g_Plugins->getNumberOfPlugins(); unsigned int sc = shortcut; for (unsigned int count = 0; count < number_of_plugins; count++) { - if ((g_PluginList->getIntegration(count) == integration) && !g_PluginList->isHidden(count)) + if ((g_Plugins->getIntegration(count) == integration) && !g_Plugins->isHidden(count)) { if (!separatorline) { addItem(GenericMenuSeparatorLine); separatorline = true; } - printf("[neutrino] integratePlugins: add %s\n", g_PluginList->getName(count)); + printf("[neutrino] integratePlugins: add %s\n", g_Plugins->getName(count)); neutrino_msg_t dk = (shortcut != CRCInput::RC_nokey) ? CRCInput::convertDigitToKey(sc++) : CRCInput::RC_nokey; - CMenuForwarder *fw_plugin = new CMenuForwarder(g_PluginList->getName(count), enabled, NULL, CPluginsExec::getInstance(), to_string(count).c_str(), dk); - fw_plugin->setHint(g_PluginList->getHintIcon(count), g_PluginList->getDescription(count)); + CMenuForwarder *fw_plugin = new CMenuForwarder(g_Plugins->getName(count), enabled, NULL, CPluginsExec::getInstance(), to_string(count).c_str(), dk); + fw_plugin->setHint(g_Plugins->getHintIcon(count), g_Plugins->getDescription(count)); addItem(fw_plugin); } } diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 99eff149b..bfbc41b08 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -202,7 +202,7 @@ CBouquetList * RADIOwebList; CBouquetList * AllFavBouquetList; -CPlugins * g_PluginList; +CPlugins * g_Plugins; CRemoteControl * g_RemoteControl; CPictureViewer * g_PicViewer; CCAMMenuHandler * g_CamHandler; @@ -467,6 +467,8 @@ int CNeutrinoApp::loadSetup(const char * fname) if (timer_remotebox_itemcount) { for (int i = 0; i < timer_remotebox_itemcount; i++) { timer_remotebox_item timer_rb; + timer_rb.online = false; + timer_rb.port = 0; std::string k; k = "timer_remotebox_ip_" + to_string(i); timer_rb.rbaddress = configfile.getString(k, ""); @@ -2288,10 +2290,10 @@ TIMER_START(); #endif CFSMounter::automount(); - g_PluginList = new CPlugins; - g_PluginList->setPluginDir(PLUGINDIR); + g_Plugins = new CPlugins; + g_Plugins->setPluginDir(PLUGINDIR); //load Pluginlist before main menu (only show script menu if at least one script is available - g_PluginList->loadPlugins(); + g_Plugins->loadPlugins(); // setup recording device setupRecordingDevice(); @@ -2467,9 +2469,9 @@ void CNeutrinoApp::RealRun() #ifdef ENABLE_LUA CLuaServer *luaServer = CLuaServer::getInstance(); #endif - g_PluginList->startPlugin("startup"); - if (!g_PluginList->getScriptOutput().empty()) { - ShowMsg(LOCALE_PLUGINS_RESULT, g_PluginList->getScriptOutput(), CMsgBox::mbrBack, CMsgBox::mbBack, NEUTRINO_ICON_SHELL); + g_Plugins->startPlugin("startup"); + if (!g_Plugins->getScriptOutput().empty()) { + ShowMsg(LOCALE_PLUGINS_RESULT, g_Plugins->getScriptOutput(), CMsgBox::mbrBack, CMsgBox::mbBack, NEUTRINO_ICON_SHELL); } g_RCInput->clearRCMsg(); @@ -3605,9 +3607,9 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) } } else if (msg == NeutrinoMessages::EVT_START_PLUGIN) { - g_PluginList->startPlugin((const char *)data); - if (!g_PluginList->getScriptOutput().empty()) { - ShowMsg(LOCALE_PLUGINS_RESULT, g_PluginList->getScriptOutput(), CMsgBox::mbrBack,CMsgBox::mbBack,NEUTRINO_ICON_SHELL); + g_Plugins->startPlugin((const char *)data); + if (!g_Plugins->getScriptOutput().empty()) { + ShowMsg(LOCALE_PLUGINS_RESULT, g_Plugins->getScriptOutput(), CMsgBox::mbrBack,CMsgBox::mbBack,NEUTRINO_ICON_SHELL); } delete[] (unsigned char*) data; @@ -4199,7 +4201,7 @@ int CNeutrinoApp::exec(CMenuTarget* parent, const std::string & actionKey) CHintBox hintBox(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_SERVICEMENU_GETPLUGINS_HINT)); hintBox.paint(); - g_PluginList->loadPlugins(); + g_Plugins->loadPlugins(); hintBox.hide(); } @@ -4357,9 +4359,10 @@ void stop_daemons(bool stopall, bool for_flash) if(!for_flash && !stopall && g_settings.hdmi_cec_mode && g_settings.hdmi_cec_standby){ videoDecoder->SetCECMode((VIDEO_HDMI_CEC_MODE)0); } - - delete InfoClock; - delete FileTimeOSD; + if(InfoClock) + delete InfoClock; + if(FileTimeOSD) + delete FileTimeOSD; delete &CMoviePlayerGui::getInstance(); CZapit::getInstance()->Stop(); @@ -4770,7 +4773,7 @@ void CNeutrinoApp::Cleanup() printf("cleanup 12\n");fflush(stdout); delete g_PicViewer; g_PicViewer = NULL; printf("cleanup 13\n");fflush(stdout); - delete g_PluginList; g_PluginList = NULL; + delete g_Plugins; g_Plugins = NULL; printf("cleanup 16\n");fflush(stdout); delete g_CamHandler; g_CamHandler = NULL; printf("cleanup 17\n");fflush(stdout); diff --git a/src/neutrino_menue.cpp b/src/neutrino_menue.cpp index 158074334..7665c847f 100644 --- a/src/neutrino_menue.cpp +++ b/src/neutrino_menue.cpp @@ -82,7 +82,7 @@ #include "driver/display.h" -extern CPlugins * g_PluginList; +extern CPlugins * g_Plugins; extern CRemoteControl * g_RemoteControl; extern CCAMMenuHandler * g_CamHandler; // extern bool has_hdd; @@ -195,25 +195,25 @@ void CNeutrinoApp::InitMenuMain() CMenuForwarder * mf; if (!g_settings.easymenu) { //games - bool show_games = g_PluginList->hasPlugin(CPlugins::P_TYPE_GAME); + bool show_games = g_Plugins->hasPlugin(CPlugins::P_TYPE_GAME); mf = new CMenuForwarder(LOCALE_MAINMENU_GAMES, show_games, NULL, new CPluginList(LOCALE_MAINMENU_GAMES,CPlugins::P_TYPE_GAME)); mf->setHint(NEUTRINO_ICON_HINT_GAMES, LOCALE_MENU_HINT_GAMES); personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_GAMES]); //tools - bool show_tools = g_PluginList->hasPlugin(CPlugins::P_TYPE_TOOL); + bool show_tools = g_Plugins->hasPlugin(CPlugins::P_TYPE_TOOL); mf = new CMenuForwarder(LOCALE_MAINMENU_TOOLS, show_tools, NULL, new CPluginList(LOCALE_MAINMENU_TOOLS,CPlugins::P_TYPE_TOOL)); mf->setHint(NEUTRINO_ICON_HINT_SCRIPTS, LOCALE_MENU_HINT_TOOLS); personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_TOOLS]); //scripts - bool show_scripts = g_PluginList->hasPlugin(CPlugins::P_TYPE_SCRIPT); + bool show_scripts = g_Plugins->hasPlugin(CPlugins::P_TYPE_SCRIPT); mf = new CMenuForwarder(LOCALE_MAINMENU_SCRIPTS, show_scripts, NULL, new CPluginList(LOCALE_MAINMENU_SCRIPTS,CPlugins::P_TYPE_SCRIPT)); mf->setHint(NEUTRINO_ICON_HINT_SCRIPTS, LOCALE_MENU_HINT_SCRIPTS); personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_SCRIPTS]); //lua - bool show_lua = g_PluginList->hasPlugin(CPlugins::P_TYPE_LUA); + bool show_lua = g_Plugins->hasPlugin(CPlugins::P_TYPE_LUA); mf = new CMenuForwarder(LOCALE_MAINMENU_LUA, show_lua, NULL, new CPluginList(LOCALE_MAINMENU_LUA,CPlugins::P_TYPE_LUA)); mf->setHint(NEUTRINO_ICON_HINT_SCRIPTS, LOCALE_MENU_HINT_LUA); personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_LUA]); diff --git a/src/nhttpd/tuxboxapi/controlapi.cpp b/src/nhttpd/tuxboxapi/controlapi.cpp index 49f9bee1f..6f64faf4c 100644 --- a/src/nhttpd/tuxboxapi/controlapi.cpp +++ b/src/nhttpd/tuxboxapi/controlapi.cpp @@ -56,7 +56,7 @@ extern CPictureViewer *g_PicViewer; extern cVideo * videoDecoder; -extern CPlugins *g_PluginList;//for relodplugins +extern CPlugins *g_Plugins;//for relodplugins extern CBouquetManager *g_bouquetManager; #define EVENTDEV "/dev/input/input0" @@ -2024,7 +2024,7 @@ void CControlAPI::ReloadNeutrinoSetupCGI(CyhookHandler *hh) void CControlAPI::ReloadPluginsCGI(CyhookHandler *hh) { - g_PluginList->loadPlugins(); + g_Plugins->loadPlugins(); hh->SendOk(); } diff --git a/src/system/flashtool.cpp b/src/system/flashtool.cpp index aea8e5125..5c1eb4234 100644 --- a/src/system/flashtool.cpp +++ b/src/system/flashtool.cpp @@ -521,28 +521,26 @@ const char *CFlashVersionInfo::getReleaseCycle(void) const const char *CFlashVersionInfo::getType(void) const { - // TODO: localize it - switch (snapshot) { case '0': - return "Release"; + return g_Locale->getText(LOCALE_FLASHUPDATE_TYPE_RELEASE); case '1': - return "Beta"; + return g_Locale->getText(LOCALE_FLASHUPDATE_TYPE_BETA); case '2': - return "Internal"; + return g_Locale->getText(LOCALE_FLASHUPDATE_TYPE_INTERNAL); case 'L': - return "Locale"; + return g_Locale->getText(LOCALE_FLASHUPDATE_TYPE_LOCALE); case 'S': - return "Settings"; + return g_Locale->getText(LOCALE_FLASHUPDATE_TYPE_SETTINGS); case 'A': - return "Addon"; + return g_Locale->getText(LOCALE_FLASHUPDATE_TYPE_ADDON); case 'U': - return "Update"; + return g_Locale->getText(LOCALE_FLASHUPDATE_TYPE_UPDATE); case 'T': - return "Text"; + return g_Locale->getText(LOCALE_FLASHUPDATE_TYPE_TEXT); default: - return "Unknown"; + return g_Locale->getText(LOCALE_FLASHUPDATE_TYPE_UNKNOWN); } } diff --git a/src/system/locals.h b/src/system/locals.h index 74403d860..b39748482 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -708,6 +708,15 @@ typedef enum LOCALE_FLASHUPDATE_SETTINGS, LOCALE_FLASHUPDATE_TITLEREADFLASH, LOCALE_FLASHUPDATE_TITLEWRITEFLASH, + LOCALE_FLASHUPDATE_TYPE_ADDON, + LOCALE_FLASHUPDATE_TYPE_BETA, + LOCALE_FLASHUPDATE_TYPE_INTERNAL, + LOCALE_FLASHUPDATE_TYPE_LOCALE, + LOCALE_FLASHUPDATE_TYPE_RELEASE, + LOCALE_FLASHUPDATE_TYPE_SETTINGS, + LOCALE_FLASHUPDATE_TYPE_TEXT, + LOCALE_FLASHUPDATE_TYPE_UNKNOWN, + LOCALE_FLASHUPDATE_TYPE_UPDATE, LOCALE_FLASHUPDATE_UPDATE_WITH_SETTINGS_DEL_SKIPPED, LOCALE_FLASHUPDATE_UPDATE_WITH_SETTINGS_ERROR, LOCALE_FLASHUPDATE_UPDATE_WITH_SETTINGS_PROCESSED, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 4c822ed47..b39ca2c98 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -708,6 +708,15 @@ const char * locale_real_names[] = "flashupdate.settings", "flashupdate.titlereadflash", "flashupdate.titlewriteflash", + "flashupdate.type_addon", + "flashupdate.type_beta", + "flashupdate.type_internal", + "flashupdate.type_locale", + "flashupdate.type_release", + "flashupdate.type_settings", + "flashupdate.type_text", + "flashupdate.type_unknown", + "flashupdate.type_update", "flashupdate.update_with_settings_del_skipped", "flashupdate.update_with_settings_error", "flashupdate.update_with_settings_processed", diff --git a/src/system/setting_helpers.cpp b/src/system/setting_helpers.cpp index d14bae874..f53bce83e 100644 --- a/src/system/setting_helpers.cpp +++ b/src/system/setting_helpers.cpp @@ -75,7 +75,7 @@ #include #include -extern CPlugins * g_PluginList; /* neutrino.cpp */ +extern CPlugins * g_Plugins; /* neutrino.cpp */ extern CRemoteControl * g_RemoteControl; /* neutrino.cpp */ extern cVideo *videoDecoder; extern cAudio *audioDecoder; @@ -391,7 +391,7 @@ int CMoviePluginChangeExec::exec(CMenuTarget* parent, const std::string & action { int sel = atoi(actionKey.c_str()); if (sel >= 0) - g_settings.movieplayer_plugin = g_PluginList->getName(sel); + g_settings.movieplayer_plugin = g_Plugins->getName(sel); } return menu_return::RETURN_EXIT;