diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 7dabc621f..bfcc447e1 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -682,6 +682,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 036cfaa2a..511f64b94 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -682,6 +682,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/audioplayer.cpp b/src/gui/audioplayer.cpp index 26c1dcd93..2fd1d1904 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -1602,7 +1602,7 @@ void CAudioPlayerGui::paintFoot() if (m_screensaver) return; - const struct button_label ScondLineButtons[3] = + const struct button_label SecondLineButtons[3] = { { NEUTRINO_ICON_BUTTON_OKAY , LOCALE_AUDIOPLAYER_PLAY }, { NEUTRINO_ICON_BUTTON_HELP , LOCALE_AUDIOPLAYER_KEYLEVEL }, @@ -1621,7 +1621,7 @@ void CAudioPlayerGui::paintFoot() int bwidth = m_width - (2*c_rad_mid); if (!m_playlist.empty()) - ::paintButtons(m_x + c_rad_mid, top+m_buttonHeight, bwidth, 3, ScondLineButtons, bwidth, m_buttonHeight); + ::paintButtons(m_x + c_rad_mid, top+m_buttonHeight, bwidth, 3, SecondLineButtons, bwidth, m_buttonHeight); if (m_key_level == 0) { diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 67285130d..4519cd1b7 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -2091,7 +2091,7 @@ void CChannelList::paintItem(int pos, const bool firstpaint) pb.paint(); } //name - g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x+ 5+ numwidth+ 10+prg_offset, ypos+ fheight, width- numwidth- 40- 15-prg_offset, nameAndDescription, color); + g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x + OFFSET_INNER_SMALL + numwidth + OFFSET_INNER_MID + prg_offset, ypos + fheight, width - numwidth - 4*OFFSET_INNER_MID - 15 - prg_offset, nameAndDescription, color); } if (!firstpaint && curr == selected) updateVfd(); diff --git a/src/gui/components/cc_frm_scrollbar.cpp b/src/gui/components/cc_frm_scrollbar.cpp index 529d0102a..2fcfd737c 100644 --- a/src/gui/components/cc_frm_scrollbar.cpp +++ b/src/gui/components/cc_frm_scrollbar.cpp @@ -165,9 +165,6 @@ void CComponentsScrollBar::initSegments() y_seg += h_seg + append_y_offset; int id = sb_segments_obj->getCCItemId(item); - if (sb_mark_id > id){ - dprintf(DEBUG_NORMAL, "[CComponentsScrollBar] %s: sb_mark_id out of range current=%d allowed=%d\n", __func__, sb_mark_id, id); - } //set color for marked id if (sb_mark_id == id){ diff --git a/src/gui/followscreenings.cpp b/src/gui/followscreenings.cpp index b14a00bb5..2ee471fd6 100644 --- a/src/gui/followscreenings.cpp +++ b/src/gui/followscreenings.cpp @@ -145,14 +145,20 @@ void CFollowScreenings::updateRightIcon(int ix, time_t start, unsigned int durat void CFollowScreenings::show() { + if (channel_id == 0) + return; + char actionstr[32]; getFollowScreenings(); - if (followlist.size() == 1) { + if (followlist.size() == 1) + { snprintf(actionstr, sizeof(actionstr), "%lu", followlist.front().startTime); exec(NULL, actionstr); - } else { + } + else if (followlist.size() > 1) + { CMenuWidget m(LOCALE_EPGVIEWER_SELECT_SCREENING, NEUTRINO_ICON_SETTINGS); const char *icon = NEUTRINO_ICON_BUTTON_RED; neutrino_msg_t directKey = CRCInput::RC_red; @@ -177,4 +183,3 @@ void CFollowScreenings::show() m.exec(NULL, ""); } } - diff --git a/src/gui/imageinfo.cpp b/src/gui/imageinfo.cpp index 15dd92544..8dd342ed8 100644 --- a/src/gui/imageinfo.cpp +++ b/src/gui/imageinfo.cpp @@ -49,7 +49,6 @@ #include #define VERSION_FILE TARGET_PREFIX "/.version" -#define Y_VERSION_FILE DATADIR "/neutrino/httpd/Y_Version.txt" using namespace std; @@ -310,7 +309,7 @@ void CImageInfo::InitInfoData() s_api += ", "; #endif s_api += "yWeb "; - s_api += getYApi(); + s_api += getYWebVersion(); s_api += ", "; s_api += HTTPD_NAME; s_api += + " "; @@ -462,12 +461,9 @@ void CImageInfo::hide() } } -string CImageInfo::getYApi() +string CImageInfo::getYWebVersion() { - string ret; - config.loadConfig(Y_VERSION_FILE); - ret = config.getString("version", "n/a"); - config.loadConfig(VERSION_FILE); - return ret; + CConfigFile yV('=', false); + yV.loadConfig(PRIVATE_HTTPDDIR "/Y_Version.txt"); + return yV.getString("version", "n/a"); } - diff --git a/src/gui/imageinfo.h b/src/gui/imageinfo.h index 9d6e399f8..0449b7591 100644 --- a/src/gui/imageinfo.h +++ b/src/gui/imageinfo.h @@ -63,7 +63,7 @@ class CImageInfo : public CMenuTarget std::string getLicenseText(); void ShowWindow(); void ScrollLic(bool scrollDown); - std::string getYApi(); + std::string getYWebVersion(); CComponentsWindowMax *cc_win; CComponentsForm *cc_info; diff --git a/src/gui/infoviewer.cpp b/src/gui/infoviewer.cpp index 30847237f..c590b849c 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(); @@ -2425,7 +2429,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/keybind_setup.cpp b/src/gui/keybind_setup.cpp index 7ff9bcaa1..fe7381552 100644 --- a/src/gui/keybind_setup.cpp +++ b/src/gui/keybind_setup.cpp @@ -305,7 +305,7 @@ int CKeybindSetup::showKeySetup() #endif cc = new CMenuOptionNumberChooser(LOCALE_KEYBINDINGMENU_REPEATBLOCK, - &g_settings.repeat_blocker, true, 0, 999, NULL, + &g_settings.repeat_blocker, true, 0, 999, this, CRCInput::convertDigitToKey(shortcut++), NULL, 0, 0, LOCALE_OPTIONS_OFF); cc->setNumberFormat(ms_number_format); cc->setNumericInput(true); @@ -313,7 +313,7 @@ int CKeybindSetup::showKeySetup() keySettings->addItem(cc); cc = new CMenuOptionNumberChooser(LOCALE_KEYBINDINGMENU_REPEATBLOCKGENERIC, - &g_settings.repeat_genericblocker, true, 0, 999, NULL, + &g_settings.repeat_genericblocker, true, 0, 999, this, CRCInput::convertDigitToKey(shortcut++), NULL, 0, 0, LOCALE_OPTIONS_OFF); cc->setNumberFormat(ms_number_format); cc->setNumericInput(true); diff --git a/src/gui/lua/lua_api_version.h b/src/gui/lua/lua_api_version.h index 54fa105fa..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 68 +#define LUA_API_VERSION_MINOR 70 diff --git a/src/gui/lua/lua_cc_window.cpp b/src/gui/lua/lua_cc_window.cpp index 7dc5e77bd..494487614 100644 --- a/src/gui/lua/lua_cc_window.cpp +++ b/src/gui/lua/lua_cc_window.cpp @@ -127,6 +127,10 @@ int CLuaInstCCWindow::CCWindowNew(lua_State *L) CLuaCCWindow **udata = (CLuaCCWindow **) lua_newuserdata(L, sizeof(CLuaCCWindow *)); *udata = new CLuaCCWindow(); (*udata)->w = new CComponentsWindow(x, y, dx, dy, name.c_str(), icon.c_str(), 0, has_shadow, (fb_pixel_t)color_frame, (fb_pixel_t)color_body, (fb_pixel_t)color_shadow); + /* Ignore percent conversion of width and height + to remain compatible with the Lua API */ + (*udata)->w->setWidth(dx); + (*udata)->w->setHeight(dy); if (!show_header) (*udata)->w->showHeader(false); diff --git a/src/gui/lua/luainstance.cpp b/src/gui/lua/luainstance.cpp index e3ac5aa40..9adfa1d4e 100644 --- a/src/gui/lua/luainstance.cpp +++ b/src/gui/lua/luainstance.cpp @@ -270,6 +270,20 @@ static void set_lua_variables(lua_State *L) { "RADIUS_MID", RADIUS_MID }, { "RADIUS_SMALL", RADIUS_SMALL }, { "RADIUS_MIN", RADIUS_MIN }, + { "RADIUS_NONE", RADIUS_NONE }, + { 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 } }; @@ -330,7 +344,8 @@ static void set_lua_variables(lua_State *L) { "STYLE_ITALIC", (lua_Integer)CNeutrinoFonts::FONT_STYLE_ITALIC }, { "MAX", (lua_Integer)CNeutrinoFonts::DYNFONTEXT_MAX }, { "MAXIMUM_FONTS", (lua_Integer)CLuaInstance::DYNFONT_MAXIMUM_FONTS }, - { "TO_WIDE", (lua_Integer)CLuaInstance::DYNFONT_TO_WIDE }, + { "TO_WIDE", (lua_Integer)CLuaInstance::DYNFONT_TOO_WIDE }, // just here to stay backward compatible + { "TOO_WIDE", (lua_Integer)CLuaInstance::DYNFONT_TOO_WIDE }, { "TOO_HIGH", (lua_Integer)CLuaInstance::DYNFONT_TOO_HIGH }, { NULL, 0 } }; @@ -375,6 +390,7 @@ static void set_lua_variables(lua_State *L) { "SCREEN", screenopts }, { "FONT", fontlist }, { "CORNER", corners }, + { "OFFSET", offsets }, { "MENU_RETURN", menureturn }, { "APIVERSION", apiversion }, { "PLAYSTATE", playstate }, @@ -568,6 +584,7 @@ void LuaInstRegisterFunctions(lua_State *L, bool fromThreads/*=false*/) { "saveScreen", CLuaInstance::saveScreen }, { "restoreScreen", CLuaInstance::restoreScreen }, { "deleteSavedScreen", CLuaInstance::deleteSavedScreen }, + { "scale2Res", CLuaInstance::scale2Res }, /* lua_misc.cpp @@ -1035,7 +1052,7 @@ int CLuaInstance::getDynFont(lua_State *L) dx = luaL_checkint(L, 2); if (dx > (lua_Integer)CFrameBuffer::getInstance()->getScreenWidth(true)) { lua_pushnil(L); - lua_pushinteger(L, DYNFONT_TO_WIDE); + lua_pushinteger(L, DYNFONT_TOO_WIDE); return 2; } dy = luaL_checkint(L, 3); @@ -1183,4 +1200,22 @@ int CLuaInstance::deleteSavedScreen(lua_State *L) return 0; } +int CLuaInstance::scale2Res(lua_State *L) +{ + CLuaData *W = CheckData(L, 1); + if (!W || !W->fbwin) return 0; + + int value, ret; + value = luaL_checkint(L, 2); + +/* Remove this when pu/fb-setmode branch is merged to master */ +#ifdef SCALE2RES_DEFINED + ret = CFrameBuffer::getInstance()->scale2Res(value); +#else + ret = value; +#endif + lua_pushinteger(L, ret); + return 1; +} + /* --------------------------------------------------------------- */ diff --git a/src/gui/lua/luainstance.h b/src/gui/lua/luainstance.h index 69311a9b9..fe0ad3bff 100644 --- a/src/gui/lua/luainstance.h +++ b/src/gui/lua/luainstance.h @@ -46,7 +46,7 @@ public: enum { DYNFONT_NO_ERROR = 0, DYNFONT_MAXIMUM_FONTS = 1, - DYNFONT_TO_WIDE = 2, + DYNFONT_TOO_WIDE = 2, DYNFONT_TOO_HIGH = 3 }; @@ -73,6 +73,7 @@ public: static int saveScreen(lua_State *L); static int restoreScreen(lua_State *L); static int deleteSavedScreen(lua_State *L); + static int scale2Res(lua_State *L); private: lua_State* lua; diff --git a/src/gui/miscsettings_menu.cpp b/src/gui/miscsettings_menu.cpp index 071236a60..a2f3bba9b 100644 --- a/src/gui/miscsettings_menu.cpp +++ b/src/gui/miscsettings_menu.cpp @@ -59,7 +59,7 @@ #include -extern CPlugins * g_PluginList; +extern CPlugins * g_Plugins; extern cVideo *videoDecoder; CMiscMenue::CMiscMenue() @@ -98,7 +98,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; } @@ -110,13 +110,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 c7e7e509d..c16f0388e 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -1314,8 +1314,11 @@ void CMoviePlayerGui::PlayFileLoop(void) bool update_lcd = true; int eof = 0; int lastpos = 0; + int eof2 = 0; + int position_tmp = 0; bool at_eof = !(playstate >= CMoviePlayerGui::PLAY);; keyPressed = CMoviePlayerGui::PLUGIN_PLAYSTATE_NORMAL; + while (playstate >= CMoviePlayerGui::PLAY) { if (update_lcd) { @@ -1352,6 +1355,20 @@ void CMoviePlayerGui::PlayFileLoop(void) } #endif /* in case ffmpeg report incorrect values */ + if((playstate == CMoviePlayerGui::PLAY) && (speed == 1)){ + if(position_tmp != position){ + position_tmp = position ; + eof2 = 0; + }else{ + if (++eof2 > 6) { + at_eof = true; + break; + } + } + } + else{ + eof2 = 0; + } int posdiff = duration - position; if ((posdiff >= 0) && (posdiff < 2000) && timeshift == TSHIFT_MODE_OFF) { @@ -1399,7 +1416,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 36dba32d2..ad96e009b 100644 --- a/src/gui/osdlang_setup.cpp +++ b/src/gui/osdlang_setup.cpp @@ -77,7 +77,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 05de89159..b98741b18 100644 --- a/src/gui/personalize.cpp +++ b/src/gui/personalize.cpp @@ -392,7 +392,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) @@ -420,31 +420,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) @@ -573,18 +573,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 ec4a11a9b..a4cc91df8 100644 --- a/src/gui/plugins.cpp +++ b/src/gui/plugins.cpp @@ -65,7 +65,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() @@ -347,7 +347,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/scan.cpp b/src/gui/scan.cpp index de26daf1b..034b70b36 100644 --- a/src/gui/scan.cpp +++ b/src/gui/scan.cpp @@ -466,9 +466,13 @@ neutrino_msg_t CScanTs::handleMsg(neutrino_msg_t msg, neutrino_msg_data_t data) break; case CRCInput::RC_plus: case CRCInput::RC_minus: + CVolume::getInstance()->setVolume(msg); + break; case CRCInput::RC_left: case CRCInput::RC_right: - CVolume::getInstance()->setVolume(msg); + if (g_settings.mode_left_right_key_tv == SNeutrinoSettings::VOLUME) { + CVolume::getInstance()->setVolume(msg); + } break; default: break; diff --git a/src/gui/timerlist.cpp b/src/gui/timerlist.cpp index ca1951541..13caaf993 100644 --- a/src/gui/timerlist.cpp +++ b/src/gui/timerlist.cpp @@ -1617,6 +1617,7 @@ int CTimerList::modifyTimer() if (!strlen(timer->recordingDir)) strncpy(timer->recordingDir,g_settings.network_nfs_recordingdir.c_str(),sizeof(timer->recordingDir)-1); timer_recordingDir = timer->recordingDir; + strncpy(t_old.recordingDir, timer->recordingDir, sizeof(t_old.recordingDir)-1); bool recDirEnabled = (g_settings.recording_type == RECORDING_FILE); // obsolete? CMenuForwarder* m6 = new CMenuForwarder(LOCALE_TIMERLIST_RECORDING_DIR, recDirEnabled, timer_recordingDir, this, "rec_dir1", CRCInput::RC_green); diff --git a/src/gui/update.cpp b/src/gui/update.cpp index 691a9a82c..7cd429bec 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,12 +550,12 @@ 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... #if ENABLE_EXTUPDATE #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; @@ -568,21 +564,21 @@ int CFlashUpdate::exec(CMenuTarget* parent, const std::string &actionKey) #endif #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(); } @@ -597,30 +593,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() { @@ -835,17 +825,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); @@ -868,7 +858,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"); @@ -882,14 +872,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 17396222f..20e66af01 100644 --- a/src/gui/user_menue.cpp +++ b/src/gui/user_menue.cpp @@ -85,7 +85,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; @@ -327,33 +327,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); } @@ -394,14 +394,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; } @@ -422,14 +422,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; } @@ -486,17 +486,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; } } @@ -554,10 +554,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 876b23e31..01e87ae32 100644 --- a/src/gui/user_menue_setup.cpp +++ b/src/gui/user_menue_setup.cpp @@ -121,10 +121,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/videosettings.cpp b/src/gui/videosettings.cpp index f9bb20f2f..74e5286f4 100644 --- a/src/gui/videosettings.cpp +++ b/src/gui/videosettings.cpp @@ -677,6 +677,7 @@ void CVideoSettings::nextMode(void) int curmode = 0; int i; bool disp_cur = 1; + int res = messages_return::none; for (i = 0; i < VIDEOMENU_VIDEOMODE_OPTION_COUNT; i++) { if (VIDEOMENU_VIDEOMODE_OPTIONS[i].key == g_settings.video_Mode) { @@ -688,7 +689,9 @@ void CVideoSettings::nextMode(void) while(1) { CVFD::getInstance()->ShowText(text); - int res = ShowHint(LOCALE_VIDEOMENU_VIDEOMODE, text, 450, 2); + + if (res != messages_return::cancel_info) // avoid unnecessary display of messageboxes, when user is trying to press repeated format button + res = ShowHint(LOCALE_VIDEOMENU_VIDEOMODE, text, 450, 2); if(disp_cur && res != messages_return::handled) break; diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 8179769f1..5cde238ec 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1028,21 +1028,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/gui/widget/msgbox.cpp b/src/gui/widget/msgbox.cpp index 25deb70f8..bc364fd9f 100644 --- a/src/gui/widget/msgbox.cpp +++ b/src/gui/widget/msgbox.cpp @@ -315,6 +315,9 @@ int CMsgBox::exec() result = (msg_result_t)ccw_footer->getSelectedButtonObject()->getButtonResult(); loop = false; } + else if (msg == NeutrinoMessages::RECORD_START || msg == NeutrinoMessages::RECORD_STOP) { + CNeutrinoApp::getInstance()->handleMsg(msg, data); + } //***ignore*** else if (CNeutrinoApp::getInstance()->listModeKey(msg)){ // do nothing //TODO: if passed rc messages are ignored rc messaages: has no effect here too!! diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 6a4c3bec5..9671320fe 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -200,7 +200,7 @@ CBouquetList * RADIOwebList; CBouquetList * AllFavBouquetList; -CPlugins * g_PluginList; +CPlugins * g_Plugins; CRemoteControl * g_RemoteControl; CPictureViewer * g_PicViewer; CCAMMenuHandler * g_CamHandler; @@ -491,6 +491,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, ""); @@ -2239,10 +2241,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(); @@ -2423,9 +2425,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(); @@ -3247,7 +3249,7 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) if (rec_mode == CRecordManager::RECMODE_OFF || rec_mode == CRecordManager::RECMODE_TSHIFT) CRecordManager::getInstance()->Record(live_channel_id); delete[] (unsigned char*) data; - return messages_return::handled | messages_return::cancel_all; + return messages_return::handled; } if(mode == mode_standby){ if((eventinfo->channel_id != live_channel_id) && !(SAME_TRANSPONDER(live_channel_id, eventinfo->channel_id))) @@ -3260,7 +3262,7 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) } delete[] (unsigned char*) data; - return messages_return::handled | messages_return::cancel_all; + return messages_return::handled; } else if( msg == NeutrinoMessages::RECORD_STOP) { CTimerd::RecordingStopInfo* recinfo = (CTimerd::RecordingStopInfo*)data; @@ -3551,9 +3553,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; @@ -4223,7 +4225,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(); } @@ -4382,9 +4384,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(); @@ -4800,7 +4803,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 0e2082591..5527f5af1 100644 --- a/src/neutrino_menue.cpp +++ b/src/neutrino_menue.cpp @@ -76,7 +76,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; @@ -187,31 +187,31 @@ 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]); #if 0 //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]); #else - bool show_plugins = g_PluginList->hasPlugin(CPlugins::P_TYPE_NO_GAME); + bool show_plugins = g_Plugins->hasPlugin(CPlugins::P_TYPE_NO_GAME); mf = new CMenuForwarder(LOCALE_MAINMENU_LUA, show_plugins, NULL, new CPluginList(LOCALE_MAINMENU_LUA, CPlugins::P_TYPE_NO_GAME)); 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 6cdc291c8..e65694375 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" @@ -2030,7 +2030,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 575da3891..c09412182 100644 --- a/src/system/flashtool.cpp +++ b/src/system/flashtool.cpp @@ -526,28 +526,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 b74b90eb8..8aa833059 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -709,6 +709,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 b3b18075b..f1134b99e 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -709,6 +709,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 cdd8f460a..dac8b81c4 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;