From 7e4147bacda016b04186d1e32929d021fe6bbe30 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Sun, 4 Dec 2016 20:04:40 +0100 Subject: [PATCH 001/142] src/timerd/timermanager.cpp sruct variable init Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/d0008ee905a3d58b0318bb728f94a31bbc09fed7 Author: Jacek Jendrzej Date: 2016-12-04 (Sun, 04 Dec 2016) --- src/timerd/timermanager.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/timerd/timermanager.cpp b/src/timerd/timermanager.cpp index 139ea75d3..4d3dddf78 100644 --- a/src/timerd/timermanager.cpp +++ b/src/timerd/timermanager.cpp @@ -1173,6 +1173,9 @@ CTimerEvent_Record::CTimerEvent_Record(time_t announce_Time, time_t alarm_Time, eventInfo.epg_starttime = epg_starttime; eventInfo.channel_id = channel_id; eventInfo.apids = apids; + eventInfo.autoAdjustToEPG = _autoAdjustToEPG; + eventInfo.recordingSafety = _recordingSafety; + recordingDir = recDir; epgTitle=""; autoAdjustToEPG = _autoAdjustToEPG; From 3a692877a62d0e4116a9f281faa51d2be6ba7446 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Sun, 4 Dec 2016 22:08:44 +0100 Subject: [PATCH 002/142] helpbox: some reworks ... * rename line_space to line_height * separators uses half line height * add getLineHeight() function * small cleanups Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/ce82966c7577f580eb674acf7f61035905859fdf Author: vanhofen Date: 2016-12-04 (Sun, 04 Dec 2016) Origin message was: ------------------ - helpbox: some reworks ... * rename line_space to line_height * separators uses half line height * add getLineHeight() function * small cleanups --- src/gui/widget/helpbox.cpp | 73 +++++++++++++++++--------------------- src/gui/widget/helpbox.h | 24 +++++++------ 2 files changed, 46 insertions(+), 51 deletions(-) diff --git a/src/gui/widget/helpbox.cpp b/src/gui/widget/helpbox.cpp index 75969a502..669b4dc20 100644 --- a/src/gui/widget/helpbox.cpp +++ b/src/gui/widget/helpbox.cpp @@ -26,7 +26,6 @@ #include #endif - #include #include #include @@ -36,16 +35,13 @@ using namespace std; Helpbox::Helpbox( const string& Title, const string& Default_Text, const int& text_mode, - const int& line_space, + const int& line_height, Font* default_font_text, const char* Icon): CComponentsWindowMax( Title, Icon, NULL, - CC_SHADOW_ON, - COL_MENUCONTENT_PLUS_6, - COL_MENUCONTENT_PLUS_0, - COL_SHADOW_PLUS_0) + CC_SHADOW_ON) { page = 0; hbox_y = 1; @@ -53,18 +49,17 @@ Helpbox::Helpbox( const string& Title, ccw_footer->setButtonLabel(NEUTRINO_ICON_BUTTON_HOME, LOCALE_MESSAGEBOX_BACK); hbox_font = default_font_text; - if (default_font_text == NULL) + if (hbox_font == NULL) hbox_font = g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_INFO]; if (!Default_Text.empty()) - addLine(Default_Text.c_str(), Default_Text, text_mode, line_space, HELPBOX_DEFAULT_LINE_INDENT ,hbox_font); + addLine(Default_Text.c_str(), Default_Text, text_mode, line_height, HELPBOX_DEFAULT_LINE_INDENT, hbox_font); //ensure hided channellist, because shared RC_ok CNeutrinoApp::getInstance()->allowChannelList(false); } - -void Helpbox::addLine(const std::string& icon, const std::string& text, const int& text_mode, const int& line_space, const int& line_indent, Font* font_text) +void Helpbox::addLine(const std::string& icon, const std::string& text, const int& text_mode, const int& line_height, const int& line_indent, Font* font_text) { CComponentsItem *pre_item = !ccw_body->empty() ? ccw_body->back() : NULL; //get the last current item @@ -73,12 +68,11 @@ void Helpbox::addLine(const std::string& icon, const std::string& text, const in hbox_y = pre_item->getYPos() + pre_item->getHeight(); } - int h_line = line_space; Font* font = hbox_font; - if (font_text){ - h_line = max(h_line, font_text->getHeight()); + if (font_text) font = font_text; - } + + int h_line = getLineHeight(line_height, font); CComponentsFrmChain *line = new CComponentsFrmChain(line_indent, hbox_y, 0, h_line); if ((hbox_y + h_line)>ccw_body->getHeight()){ @@ -88,7 +82,7 @@ void Helpbox::addLine(const std::string& icon, const std::string& text, const in line->setPageNumber(page); int w_body = ccw_body->getWidth(); - line->setWidth(w_body - line_indent - 40); + line->setWidth(w_body - 2*line_indent); line->setXPos(line_indent); line->setColorBody(ccw_body->getColorBody()); @@ -105,7 +99,7 @@ void Helpbox::addLine(const std::string& icon, const std::string& text, const in if (!text.empty()){ int x_text = w_picon + (picon ? 10 : 0); - CComponentsText * txt = new CComponentsText(x_text, 0, line->getWidth()-x_text, line_space, text, text_mode, font); + CComponentsText * txt = new CComponentsText(x_text, 0, line->getWidth()-x_text, line_height, text, text_mode, font); #if 0 //"contrast agent", if you want to see where the text items are drawn. txt->setColorBody(COL_RED); txt->doPaintBg(true); @@ -115,10 +109,7 @@ void Helpbox::addLine(const std::string& icon, const std::string& text, const in addWindowItem(line); } - - - -void Helpbox::addSeparatorLine(const int& line_space, const int& line_indent) +void Helpbox::addSeparatorLine(const int& line_height, const int& line_indent) { CComponentsItem *pre_item = !ccw_body->empty() ? ccw_body->back() : NULL; //get the last current item @@ -127,13 +118,11 @@ void Helpbox::addSeparatorLine(const int& line_space, const int& line_indent) hbox_y = pre_item->getYPos() + pre_item->getHeight(); } - int h_line = line_space; - - CComponentsFrmChain *line = new CComponentsFrmChain(line_indent, hbox_y, 0, h_line); + CComponentsFrmChain *line = new CComponentsFrmChain(line_indent, hbox_y, 0, getLineHeight(line_height, hbox_font, true)); line->setPageNumber(page); int w_body = ccw_body->getWidth(); - line->setWidth(w_body - line_indent - 40); + line->setWidth(w_body - 2*line_indent); line->setXPos(line_indent); line->setColorBody(ccw_body->getColorBody()); @@ -151,7 +140,7 @@ void Helpbox::addSeparatorLine(const int& line_space, const int& line_indent) addWindowItem(line); } -void Helpbox::addSeparator(const int& line_space) +void Helpbox::addSeparator(const int& line_height) { CComponentsItem *pre_item = !ccw_body->empty() ? ccw_body->back() : NULL; //get the last current item @@ -160,7 +149,7 @@ void Helpbox::addSeparator(const int& line_space) hbox_y = pre_item->getYPos() + pre_item->getHeight(); } - CComponentsFrmChain *line = new CComponentsFrmChain(0, hbox_y, 0, line_space); + CComponentsFrmChain *line = new CComponentsFrmChain(0, hbox_y, 0, getLineHeight(line_height, hbox_font, true)); line->setPageNumber(page); int w_body = ccw_body->getWidth(); @@ -170,29 +159,21 @@ void Helpbox::addSeparator(const int& line_space) addWindowItem(line); } - - - - -void Helpbox::addLine(const char *icon, const char *text, const int& text_mode, const int& line_space, const int& line_indent, Font* font_text) +void Helpbox::addLine(const char *icon, const char *text, const int& text_mode, const int& line_height, const int& line_indent, Font* font_text) { - addLine(icon, std::string(text), text_mode, line_space, line_indent, font_text); - + addLine(icon, std::string(text), text_mode, line_height, line_indent, font_text); } - -void Helpbox::addLine(const char *text, const int& text_mode, const int& line_space, const int& line_indent, Font* font_text) +void Helpbox::addLine(const char *text, const int& text_mode, const int& line_height, const int& line_indent, Font* font_text) { - addLine("", std::string(text), text_mode, line_space, line_indent, font_text); + addLine("", std::string(text), text_mode, line_height, line_indent, font_text); } -void Helpbox::addLine(const std::string& text, const int& text_mode, const int& line_space, const int& line_indent, Font* font_text) +void Helpbox::addLine(const std::string& text, const int& text_mode, const int& line_height, const int& line_indent, Font* font_text) { - addLine("", text, text_mode, line_space, line_indent, font_text); + addLine("", text, text_mode, line_height, line_indent, font_text); } - - void Helpbox::addPagebreak(void) { page ++; @@ -200,3 +181,15 @@ void Helpbox::addPagebreak(void) hbox_y = 1; } +int Helpbox::getLineHeight(int line_height, Font* font_text, bool separator) +{ + if (font_text == NULL) + return 0; // should not happen + + int h = max(line_height, font_text->getHeight()); + + if (separator) + return h/2; // separators uses half height + + return h; +} diff --git a/src/gui/widget/helpbox.h b/src/gui/widget/helpbox.h index b59b36050..ba42cbf44 100644 --- a/src/gui/widget/helpbox.h +++ b/src/gui/widget/helpbox.h @@ -29,8 +29,8 @@ #include #include -#define HELPBOX_DEFAULT_LINE_HEIGHT 35 -#define HELPBOX_DEFAULT_LINE_INDENT 10 +#define HELPBOX_DEFAULT_LINE_HEIGHT 0 // use font height as default +#define HELPBOX_DEFAULT_LINE_INDENT OFFSET_INNER_MID class Helpbox : public CComponentsWindowMax { @@ -39,13 +39,15 @@ private: //start position of items on page int hbox_y; + int getLineHeight(int line_height, Font* font_text, bool separator = false); + ///default font Font* hbox_font; public: Helpbox( const std::string& Title, const std::string& Default_Text = std::string(), const int& text_mode = CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, - const int& line_space = HELPBOX_DEFAULT_LINE_HEIGHT, + const int& line_height = HELPBOX_DEFAULT_LINE_HEIGHT, Font* font_text = NULL, const char* Icon = NEUTRINO_ICON_INFO); @@ -54,37 +56,37 @@ public: void addLine( const std::string& text, const int& text_mode = CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, - const int& line_space = HELPBOX_DEFAULT_LINE_HEIGHT, + const int& line_height = HELPBOX_DEFAULT_LINE_HEIGHT, const int& line_indent = HELPBOX_DEFAULT_LINE_INDENT, Font* font_text = NULL); void addLine( const char *text, const int& text_mode = CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, - const int& line_space = HELPBOX_DEFAULT_LINE_HEIGHT, + const int& line_height = HELPBOX_DEFAULT_LINE_HEIGHT, const int& line_indent = HELPBOX_DEFAULT_LINE_INDENT, Font* font_text = NULL); void addLine( const std::string& icon, const std::string& text, const int& text_mode = CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, - const int& line_space = HELPBOX_DEFAULT_LINE_HEIGHT, + const int& line_height = HELPBOX_DEFAULT_LINE_HEIGHT, const int& line_indent = HELPBOX_DEFAULT_LINE_INDENT, Font* font_text = NULL); void addLine( const char *icon, const char *text, const int& text_mode = CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, - const int& line_space = HELPBOX_DEFAULT_LINE_HEIGHT, + const int& line_height = HELPBOX_DEFAULT_LINE_HEIGHT, const int& line_indent = HELPBOX_DEFAULT_LINE_INDENT, Font* font_text = NULL); - ///adds a separator as horizontal line, arg 'line_space' defines the space of full separator height, the separator line itself has a defined height of 2px and is centered within line space. + ///adds a separator as horizontal line, arg 'line_height' defines the space of full separator height, the separator line itself has a defined height of 2px and is centered within line space. ///arg 'line_indent' defines begin of line from left border within body object. ///arg 'enable_gradient' enable/disable gradient, Note: default = true, but gradient is only effected, if global/theme gradient settings are enabled! - void addSeparatorLine( const int& line_space = HELPBOX_DEFAULT_LINE_HEIGHT, + void addSeparatorLine( const int& line_height = HELPBOX_DEFAULT_LINE_HEIGHT, const int& line_indent = HELPBOX_DEFAULT_LINE_INDENT); - ///adds a simple empty separator as horizontal space, arg 'line_space' defines the space of full separator height - void addSeparator( const int& line_space = HELPBOX_DEFAULT_LINE_HEIGHT); + ///adds a simple empty separator as horizontal space, arg 'line_height' defines the space of full separator height + void addSeparator( const int& line_height = HELPBOX_DEFAULT_LINE_HEIGHT); void addPagebreak(); From a394d17fb892d2efcb81c38bd3e0cbcc712ef3c7 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Sun, 4 Dec 2016 22:44:44 +0100 Subject: [PATCH 003/142] moviebrowser: rework help ... * remove from menu; this breakes menu's logic (rc_help is to switch hints) * use rc_help to show help window * rework content Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/21ed22cb6e8aab99ec66fefcdeda17659f4a95e9 Author: vanhofen Date: 2016-12-04 (Sun, 04 Dec 2016) Origin message was: ------------------ - moviebrowser: rework help ... * remove from menu; this breakes menu's logic (rc_help is to switch hints) * use rc_help to show help window * rework content --- data/locale/deutsch.locale | 2 +- data/locale/english.locale | 2 +- src/gui/moviebrowser/mb.cpp | 15 ++++++-------- src/gui/moviebrowser/mb_help.h | 38 ++++++++++++++-------------------- 4 files changed, 24 insertions(+), 33 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 31f290f1b..6a9c30ce1 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1685,7 +1685,7 @@ moviebrowser.head_recordlist Zuletzt aufgenommen: moviebrowser.help_button_blue Filminfos neu laden moviebrowser.help_button_green Filterfenster einblenden moviebrowser.help_button_left Ansicht ändern -moviebrowser.help_button_menu Hauptmenü öffnen +moviebrowser.help_button_menu Filminfos und Einstellungen moviebrowser.help_button_mute Filme löschen moviebrowser.help_button_okay Filme abspielen moviebrowser.help_button_play Filme markieren diff --git a/data/locale/english.locale b/data/locale/english.locale index 0772e7e91..c830ee0cf 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1685,7 +1685,7 @@ moviebrowser.head_recordlist Last recorded: moviebrowser.help_button_blue Reload movie informations moviebrowser.help_button_green Show filter selection moviebrowser.help_button_left Change view -moviebrowser.help_button_menu Open main menu +moviebrowser.help_button_menu Movie infos and settings moviebrowser.help_button_mute Delete movies moviebrowser.help_button_okay Play movies moviebrowser.help_button_play Mark movies diff --git a/src/gui/moviebrowser/mb.cpp b/src/gui/moviebrowser/mb.cpp index 495c270ec..83ff5f6c0 100644 --- a/src/gui/moviebrowser/mb.cpp +++ b/src/gui/moviebrowser/mb.cpp @@ -2067,7 +2067,11 @@ bool CMovieBrowser::onButtonPressMainFrame(neutrino_msg_t msg) onDelete(); } } - else if (msg == CRCInput::RC_help || msg == CRCInput::RC_info) + else if (msg == CRCInput::RC_help) + { + showHelp(); + } + else if (msg == CRCInput::RC_info) { if (m_movieSelectionHandler != NULL) { @@ -3136,11 +3140,9 @@ void CMovieBrowser::loadAllMovieInfo(void) void CMovieBrowser::showHelp(void) { CMovieHelp help; - help.exec(NULL,NULL); + help.exec(); } - - #define MAX_STRING 30 int CMovieBrowser::showMovieInfoMenu(MI_MOVIE_INFO* movie_info) { @@ -3402,7 +3404,6 @@ bool CMovieBrowser::showMenu(bool calledExternally) /********************************************************************/ /** main menu ******************************************************/ - CMovieHelp* movieHelp = new CMovieHelp(); CNFSSmallMenu* nfs = new CNFSSmallMenu(); if (!calledExternally) { @@ -3416,9 +3417,6 @@ bool CMovieBrowser::showMenu(bool calledExternally) mainMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_DIRECTORIES_HEAD, true, NULL, &dirMenu, NULL, CRCInput::RC_2)); mainMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_SCAN_FOR_MOVIES, true, NULL, this, "reload_movie_info", CRCInput::RC_3)); //mainMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_NFS_HEAD, true, NULL, nfs, NULL, CRCInput::RC_setup)); - mainMenu.addItem(GenericMenuSeparatorLine); - mainMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_HELP_HEAD, true, NULL, movieHelp, NULL, CRCInput::RC_help)); - //mainMenu.addItem(GenericMenuSeparator); mainMenu.exec(NULL, " "); } else @@ -3490,7 +3488,6 @@ bool CMovieBrowser::showMenu(bool calledExternally) for (i = 0; i < MB_MAX_DIRS; i++) delete notifier[i]; - delete movieHelp; delete nfs; return(true); diff --git a/src/gui/moviebrowser/mb_help.h b/src/gui/moviebrowser/mb_help.h index a295c8d12..64882eba3 100644 --- a/src/gui/moviebrowser/mb_help.h +++ b/src/gui/moviebrowser/mb_help.h @@ -40,8 +40,8 @@ #include -// Class to show Moviebrowser Information, to be used by menu -class CMovieHelp : public CMenuTarget +// Class to show moviebrowser's help, to be used by rc_help key +class CMovieHelp { private: @@ -49,35 +49,29 @@ class CMovieHelp : public CMenuTarget CMovieHelp(){}; ~CMovieHelp(){}; - int exec(CMenuTarget* /*parent*/, const std::string & /*actionKey*/) + void exec() { Helpbox helpbox(g_Locale->getText(LOCALE_HELP_BOX_TITLE)); - helpbox.addLine("Standard functions", CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, 35, 10, g_Font[SNeutrinoSettings::FONT_TYPE_MENU_TITLE]); - helpbox.addLine(NEUTRINO_ICON_BUTTON_OKAY, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_OKAY), CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, 35, 30); - helpbox.addLine(NEUTRINO_ICON_BUTTON_PLAY, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_PLAY), CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, 35, 30); - helpbox.addLine(NEUTRINO_ICON_BUTTON_MUTE_SMALL, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_MUTE), CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, 35, 30); + helpbox.addSeparator(); + helpbox.addLine(NEUTRINO_ICON_BUTTON_PLAY, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_PLAY)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_OKAY, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_OKAY)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_MUTE_SMALL, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_MUTE)); helpbox.addSeparatorLine(); - helpbox.addLine(NEUTRINO_ICON_BUTTON_RED, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_RED), CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, 35, 30); - helpbox.addLine(NEUTRINO_ICON_BUTTON_GREEN, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_GREEN), CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, 35, 30); - helpbox.addLine(NEUTRINO_ICON_BUTTON_YELLOW, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_YELLOW), CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, 35, 30); - helpbox.addLine(NEUTRINO_ICON_BUTTON_BLUE, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_BLUE), CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, 35, 30); - helpbox.addLine(NEUTRINO_ICON_BUTTON_MENU, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_MENU), CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, 35, 30); - helpbox.addLine(" Change view", CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, 35, 30); -#if 0 - helpbox.addPagebreak(); -#endif - helpbox.addLine("During playback", CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, 35, 10, g_Font[SNeutrinoSettings::FONT_TYPE_MENU_TITLE]); + helpbox.addLine(NEUTRINO_ICON_BUTTON_RED, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_RED)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_GREEN, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_GREEN)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_YELLOW, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_YELLOW)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_BLUE, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_BLUE)); helpbox.addSeparatorLine(); - helpbox.addLine(NEUTRINO_ICON_BUTTON_BLUE, "Marking menu", CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, 35, 30); - helpbox.addLine(NEUTRINO_ICON_BUTTON_0, "Not perform marking action", CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, 35, 30); + helpbox.addLine(NEUTRINO_ICON_BUTTON_MENU, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_MENU)); + helpbox.addSeparator(); + helpbox.addLine(NEUTRINO_ICON_BUTTON_LEFT, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_LEFT)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_RIGHT, g_Locale->getText(LOCALE_MOVIEBROWSER_HELP_BUTTON_RIGHT)); helpbox.addExitKey(CRCInput::RC_ok); helpbox.show(); - int ret = helpbox.exec(); + helpbox.exec(); helpbox.hide(); - - return ret; } }; From 5820c83232f8ddc62e3de8e779223aa62b0b4b89 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 5 Dec 2016 00:50:39 +0100 Subject: [PATCH 004/142] helpbox: fix icon alignment Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/6094bd72096a5bc0100c75b07730c9ced1b3c244 Author: vanhofen Date: 2016-12-05 (Mon, 05 Dec 2016) Origin message was: ------------------ - helpbox: fix icon alignment --- src/gui/widget/helpbox.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gui/widget/helpbox.cpp b/src/gui/widget/helpbox.cpp index 669b4dc20..cef56128e 100644 --- a/src/gui/widget/helpbox.cpp +++ b/src/gui/widget/helpbox.cpp @@ -88,17 +88,19 @@ void Helpbox::addLine(const std::string& icon, const std::string& text, const in CComponentsPicture *picon = NULL; int w_picon = 0; + int h_picon = 0; if (!icon.empty()){ picon = new CComponentsPicture (0, 0, icon); - w_picon = picon->getHeight(); + w_picon = picon->getWidth(); + h_picon = picon->getHeight(); picon->doPaintBg(false); - picon->setYPos(line->getHeight()/2 - w_picon/2); + picon->setYPos(line->getHeight()/2 - h_picon/2); picon->SetTransparent(CFrameBuffer::TM_BLACK); line->addCCItem(picon); } if (!text.empty()){ - int x_text = w_picon + (picon ? 10 : 0); + int x_text = w_picon + (picon ? OFFSET_INNER_MID : 0); CComponentsText * txt = new CComponentsText(x_text, 0, line->getWidth()-x_text, line_height, text, text_mode, font); #if 0 //"contrast agent", if you want to see where the text items are drawn. txt->setColorBody(COL_RED); From 601cada5e763579132f35757953e98db27878875 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 5 Dec 2016 00:50:39 +0100 Subject: [PATCH 005/142] helpbox: fix height of CComponentsText element Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/c901dff079a7b1dffaeabdd55b799cfadc7e78b3 Author: vanhofen Date: 2016-12-05 (Mon, 05 Dec 2016) Origin message was: ------------------ - helpbox: fix height of CComponentsText element --- src/gui/widget/helpbox.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/widget/helpbox.cpp b/src/gui/widget/helpbox.cpp index cef56128e..f3f707038 100644 --- a/src/gui/widget/helpbox.cpp +++ b/src/gui/widget/helpbox.cpp @@ -101,7 +101,7 @@ void Helpbox::addLine(const std::string& icon, const std::string& text, const in if (!text.empty()){ int x_text = w_picon + (picon ? OFFSET_INNER_MID : 0); - CComponentsText * txt = new CComponentsText(x_text, 0, line->getWidth()-x_text, line_height, text, text_mode, font); + CComponentsText * txt = new CComponentsText(x_text, 0, line->getWidth()-x_text, line->getHeight(), text, text_mode, font); #if 0 //"contrast agent", if you want to see where the text items are drawn. txt->setColorBody(COL_RED); txt->doPaintBg(true); From 6754ff3e614041bdd0ea9b3e2faa456bcacd9f4e Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 5 Dec 2016 00:50:39 +0100 Subject: [PATCH 006/142] movieplayer: rework help; use rc_help to show help Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/5ad794e0042b4f1245045832ec6d0a110737a8fb Author: vanhofen Date: 2016-12-05 (Mon, 05 Dec 2016) Origin message was: ------------------ - movieplayer: rework help; use rc_help to show help --- data/locale/deutsch.locale | 27 +++++++++++++----------- data/locale/english.locale | 27 +++++++++++++----------- src/gui/movieplayer.cpp | 42 +++++++++++++++++++++++++------------- src/gui/movieplayer.h | 2 +- src/system/locals.h | 27 +++++++++++++----------- src/system/locals_intern.h | 27 +++++++++++++----------- 6 files changed, 89 insertions(+), 63 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 6a9c30ce1..4e5cf202c 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1828,22 +1828,25 @@ movieplayer.bookmarkname_hint2 movieplayer.chapters Kapitel movieplayer.fileplayback Abspielen (Multiformat) movieplayer.head Movieplayer +movieplayer.help_additional Weitere benutzerdefinierte Tastenbelegungen sind unter "Hauptmenü" > "Einstellungen" > "Tasten" > "Bearbeiten" > "Movieplayer" zu finden. +movieplayer.help_button_1 1 Minute zurück +movieplayer.help_button_2 Zum Filmanfang springen +movieplayer.help_button_3 1 Minute vor +movieplayer.help_button_4 3 Minuten zurück +movieplayer.help_button_5 Zur Filmmitte springen +movieplayer.help_button_6 3 Minuten vor +movieplayer.help_button_7 10 Minuten zurück +movieplayer.help_button_8 Zum Filmende springen +movieplayer.help_button_9 10 Minuten vor +movieplayer.help_button_backward Schneller Rücklauf +movieplayer.help_button_forward Schneller Vorlauf +movieplayer.help_button_menu Hauptmenü öffnen +movieplayer.help_button_pause Pause / Weiter +movieplayer.help_button_stop Stopp movieplayer.plugin Movieplayer-Plugin movieplayer.starting Wiedergabe starten ... movieplayer.titles Titel movieplayer.toomanybookmarks Sie haben bereits zu viele Lesezeichen angelegt.\nEs muß erst ein anderes gelöscht werden. -movieplayer.tshelp1 Stopp -movieplayer.tshelp10 ca. 10 Minuten zurück -movieplayer.tshelp11 ca. 10 Minuten vor -movieplayer.tshelp12 Hilfe: http://www.giggo.de/dbox2/movieplayer.html\n -movieplayer.tshelp2 Auswahl der Tonspur -movieplayer.tshelp3 Pause/Weiter -movieplayer.tshelp4 Bookmark setzen -movieplayer.tshelp5 Zeit einblenden -movieplayer.tshelp6 ca. 1 Minute zurück -movieplayer.tshelp7 ca. 1 Minute vor -movieplayer.tshelp8 ca. 5 Minuten zurück -movieplayer.tshelp9 ca. 5 Minuten vor movieplayer.tsplayback TS Abspielen movieplayer.ytplayback YouTube-Feed Wiedergabe mpkey.audio Tonspuren diff --git a/data/locale/english.locale b/data/locale/english.locale index c830ee0cf..0a5d1aff7 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1828,22 +1828,25 @@ movieplayer.bookmarkname_hint2 movieplayer.chapters Chapters movieplayer.fileplayback File play movieplayer.head Movieplayer +movieplayer.help_additional To find more user definable key bindings, see "Mainmenu" > "Settings" > "Keys" > "Edit" > "Movieplayer". +movieplayer.help_button_1 1 minute backward +movieplayer.help_button_2 Jump to movie's start +movieplayer.help_button_3 1 minute forward +movieplayer.help_button_4 3 minutes backward +movieplayer.help_button_5 Jump to movie's middle +movieplayer.help_button_6 3 minutes forward +movieplayer.help_button_7 10 minutes backward +movieplayer.help_button_8 Jump to movie's end +movieplayer.help_button_9 10 minutes forward +movieplayer.help_button_backward Fast rewind +movieplayer.help_button_forward Fast forward +movieplayer.help_button_menu Open main manu +movieplayer.help_button_pause Pause / Continue +movieplayer.help_button_stop Stop movieplayer.plugin Movieplayer plugin movieplayer.starting Starting playback ... movieplayer.titles Titles movieplayer.toomanybookmarks There are too many bookmarks.\nYou need to delete one of them first. -movieplayer.tshelp1 Stop -movieplayer.tshelp10 approx. 10 minutes back -movieplayer.tshelp11 skip approx. 10 minutes -movieplayer.tshelp12 Help: http://www.giggo.de/dbox2/movieplayer.html\n -movieplayer.tshelp2 Select audio track -movieplayer.tshelp3 Pause/Continue -movieplayer.tshelp4 Create bookmark -movieplayer.tshelp5 Show progress -movieplayer.tshelp6 approx. 1 minute back -movieplayer.tshelp7 skip approx. 1 minute -movieplayer.tshelp8 approx. 5 minutes back -movieplayer.tshelp9 skip approx. 5 minutes movieplayer.tsplayback Play TS movieplayer.ytplayback YouTube videoplayer mpkey.audio Audiotracks diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index a09f6dfe3..9e80fdb4f 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -1523,7 +1523,9 @@ void CMoviePlayerGui::PlayFileLoop(void) if (!cancel && (3 == sscanf(Value.c_str(), "%d:%d:%d", &hh, &mm, &ss))) SetPosition(1000 * (hh * 3600 + mm * 60 + ss), true); - } else if (msg == CRCInput::RC_help || msg == CRCInput::RC_info) { + } else if (msg == CRCInput::RC_help) { + showHelp(); + } else if (msg == CRCInput::RC_info) { if (fromInfoviewer) { CTimeOSD::mode m_mode = FileTime.getMode(); bool restore = FileTime.IsVisible(); @@ -2194,22 +2196,34 @@ void CMoviePlayerGui::UpdatePosition() } } -void CMoviePlayerGui::showHelpTS() +void CMoviePlayerGui::showHelp() { Helpbox helpbox(g_Locale->getText(LOCALE_MESSAGEBOX_INFO)); - helpbox.addLine(NEUTRINO_ICON_BUTTON_RED, g_Locale->getText(LOCALE_MOVIEPLAYER_TSHELP1)); - helpbox.addLine(NEUTRINO_ICON_BUTTON_GREEN, g_Locale->getText(LOCALE_MOVIEPLAYER_TSHELP2)); - helpbox.addLine(NEUTRINO_ICON_BUTTON_YELLOW, g_Locale->getText(LOCALE_MOVIEPLAYER_TSHELP3)); - helpbox.addLine(NEUTRINO_ICON_BUTTON_BLUE, g_Locale->getText(LOCALE_MOVIEPLAYER_TSHELP4)); - helpbox.addLine(NEUTRINO_ICON_BUTTON_MENU, g_Locale->getText(LOCALE_MOVIEPLAYER_TSHELP5)); - helpbox.addLine(NEUTRINO_ICON_BUTTON_1, g_Locale->getText(LOCALE_MOVIEPLAYER_TSHELP6)); - helpbox.addLine(NEUTRINO_ICON_BUTTON_3, g_Locale->getText(LOCALE_MOVIEPLAYER_TSHELP7)); - helpbox.addLine(NEUTRINO_ICON_BUTTON_4, g_Locale->getText(LOCALE_MOVIEPLAYER_TSHELP8)); - helpbox.addLine(NEUTRINO_ICON_BUTTON_6, g_Locale->getText(LOCALE_MOVIEPLAYER_TSHELP9)); - helpbox.addLine(NEUTRINO_ICON_BUTTON_7, g_Locale->getText(LOCALE_MOVIEPLAYER_TSHELP10)); - helpbox.addLine(NEUTRINO_ICON_BUTTON_9, g_Locale->getText(LOCALE_MOVIEPLAYER_TSHELP11)); - helpbox.addLine(g_Locale->getText(LOCALE_MOVIEPLAYER_TSHELP12)); + helpbox.addSeparator(); + helpbox.addLine(NEUTRINO_ICON_BUTTON_PAUSE, g_Locale->getText(LOCALE_MOVIEPLAYER_HELP_BUTTON_PAUSE)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_FORWARD, g_Locale->getText(LOCALE_MOVIEPLAYER_HELP_BUTTON_FORWARD)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_BACKWARD, g_Locale->getText(LOCALE_MOVIEPLAYER_HELP_BUTTON_BACKWARD)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_STOP, g_Locale->getText(LOCALE_MOVIEPLAYER_HELP_BUTTON_STOP)); + helpbox.addSeparatorLine(); + helpbox.addLine(NEUTRINO_ICON_BUTTON_1, g_Locale->getText(LOCALE_MOVIEPLAYER_HELP_BUTTON_1)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_2, g_Locale->getText(LOCALE_MOVIEPLAYER_HELP_BUTTON_2)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_3, g_Locale->getText(LOCALE_MOVIEPLAYER_HELP_BUTTON_3)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_4, g_Locale->getText(LOCALE_MOVIEPLAYER_HELP_BUTTON_4)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_5, g_Locale->getText(LOCALE_MOVIEPLAYER_HELP_BUTTON_5)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_6, g_Locale->getText(LOCALE_MOVIEPLAYER_HELP_BUTTON_6)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_7, g_Locale->getText(LOCALE_MOVIEPLAYER_HELP_BUTTON_7)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_8, g_Locale->getText(LOCALE_MOVIEPLAYER_HELP_BUTTON_8)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_9, g_Locale->getText(LOCALE_MOVIEPLAYER_HELP_BUTTON_9)); + helpbox.addSeparatorLine(); + helpbox.addLine(NEUTRINO_ICON_BUTTON_MENU, g_Locale->getText(LOCALE_MOVIEPLAYER_HELP_BUTTON_MENU)); + helpbox.addSeparator(); + helpbox.addLine(g_Locale->getText(LOCALE_MOVIEPLAYER_HELP_ADDITIONAL)); + + helpbox.addExitKey(CRCInput::RC_ok); + helpbox.show(); + helpbox.exec(); + helpbox.hide(); } void CMoviePlayerGui::selectChapter() diff --git a/src/gui/movieplayer.h b/src/gui/movieplayer.h index cbe1ed10a..a5a00c35c 100644 --- a/src/gui/movieplayer.h +++ b/src/gui/movieplayer.h @@ -198,7 +198,7 @@ class CMoviePlayerGui : public CMenuTarget bool StartWebtv(); void quickZap(neutrino_msg_t msg); - void showHelpTS(void); + void showHelp(void); void callInfoViewer(bool init_vzap_it = true); void fillPids(); bool getAudioName(int pid, std::string &apidtitle); diff --git a/src/system/locals.h b/src/system/locals.h index 94681d367..d668034cd 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1855,22 +1855,25 @@ typedef enum LOCALE_MOVIEPLAYER_CHAPTERS, LOCALE_MOVIEPLAYER_FILEPLAYBACK, LOCALE_MOVIEPLAYER_HEAD, + LOCALE_MOVIEPLAYER_HELP_ADDITIONAL, + LOCALE_MOVIEPLAYER_HELP_BUTTON_1, + LOCALE_MOVIEPLAYER_HELP_BUTTON_2, + LOCALE_MOVIEPLAYER_HELP_BUTTON_3, + LOCALE_MOVIEPLAYER_HELP_BUTTON_4, + LOCALE_MOVIEPLAYER_HELP_BUTTON_5, + LOCALE_MOVIEPLAYER_HELP_BUTTON_6, + LOCALE_MOVIEPLAYER_HELP_BUTTON_7, + LOCALE_MOVIEPLAYER_HELP_BUTTON_8, + LOCALE_MOVIEPLAYER_HELP_BUTTON_9, + LOCALE_MOVIEPLAYER_HELP_BUTTON_BACKWARD, + LOCALE_MOVIEPLAYER_HELP_BUTTON_FORWARD, + LOCALE_MOVIEPLAYER_HELP_BUTTON_MENU, + LOCALE_MOVIEPLAYER_HELP_BUTTON_PAUSE, + LOCALE_MOVIEPLAYER_HELP_BUTTON_STOP, LOCALE_MOVIEPLAYER_PLUGIN, LOCALE_MOVIEPLAYER_STARTING, LOCALE_MOVIEPLAYER_TITLES, LOCALE_MOVIEPLAYER_TOOMANYBOOKMARKS, - LOCALE_MOVIEPLAYER_TSHELP1, - LOCALE_MOVIEPLAYER_TSHELP10, - LOCALE_MOVIEPLAYER_TSHELP11, - LOCALE_MOVIEPLAYER_TSHELP12, - LOCALE_MOVIEPLAYER_TSHELP2, - LOCALE_MOVIEPLAYER_TSHELP3, - LOCALE_MOVIEPLAYER_TSHELP4, - LOCALE_MOVIEPLAYER_TSHELP5, - LOCALE_MOVIEPLAYER_TSHELP6, - LOCALE_MOVIEPLAYER_TSHELP7, - LOCALE_MOVIEPLAYER_TSHELP8, - LOCALE_MOVIEPLAYER_TSHELP9, LOCALE_MOVIEPLAYER_TSPLAYBACK, LOCALE_MOVIEPLAYER_YTPLAYBACK, LOCALE_MPKEY_AUDIO, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 46b5a0ba0..e4bc718f4 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1855,22 +1855,25 @@ const char * locale_real_names[] = "movieplayer.chapters", "movieplayer.fileplayback", "movieplayer.head", + "movieplayer.help_additional", + "movieplayer.help_button_1", + "movieplayer.help_button_2", + "movieplayer.help_button_3", + "movieplayer.help_button_4", + "movieplayer.help_button_5", + "movieplayer.help_button_6", + "movieplayer.help_button_7", + "movieplayer.help_button_8", + "movieplayer.help_button_9", + "movieplayer.help_button_backward", + "movieplayer.help_button_forward", + "movieplayer.help_button_menu", + "movieplayer.help_button_pause", + "movieplayer.help_button_stop", "movieplayer.plugin", "movieplayer.starting", "movieplayer.titles", "movieplayer.toomanybookmarks", - "movieplayer.tshelp1", - "movieplayer.tshelp10", - "movieplayer.tshelp11", - "movieplayer.tshelp12", - "movieplayer.tshelp2", - "movieplayer.tshelp3", - "movieplayer.tshelp4", - "movieplayer.tshelp5", - "movieplayer.tshelp6", - "movieplayer.tshelp7", - "movieplayer.tshelp8", - "movieplayer.tshelp9", "movieplayer.tsplayback", "movieplayer.ytplayback", "mpkey.audio", From e98c3e428f31da0dc7c4801d7dec0e62f603ace1 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Mon, 5 Dec 2016 10:00:51 +0100 Subject: [PATCH 007/142] Helpbox: add doc Doc was missed. Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/05bbf4d9b5705d2b8eb6d706ce1ee354941f504e Author: Thilo Graf Date: 2016-12-05 (Mon, 05 Dec 2016) --- src/gui/widget/helpbox.h | 89 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 82 insertions(+), 7 deletions(-) diff --git a/src/gui/widget/helpbox.h b/src/gui/widget/helpbox.h index ba42cbf44..ed173f7fa 100644 --- a/src/gui/widget/helpbox.h +++ b/src/gui/widget/helpbox.h @@ -31,6 +31,7 @@ #define HELPBOX_DEFAULT_LINE_HEIGHT 0 // use font height as default #define HELPBOX_DEFAULT_LINE_INDENT OFFSET_INNER_MID +#define HELPBOX_DEFAULT_TEXT_MODE CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH class Helpbox : public CComponentsWindowMax { @@ -44,9 +45,30 @@ private: ///default font Font* hbox_font; public: + /** + * Creates a window with pre defined items added with addLine() or + * inhertited addWindowItem() methods. This allows to add any compatible cc-items types + * e.g. Text, label, infobox, images ... + * NOTE: addLine() members are used only for compatibilty with older implementation + * of lines. + * @param[in] Title + * @li exepts type std::string, defines caption of window + * @param[in] Default_Text + * @li optional: exepts type std::string, defines a pre defined help text + * @param[in] text_mode + * @li optional: exepts type int, defines text modes, see /gui/widget/textbox.h for possible modes + * @param[in] line_height + * @li optional: exepts type int, defines height of line + * @param[in] line_indent + * @li optional: exepts type int, defines lenght of indent from left + * @param[in] font_text + * @li optional: exepts type Font*, default = NULL, this means SNeutrinoSettings::FONT_TYPE_INFOBAR_INFO is used + * @param[in] Icon + * @li exepts type const char*, defins the title bar icon and can be name (see /gui/icons.h) or path to an image file + */ Helpbox( const std::string& Title, const std::string& Default_Text = std::string(), - const int& text_mode = CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, + const int& text_mode = HELPBOX_DEFAULT_TEXT_MODE, const int& line_height = HELPBOX_DEFAULT_LINE_HEIGHT, Font* font_text = NULL, const char* Icon = NEUTRINO_ICON_INFO); @@ -54,35 +76,88 @@ public: ///show = paint, for compatibility void show(bool do_save_bg = true){ paint(do_save_bg) ;} + + /**Adds an item with pre defined text + * @param[in] text + * @li exepts type std::string + * @param[in] text_mode + * @li optional: exepts type int, defines text modes, see /gui/widget/textbox.h for possible modes + * @param[in] line_height + * @li optional: exepts type int, defines height of line + * @param[in] line_indent + * @li optional: exepts type int, defines lenght of indent from left + * @param[in] font_text + * @li optional: exepts type Font*, default = NULL, this means SNeutrinoSettings::FONT_TYPE_INFOBAR_INFO is used + */ void addLine( const std::string& text, - const int& text_mode = CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, + const int& text_mode = HELPBOX_DEFAULT_TEXT_MODE, const int& line_height = HELPBOX_DEFAULT_LINE_HEIGHT, const int& line_indent = HELPBOX_DEFAULT_LINE_INDENT, Font* font_text = NULL); + /**Adds an item with pre defined text + * @param[in] text + * @li exepts type const char * + * @param[in] text_mode + * @li optional: exepts type int, defines text modes, see /gui/widget/textbox.h for possible modes + * @param[in] line_height + * @li optional: exepts type int, defines height of line + * @param[in] line_indent + * @li optional: exepts type int, defines lenght of indent from left + * @param[in] font_text + * @li optional: exepts type Font*, default = NULL, this means SNeutrinoSettings::FONT_TYPE_INFOBAR_INFO is used + */ void addLine( const char *text, - const int& text_mode = CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, + const int& text_mode = HELPBOX_DEFAULT_TEXT_MODE, const int& line_height = HELPBOX_DEFAULT_LINE_HEIGHT, const int& line_indent = HELPBOX_DEFAULT_LINE_INDENT, Font* font_text = NULL); + /**Adds an item with pre defined icon and text + * @param[in] icon + * @li exepts type std::string, icon can be name (see /gui/icons.h) or path to an image file + * @param[in] text + * @li exepts type std::string + * @param[in] text_mode + * @li optional: exepts type int, defines text modes, see /gui/widget/textbox.h for possible modes + * @param[in] line_height + * @li optional: exepts type int, defines height of line + * @param[in] line_indent + * @li optional: exepts type int, defines lenght of indent from left + * @param[in] font_text + * @li optional: exepts type Font*, default = NULL, this means SNeutrinoSettings::FONT_TYPE_INFOBAR_INFO is used + */ void addLine( const std::string& icon, const std::string& text, - const int& text_mode = CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, + const int& text_mode = HELPBOX_DEFAULT_TEXT_MODE, const int& line_height = HELPBOX_DEFAULT_LINE_HEIGHT, const int& line_indent = HELPBOX_DEFAULT_LINE_INDENT, Font* font_text = NULL); + /**Adds an item with pre defined icon and text + * @param[in] icon + * @li exepts type const char *, icon can be name (see /gui/icons.h) or path to an image file + * @param[in] text + * @li exepts type const char * + * @param[in] text_mode + * @li optional: exepts type int, defines text modes, see /gui/widget/textbox.h for possible modes + * @param[in] line_height + * @li optional: exepts type int, defines height of line + * @param[in] line_indent + * @li optional: exepts type int, defines lenght of indent from left + * @param[in] font_text + * @li optional: exepts type Font*, default = NULL, this means SNeutrinoSettings::FONT_TYPE_INFOBAR_INFO is used + */ void addLine( const char *icon, const char *text, - const int& text_mode = CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH, + const int& text_mode = HELPBOX_DEFAULT_TEXT_MODE, const int& line_height = HELPBOX_DEFAULT_LINE_HEIGHT, const int& line_indent = HELPBOX_DEFAULT_LINE_INDENT, Font* font_text = NULL); - + ///adds a separator as horizontal line, arg 'line_height' defines the space of full separator height, the separator line itself has a defined height of 2px and is centered within line space. ///arg 'line_indent' defines begin of line from left border within body object. - ///arg 'enable_gradient' enable/disable gradient, Note: default = true, but gradient is only effected, if global/theme gradient settings are enabled! + ///gradient is only effected, if global/theme gradient settings are enabled! void addSeparatorLine( const int& line_height = HELPBOX_DEFAULT_LINE_HEIGHT, const int& line_indent = HELPBOX_DEFAULT_LINE_INDENT); ///adds a simple empty separator as horizontal space, arg 'line_height' defines the space of full separator height From 1466196ca8bfb79b4537bed250b86895739688e6 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 5 Dec 2016 12:46:01 +0100 Subject: [PATCH 008/142] helpbox: allow multi-line lines Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/1b42318a2a935f8d7c31260b36ebd10d157ef992 Author: vanhofen Date: 2016-12-05 (Mon, 05 Dec 2016) Origin message was: ------------------ - helpbox: allow multi-line lines --- src/gui/widget/helpbox.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/gui/widget/helpbox.cpp b/src/gui/widget/helpbox.cpp index f3f707038..fc0839d4f 100644 --- a/src/gui/widget/helpbox.cpp +++ b/src/gui/widget/helpbox.cpp @@ -75,11 +75,6 @@ void Helpbox::addLine(const std::string& icon, const std::string& text, const in int h_line = getLineHeight(line_height, font); CComponentsFrmChain *line = new CComponentsFrmChain(line_indent, hbox_y, 0, h_line); - if ((hbox_y + h_line)>ccw_body->getHeight()){ - addPagebreak(); - line->setYPos(hbox_y); - } - line->setPageNumber(page); int w_body = ccw_body->getWidth(); line->setWidth(w_body - 2*line_indent); @@ -99,15 +94,31 @@ void Helpbox::addLine(const std::string& icon, const std::string& text, const in line->addCCItem(picon); } + int txt_height = 0; if (!text.empty()){ int x_text = w_picon + (picon ? OFFSET_INNER_MID : 0); - CComponentsText * txt = new CComponentsText(x_text, 0, line->getWidth()-x_text, line->getHeight(), text, text_mode, font); + CComponentsText * txt = new CComponentsText(x_text, 0, line->getWidth()-x_text, 0, text, text_mode, font); #if 0 //"contrast agent", if you want to see where the text items are drawn. txt->setColorBody(COL_RED); txt->doPaintBg(true); #endif + int lines = txt->getCTextBoxObject()->getLines(); + txt_height = std::max(lines*font->getHeight(), h_line); + txt->setHeight(txt_height); + line->addCCItem(txt); } + + if (txt_height > line->getHeight()) + line->setHeight(txt_height); + + if ((hbox_y + line->getHeight()) > ccw_body->getHeight()) + { + addPagebreak(); + line->setYPos(hbox_y); + } + line->setPageNumber(page); + addWindowItem(line); } From 6bf352f8594b6012d44b2f11049fa44cfedc0056 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 5 Dec 2016 12:46:01 +0100 Subject: [PATCH 009/142] locale: more movieplayer additional help text Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/69e34a302023f12f18d5a29239530230986de988 Author: vanhofen Date: 2016-12-05 (Mon, 05 Dec 2016) Origin message was: ------------------ - locale: more movieplayer additional help text --- data/locale/deutsch.locale | 2 +- data/locale/english.locale | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 4e5cf202c..b7c469fdc 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1828,7 +1828,7 @@ movieplayer.bookmarkname_hint2 movieplayer.chapters Kapitel movieplayer.fileplayback Abspielen (Multiformat) movieplayer.head Movieplayer -movieplayer.help_additional Weitere benutzerdefinierte Tastenbelegungen sind unter "Hauptmenü" > "Einstellungen" > "Tasten" > "Bearbeiten" > "Movieplayer" zu finden. +movieplayer.help_additional Weitere benutzerdefinierte Tastenbelegungen sind unter "Hauptmenü" > "Einstellungen" > "Tasten" > "Bearbeiten" > "Movieplayer" zu finden.\n\nWährend der Wiedergabe von Filmen sind im Hauptmenü einige Menüpunkte deaktiviert. movieplayer.help_button_1 1 Minute zurück movieplayer.help_button_2 Zum Filmanfang springen movieplayer.help_button_3 1 Minute vor diff --git a/data/locale/english.locale b/data/locale/english.locale index 0a5d1aff7..a432aedb7 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1828,7 +1828,7 @@ movieplayer.bookmarkname_hint2 movieplayer.chapters Chapters movieplayer.fileplayback File play movieplayer.head Movieplayer -movieplayer.help_additional To find more user definable key bindings, see "Mainmenu" > "Settings" > "Keys" > "Edit" > "Movieplayer". +movieplayer.help_additional To find more user definable key bindings, see "Mainmenu" > "Settings" > "Keys" > "Edit" > "Movieplayer".\n\nWhile movie playback some menuitems in mainmenu are deactivated. movieplayer.help_button_1 1 minute backward movieplayer.help_button_2 Jump to movie's start movieplayer.help_button_3 1 minute forward From f5b43749ee01555c44b46cc6ab24cc76ee69e5e0 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 5 Dec 2016 12:46:01 +0100 Subject: [PATCH 010/142] locale: typo; we shouldn't open Manu XD Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/ca53cbeb531d7c093f34ad32cf79edcdb69a006d Author: vanhofen Date: 2016-12-05 (Mon, 05 Dec 2016) Origin message was: ------------------ - locale: typo; we shouldn't open Manu XD --- data/locale/english.locale | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/locale/english.locale b/data/locale/english.locale index a432aedb7..ac562fa40 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1840,7 +1840,7 @@ movieplayer.help_button_8 Jump to movie's end movieplayer.help_button_9 10 minutes forward movieplayer.help_button_backward Fast rewind movieplayer.help_button_forward Fast forward -movieplayer.help_button_menu Open main manu +movieplayer.help_button_menu Open main menu movieplayer.help_button_pause Pause / Continue movieplayer.help_button_stop Stop movieplayer.plugin Movieplayer plugin From 46f4926631425fe474f36c96409b6a106ddb2fcd Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Fri, 2 Dec 2016 22:33:24 +0100 Subject: [PATCH 011/142] Sort locales Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/fd21f574062bb39ad6098ade8a676e8dd49e7d35 Author: Michael Liebmann Date: 2016-12-02 (Fri, 02 Dec 2016) --- data/locale/nederlands.locale | 2 +- data/locale/slovak.locale | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/locale/nederlands.locale b/data/locale/nederlands.locale index 6450a1866..dcd277284 100644 --- a/data/locale/nederlands.locale +++ b/data/locale/nederlands.locale @@ -2201,9 +2201,9 @@ timing.infobar_movieplayer Infobalk (film modus) timing.infobar_radio Infobalk (radio modus) timing.menu Menu timing.numericzap Numeriek Zap -timing.volumebar Volume balk timing.popup_messages Popup messages timing.static_messages Interactive messages +timing.volumebar Volume balk tmdb.read_data Zoeken TMDB data... unicable.lnb Invoer Unicable unicable.qrg Unicable Frequentie diff --git a/data/locale/slovak.locale b/data/locale/slovak.locale index 194fb3a84..1eb61286d 100644 --- a/data/locale/slovak.locale +++ b/data/locale/slovak.locale @@ -2402,9 +2402,9 @@ timing.infobar_movieplayer Stavový riadok (filmový mód) timing.infobar_radio Stavový riadok (rádio mód) timing.menu Ponuka timing.numericzap Prepínanie číslami -timing.volumebar Ukazateľ hlasitosti timing.popup_messages Popup messages timing.static_messages Interactive messages +timing.volumebar Ukazateľ hlasitosti tmdb.api_key TMDb API kľúč tmdb.enabled TMDb podpora tmdb.read_data Vyhľadávanie údajov TMDB... From bb379055880ec1498d5d441e02c1889374401a7e Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Mon, 5 Dec 2016 14:19:06 +0100 Subject: [PATCH 012/142] MoviePlayer: Rework enable/disable of osd time, file time and mute icon Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/2045e91c475c87a8a097320efc641eaff2f03a36 Author: Michael Liebmann Date: 2016-12-05 (Mon, 05 Dec 2016) --- src/gui/movieplayer.cpp | 73 +++++++++++++++++++++++------------------ src/gui/movieplayer.h | 6 +++- 2 files changed, 46 insertions(+), 33 deletions(-) diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index 9e80fdb4f..3e6f8daaf 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -83,6 +83,8 @@ extern CVolume* g_volume; #define TIMESHIFT_SECONDS 3 #define ISO_MOUNT_POINT "/media/iso" +#define MUTE true +#define NO_MUTE false CMoviePlayerGui* CMoviePlayerGui::instance_mp = NULL; CMoviePlayerGui* CMoviePlayerGui::instance_bg = NULL; @@ -204,6 +206,8 @@ void CMoviePlayerGui::Init(void) blockedFromPlugin = false; m_screensaver = false; m_idletime = time(NULL); + m_mode = CTimeOSD::MODE_HIDE; + m_restore = false; } void CMoviePlayerGui::cutNeutrino() @@ -458,10 +462,31 @@ void CMoviePlayerGui::ClearQueue() milist.clear(); } -void CMoviePlayerGui::EnableClockAndMute(bool enable) + +void CMoviePlayerGui::enableOsdElements(bool mute) { - CAudioMute::getInstance()->enableMuteIcon(enable); - CInfoClock::getInstance()->enableInfoClock(enable); + if (mute) + CAudioMute::getInstance()->enableMuteIcon(true); + + CInfoClock::getInstance()->enableInfoClock(true); + + if (m_restore) { + FileTime.setMode(m_mode); + FileTime.update(position, duration); + } +} + +void CMoviePlayerGui::disableOsdElements(bool mute) +{ + if (mute) + CAudioMute::getInstance()->enableMuteIcon(false); + + CInfoClock::getInstance()->enableInfoClock(false); + + m_mode = FileTime.getMode(); + m_restore = FileTime.IsVisible(); + if (m_restore) + FileTime.kill(); } void CMoviePlayerGui::makeFilename() @@ -565,7 +590,7 @@ bool CMoviePlayerGui::SelectFile() } #endif else if (isMovieBrowser) { - EnableClockAndMute(false); + disableOsdElements(MUTE); if (moviebrowser->exec(Path_local.c_str())) { Path_local = moviebrowser->getCurrentDir(); CFile *file = NULL; @@ -585,9 +610,9 @@ bool CMoviePlayerGui::SelectFile() ret = prepareFile(&p_movie_info->file); } else menu_ret = moviebrowser->getMenuRet(); - EnableClockAndMute(true); + enableOsdElements(MUTE); } else { // filebrowser - EnableClockAndMute(false); + disableOsdElements(MUTE); while (ret == false && filebrowser->exec(Path_local.c_str()) == true) { Path_local = filebrowser->getCurrentDir(); CFile *file = NULL; @@ -609,7 +634,7 @@ bool CMoviePlayerGui::SelectFile() } } menu_ret = filebrowser->getMenuRet(); - EnableClockAndMute(true); + enableOsdElements(MUTE); } g_settings.network_nfs_moviedir = Path_local; @@ -1199,7 +1224,7 @@ bool CMoviePlayerGui::PlayFileStart(void) if (is_file_player) selectAutoLang(); - EnableClockAndMute(true); + enableOsdElements(MUTE); return res; } @@ -1400,7 +1425,7 @@ void CMoviePlayerGui::PlayFileLoop(void) if (timeshift == TSHIFT_MODE_OFF) callInfoViewer(); } else if (!filelist.empty()) { - EnableClockAndMute(false); + disableOsdElements(MUTE); CFileBrowser *playlist = new CFileBrowser(); CFile *pfile = NULL; pfile = &(*filelist_it); @@ -1423,7 +1448,7 @@ void CMoviePlayerGui::PlayFileLoop(void) filelist_it = filelist.begin() + selected; } delete playlist; - EnableClockAndMute(true); + enableOsdElements(MUTE); } } else if (msg == (neutrino_msg_t) g_settings.mpkey_pause) { if (playstate == CMoviePlayerGui::PAUSE) { @@ -1524,14 +1549,12 @@ void CMoviePlayerGui::PlayFileLoop(void) SetPosition(1000 * (hh * 3600 + mm * 60 + ss), true); } else if (msg == CRCInput::RC_help) { + disableOsdElements(NO_MUTE); showHelp(); + enableOsdElements(NO_MUTE); } else if (msg == CRCInput::RC_info) { if (fromInfoviewer) { - CTimeOSD::mode m_mode = FileTime.getMode(); - bool restore = FileTime.IsVisible(); - if (restore) - FileTime.kill(); - CInfoClock::getInstance()->enableInfoClock(false); + disableOsdElements(NO_MUTE); #ifdef ENABLE_LUA if (isLuaPlay && haveLuaInfoFunc) { int xres = 0, yres = 0, aspectRatio = 0, framerate = -1; @@ -1550,11 +1573,7 @@ void CMoviePlayerGui::PlayFileLoop(void) } #endif fromInfoviewer = false; - CInfoClock::getInstance()->enableInfoClock(true); - if (restore) { - FileTime.setMode(m_mode); - FileTime.update(position, duration); - } + enableOsdElements(NO_MUTE); } else callInfoViewer(); @@ -2167,19 +2186,9 @@ void CMoviePlayerGui::handleMovieBrowser(neutrino_msg_t msg, int /*position*/) } } } else if (msg == NeutrinoMessages::SHOW_EPG && p_movie_info) { - CTimeOSD::mode m_mode = FileTime.getMode(); - bool restore = FileTime.IsVisible(); - if (restore) - FileTime.kill(); - CInfoClock::getInstance()->enableInfoClock(false); - + disableOsdElements(NO_MUTE); g_EpgData->show_mp(p_movie_info, position, duration); - - CInfoClock::getInstance()->enableInfoClock(true); - if (restore) { - FileTime.setMode(m_mode); - FileTime.update(position, duration); - } + enableOsdElements(NO_MUTE); } return; } diff --git a/src/gui/movieplayer.h b/src/gui/movieplayer.h index a5a00c35c..c87a71d18 100644 --- a/src/gui/movieplayer.h +++ b/src/gui/movieplayer.h @@ -189,6 +189,9 @@ class CMoviePlayerGui : public CMenuTarget static CMoviePlayerGui* instance_mp; static CMoviePlayerGui* instance_bg; + CTimeOSD::mode m_mode; + bool m_restore; + void Init(void); void PlayFile(); bool PlayFileStart(); @@ -221,7 +224,8 @@ class CMoviePlayerGui : public CMenuTarget void Cleanup(); void ClearFlags(); void ClearQueue(); - void EnableClockAndMute(bool enable); + void enableOsdElements(bool mute); + void disableOsdElements(bool mute); static void *ShowStartHint(void *arg); static void* bgPlayThread(void *arg); static bool sortStreamList(livestream_info_t info1, livestream_info_t info2); From fef2ade749bbf1e78be0635beab3f8a1dc0861bc Mon Sep 17 00:00:00 2001 From: vanhofen Date: Tue, 6 Dec 2016 09:54:56 +0100 Subject: [PATCH 013/142] eventlist: fix icon-alignment ... some small text-alignment fixes; use OFFSET defines Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/9d949c7074dae2930ecc422144814abfbab19b61 Author: vanhofen Date: 2016-12-06 (Tue, 06 Dec 2016) Origin message was: ------------------ - eventlist: fix icon-alignment ... some small text-alignment fixes; use OFFSET defines --- src/gui/eventlist.cpp | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/gui/eventlist.cpp b/src/gui/eventlist.cpp index b690d68ff..741ec77fd 100644 --- a/src/gui/eventlist.cpp +++ b/src/gui/eventlist.cpp @@ -286,9 +286,9 @@ int CEventList::exec(const t_channel_id channel_id, const std::string& channelna fheight2 = std::max( h1, h2 ); } unit_short_minute = g_Locale->getText(LOCALE_UNIT_SHORT_MINUTE); - fheight = fheight1 + fheight2 + 2; + fheight = fheight1 + fheight2 + OFFSET_INNER_MIN; fwidth1 = g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_DATETIME]->getRenderWidth("DDD, :, ") + 4 * g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_DATETIME]->getMaxDigitWidth(); - fwidth2 = g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMSMALL]->getRenderWidth("[ ] ") + 3 * g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMSMALL]->getMaxDigitWidth() + g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMSMALL]->getRenderWidth(unit_short_minute); + //fwidth2 = g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMSMALL]->getRenderWidth("[ ] ") + 3 * g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMSMALL]->getMaxDigitWidth() + g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMSMALL]->getRenderWidth(unit_short_minute); listmaxshow = (height-theight-iheight-0)/fheight; height = theight+iheight+0+listmaxshow*fheight; // recalc height @@ -710,7 +710,7 @@ CTimerd::CTimerEventTypes CEventList::isScheduled(t_channel_id channel_id, CChan void CEventList::paintItem(unsigned int pos, t_channel_id channel_idI) { - int ypos = y+ theight+0 + pos*fheight; + int ypos = y+ theight + pos*fheight; unsigned int currpos = liststart + pos; bool i_selected = currpos == selected; @@ -755,18 +755,19 @@ void CEventList::paintItem(unsigned int pos, t_channel_id channel_idI) // 1st line int fwidth1a=g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_DATETIME]->getRenderWidth(datetime1_str); + fwidth2 = g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMSMALL]->getRenderWidth(duration_str); - g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_DATETIME]->RenderString(x+5, ypos+ fheight1+3, fwidth1a, datetime1_str, color); + g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_DATETIME]->RenderString(x + OFFSET_INNER_SMALL, ypos + OFFSET_INNER_MIN + fheight2, fwidth1a, datetime1_str, color); int seit = ( evtlist[currpos].startTime - time(NULL) ) / 60; if ( (seit> 0) && (seit<100) && (!duration_str.empty()) ) { char beginnt[100]; snprintf(beginnt, sizeof(beginnt), "%s %d %s", g_Locale->getText(LOCALE_WORD_IN), seit, unit_short_minute); - int w = g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMSMALL]->getRenderWidth(beginnt) + 10; - g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMSMALL]->RenderString(x+width-fwidth2-5- 20- w, ypos+ fheight1+3, w, beginnt, color); + int w = g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMSMALL]->getRenderWidth(beginnt); + g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMSMALL]->RenderString(x + width - 15 - 2*OFFSET_INNER_MID - fwidth2 - w, ypos + OFFSET_INNER_MIN + fheight2, w, beginnt, color); } - g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMSMALL]->RenderString(x+width-fwidth2-5- 20, ypos+ fheight1+3, fwidth2, duration_str, color); + g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMSMALL]->RenderString(x + width - 15 - OFFSET_INNER_MID - fwidth2, ypos + OFFSET_INNER_MIN + fheight2, fwidth2, duration_str, color); // 2nd line // set status icons @@ -780,28 +781,28 @@ void CEventList::paintItem(unsigned int pos, t_channel_id channel_idI) if (timerID > 0 && CRecordManager::getInstance()->CheckRecordingId_if_Timeshift(timerID)) icontype = NEUTRINO_ICON_AUTO_SHIFT; } - int iw = 0, ih; + int iw = 0, ih = 0; if(icontype != 0) { frameBuffer->getIconSize(icontype, &iw, &ih); - frameBuffer->paintIcon(icontype, x+5, ypos + fheight1+3 - (fheight1 - ih)/2, fheight1); + frameBuffer->paintIcon(icontype, x + OFFSET_INNER_MID, ypos + OFFSET_INNER_MIN + fheight2, fheight1); + iw += OFFSET_INNER_MID; } // detecting timer conflict and set start position of event text depending of possible painted icon bool conflict = HasTimerConflicts(evtlist[currpos].startTime, evtlist[currpos].duration, &item_event_ID); - int i2w = 0, i2h; //printf ("etype %d , conflicts %d -> %s, conflict event_ID %d -> current event_ID %d\n", etype, conflict, evtlist[currpos].description.c_str(), item_event_ID, evtlist[currpos].eventID); - //TODO: solution for zapto timer events + int i2w = 0, i2h = 0; if (conflict && item_event_ID != evtlist[currpos].eventID) { //paint_warning = true; frameBuffer->getIconSize(NEUTRINO_ICON_IMPORTANT, &i2w, &i2h); - frameBuffer->paintIcon(NEUTRINO_ICON_IMPORTANT, x+iw+7, ypos + fheight1+3 - (fheight1 - i2h)/2, fheight1); - iw += i2w+4; + frameBuffer->paintIcon(NEUTRINO_ICON_IMPORTANT, x + iw + OFFSET_INNER_MID, ypos + OFFSET_INNER_MIN + fheight2, fheight1); + iw += i2w + OFFSET_INNER_MID; } // paint 2nd line text - g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMLARGE]->RenderString(x+10+iw, ypos+ fheight, width- 25- 20 -iw, evtlist[currpos].description, color); + g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMLARGE]->RenderString(x + iw + OFFSET_INNER_MID, ypos + fheight, width - iw - 2*OFFSET_INNER_MID, evtlist[currpos].description, color); } } From 0c5dd0ef44bb662711c1e12c4851946d93dea415 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Tue, 6 Dec 2016 11:16:11 +0100 Subject: [PATCH 014/142] CMovieBrowser: add missing context buttons No user can see anything about available submenu and help window, because access to help via submenu is not longer possible since a394d17fb892d2efcb81c38bd3e0cbcc712ef3c7 Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/bb895befefd40327b2b38ec9fbdac23aaa3f8095 Author: Thilo Graf Date: 2016-12-06 (Tue, 06 Dec 2016) --- src/gui/moviebrowser/mb.cpp | 25 ++++++++++++++++--------- src/gui/moviebrowser/mb.h | 1 + 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/gui/moviebrowser/mb.cpp b/src/gui/moviebrowser/mb.cpp index 83ff5f6c0..9650ce603 100644 --- a/src/gui/moviebrowser/mb.cpp +++ b/src/gui/moviebrowser/mb.cpp @@ -263,6 +263,9 @@ CMovieBrowser::~CMovieBrowser() if (m_movieCover) delete m_movieCover; + + if (m_header) + delete m_header; m_header = NULL; } void CMovieBrowser::clearListLines() @@ -330,6 +333,7 @@ void CMovieBrowser::init(void) m_pcInfo1 = NULL; m_pcInfo2 = NULL; m_pcFilter = NULL; + m_header = NULL; m_windowFocus = MB_FOCUS_BROWSER; m_textTitle = g_Locale->getText(LOCALE_MOVIEBROWSER_HEAD); @@ -1069,10 +1073,11 @@ int CMovieBrowser::exec(const char* path) void CMovieBrowser::hide(void) { //TRACE("[mb]->%s\n", __func__); - if (m_channelLogo) - { - delete m_channelLogo; - m_channelLogo = NULL; + if (m_channelLogo){ + delete m_channelLogo; m_channelLogo = NULL; + } + if (m_header) { + delete m_header; m_header = NULL; } old_EpgId = 0; framebuffer->paintBackground(); @@ -1313,7 +1318,7 @@ void CMovieBrowser::refreshChannelLogo(void) int x = m_cBoxFrame.iX + m_cBoxFrameTitleRel.iX + m_cBoxFrameTitleRel.iWidth - m_channelLogo->getWidth() - OFFSET_INNER_MID; int y = m_cBoxFrame.iY + m_cBoxFrameTitleRel.iY + (m_cBoxFrameTitleRel.iHeight - m_channelLogo->getHeight())/2; - m_channelLogo->setXPos(x - pb_hdd_offset); + m_channelLogo->setXPos(x - pb_hdd_offset - m_header->getContextBtnObject()->getWidth()); m_channelLogo->setYPos(y); m_channelLogo->hide(); m_channelLogo->paint(); @@ -1543,7 +1548,7 @@ void CMovieBrowser::info_hdd_level(bool paint_hdd) tmp_blocks_percent_used = blocks_percent_used; const short pbw = 100; const short border = m_cBoxFrameTitleRel.iHeight/4; - CProgressBar pb(m_cBoxFrame.iX+ m_cBoxFrameFootRel.iWidth - pbw - border, m_cBoxFrame.iY+m_cBoxFrameTitleRel.iY + border, pbw, m_cBoxFrameTitleRel.iHeight/2); + CProgressBar pb(m_cBoxFrame.iX+ m_cBoxFrameFootRel.iWidth - m_header->getContextBtnObject()->getWidth() - pbw - border, m_cBoxFrame.iY+m_cBoxFrameTitleRel.iY + border, pbw, m_cBoxFrameTitleRel.iHeight/2); pb.setType(CProgressBar::PB_REDRIGHT); pb.setValues(blocks_percent_used, 100); pb.paint(false); @@ -1830,9 +1835,11 @@ void CMovieBrowser::refreshTitle(void) int w = m_cBoxFrameTitleRel.iWidth; int h = m_cBoxFrameTitleRel.iHeight; - CComponentsHeader header(x, y, w, h, title.c_str(), icon); - header.paint(CC_SAVE_SCREEN_NO); - newHeader = header.isPainted(); + if (!m_header){ + m_header = new CComponentsHeader(x, y, w, h, title.c_str(), icon, CComponentsHeader::CC_BTN_HELP | CComponentsHeader::CC_BTN_MENU); + } + m_header->paint(CC_SAVE_SCREEN_NO); + newHeader = m_header->isPainted(); info_hdd_level(true); } diff --git a/src/gui/moviebrowser/mb.h b/src/gui/moviebrowser/mb.h index b5f224185..176c34f7f 100644 --- a/src/gui/moviebrowser/mb.h +++ b/src/gui/moviebrowser/mb.h @@ -163,6 +163,7 @@ class CMovieBrowser : public CMenuTarget CBox m_cBoxFrameFootRel; CBox m_cBoxFrameTitleRel; + CComponentsHeader *m_header; CComponentsDetailLine *m_detailsLine; CComponentsChannelLogo *m_channelLogo; CComponentsPicture *m_movieCover; From 0aac3d794983eb180639fa15e61ee8fcb50da57b Mon Sep 17 00:00:00 2001 From: TangoCash Date: Tue, 6 Dec 2016 11:29:11 +0100 Subject: [PATCH 015/142] cc_frm correct scroll direction if more than 2 pages (thx dbo) Signed-off-by: Thilo Graf picked from: github.com/TangoCash/neutrino-mp-cst-next commit: abce1c6be4bae17f343d3ff878670184708aa185 Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/0c4c90bf2e6dd7df9751dd61ab755bd3e61f5c43 Author: TangoCash Date: 2016-12-06 (Tue, 06 Dec 2016) --- src/gui/components/cc_frm.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/components/cc_frm.cpp b/src/gui/components/cc_frm.cpp index 3efb2da8b..a1ae03b04 100644 --- a/src/gui/components/cc_frm.cpp +++ b/src/gui/components/cc_frm.cpp @@ -636,9 +636,9 @@ void CComponentsForm::ScrollPage(int direction, bool do_paint) int target_page_id = (int)page_count - 1; int target_page = (int)cur_page; - if (direction == SCROLL_P_DOWN) + if (direction == SCROLL_P_UP) target_page = target_page+1 > target_page_id ? 0 : target_page+1; - else if (direction == SCROLL_P_UP) + else if (direction == SCROLL_P_DOWN) target_page = target_page-1 < 0 ? target_page_id : target_page-1; if (do_paint) From 81fd1ad23a6ec1ec1ae619895170eacd671f1c88 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Tue, 6 Dec 2016 12:17:04 +0100 Subject: [PATCH 016/142] CMovieBrowser: remove context menu button I forgot, it's already in footer Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/5dacec7dee4053bd541fcb7fe85f5f11fc28da34 Author: Thilo Graf Date: 2016-12-06 (Tue, 06 Dec 2016) --- src/gui/moviebrowser/mb.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/moviebrowser/mb.cpp b/src/gui/moviebrowser/mb.cpp index 9650ce603..169ce1600 100644 --- a/src/gui/moviebrowser/mb.cpp +++ b/src/gui/moviebrowser/mb.cpp @@ -1836,7 +1836,7 @@ void CMovieBrowser::refreshTitle(void) int h = m_cBoxFrameTitleRel.iHeight; if (!m_header){ - m_header = new CComponentsHeader(x, y, w, h, title.c_str(), icon, CComponentsHeader::CC_BTN_HELP | CComponentsHeader::CC_BTN_MENU); + m_header = new CComponentsHeader(x, y, w, h, title.c_str(), icon, CComponentsHeader::CC_BTN_HELP); } m_header->paint(CC_SAVE_SCREEN_NO); newHeader = m_header->isPainted(); From 6d7d84e63435d2b52acb6587e0d0e204cfbb15a1 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Tue, 6 Dec 2016 15:49:36 +0100 Subject: [PATCH 017/142] src/zapit/src/femanager.cpp init sat_config_t delsys Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/f5e00f277ab25eecafbb4a49fe5391a902a77291 Author: Jacek Jendrzej Date: 2016-12-06 (Tue, 06 Dec 2016) --- src/zapit/src/femanager.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/zapit/src/femanager.cpp b/src/zapit/src/femanager.cpp index 19ce3e70a..c79f34153 100644 --- a/src/zapit/src/femanager.cpp +++ b/src/zapit/src/femanager.cpp @@ -309,6 +309,7 @@ bool CFEManager::loadSettings() satconfig.use_usals = 0; satconfig.input = 0; satconfig.configured = 0; + satconfig.delsys = UNKNOWN_DS; satmap.insert(satellite_pair_t(position, satconfig)); From d2f4ae06e264f1797d8bc9ce4d30e5cea73da01b Mon Sep 17 00:00:00 2001 From: vanhofen Date: Wed, 7 Dec 2016 10:36:47 +0100 Subject: [PATCH 018/142] icons: move icons into categorized subdirectories Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/d5ca9aa0bdcc97b1092e62886812c4d4d0064118 Author: vanhofen Date: 2016-12-07 (Wed, 07 Dec 2016) Origin message was: ------------------ - icons: move icons into categorized subdirectories --- configure.ac | 17 + data/Makefile.am | 13 +- data/icons/Makefile.am | 290 +----------------- data/icons/audioplay.png | Bin 29537 -> 0 bytes data/icons/{ => buttons}/0.png | Bin data/icons/{ => buttons}/1.png | Bin data/icons/{ => buttons}/2.png | Bin data/icons/{ => buttons}/3.png | Bin data/icons/{ => buttons}/4.png | Bin data/icons/{ => buttons}/5.png | Bin data/icons/{ => buttons}/6.png | Bin data/icons/{ => buttons}/7.png | Bin data/icons/{ => buttons}/8.png | Bin data/icons/{ => buttons}/9.png | Bin data/icons/buttons/Makefile.am | 42 +++ data/icons/{ => buttons}/blau.png | Bin data/icons/{ => buttons}/btn_backward.png | Bin data/icons/{ => buttons}/btn_forward.png | Bin data/icons/{ => buttons}/btn_pause.png | Bin data/icons/{ => buttons}/btn_play.png | Bin .../icons/{ => buttons}/btn_record_active.png | Bin .../{ => buttons}/btn_record_inactive.png | Bin data/icons/{ => buttons}/btn_stop.png | Bin data/icons/{ => buttons}/down.png | Bin data/icons/{ => buttons}/dummy.png | Bin data/icons/{ => buttons}/dummy_small.png | Bin data/icons/{ => buttons}/gelb.png | Bin data/icons/{ => buttons}/gruen.png | Bin data/icons/{ => buttons}/help.png | Bin data/icons/{ => buttons}/help_small.png | Bin data/icons/{ => buttons}/home.png | Bin data/icons/{ => buttons}/info.png | Bin data/icons/{ => buttons}/info_small.png | Bin data/icons/{ => buttons}/left.png | Bin data/icons/{ => buttons}/menu.png | Bin data/icons/{ => buttons}/menu_small.png | Bin data/icons/{ => buttons}/mute_small.png | Bin data/icons/{ => buttons}/mute_zap_gray.png | Bin data/icons/{ => buttons}/mute_zap_green.png | Bin data/icons/{ => buttons}/ok.png | Bin data/icons/{ => buttons/orphaned}/0-green.png | Bin data/icons/{ => buttons/orphaned}/0-red.png | Bin data/icons/{ => buttons/orphaned}/1-green.png | Bin data/icons/{ => buttons/orphaned}/1-red.png | Bin data/icons/{ => buttons/orphaned}/2-green.png | Bin data/icons/{ => buttons/orphaned}/2-red.png | Bin data/icons/{ => buttons/orphaned}/3-green.png | Bin data/icons/{ => buttons/orphaned}/3-red.png | Bin data/icons/{ => buttons/orphaned}/4-green.png | Bin data/icons/{ => buttons/orphaned}/4-red.png | Bin data/icons/{ => buttons/orphaned}/5-green.png | Bin data/icons/{ => buttons/orphaned}/5-red.png | Bin data/icons/{ => buttons/orphaned}/6-green.png | Bin data/icons/{ => buttons/orphaned}/6-red.png | Bin data/icons/{ => buttons/orphaned}/7-green.png | Bin data/icons/{ => buttons/orphaned}/7-red.png | Bin data/icons/{ => buttons/orphaned}/8-green.png | Bin data/icons/{ => buttons/orphaned}/8-red.png | Bin data/icons/{ => buttons/orphaned}/9-green.png | Bin data/icons/{ => buttons/orphaned}/9-red.png | Bin .../{ => buttons/orphaned}/longpress.png | Bin data/icons/{ => buttons}/power.png | Bin data/icons/{ => buttons}/right.png | Bin data/icons/{ => buttons}/rot.png | Bin data/icons/{ => buttons}/up.png | Bin data/icons/filetypes/Makefile.am | 6 + data/icons/{ => filetypes}/file.png | Bin data/icons/{ => filetypes}/folder.png | Bin data/icons/{ => filetypes}/movie.png | Bin data/icons/headers/Makefile.am | 31 ++ data/icons/{ => headers}/audio.png | Bin data/icons/{ => headers}/bookmarkmanager.png | Bin data/icons/{ => headers}/colors.png | Bin data/icons/{ => headers}/error.png | Bin data/icons/{ => headers}/features.png | Bin data/icons/{ => headers}/games.png | Bin data/icons/{ => headers}/icon_blue.png | Bin data/icons/{ => headers}/icon_green.png | Bin data/icons/{ => headers}/icon_movieplayer.png | Bin data/icons/{ => headers}/icon_red.png | Bin data/icons/{ => headers}/icon_yellow.png | Bin data/icons/{ => headers}/icon_ytplay.png | Bin data/icons/{ => headers}/information.png | Bin data/icons/{ => headers}/keybinding.png | Bin data/icons/{ => headers}/language.png | Bin data/icons/{ => headers}/lcd.png | Bin data/icons/{ => headers}/mainmenue.png | Bin data/icons/{ => headers}/mp3.png | Bin data/icons/{ => headers}/multimedia.png | Bin data/icons/{ => headers}/network.png | Bin data/icons/{ => headers}/personalize.png | Bin data/icons/{ => headers}/recording.png | Bin data/icons/{ => headers}/settings.png | Bin data/icons/{ => headers}/shell.png | Bin data/icons/{ => headers}/softupdate.png | Bin data/icons/{ => headers}/streaming.png | Bin data/icons/{ => headers}/timer.png | Bin data/icons/{ => headers}/upnp.png | Bin data/icons/{ => headers}/video.png | Bin data/icons/hints/Makefile.am | 52 ++++ data/icons/{ => hints}/hint_a_pic.png | Bin data/icons/{ => hints}/hint_adzap.png | Bin data/icons/{ => hints}/hint_aplay.png | Bin data/icons/{ => hints}/hint_audio.png | Bin data/icons/{ => hints}/hint_back.png | Bin data/icons/{ => hints}/hint_bedit.png | Bin data/icons/{ => hints}/hint_ci.png | Bin data/icons/{ => hints}/hint_dboxinfo.png | Bin data/icons/{ => hints}/hint_delete.png | Bin data/icons/{ => hints}/hint_extended.png | Bin data/icons/{ => hints}/hint_fileplay.png | Bin data/icons/{ => hints}/hint_games.png | Bin data/icons/{ => hints}/hint_hdd.png | Bin data/icons/{ => hints}/hint_imageinfo.png | Bin data/icons/{ => hints}/hint_inetradio.png | Bin data/icons/{ => hints}/hint_info.png | Bin data/icons/{ => hints}/hint_keys.png | Bin data/icons/{ => hints}/hint_language.png | Bin data/icons/{ => hints}/hint_manage.png | Bin data/icons/{ => hints}/hint_mb.png | Bin data/icons/{ => hints}/hint_media.png | Bin data/icons/{ => hints}/hint_movie.png | Bin data/icons/{ => hints}/hint_network.png | Bin data/icons/{ => hints}/hint_next.png | Bin data/icons/{ => hints}/hint_nkplay.png | Bin data/icons/{ => hints}/hint_osd.png | Bin data/icons/{ => hints}/hint_personalize.png | Bin data/icons/{ => hints}/hint_picview.png | Bin data/icons/{ => hints}/hint_plugin.png | Bin data/icons/{ => hints}/hint_protection.png | Bin data/icons/{ => hints}/hint_radiomode.png | Bin data/icons/{ => hints}/hint_rass.png | Bin data/icons/{ => hints}/hint_reboot.png | Bin data/icons/{ => hints}/hint_recording.png | Bin data/icons/{ => hints}/hint_reload.png | Bin data/icons/{ => hints}/hint_restart.png | Bin data/icons/{ => hints}/hint_save.png | Bin data/icons/{ => hints}/hint_scan.png | Bin data/icons/{ => hints}/hint_scripts.png | Bin data/icons/{ => hints}/hint_service.png | Bin data/icons/{ => hints}/hint_settings.png | Bin data/icons/{ => hints}/hint_shutdown.png | Bin data/icons/{ => hints}/hint_sleeptimer.png | Bin data/icons/{ => hints}/hint_spark.png | Bin data/icons/{ => hints}/hint_streaminfo.png | Bin data/icons/{ => hints}/hint_swupdate.png | Bin data/icons/{ => hints}/hint_timers.png | Bin data/icons/{ => hints}/hint_tvmode.png | Bin .../icons/{ => hints}/hint_tvradio_switch.png | Bin data/icons/{ => hints}/hint_vfd.png | Bin data/icons/{ => hints}/hint_video.png | Bin data/icons/{ => hints}/hint_ytplay.png | Bin data/icons/icon_nkplay.png | Bin 2884 -> 0 bytes data/icons/local.png | Bin 137 -> 0 bytes data/icons/locale/Makefile.am | 23 ++ .../locale/{unmaintained => }/nederlands.png | Bin .../locale/{unmaintained => }/slovak.png | Bin data/icons/movieplayer/Makefile.am | 9 + data/icons/{ => movieplayer}/mp_b-skip.png | Bin data/icons/{ => movieplayer}/mp_f-skip.png | Bin data/icons/{ => movieplayer}/mp_pause.png | Bin data/icons/{ => movieplayer}/mp_play.png | Bin .../{ => movieplayer}/mp_play_repeat_all.png | Bin .../mp_play_repeat_track.png | Bin data/icons/notyet.png | Bin 96 -> 0 bytes data/icons/radar/Makefile.am | 15 + data/icons/{ => radar}/radar.pal | Bin data/icons/{ => radar}/radar0.raw | Bin data/icons/{ => radar}/radar1.raw | Bin data/icons/{ => radar}/radar2.raw | Bin data/icons/{ => radar}/radar3.raw | Bin data/icons/{ => radar}/radar4.raw | Bin data/icons/{ => radar}/radar5.raw | Bin data/icons/{ => radar}/radar6.raw | Bin data/icons/{ => radar}/radar7.raw | Bin data/icons/{ => radar}/radar8.raw | Bin data/icons/{ => radar}/radar9.raw | Bin data/icons/{ => radar}/radar_red.pal | Bin data/icons/slider/Makefile.am | 9 + data/icons/{ => slider}/volumebody.png | Bin data/icons/{ => slider}/volumeslider2.png | Bin .../icons/{ => slider}/volumeslider2alpha.png | Bin data/icons/{ => slider}/volumeslider2blue.png | Bin .../icons/{ => slider}/volumeslider2green.png | Bin data/icons/{ => slider}/volumeslider2red.png | Bin data/icons/status/Makefile.am | 5 + data/icons/status/ca/Makefile.am | 36 +++ data/icons/{ => status/ca}/biss_green.png | Bin data/icons/{ => status/ca}/biss_white.png | Bin data/icons/{ => status/ca}/biss_yellow.png | Bin data/icons/{ => status/ca}/conax_green.png | Bin data/icons/{ => status/ca}/conax_white.png | Bin data/icons/{ => status/ca}/conax_yellow.png | Bin data/icons/{ => status/ca}/cw_green.png | Bin data/icons/{ => status/ca}/cw_white.png | Bin data/icons/{ => status/ca}/cw_yellow.png | Bin data/icons/{ => status/ca}/d_green.png | Bin data/icons/{ => status/ca}/d_white.png | Bin data/icons/{ => status/ca}/d_yellow.png | Bin data/icons/{ => status/ca}/ird_green.png | Bin data/icons/{ => status/ca}/ird_white.png | Bin data/icons/{ => status/ca}/ird_yellow.png | Bin data/icons/{ => status/ca}/nagra_green.png | Bin data/icons/{ => status/ca}/nagra_white.png | Bin data/icons/{ => status/ca}/nagra_yellow.png | Bin data/icons/{ => status/ca}/nds_green.png | Bin data/icons/{ => status/ca}/nds_white.png | Bin data/icons/{ => status/ca}/nds_yellow.png | Bin data/icons/{ => status/ca}/powervu_green.png | Bin data/icons/{ => status/ca}/powervu_white.png | Bin data/icons/{ => status/ca}/powervu_yellow.png | Bin data/icons/{ => status/ca}/seca_green.png | Bin data/icons/{ => status/ca}/seca_white.png | Bin data/icons/{ => status/ca}/seca_yellow.png | Bin data/icons/{ => status/ca}/via_green.png | Bin data/icons/{ => status/ca}/via_white.png | Bin data/icons/{ => status/ca}/via_yellow.png | Bin data/icons/{ => status/ca}/x_green.png | Bin data/icons/{ => status/ca}/x_white.png | Bin data/icons/{ => status/ca}/x_yellow.png | Bin data/icons/{ => status/channel}/16_9.png | Bin data/icons/{ => status/channel}/16_9_gray.png | Bin data/icons/status/channel/Makefile.am | 37 +++ data/icons/{ => status/channel}/ca2.png | Bin data/icons/{ => status/channel}/ca2_gray.png | Bin data/icons/{ => status/channel}/dd.png | Bin data/icons/{ => status/channel}/dd_avail.png | Bin data/icons/{ => status/channel}/dd_gray.png | Bin .../{ => status/channel}/radiotextget.png | Bin .../{ => status/channel}/radiotextoff.png | Bin .../{ => status/channel}/radiotextwait.png | Bin data/icons/{ => status/channel}/res_000.png | Bin data/icons/{ => status/channel}/res_1080.png | Bin data/icons/{ => status/channel}/res_1280.png | Bin data/icons/{ => status/channel}/res_1440.png | Bin data/icons/{ => status/channel}/res_1920.png | Bin data/icons/{ => status/channel}/res_288.png | Bin data/icons/{ => status/channel}/res_352.png | Bin data/icons/{ => status/channel}/res_382.png | Bin data/icons/{ => status/channel}/res_480.png | Bin data/icons/{ => status/channel}/res_528.png | Bin data/icons/{ => status/channel}/res_544.png | Bin data/icons/{ => status/channel}/res_576.png | Bin data/icons/{ => status/channel}/res_704.png | Bin data/icons/{ => status/channel}/res_720.png | Bin data/icons/{ => status/channel}/res_hd.png | Bin data/icons/{ => status/channel}/res_sd.png | Bin data/icons/{ => status/channel}/subt.png | Bin data/icons/{ => status/channel}/subt_gray.png | Bin data/icons/{ => status/channel}/tuner_1.png | Bin data/icons/{ => status/channel}/tuner_2.png | Bin data/icons/{ => status/channel}/tuner_3.png | Bin data/icons/{ => status/channel}/tuner_4.png | Bin data/icons/{ => status/channel}/vtxt.png | Bin data/icons/{ => status/channel}/vtxt_gray.png | Bin data/icons/status/markers/Makefile.am | 6 + data/icons/{ => status/markers}/checkmark.png | Bin data/icons/{ => status/markers}/important.png | Bin data/icons/{ => status/markers}/warning.png | Bin data/icons/status/various/Makefile.am | 19 ++ data/icons/{ => status/various}/ats.png | Bin data/icons/{ => status/various}/ats_gray.png | Bin data/icons/{ => status/various}/ca.png | Bin data/icons/{ => status/various}/epg.png | Bin data/icons/{ => status/various}/hidden.png | Bin data/icons/{ => status/various}/lock.png | Bin .../{ => status/various}/lock_passive.png | Bin data/icons/{ => status/various}/mounted.png | Bin data/icons/{ => status/various}/mute.png | Bin .../{ => status/various}/not_mounted.png | Bin data/icons/{ => status/various}/pip.png | Bin data/icons/{ => status/various}/rclock.png | Bin data/icons/{ => status/various}/rec.png | Bin .../{ => status/various}/rec_event_marker.png | Bin data/icons/{ => status/various}/rec_gray.png | Bin data/icons/{ => status/various}/zap.png | Bin data/icons/various/Makefile.am | 10 + data/icons/{ => various}/border_lr.png | Bin data/icons/{ => various}/border_ul.png | Bin data/icons/{ => various}/numericpad.png | Bin data/icons/{ => various}/rass.png | Bin data/icons/{ => various}/star-off.png | Bin data/icons/{ => various}/star-on.png | Bin data/icons/{ => various}/tmdb.png | Bin data/icons/{ => various}/volume.png | Bin data/pictures/Makefile.am | 3 + .../backgrounds/1280x720}/mp3.jpg | Bin .../backgrounds/1280x720}/radiomode.jpg | Bin .../backgrounds/1280x720}/scan.jpg | Bin .../backgrounds/1280x720}/shutdown.jpg | Bin .../backgrounds/1280x720}/start.jpg | Bin data/pictures/backgrounds/Makefile.am | 10 + .../screensaver/1280x720}/mp3-0.jpg | Bin .../screensaver/1280x720}/mp3-1.jpg | Bin .../screensaver/1280x720}/mp3-2.jpg | Bin .../screensaver/1280x720}/mp3-3.jpg | Bin .../screensaver/1280x720}/mp3-4.jpg | Bin .../screensaver/1280x720}/mp3-5.jpg | Bin .../screensaver/1280x720}/mp3-6.jpg | Bin .../screensaver/1280x720}/mp3-7.jpg | Bin data/pictures/screensaver/Makefile.am | 13 + 301 files changed, 366 insertions(+), 280 deletions(-) delete mode 100644 data/icons/audioplay.png rename data/icons/{ => buttons}/0.png (100%) rename data/icons/{ => buttons}/1.png (100%) rename data/icons/{ => buttons}/2.png (100%) rename data/icons/{ => buttons}/3.png (100%) rename data/icons/{ => buttons}/4.png (100%) rename data/icons/{ => buttons}/5.png (100%) rename data/icons/{ => buttons}/6.png (100%) rename data/icons/{ => buttons}/7.png (100%) rename data/icons/{ => buttons}/8.png (100%) rename data/icons/{ => buttons}/9.png (100%) create mode 100644 data/icons/buttons/Makefile.am rename data/icons/{ => buttons}/blau.png (100%) rename data/icons/{ => buttons}/btn_backward.png (100%) rename data/icons/{ => buttons}/btn_forward.png (100%) rename data/icons/{ => buttons}/btn_pause.png (100%) rename data/icons/{ => buttons}/btn_play.png (100%) rename data/icons/{ => buttons}/btn_record_active.png (100%) rename data/icons/{ => buttons}/btn_record_inactive.png (100%) rename data/icons/{ => buttons}/btn_stop.png (100%) rename data/icons/{ => buttons}/down.png (100%) rename data/icons/{ => buttons}/dummy.png (100%) rename data/icons/{ => buttons}/dummy_small.png (100%) rename data/icons/{ => buttons}/gelb.png (100%) rename data/icons/{ => buttons}/gruen.png (100%) rename data/icons/{ => buttons}/help.png (100%) rename data/icons/{ => buttons}/help_small.png (100%) rename data/icons/{ => buttons}/home.png (100%) rename data/icons/{ => buttons}/info.png (100%) rename data/icons/{ => buttons}/info_small.png (100%) rename data/icons/{ => buttons}/left.png (100%) rename data/icons/{ => buttons}/menu.png (100%) rename data/icons/{ => buttons}/menu_small.png (100%) rename data/icons/{ => buttons}/mute_small.png (100%) rename data/icons/{ => buttons}/mute_zap_gray.png (100%) rename data/icons/{ => buttons}/mute_zap_green.png (100%) rename data/icons/{ => buttons}/ok.png (100%) rename data/icons/{ => buttons/orphaned}/0-green.png (100%) rename data/icons/{ => buttons/orphaned}/0-red.png (100%) rename data/icons/{ => buttons/orphaned}/1-green.png (100%) rename data/icons/{ => buttons/orphaned}/1-red.png (100%) rename data/icons/{ => buttons/orphaned}/2-green.png (100%) rename data/icons/{ => buttons/orphaned}/2-red.png (100%) rename data/icons/{ => buttons/orphaned}/3-green.png (100%) rename data/icons/{ => buttons/orphaned}/3-red.png (100%) rename data/icons/{ => buttons/orphaned}/4-green.png (100%) rename data/icons/{ => buttons/orphaned}/4-red.png (100%) rename data/icons/{ => buttons/orphaned}/5-green.png (100%) rename data/icons/{ => buttons/orphaned}/5-red.png (100%) rename data/icons/{ => buttons/orphaned}/6-green.png (100%) rename data/icons/{ => buttons/orphaned}/6-red.png (100%) rename data/icons/{ => buttons/orphaned}/7-green.png (100%) rename data/icons/{ => buttons/orphaned}/7-red.png (100%) rename data/icons/{ => buttons/orphaned}/8-green.png (100%) rename data/icons/{ => buttons/orphaned}/8-red.png (100%) rename data/icons/{ => buttons/orphaned}/9-green.png (100%) rename data/icons/{ => buttons/orphaned}/9-red.png (100%) rename data/icons/{ => buttons/orphaned}/longpress.png (100%) rename data/icons/{ => buttons}/power.png (100%) rename data/icons/{ => buttons}/right.png (100%) rename data/icons/{ => buttons}/rot.png (100%) rename data/icons/{ => buttons}/up.png (100%) create mode 100644 data/icons/filetypes/Makefile.am rename data/icons/{ => filetypes}/file.png (100%) rename data/icons/{ => filetypes}/folder.png (100%) rename data/icons/{ => filetypes}/movie.png (100%) create mode 100644 data/icons/headers/Makefile.am rename data/icons/{ => headers}/audio.png (100%) rename data/icons/{ => headers}/bookmarkmanager.png (100%) rename data/icons/{ => headers}/colors.png (100%) rename data/icons/{ => headers}/error.png (100%) rename data/icons/{ => headers}/features.png (100%) rename data/icons/{ => headers}/games.png (100%) rename data/icons/{ => headers}/icon_blue.png (100%) rename data/icons/{ => headers}/icon_green.png (100%) rename data/icons/{ => headers}/icon_movieplayer.png (100%) rename data/icons/{ => headers}/icon_red.png (100%) rename data/icons/{ => headers}/icon_yellow.png (100%) rename data/icons/{ => headers}/icon_ytplay.png (100%) rename data/icons/{ => headers}/information.png (100%) rename data/icons/{ => headers}/keybinding.png (100%) rename data/icons/{ => headers}/language.png (100%) rename data/icons/{ => headers}/lcd.png (100%) rename data/icons/{ => headers}/mainmenue.png (100%) rename data/icons/{ => headers}/mp3.png (100%) rename data/icons/{ => headers}/multimedia.png (100%) rename data/icons/{ => headers}/network.png (100%) rename data/icons/{ => headers}/personalize.png (100%) rename data/icons/{ => headers}/recording.png (100%) rename data/icons/{ => headers}/settings.png (100%) rename data/icons/{ => headers}/shell.png (100%) rename data/icons/{ => headers}/softupdate.png (100%) rename data/icons/{ => headers}/streaming.png (100%) rename data/icons/{ => headers}/timer.png (100%) rename data/icons/{ => headers}/upnp.png (100%) rename data/icons/{ => headers}/video.png (100%) create mode 100644 data/icons/hints/Makefile.am rename data/icons/{ => hints}/hint_a_pic.png (100%) rename data/icons/{ => hints}/hint_adzap.png (100%) rename data/icons/{ => hints}/hint_aplay.png (100%) rename data/icons/{ => hints}/hint_audio.png (100%) rename data/icons/{ => hints}/hint_back.png (100%) rename data/icons/{ => hints}/hint_bedit.png (100%) rename data/icons/{ => hints}/hint_ci.png (100%) rename data/icons/{ => hints}/hint_dboxinfo.png (100%) rename data/icons/{ => hints}/hint_delete.png (100%) rename data/icons/{ => hints}/hint_extended.png (100%) rename data/icons/{ => hints}/hint_fileplay.png (100%) rename data/icons/{ => hints}/hint_games.png (100%) rename data/icons/{ => hints}/hint_hdd.png (100%) rename data/icons/{ => hints}/hint_imageinfo.png (100%) rename data/icons/{ => hints}/hint_inetradio.png (100%) rename data/icons/{ => hints}/hint_info.png (100%) rename data/icons/{ => hints}/hint_keys.png (100%) rename data/icons/{ => hints}/hint_language.png (100%) rename data/icons/{ => hints}/hint_manage.png (100%) rename data/icons/{ => hints}/hint_mb.png (100%) rename data/icons/{ => hints}/hint_media.png (100%) rename data/icons/{ => hints}/hint_movie.png (100%) rename data/icons/{ => hints}/hint_network.png (100%) rename data/icons/{ => hints}/hint_next.png (100%) rename data/icons/{ => hints}/hint_nkplay.png (100%) rename data/icons/{ => hints}/hint_osd.png (100%) rename data/icons/{ => hints}/hint_personalize.png (100%) rename data/icons/{ => hints}/hint_picview.png (100%) rename data/icons/{ => hints}/hint_plugin.png (100%) rename data/icons/{ => hints}/hint_protection.png (100%) rename data/icons/{ => hints}/hint_radiomode.png (100%) rename data/icons/{ => hints}/hint_rass.png (100%) rename data/icons/{ => hints}/hint_reboot.png (100%) rename data/icons/{ => hints}/hint_recording.png (100%) rename data/icons/{ => hints}/hint_reload.png (100%) rename data/icons/{ => hints}/hint_restart.png (100%) rename data/icons/{ => hints}/hint_save.png (100%) rename data/icons/{ => hints}/hint_scan.png (100%) rename data/icons/{ => hints}/hint_scripts.png (100%) rename data/icons/{ => hints}/hint_service.png (100%) rename data/icons/{ => hints}/hint_settings.png (100%) rename data/icons/{ => hints}/hint_shutdown.png (100%) rename data/icons/{ => hints}/hint_sleeptimer.png (100%) rename data/icons/{ => hints}/hint_spark.png (100%) rename data/icons/{ => hints}/hint_streaminfo.png (100%) rename data/icons/{ => hints}/hint_swupdate.png (100%) rename data/icons/{ => hints}/hint_timers.png (100%) rename data/icons/{ => hints}/hint_tvmode.png (100%) rename data/icons/{ => hints}/hint_tvradio_switch.png (100%) rename data/icons/{ => hints}/hint_vfd.png (100%) rename data/icons/{ => hints}/hint_video.png (100%) rename data/icons/{ => hints}/hint_ytplay.png (100%) delete mode 100644 data/icons/icon_nkplay.png delete mode 100644 data/icons/local.png create mode 100644 data/icons/locale/Makefile.am rename data/icons/locale/{unmaintained => }/nederlands.png (100%) rename data/icons/locale/{unmaintained => }/slovak.png (100%) create mode 100644 data/icons/movieplayer/Makefile.am rename data/icons/{ => movieplayer}/mp_b-skip.png (100%) rename data/icons/{ => movieplayer}/mp_f-skip.png (100%) rename data/icons/{ => movieplayer}/mp_pause.png (100%) rename data/icons/{ => movieplayer}/mp_play.png (100%) rename data/icons/{ => movieplayer}/mp_play_repeat_all.png (100%) rename data/icons/{ => movieplayer}/mp_play_repeat_track.png (100%) delete mode 100644 data/icons/notyet.png create mode 100644 data/icons/radar/Makefile.am rename data/icons/{ => radar}/radar.pal (100%) rename data/icons/{ => radar}/radar0.raw (100%) rename data/icons/{ => radar}/radar1.raw (100%) rename data/icons/{ => radar}/radar2.raw (100%) rename data/icons/{ => radar}/radar3.raw (100%) rename data/icons/{ => radar}/radar4.raw (100%) rename data/icons/{ => radar}/radar5.raw (100%) rename data/icons/{ => radar}/radar6.raw (100%) rename data/icons/{ => radar}/radar7.raw (100%) rename data/icons/{ => radar}/radar8.raw (100%) rename data/icons/{ => radar}/radar9.raw (100%) rename data/icons/{ => radar}/radar_red.pal (100%) create mode 100644 data/icons/slider/Makefile.am rename data/icons/{ => slider}/volumebody.png (100%) rename data/icons/{ => slider}/volumeslider2.png (100%) rename data/icons/{ => slider}/volumeslider2alpha.png (100%) rename data/icons/{ => slider}/volumeslider2blue.png (100%) rename data/icons/{ => slider}/volumeslider2green.png (100%) rename data/icons/{ => slider}/volumeslider2red.png (100%) create mode 100644 data/icons/status/Makefile.am create mode 100644 data/icons/status/ca/Makefile.am rename data/icons/{ => status/ca}/biss_green.png (100%) rename data/icons/{ => status/ca}/biss_white.png (100%) rename data/icons/{ => status/ca}/biss_yellow.png (100%) rename data/icons/{ => status/ca}/conax_green.png (100%) rename data/icons/{ => status/ca}/conax_white.png (100%) rename data/icons/{ => status/ca}/conax_yellow.png (100%) rename data/icons/{ => status/ca}/cw_green.png (100%) rename data/icons/{ => status/ca}/cw_white.png (100%) rename data/icons/{ => status/ca}/cw_yellow.png (100%) rename data/icons/{ => status/ca}/d_green.png (100%) rename data/icons/{ => status/ca}/d_white.png (100%) rename data/icons/{ => status/ca}/d_yellow.png (100%) rename data/icons/{ => status/ca}/ird_green.png (100%) rename data/icons/{ => status/ca}/ird_white.png (100%) rename data/icons/{ => status/ca}/ird_yellow.png (100%) rename data/icons/{ => status/ca}/nagra_green.png (100%) rename data/icons/{ => status/ca}/nagra_white.png (100%) rename data/icons/{ => status/ca}/nagra_yellow.png (100%) rename data/icons/{ => status/ca}/nds_green.png (100%) rename data/icons/{ => status/ca}/nds_white.png (100%) rename data/icons/{ => status/ca}/nds_yellow.png (100%) rename data/icons/{ => status/ca}/powervu_green.png (100%) rename data/icons/{ => status/ca}/powervu_white.png (100%) rename data/icons/{ => status/ca}/powervu_yellow.png (100%) rename data/icons/{ => status/ca}/seca_green.png (100%) rename data/icons/{ => status/ca}/seca_white.png (100%) rename data/icons/{ => status/ca}/seca_yellow.png (100%) rename data/icons/{ => status/ca}/via_green.png (100%) rename data/icons/{ => status/ca}/via_white.png (100%) rename data/icons/{ => status/ca}/via_yellow.png (100%) rename data/icons/{ => status/ca}/x_green.png (100%) rename data/icons/{ => status/ca}/x_white.png (100%) rename data/icons/{ => status/ca}/x_yellow.png (100%) rename data/icons/{ => status/channel}/16_9.png (100%) rename data/icons/{ => status/channel}/16_9_gray.png (100%) create mode 100644 data/icons/status/channel/Makefile.am rename data/icons/{ => status/channel}/ca2.png (100%) rename data/icons/{ => status/channel}/ca2_gray.png (100%) rename data/icons/{ => status/channel}/dd.png (100%) rename data/icons/{ => status/channel}/dd_avail.png (100%) rename data/icons/{ => status/channel}/dd_gray.png (100%) rename data/icons/{ => status/channel}/radiotextget.png (100%) rename data/icons/{ => status/channel}/radiotextoff.png (100%) rename data/icons/{ => status/channel}/radiotextwait.png (100%) rename data/icons/{ => status/channel}/res_000.png (100%) rename data/icons/{ => status/channel}/res_1080.png (100%) rename data/icons/{ => status/channel}/res_1280.png (100%) rename data/icons/{ => status/channel}/res_1440.png (100%) rename data/icons/{ => status/channel}/res_1920.png (100%) rename data/icons/{ => status/channel}/res_288.png (100%) rename data/icons/{ => status/channel}/res_352.png (100%) rename data/icons/{ => status/channel}/res_382.png (100%) rename data/icons/{ => status/channel}/res_480.png (100%) rename data/icons/{ => status/channel}/res_528.png (100%) rename data/icons/{ => status/channel}/res_544.png (100%) rename data/icons/{ => status/channel}/res_576.png (100%) rename data/icons/{ => status/channel}/res_704.png (100%) rename data/icons/{ => status/channel}/res_720.png (100%) rename data/icons/{ => status/channel}/res_hd.png (100%) rename data/icons/{ => status/channel}/res_sd.png (100%) rename data/icons/{ => status/channel}/subt.png (100%) rename data/icons/{ => status/channel}/subt_gray.png (100%) rename data/icons/{ => status/channel}/tuner_1.png (100%) rename data/icons/{ => status/channel}/tuner_2.png (100%) rename data/icons/{ => status/channel}/tuner_3.png (100%) rename data/icons/{ => status/channel}/tuner_4.png (100%) rename data/icons/{ => status/channel}/vtxt.png (100%) rename data/icons/{ => status/channel}/vtxt_gray.png (100%) create mode 100644 data/icons/status/markers/Makefile.am rename data/icons/{ => status/markers}/checkmark.png (100%) mode change 100755 => 100644 rename data/icons/{ => status/markers}/important.png (100%) rename data/icons/{ => status/markers}/warning.png (100%) create mode 100644 data/icons/status/various/Makefile.am rename data/icons/{ => status/various}/ats.png (100%) rename data/icons/{ => status/various}/ats_gray.png (100%) rename data/icons/{ => status/various}/ca.png (100%) rename data/icons/{ => status/various}/epg.png (100%) rename data/icons/{ => status/various}/hidden.png (100%) rename data/icons/{ => status/various}/lock.png (100%) rename data/icons/{ => status/various}/lock_passive.png (100%) rename data/icons/{ => status/various}/mounted.png (100%) rename data/icons/{ => status/various}/mute.png (100%) rename data/icons/{ => status/various}/not_mounted.png (100%) rename data/icons/{ => status/various}/pip.png (100%) rename data/icons/{ => status/various}/rclock.png (100%) rename data/icons/{ => status/various}/rec.png (100%) rename data/icons/{ => status/various}/rec_event_marker.png (100%) rename data/icons/{ => status/various}/rec_gray.png (100%) rename data/icons/{ => status/various}/zap.png (100%) mode change 100755 => 100644 create mode 100644 data/icons/various/Makefile.am rename data/icons/{ => various}/border_lr.png (100%) rename data/icons/{ => various}/border_ul.png (100%) rename data/icons/{ => various}/numericpad.png (100%) rename data/icons/{ => various}/rass.png (100%) rename data/icons/{ => various}/star-off.png (100%) rename data/icons/{ => various}/star-on.png (100%) rename data/icons/{ => various}/tmdb.png (100%) rename data/icons/{ => various}/volume.png (100%) create mode 100644 data/pictures/Makefile.am rename data/{icons => pictures/backgrounds/1280x720}/mp3.jpg (100%) rename data/{icons => pictures/backgrounds/1280x720}/radiomode.jpg (100%) rename data/{icons => pictures/backgrounds/1280x720}/scan.jpg (100%) rename data/{icons => pictures/backgrounds/1280x720}/shutdown.jpg (100%) rename data/{icons => pictures/backgrounds/1280x720}/start.jpg (100%) create mode 100644 data/pictures/backgrounds/Makefile.am rename data/{icons => pictures/screensaver/1280x720}/mp3-0.jpg (100%) rename data/{icons => pictures/screensaver/1280x720}/mp3-1.jpg (100%) rename data/{icons => pictures/screensaver/1280x720}/mp3-2.jpg (100%) rename data/{icons => pictures/screensaver/1280x720}/mp3-3.jpg (100%) rename data/{icons => pictures/screensaver/1280x720}/mp3-4.jpg (100%) rename data/{icons => pictures/screensaver/1280x720}/mp3-5.jpg (100%) rename data/{icons => pictures/screensaver/1280x720}/mp3-6.jpg (100%) rename data/{icons => pictures/screensaver/1280x720}/mp3-7.jpg (100%) create mode 100644 data/pictures/screensaver/Makefile.am diff --git a/configure.ac b/configure.ac index ce09f76b2..ed540a2a4 100644 --- a/configure.ac +++ b/configure.ac @@ -296,6 +296,20 @@ src/system/mtdutils/lib/Makefile data/Makefile data/fonts/Makefile data/icons/Makefile +data/icons/buttons/Makefile +data/icons/filetypes/Makefile +data/icons/headers/Makefile +data/icons/hints/Makefile +data/icons/locale/Makefile +data/icons/movieplayer/Makefile +data/icons/radar/Makefile +data/icons/slider/Makefile +data/icons/status/Makefile +data/icons/status/ca/Makefile +data/icons/status/channel/Makefile +data/icons/status/markers/Makefile +data/icons/status/various/Makefile +data/icons/various/Makefile data/inetradio/Makefile data/initial/Makefile data/iso-codes/Makefile @@ -305,6 +319,9 @@ data/lcd/clock/Makefile data/license/Makefile data/locale/Makefile data/neutrino-scripts/Makefile +data/pictures/Makefile +data/pictures/backgrounds/Makefile +data/pictures/screensaver/Makefile data/scripts/Makefile data/themes/Makefile src/eitd/Makefile diff --git a/data/Makefile.am b/data/Makefile.am index ef9881b5e..b318e5a1f 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -1,4 +1,15 @@ -SUBDIRS = fonts icons inetradio initial iso-codes license locale scripts themes neutrino-scripts +SUBDIRS = \ + fonts \ + icons \ + inetradio \ + initial \ + iso-codes \ + license \ + locale \ + neutrino-scripts \ + pictures \ + scripts \ + themes if BOXTYPE_TRIPLE SUBDIRS += lcd diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am index d1bbad31a..bff4d209b 100644 --- a/data/icons/Makefile.am +++ b/data/icons/Makefile.am @@ -1,279 +1,11 @@ -installdir = $(ICONSDIR) - -locale = \ - locale/deutsch.png \ - locale/english.png - -locale_unmaintained = \ - locale/unmaintained/bayrisch.png \ - locale/unmaintained/bosanski.png \ - locale/unmaintained/ch-baslerdeutsch.png \ - locale/unmaintained/ch-berndeutsch.png \ - locale/unmaintained/czech.png \ - locale/unmaintained/francais.png \ - locale/unmaintained/italiano.png \ - locale/unmaintained/nederlands.png \ - locale/unmaintained/polski.png \ - locale/unmaintained/portugues.png \ - locale/unmaintained/russkij.png \ - locale/unmaintained/slovak.png \ - locale/unmaintained/suomi.png \ - locale/unmaintained/svenska.png - -install_DATA = $(locale) -install_DATA += $(locale_unmaintained) - -install_DATA += \ - 0.png \ - 1.png \ - 16_9.png \ - 16_9_gray.png \ - 2.png \ - 3.png \ - 4.png \ - 5.png \ - 6.png \ - 7.png \ - 8.png \ - 9.png \ - ats.png \ - ats_gray.png \ - audio.png \ - audioplay.png \ - biss_green.png \ - biss_white.png \ - biss_yellow.png \ - blau.png \ - bookmarkmanager.png \ - border_lr.png \ - border_ul.png \ - btn_backward.png \ - btn_forward.png \ - btn_pause.png \ - btn_play.png \ - btn_record_active.png \ - btn_record_inactive.png \ - btn_stop.png \ - ca.png \ - ca2.png \ - ca2_gray.png \ - checkmark.png \ - colors.png \ - conax_green.png \ - conax_white.png \ - conax_yellow.png \ - cw_green.png \ - cw_white.png \ - cw_yellow.png \ - d_green.png \ - d_white.png \ - d_yellow.png \ - dd.png \ - dd_avail.png \ - dd_gray.png \ - down.png \ - dummy.png \ - dummy_small.png \ - error.png \ - epg.png \ - features.png \ - file.png \ - folder.png \ - games.png \ - gelb.png \ - gruen.png \ - help.png \ - help_small.png \ - hidden.png \ - hint_a_pic.png \ - hint_adzap.png \ - hint_aplay.png \ - hint_audio.png \ - hint_back.png \ - hint_bedit.png \ - hint_ci.png \ - hint_dboxinfo.png \ - hint_delete.png \ - hint_extended.png \ - hint_fileplay.png \ - hint_games.png \ - hint_hdd.png \ - hint_imageinfo.png \ - hint_inetradio.png \ - hint_info.png \ - hint_keys.png \ - hint_language.png \ - hint_manage.png \ - hint_mb.png \ - hint_media.png \ - hint_movie.png \ - hint_network.png \ - hint_next.png \ - hint_osd.png \ - hint_personalize.png \ - hint_picview.png \ - hint_plugin.png \ - hint_protection.png \ - hint_radiomode.png \ - hint_reboot.png \ - hint_recording.png \ - hint_reload.png \ - hint_restart.png \ - hint_save.png \ - hint_scan.png \ - hint_scripts.png \ - hint_service.png \ - hint_settings.png \ - hint_shutdown.png \ - hint_sleeptimer.png \ - hint_streaminfo.png \ - hint_swupdate.png \ - hint_timers.png \ - hint_tvmode.png \ - hint_tvradio_switch.png \ - hint_vfd.png \ - hint_video.png \ - hint_ytplay.png \ - home.png \ - icon_green.png \ - icon_movieplayer.png \ - icon_red.png \ - icon_yellow.png \ - icon_ytplay.png \ - important.png \ - info.png \ - info_small.png \ - information.png \ - ird_green.png \ - ird_white.png \ - ird_yellow.png \ - keybinding.png \ - language.png \ - lcd.png \ - left.png \ - local.png \ - lock.png \ - lock_passive.png \ - mainmenue.png \ - menu.png \ - menu_small.png \ - mounted.png \ - movie.png \ - mp_b-skip.png \ - mp_f-skip.png \ - mp_pause.png \ - mp_play.png \ - mp_play_repeat_all.png \ - mp_play_repeat_track.png \ - mp3.jpg \ - mp3.png \ - mp3-0.jpg \ - mp3-1.jpg \ - mp3-2.jpg \ - mp3-3.jpg \ - mp3-4.jpg \ - mp3-5.jpg \ - mp3-6.jpg \ - mp3-7.jpg \ - multimedia.png \ - mute.png \ - mute_small.png \ - mute_zap_gray.png \ - mute_zap_green.png \ - nagra_green.png \ - nagra_white.png \ - nagra_yellow.png \ - nds_green.png \ - nds_white.png \ - nds_yellow.png \ - network.png \ - not_mounted.png \ - notyet.png \ - numericpad.png \ - ok.png \ - personalize.png \ - pip.png \ - power.png \ - powervu_green.png \ - powervu_white.png \ - powervu_yellow.png \ - radar.pal \ - radar_red.pal \ - radar0.raw \ - radar1.raw \ - radar2.raw \ - radar3.raw \ - radar4.raw \ - radar5.raw \ - radar6.raw \ - radar7.raw \ - radar8.raw \ - radar9.raw \ - radiomode.jpg \ - radiotextget.png \ - radiotextoff.png \ - radiotextwait.png \ - rclock.png \ - rec.png \ - rec_event_marker.png \ - rec_gray.png \ - recording.png \ - res_000.png \ - res_1080.png \ - res_1280.png \ - res_1440.png \ - res_1920.png \ - res_288.png \ - res_352.png \ - res_382.png \ - res_480.png \ - res_528.png \ - res_544.png \ - res_576.png \ - res_704.png \ - res_720.png \ - res_hd.png \ - res_sd.png \ - right.png \ - rot.png \ - scan.jpg \ - seca_green.png \ - seca_white.png \ - seca_yellow.png \ - settings.png \ - shell.png \ - shutdown.jpg \ - softupdate.png \ - star-off.png \ - star-on.png \ - start.jpg \ - streaming.png \ - subt.png \ - subt_gray.png \ - timer.png \ - tmdb.png \ - tuner_1.png \ - tuner_2.png \ - tuner_3.png \ - tuner_4.png \ - up.png \ - upnp.png \ - via_green.png \ - via_white.png \ - via_yellow.png \ - video.png \ - volume.png \ - volumebody.png \ - volumeslider2.png \ - volumeslider2alpha.png \ - volumeslider2blue.png \ - volumeslider2green.png \ - volumeslider2red.png \ - vtxt.png \ - vtxt_gray.png \ - warning.png \ - x_green.png \ - x_white.png \ - x_yellow.png \ - zap.png - +SUBDIRS = \ + buttons \ + filetypes \ + headers \ + hints \ + locale \ + movieplayer \ + radar \ + slider \ + status \ + various diff --git a/data/icons/audioplay.png b/data/icons/audioplay.png deleted file mode 100644 index cf19b7ea9cf177c5eb4d19de2eb11a2bc9f6c1a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29537 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

H3+#V>|Y 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 Qpa1{>07*qoM6N<$f*%pe8vpxw^#sPonl5USOI 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 diff --git a/data/icons/local.png b/data/icons/local.png deleted file mode 100644 index 19027c10ef89a9897724c6eb9956b4cf9814ff0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)g$P6TnZ_d99WHFWm z`2{mLJiCzw Date: Wed, 7 Dec 2016 15:24:45 +0100 Subject: [PATCH 019/142] cc_frm_header: show left button before the right one Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/3d78174b8f4dcf7868a7a14958fc89c1b34562d0 Author: vanhofen Date: 2016-12-07 (Wed, 07 Dec 2016) Origin message was: ------------------ - cc_frm_header: show left button before the right one --- src/gui/components/cc_frm_header.cpp | 4 ++-- src/gui/components/cc_frm_header.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/components/cc_frm_header.cpp b/src/gui/components/cc_frm_header.cpp index c9c29c075..84cf8ec33 100644 --- a/src/gui/components/cc_frm_header.cpp +++ b/src/gui/components/cc_frm_header.cpp @@ -279,10 +279,10 @@ void CComponentsHeader::addContextButton(const int& buttons) addContextButton(NEUTRINO_ICON_BUTTON_TOP); if (buttons & CC_BTN_DOWN) addContextButton(NEUTRINO_ICON_BUTTON_DOWN); - if (buttons & CC_BTN_RIGHT) - addContextButton(NEUTRINO_ICON_BUTTON_RIGHT); if (buttons & CC_BTN_LEFT) addContextButton(NEUTRINO_ICON_BUTTON_LEFT); + if (buttons & CC_BTN_RIGHT) + addContextButton(NEUTRINO_ICON_BUTTON_RIGHT); if (buttons & CC_BTN_FORWARD) addContextButton(NEUTRINO_ICON_BUTTON_FORWARD); if (buttons & CC_BTN_BACKWARD) diff --git a/src/gui/components/cc_frm_header.h b/src/gui/components/cc_frm_header.h index 74201268e..16e5567cf 100644 --- a/src/gui/components/cc_frm_header.h +++ b/src/gui/components/cc_frm_header.h @@ -184,8 +184,8 @@ class CComponentsHeader : public CComponentsForm, public CCTextScreen CC_BTN_MUTE = 0x800, CC_BTN_TOP = 0x1000, CC_BTN_DOWN = 0x2000, - CC_BTN_RIGHT = 0x4000, - CC_BTN_LEFT = 0x8000, + CC_BTN_LEFT = 0x4000, + CC_BTN_RIGHT = 0x8000, CC_BTN_FORWARD = 0x10000, CC_BTN_BACKWARD = 0x20000, CC_BTN_PAUSE = 0x40000, From 64ae7a6ef2b41bd63479a309c69881081a9714ad Mon Sep 17 00:00:00 2001 From: vanhofen Date: Wed, 7 Dec 2016 15:24:45 +0100 Subject: [PATCH 020/142] bouquetlist: add "menu", "left" and "right" context buttons to header Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/0842a7ac353c2f9bb0dd895d022a961fbbc60f5d Author: vanhofen Date: 2016-12-07 (Wed, 07 Dec 2016) Origin message was: ------------------ - bouquetlist: add "menu", "left" and "right" context buttons to header --- src/gui/bouquetlist.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/bouquetlist.cpp b/src/gui/bouquetlist.cpp index 49c0cbd1b..51b61d544 100644 --- a/src/gui/bouquetlist.cpp +++ b/src/gui/bouquetlist.cpp @@ -690,7 +690,8 @@ void CBouquetList::paintItem(int pos) void CBouquetList::paintHead() { - CComponentsHeader header(x, y, width, theight, name); + std::string icon = ""; + CComponentsHeader header(x, y, width, theight, name, icon, CComponentsHeader::CC_BTN_LEFT | CComponentsHeader::CC_BTN_RIGHT | CComponentsHeader::CC_BTN_MENU); header.paint(CC_SAVE_SCREEN_NO); } From 8f55c83ce035f73b662710f6c8fce51dd84790fc Mon Sep 17 00:00:00 2001 From: vanhofen Date: Wed, 7 Dec 2016 15:37:03 +0100 Subject: [PATCH 021/142] rename BUTTON_TOP to BUTTON_UP; it isn't a top-button Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/0dc0789de87ba1a6a1824b9576c538659d21c327 Author: vanhofen Date: 2016-12-07 (Wed, 07 Dec 2016) Origin message was: ------------------ - rename BUTTON_TOP to BUTTON_UP; it isn't a top-button --- src/gui/components/cc_frm_header.cpp | 4 ++-- src/gui/components/cc_frm_header.h | 2 +- src/gui/components/cc_frm_scrollbar.cpp | 2 +- src/gui/motorcontrol.cpp | 2 +- src/gui/widget/hintbox.cpp | 2 +- src/gui/widget/icons.h | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/gui/components/cc_frm_header.cpp b/src/gui/components/cc_frm_header.cpp index 84cf8ec33..c7485ec83 100644 --- a/src/gui/components/cc_frm_header.cpp +++ b/src/gui/components/cc_frm_header.cpp @@ -275,8 +275,8 @@ void CComponentsHeader::addContextButton(const int& buttons) addContextButton(NEUTRINO_ICON_BUTTON_OKAY); if (buttons & CC_BTN_MUTE) addContextButton(NEUTRINO_ICON_BUTTON_MUTE); - if (buttons & CC_BTN_TOP) - addContextButton(NEUTRINO_ICON_BUTTON_TOP); + if (buttons & CC_BTN_UP) + addContextButton(NEUTRINO_ICON_BUTTON_UP); if (buttons & CC_BTN_DOWN) addContextButton(NEUTRINO_ICON_BUTTON_DOWN); if (buttons & CC_BTN_LEFT) diff --git a/src/gui/components/cc_frm_header.h b/src/gui/components/cc_frm_header.h index 16e5567cf..b3f185e68 100644 --- a/src/gui/components/cc_frm_header.h +++ b/src/gui/components/cc_frm_header.h @@ -182,7 +182,7 @@ class CComponentsHeader : public CComponentsForm, public CCTextScreen CC_BTN_MUTE_ZAP_INACTIVE = 0x200, CC_BTN_OKAY = 0x400, CC_BTN_MUTE = 0x800, - CC_BTN_TOP = 0x1000, + CC_BTN_UP = 0x1000, CC_BTN_DOWN = 0x2000, CC_BTN_LEFT = 0x4000, CC_BTN_RIGHT = 0x8000, diff --git a/src/gui/components/cc_frm_scrollbar.cpp b/src/gui/components/cc_frm_scrollbar.cpp index 7157e9625..dc277f6be 100644 --- a/src/gui/components/cc_frm_scrollbar.cpp +++ b/src/gui/components/cc_frm_scrollbar.cpp @@ -82,7 +82,7 @@ void CComponentsScrollBar::initVarSbForm(const int& count) sb_up_obj = sb_down_obj = NULL; sb_segments_obj = NULL; - sb_up_icon = frameBuffer->getIconPath(NEUTRINO_ICON_BUTTON_TOP) ; + sb_up_icon = frameBuffer->getIconPath(NEUTRINO_ICON_BUTTON_UP) ; sb_down_icon = frameBuffer->getIconPath(NEUTRINO_ICON_BUTTON_DOWN); sb_segments_count = count; diff --git a/src/gui/motorcontrol.cpp b/src/gui/motorcontrol.cpp index 438e3eebe..ed159f368 100644 --- a/src/gui/motorcontrol.cpp +++ b/src/gui/motorcontrol.cpp @@ -542,7 +542,7 @@ void CMotorControl::paintMenu() paintLine(xpos1, xpos2, &ypos, width2, NEUTRINO_ICON_BUTTON_9, installerMenue ? g_Locale->getText(LOCALE_MOTORCONTROL_CALC_POSITIONS) : g_Locale->getText(LOCALE_MOTORCONTROL_STEP_DECREASE)); - paintLine(xpos1, xpos2, &ypos, width2, NEUTRINO_ICON_BUTTON_TOP, g_Locale->getText(LOCALE_MOTORCONTROL_POS_INCREASE)); + paintLine(xpos1, xpos2, &ypos, width2, NEUTRINO_ICON_BUTTON_UP, g_Locale->getText(LOCALE_MOTORCONTROL_POS_INCREASE)); paintLine(xpos1, xpos2, &ypos, width2, NEUTRINO_ICON_BUTTON_DOWN, g_Locale->getText(LOCALE_MOTORCONTROL_POS_DECREASE)); paintLine(xpos1, xpos2, &ypos, width2, NEUTRINO_ICON_BUTTON_BLUE, g_Locale->getText(LOCALE_MOTORCONTROL_STEP_DRIVE)); paintLine(xpos1, xpos2, &ypos, width2, NEUTRINO_ICON_BUTTON_INFO_SMALL, g_Locale->getText(LOCALE_MOTORCONTROL_NETWORK)); diff --git a/src/gui/widget/hintbox.cpp b/src/gui/widget/hintbox.cpp index 6d64e7fc1..52728f3c1 100644 --- a/src/gui/widget/hintbox.cpp +++ b/src/gui/widget/hintbox.cpp @@ -273,7 +273,7 @@ void CHintBox::addHintItem(const std::string& Text, const int& text_mode, const /* add scroll mode if needed */ if (h_lines > h_hint_obj){ txt_mode = text_mode | CTextBox::SCROLL; - ccw_buttons = ccw_buttons | CComponentsHeader::CC_BTN_TOP | CComponentsHeader::CC_BTN_DOWN; + ccw_buttons = ccw_buttons | CComponentsHeader::CC_BTN_UP | CComponentsHeader::CC_BTN_DOWN; } /* define y start position of infobox inside body */ diff --git a/src/gui/widget/icons.h b/src/gui/widget/icons.h index 0d20fa35d..cafb9b343 100644 --- a/src/gui/widget/icons.h +++ b/src/gui/widget/icons.h @@ -57,8 +57,8 @@ #define NEUTRINO_ICON_BUTTON_8 "8" #define NEUTRINO_ICON_BUTTON_9 "9" -#define NEUTRINO_ICON_BUTTON_TOP "up" -#define NEUTRINO_ICON_BUTTON_TOP_SMALL "up_small" +#define NEUTRINO_ICON_BUTTON_UP "up" +#define NEUTRINO_ICON_BUTTON_UP_SMALL "up_small" #define NEUTRINO_ICON_BUTTON_RIGHT "right" #define NEUTRINO_ICON_BUTTON_DOWN "down" #define NEUTRINO_ICON_BUTTON_DOWN_SMALL "down_small" From e37d517f3ee048601e295ab112e737a898d2149b Mon Sep 17 00:00:00 2001 From: vanhofen Date: Wed, 7 Dec 2016 16:46:24 +0100 Subject: [PATCH 022/142] bouquetlist: fix initialisation of empty sting Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/8be61c876393203abfc6f54669ef3f8bb026acea Author: vanhofen Date: 2016-12-07 (Wed, 07 Dec 2016) Origin message was: ------------------ - bouquetlist: fix initialisation of empty sting --- src/gui/bouquetlist.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/bouquetlist.cpp b/src/gui/bouquetlist.cpp index 51b61d544..884904f8c 100644 --- a/src/gui/bouquetlist.cpp +++ b/src/gui/bouquetlist.cpp @@ -690,7 +690,7 @@ void CBouquetList::paintItem(int pos) void CBouquetList::paintHead() { - std::string icon = ""; + std::string icon(""); CComponentsHeader header(x, y, width, theight, name, icon, CComponentsHeader::CC_BTN_LEFT | CComponentsHeader::CC_BTN_RIGHT | CComponentsHeader::CC_BTN_MENU); header.paint(CC_SAVE_SCREEN_NO); } From 55d28176311c7df7add081c2a6d540b2a4668e35 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Thu, 8 Dec 2016 00:36:26 +0100 Subject: [PATCH 023/142] bouquetlist: fix round corners of selected item Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/9fe560fa53ed809a79b1989c907ba79a50d3d0b5 Author: vanhofen Date: 2016-12-08 (Thu, 08 Dec 2016) Origin message was: ------------------ - bouquetlist: fix round corners of selected item --- src/gui/bouquetlist.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/bouquetlist.cpp b/src/gui/bouquetlist.cpp index 884904f8c..f112c8d4f 100644 --- a/src/gui/bouquetlist.cpp +++ b/src/gui/bouquetlist.cpp @@ -633,7 +633,7 @@ void CBouquetList::paintItem(int pos) i_radius = RADIUS_LARGE; if (i_radius) - frameBuffer->paintBoxRel(x, ypos, width- 15, fheight, bgcolor); + frameBuffer->paintBoxRel(x, ypos, width- 15, fheight, COL_MENUCONTENT_PLUS_0); frameBuffer->paintBoxRel(x, ypos, width- 15, fheight, bgcolor, i_radius); if (npos < (int) Bouquets.size()) From 6a339c19e26d9e01c320d149c6f8b614de84ae89 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 8 Dec 2016 09:30:33 +0100 Subject: [PATCH 024/142] CCDraw: try to avoid rendering with bad dimensions Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/bd5e82fdc48af2861312706489c85b07a3b8efcb Author: Thilo Graf Date: 2016-12-08 (Thu, 08 Dec 2016) --- src/gui/components/cc_draw.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/gui/components/cc_draw.cpp b/src/gui/components/cc_draw.cpp index 1e7cd3363..c0a281434 100644 --- a/src/gui/components/cc_draw.cpp +++ b/src/gui/components/cc_draw.cpp @@ -668,13 +668,18 @@ void CCDraw::kill(const fb_pixel_t& bg_color, const int& corner_radius, const in int r = v_fbdata[i].r; if (corner_radius > -1) r = corner_radius; - frameBuffer->paintBoxRel(v_fbdata[i].x, - v_fbdata[i].y, - v_fbdata[i].dx, - v_fbdata[i].dy, - bg_color, - r, - corner_type); + + if (v_fbdata[i].dx > 0 && v_fbdata[i].dy > 0){ + frameBuffer->paintBoxRel(v_fbdata[i].x, + v_fbdata[i].y, + v_fbdata[i].dx, + v_fbdata[i].dy, + bg_color, + r, + corner_type); + }else + dprintf(DEBUG_NORMAL, "\033[33m[CCDraw][%s - %d], WARNING! render with bad dimensions [dx = %d dy = %d]\033[0m\n", __func__, __LINE__, v_fbdata[i].dx, v_fbdata[i].dy ); + if (v_fbdata[i].frame_thickness) frameBuffer->paintBoxFrame(v_fbdata[i].x, v_fbdata[i].y, From 45b558cec7974eb123604a5b8d2f58f80de98e33 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Wed, 7 Dec 2016 11:07:41 +0100 Subject: [PATCH 025/142] Message timeout: try to fix timeout defines Some parameters were confused. Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/4382daf5e4022461c7d3446cde0392a842f8007f Author: Thilo Graf Date: 2016-12-07 (Wed, 07 Dec 2016) --- src/gui/test_menu.cpp | 12 ++++++------ src/gui/widget/hintbox.h | 7 +++++-- src/gui/widget/msgbox.cpp | 14 ++++++++------ src/neutrino.cpp | 2 +- 4 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/gui/test_menu.cpp b/src/gui/test_menu.cpp index cd4b5116c..a8cb33d63 100644 --- a/src/gui/test_menu.cpp +++ b/src/gui/test_menu.cpp @@ -840,7 +840,7 @@ int CTestMenu::exec(CMenuTarget* parent, const std::string &actionKey) } else if (actionKey == "msgbox_test_yes_no") { - int msgRet = ShowMsg("Testmenu: MsgBox test", "Test for MsgBox,\nPlease press key! ...", CMsgBox::mbrYes, CMsgBox::mbYes | CMsgBox::mbNo, NULL, 500, -1); + int msgRet = ShowMsg("Testmenu: MsgBox test", "Test for MsgBox,\nPlease press key! ...", CMsgBox::mbrYes, CMsgBox::mbYes | CMsgBox::mbNo, NULL, 500); std::string msg_txt = "Return value of MsgBox test is "; msg_txt += to_string(msgRet); @@ -863,7 +863,7 @@ int CTestMenu::exec(CMenuTarget* parent, const std::string &actionKey) return res; } else if (actionKey == "msgbox_test_all"){ - int msgRet = ShowMsg("Testmenu: MsgBox test", "Test for MsgBox,\nPlease press key! ...", CMsgBox::mbrOk, CMsgBox::mbAll, NULL, 700, -1); + int msgRet = ShowMsg("Testmenu: MsgBox test", "Test for MsgBox,\nPlease press key! ...", CMsgBox::mbrOk, CMsgBox::mbAll, NULL, 700); std::string msg_txt = "Return value of MsgBox test is "; msg_txt += to_string(msgRet); @@ -871,7 +871,7 @@ int CTestMenu::exec(CMenuTarget* parent, const std::string &actionKey) return menu_return::RETURN_REPAINT; } else if (actionKey == "msgbox_test_yes_no_cancel"){ - int msgRet = ShowMsg("Testmenu: MsgBox test", "Test for MsgBox,\nPlease press key! ...", CMsgBox::mbrCancel, CMsgBox::mbYes | CMsgBox::mbNo | CMsgBox::mbCancel, NULL, 500, -1); + int msgRet = ShowMsg("Testmenu: MsgBox test", "Test for MsgBox,\nPlease press key! ...", CMsgBox::mbrCancel, CMsgBox::mbYes | CMsgBox::mbNo | CMsgBox::mbCancel, NULL, 500); std::string msg_txt = "Return value of MsgBox test is "; msg_txt += to_string(msgRet); @@ -879,7 +879,7 @@ int CTestMenu::exec(CMenuTarget* parent, const std::string &actionKey) return menu_return::RETURN_REPAINT; } else if (actionKey == "msgbox_test_ok_cancel"){ - int msgRet = ShowMsg("Testmenu: MsgBox test", "Test for MsgBox,\nPlease press key! ...", CMsgBox::mbrOk, CMsgBox::mbOk | CMsgBox::mbCancel, NULL, 500, -1); + int msgRet = ShowMsg("Testmenu: MsgBox test", "Test for MsgBox,\nPlease press key! ...", CMsgBox::mbrOk, CMsgBox::mbOk | CMsgBox::mbCancel, NULL, 500); std::string msg_txt = "Return value of MsgBox test is "; msg_txt += to_string(msgRet); @@ -887,7 +887,7 @@ int CTestMenu::exec(CMenuTarget* parent, const std::string &actionKey) return menu_return::RETURN_REPAINT; } else if (actionKey == "msgbox_test_no_yes"){ - int msgRet = ShowMsg("Testmenu: MsgBox test", "Test for MsgBox,\nPlease press key! ...", CMsgBox::mbrOk, CMsgBox::mbNoYes, NULL, 500, -1); + int msgRet = ShowMsg("Testmenu: MsgBox test", "Test for MsgBox,\nPlease press key! ...", CMsgBox::mbrOk, CMsgBox::mbNoYes, NULL, 500); std::string msg_txt = "Return value of MsgBox test is "; msg_txt += to_string(msgRet); @@ -895,7 +895,7 @@ int CTestMenu::exec(CMenuTarget* parent, const std::string &actionKey) return menu_return::RETURN_REPAINT; } else if (actionKey == "msgbox_test_ok"){ - int msgRet = ShowMsg("Testmenu: MsgBox test", "Test for MsgBox,\nPlease press ok key! ...", CMsgBox::mbrOk, CMsgBox::mbOk, NULL, 500, -1); + int msgRet = ShowMsg("Testmenu: MsgBox test", "Test for MsgBox,\nPlease press ok key! ...", CMsgBox::mbrOk, CMsgBox::mbOk, NULL, 500); std::string msg_txt = "Return value of MsgBox test is "; msg_txt += to_string(msgRet); diff --git a/src/gui/widget/hintbox.h b/src/gui/widget/hintbox.h index 4afacb82a..c005feb26 100644 --- a/src/gui/widget/hintbox.h +++ b/src/gui/widget/hintbox.h @@ -36,7 +36,8 @@ #define HINTBOX_MIN_HEIGHT 125 #define HINTBOX_MAX_HEIGHT 520 #define HINTBOX_DEFAULT_TIMEOUT g_settings.timing[SNeutrinoSettings::TIMING_POPUP_MESSAGES] -#define NO_TIMEOUT -1 +#define NO_TIMEOUT 0 +#define DEFAULT_TIMEOUT -1 //frame around hint container as indent #define W_FRAME std::max(HINTBOX_MIN_WIDTH, HINTBOX_MIN_HEIGHT) * 2/100 //frame color around hint/message box @@ -179,7 +180,9 @@ class CHintBox : public CComponentsWindow int exec(); /** - * Defines timeout, timeout is enabled if parameter1 > -1 + * Defines timeout for message window. + * Timeout is enabled with parameter1 = DEFAULT_TIMEOUT (-1) or any other value > 0 + * To disable timeout use NO_TIMEOUT (0) * @param[in] Timeout as int as seconds */ virtual void setTimeOut(const int& Timeout){timeout = Timeout;} diff --git a/src/gui/widget/msgbox.cpp b/src/gui/widget/msgbox.cpp index 151a0cc73..5f6e375e0 100644 --- a/src/gui/widget/msgbox.cpp +++ b/src/gui/widget/msgbox.cpp @@ -114,7 +114,7 @@ void CMsgBox::init(const int& Height, const int& ShowButtons, const msg_result_t void CMsgBox::initTimeOut() { - timeout = -1; + timeout = NO_TIMEOUT; enable_timeout_result = false; } @@ -238,7 +238,9 @@ int CMsgBox::exec() ccw_footer->getSelectedButtonObject()->setButtonAlias(mb_show_button); int selected = ccw_footer->getSelectedButton(); if (timeout == NO_TIMEOUT) - timeout = MSGBOX_DEFAULT_TIMEOUT; + timeout = 0; + if (timeout == DEFAULT_TIMEOUT) + timeout = g_settings.timing[SNeutrinoSettings::TIMING_STATIC_MESSAGES]; uint64_t timeoutEnd = CRCInput::calcTimeoutEnd(timeout); @@ -528,12 +530,12 @@ int ShowMsg( const std::string & Title, void DisplayErrorMessage(const char * const ErrorMsg, const neutrino_locale_t& caption, const int& Text_mode) { - ShowMsg(caption, ErrorMsg, CMsgBox::mbrCancel, CMsgBox::mbBack, NEUTRINO_ICON_ERROR, 500, -1, false, Text_mode, COL_RED); + ShowMsg(caption, ErrorMsg, CMsgBox::mbrCancel, CMsgBox::mbBack, NEUTRINO_ICON_ERROR, 500, NO_TIMEOUT, false, Text_mode, COL_RED); } void DisplayErrorMessage(const char * const ErrorMsg, const std::string& caption, const int& Text_mode) { - ShowMsg(caption, ErrorMsg, CMsgBox::mbrCancel, CMsgBox::mbBack, NEUTRINO_ICON_ERROR, 500, -1, false, Text_mode, COL_RED); + ShowMsg(caption, ErrorMsg, CMsgBox::mbrCancel, CMsgBox::mbBack, NEUTRINO_ICON_ERROR, 500, NO_TIMEOUT, false, Text_mode, COL_RED); } void DisplayErrorMessage(const char * const ErrorMsg, const int& Text_mode) @@ -543,12 +545,12 @@ void DisplayErrorMessage(const char * const ErrorMsg, const int& Text_mode) void DisplayInfoMessage(const char * const InfoMsg, const neutrino_locale_t& caption, const int& Text_mode, fb_pixel_t color_frame) { - ShowMsg(caption, InfoMsg, CMsgBox::mbrBack, CMsgBox::mbOk, NEUTRINO_ICON_INFO, 500, -1, false, Text_mode, color_frame); + ShowMsg(caption, InfoMsg, CMsgBox::mbrBack, CMsgBox::mbOk, NEUTRINO_ICON_INFO, 500, NO_TIMEOUT, false, Text_mode, color_frame); } void DisplayInfoMessage(const char * const InfoMsg, const std::string& caption, const int& Text_mode, fb_pixel_t color_frame) { - ShowMsg(caption, InfoMsg, CMsgBox::mbrBack, CMsgBox::mbOk, NEUTRINO_ICON_INFO, 500, -1, false, Text_mode, color_frame); + ShowMsg(caption, InfoMsg, CMsgBox::mbrBack, CMsgBox::mbOk, NEUTRINO_ICON_INFO, 500, NO_TIMEOUT, false, Text_mode, color_frame); } void DisplayInfoMessage(const char * const InfoMsg, const int& Text_mode, fb_pixel_t color_frame) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index a4eae6220..1cef929db 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3350,7 +3350,7 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) } else if (msg == NeutrinoMessages::EVT_POPUP || msg == NeutrinoMessages::EVT_EXTMSG) { if (mode != mode_scart && mode != mode_standby) { - int timeout = NO_TIMEOUT; + int timeout = DEFAULT_TIMEOUT; std::string text = (char*)data; std::string::size_type pos; From 17a92f84bb1337478680b88af53b9cbc5f9457a0 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 8 Dec 2016 12:00:54 +0100 Subject: [PATCH 026/142] CMsgBox: rework result values Makes it possible to use bit operators. Current available compare operations still should be compatible. In case not please report to fix! Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/36e1a98a1de1e0e5f32ee27781315a24368125fc Author: Thilo Graf Date: 2016-12-08 (Thu, 08 Dec 2016) --- src/gui/widget/msgbox.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/gui/widget/msgbox.h b/src/gui/widget/msgbox.h index 5c81dfb33..ad959dc59 100644 --- a/src/gui/widget/msgbox.h +++ b/src/gui/widget/msgbox.h @@ -56,14 +56,14 @@ class CMsgBox : public CHintBox /* enum definition */ enum msg_result_t { - mbrYes = 0, - mbrNo = 1, - mbrCancel = 2, - mbrBack = 3, - mbrOk = 4, - mbrTimeout = 5, + mbrYes = 0x01, + mbrNo = 0x02, + mbrCancel = 0x04, + mbrBack = 0x08, + mbrOk = 0x10, + mbrTimeout = 0x20, - mbrNone = -1 + mbrNone = 0x00 }; enum button_define_t { @@ -171,7 +171,7 @@ class CMsgBox : public CHintBox const int& Width = MSGBOX_MIN_WIDTH, const int& Height = MSGBOX_MIN_HEIGHT, const int& ShowButtons = mbCancel, - const msg_result_t& Default_result = mbrCancel, + const msg_result_t& Default_result = mbrNone, const int& Text_mode = DEFAULT_MSGBOX_TEXT_MODE); /**CMsgBox Constructor @@ -225,7 +225,7 @@ class CMsgBox : public CHintBox const int& Width = MSGBOX_MIN_WIDTH, const int& Height = MSGBOX_MIN_HEIGHT, const int& ShowButtons = mbCancel, - const msg_result_t& Default_result = mbrCancel, + const msg_result_t& Default_result = mbrNone, const int& Text_mode = DEFAULT_MSGBOX_TEXT_MODE); // ~CMsgBox(); //inherited From 41a47bdf37aeebad2887eef4412993a867c51d6b Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 8 Dec 2016 12:12:36 +0100 Subject: [PATCH 027/142] CTimerList: remove timeout for delete warning Timeout for deletions are not a really good idea. This should be controlled by user and it should be durable visualized what he just is doing. Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/f8b295b8184164fc8459c8a05628dba8b716a01e Author: Thilo Graf Date: 2016-12-08 (Thu, 08 Dec 2016) --- src/gui/timerlist.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/timerlist.cpp b/src/gui/timerlist.cpp index 9a33ff1c7..dfa92cfed 100644 --- a/src/gui/timerlist.cpp +++ b/src/gui/timerlist.cpp @@ -991,7 +991,7 @@ int CTimerList::show() if (!epgdata.title.empty()) title = "(" + epgdata.title + ")\n"; snprintf(buf1, sizeof(buf1)-1, g_Locale->getText(LOCALE_TIMERLIST_ASK_TO_DELETE), title.c_str()); - if (ShowMsg(LOCALE_RECORDINGMENU_RECORD_IS_RUNNING, buf1, CMsgBox::mbrYes, CMsgBox::mbYes | CMsgBox::mbNo, NULL, 450, 30, false) == CMsgBox::mbrNo) + if (ShowMsg(LOCALE_RECORDINGMENU_RECORD_IS_RUNNING, buf1, CMsgBox::mbrNo, CMsgBox::mbYesNo, NULL, 450) & CMsgBox::mbrNo) { killTimer = false; update = false; From 38e38dba2dfb24419eba52507d63a24e7385986d Mon Sep 17 00:00:00 2001 From: vanhofen Date: Thu, 8 Dec 2016 13:41:38 +0100 Subject: [PATCH 028/142] timerlist: remove menu button from footer; is available in header too Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/74c54d885a1e1c2baabe65e6e68f4def2376037a Author: vanhofen Date: 2016-12-08 (Thu, 08 Dec 2016) Origin message was: ------------------ - timerlist: remove menu button from footer; is available in header too --- src/gui/timerlist.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gui/timerlist.cpp b/src/gui/timerlist.cpp index dfa92cfed..7b18e5b04 100644 --- a/src/gui/timerlist.cpp +++ b/src/gui/timerlist.cpp @@ -653,7 +653,6 @@ struct button_label TimerListButtons[] = { NEUTRINO_ICON_BUTTON_YELLOW , LOCALE_TIMERLIST_RELOAD }, { NEUTRINO_ICON_BUTTON_BLUE , LOCALE_TIMERLIST_MODIFY }, { NEUTRINO_ICON_BUTTON_INFO_SMALL, NONEXISTANT_LOCALE }, - { NEUTRINO_ICON_BUTTON_MENU_SMALL, NONEXISTANT_LOCALE }, { NEUTRINO_ICON_BUTTON_PLAY , NONEXISTANT_LOCALE } }; size_t TimerListButtonsCount = sizeof(TimerListButtons)/sizeof(TimerListButtons[0]); From 8b8af1a3718f96e2854a396935ce5cb42e863b26 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Thu, 8 Dec 2016 16:16:57 +0100 Subject: [PATCH 029/142] src/gui/timerlist.cpp dont check empty timerlist Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/f7cfe0256b1dfd8e5360c1ba338085e8d09b8961 Author: Jacek Jendrzej Date: 2016-12-08 (Thu, 08 Dec 2016) --- src/gui/timerlist.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/gui/timerlist.cpp b/src/gui/timerlist.cpp index 7b18e5b04..55902b379 100644 --- a/src/gui/timerlist.cpp +++ b/src/gui/timerlist.cpp @@ -1377,16 +1377,18 @@ void CTimerList::paintHead() void CTimerList::paintFoot() { - CTimerd::responseGetTimer* timer=&timerlist[selected]; - if (timer != NULL) + if(!timerlist.empty() ) { + CTimerd::responseGetTimer* timer=&timerlist[selected]; + if (timer != NULL) + { //replace info button with dummy if timer is not type REC or ZAP - if (timer->eventType == CTimerd::TIMER_RECORD || timer->eventType == CTimerd::TIMER_REMOTEBOX || timer->eventType == CTimerd::TIMER_ZAPTO) - TimerListButtons[4].button = NEUTRINO_ICON_BUTTON_INFO_SMALL; - else - TimerListButtons[4].button = NEUTRINO_ICON_BUTTON_DUMMY_SMALL; + if (timer->eventType == CTimerd::TIMER_RECORD || timer->eventType == CTimerd::TIMER_REMOTEBOX || timer->eventType == CTimerd::TIMER_ZAPTO) + TimerListButtons[4].button = NEUTRINO_ICON_BUTTON_INFO_SMALL; + else + TimerListButtons[4].button = NEUTRINO_ICON_BUTTON_DUMMY_SMALL; + } } - //shadow frameBuffer->paintBoxRel(x + OFFSET_SHADOW, y + height - footerHeight, width, footerHeight + OFFSET_SHADOW, COL_SHADOW_PLUS_0, RADIUS_LARGE, CORNER_BOTTOM); From b4061e93812676f1231db27c7bfe54b2070464cc Mon Sep 17 00:00:00 2001 From: vanhofen Date: Thu, 8 Dec 2016 17:49:47 +0100 Subject: [PATCH 030/142] widgets: remove obsolete drawable wrapper sources Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/cc338db2730470029ae4e3c9f28aafc3925ca0d2 Author: vanhofen Date: 2016-12-08 (Thu, 08 Dec 2016) Origin message was: ------------------ - widgets: remove obsolete drawable wrapper sources --- src/gui/widget/Makefile.am | 1 - src/gui/widget/drawable.cpp | 150 --------------------------------- src/gui/widget/drawable.h | 164 ------------------------------------ 3 files changed, 315 deletions(-) delete mode 100644 src/gui/widget/drawable.cpp delete mode 100644 src/gui/widget/drawable.h diff --git a/src/gui/widget/Makefile.am b/src/gui/widget/Makefile.am index 17a932b04..5da8d7ebe 100644 --- a/src/gui/widget/Makefile.am +++ b/src/gui/widget/Makefile.am @@ -17,7 +17,6 @@ noinst_LIBRARIES = libneutrino_gui_widget.a libneutrino_gui_widget2.a libneutrino_gui_widget_a_SOURCES = \ buttons.cpp \ colorchooser.cpp \ - drawable.cpp \ helpbox.cpp \ hintbox.cpp \ keychooser.cpp \ diff --git a/src/gui/widget/drawable.cpp b/src/gui/widget/drawable.cpp deleted file mode 100644 index 0319e34ff..000000000 --- a/src/gui/widget/drawable.cpp +++ /dev/null @@ -1,150 +0,0 @@ -/* - Neutrino-GUI - DBoxII-Project - - Copyright (C) 2001 Steffen Hehn 'McClean' - Homepage: http://dbox.cyberphoria.org/ - - Kommentar: - - Diese GUI wurde von Grund auf neu programmiert und sollte nun vom - Aufbau und auch den Ausbaumoeglichkeiten gut aussehen. Neutrino basiert - auf der Client-Server Idee, diese GUI ist also von der direkten DBox- - Steuerung getrennt. Diese wird dann von Daemons uebernommen. - - - License: GPL - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include - -#include - -#include -#include - -Drawable::Drawable() -{ -} - -Drawable::~Drawable() -{ -} - -int Drawable::getWidth(void) -{ - return m_width; -} - -int Drawable::getHeight(void) -{ - return m_height; -} - -Drawable::DType Drawable::getType(void) -{ - return Drawable::DTYPE_DRAWABLE; -} - - -// ------------------------------------------------------------------------------ -DText::DText(std::string& text) -{ - m_text = text; - init(); -} - -DText::DText(const char *text) -{ - m_text = std::string(text); - init(); -} - -void DText::init() -{ - m_width = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getRenderWidth(m_text); - m_height = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight(); -} - - -void DText::draw(CFBWindow *window, int x, int y, int width) -{ - window->RenderString(g_Font[SNeutrinoSettings::FONT_TYPE_MENU], x, y + m_height, width, - m_text.c_str(), COL_MENUCONTENT_TEXT); -} - -void DText::print(void) -{ - std::cout << " text: " << m_text; -} - -// ------------------------------------------------------------------------------ -DIcon::DIcon(std::string& icon) -{ - m_icon = icon; - init(); -} - -DIcon::DIcon(const char *icon) -{ - m_icon = std::string(icon); - init(); -} - -void DIcon::init() -{ - m_height = 16; - m_width = 16; -} - -void DIcon::draw(CFBWindow *window, int x, int y, int /*width*/) -{ - window->paintIcon(m_icon.c_str(), x, y); -} - -void DIcon::print(void) -{ - std::cout << " icon: " << m_icon; -} - -// ------------------------------------------------------------------------------ -DPagebreak::DPagebreak() -{ - m_height = 0; - m_width = 0; -} - -void DPagebreak::draw(CFBWindow */*window*/, int /*x*/, int /*y*/, int /*width*/) -{ -// window->RenderString(g_Font[SNeutrinoSettings::FONT_TYPE_MENU], -// x, y + m_height, width, "", -// COL_MENUCONTENT_TEXT); -} - -void DPagebreak::print(void) -{ - std::cout << ""; -} - -Drawable::DType DPagebreak::getType(void) -{ - return Drawable::DTYPE_PAGEBREAK; -} diff --git a/src/gui/widget/drawable.h b/src/gui/widget/drawable.h deleted file mode 100644 index 744f4446e..000000000 --- a/src/gui/widget/drawable.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - Neutrino-GUI - DBoxII-Project - - Copyright (C) 2001 Steffen Hehn 'McClean' - Homepage: http://dbox.cyberphoria.org/ - - Kommentar: - - Diese GUI wurde von Grund auf neu programmiert und sollte nun vom - Aufbau und auch den Ausbaumoeglichkeiten gut aussehen. Neutrino basiert - auf der Client-Server Idee, diese GUI ist also von der direkten DBox- - Steuerung getrennt. Diese wird dann von Daemons uebernommen. - - - License: GPL - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - -#ifndef __drawable__ -#define __drawable__ - -#include -#include - -#include -#include - -class Drawable; - -typedef std::vector > ContentLines; - - -/** - * The base class for items which can be drawn on a CFBWindow. - */ -class Drawable -{ -public: - - enum DType { - DTYPE_DRAWABLE, - DTYPE_PAGEBREAK - }; - - virtual ~Drawable(); - - /** - * Overwrite this method in subclasses to draw on the window - * - * @param window the window to draw on - * @param x x component of the top left corner - * @param y y component of the top left corner - */ - virtual void draw(CFBWindow *window, int x, int y, int width) = 0; - - virtual int getWidth(void); - - virtual int getHeight(void); - - /** - * Overwrite this method in subclasses to print some info - * about the content. Mainly used for debuging ;) - */ - virtual void print(void) = 0; - - /** - * Returns the type of this drawable. Used to distinguish between - * drawing objects and control objects like pagebreaks. - * @return the type of this drawable. - */ - virtual DType getType(); - -protected: - - Drawable(); - - int m_height; - - int m_width; - -private: - -}; - -/** - * This class draws a given string. - */ -class DText : public Drawable -{ -public: - DText(std::string& text); - - DText(const char *text); - - void init(); - - void draw(CFBWindow *window, int x, int y, int width); - - void print(); - -protected: - - std::string m_text; - -}; - - -/** - * This class draws a given icon. - */ -class DIcon : public Drawable -{ -public: - DIcon(std::string& icon); - - DIcon(const char *icon); - - void init(); - - void draw(CFBWindow *window, int x, int y, int width); - - void print(); - -protected: - - std::string m_icon; -}; - -/** - * This class is used as a control object and forces a new page - * in scrollable windows. - */ -class DPagebreak : public Drawable -{ -public: - DPagebreak(); - - void draw(CFBWindow *window, int x, int y, int width); - - void print(); - - DType getType(); - -protected: - -private: - -}; - -#endif From 1cc208a09c224b65a2d630b4d0bbc30d878c28fd Mon Sep 17 00:00:00 2001 From: vanhofen Date: Thu, 8 Dec 2016 17:55:27 +0100 Subject: [PATCH 031/142] settings.h: add OFFSET_INNER_NONE define Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/62b8faf19cfd85ea94939bddf56ffd7fcefbc4f8 Author: vanhofen Date: 2016-12-08 (Thu, 08 Dec 2016) Origin message was: ------------------ - settings.h: add OFFSET_INNER_NONE define --- src/system/settings.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/system/settings.h b/src/system/settings.h index 9ae0e8049..ed314dfea 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -906,12 +906,13 @@ const time_settings_struct_t timing_setting[SNeutrinoSettings::TIMING_SETTING_CO #define RADIUS_NONE 0 // offsets -#define OFFSET_SHADOW 6 -#define OFFSET_INTER 6 +#define OFFSET_SHADOW 6 +#define OFFSET_INTER 6 #define OFFSET_INNER_LARGE 20 #define OFFSET_INNER_MID 10 #define OFFSET_INNER_SMALL 5 #define OFFSET_INNER_MIN 2 +#define OFFSET_INNER_NONE 0 struct SglobalInfo { From c4f8c663c9e08d528328587d2d326ad93c5b4c85 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Thu, 8 Dec 2016 18:05:31 +0100 Subject: [PATCH 032/142] msgbox: remove obsolete include Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/3b3af8a6d24c8d2d542e87f76a30ae76a75bb588 Author: vanhofen Date: 2016-12-08 (Thu, 08 Dec 2016) Origin message was: ------------------ - msgbox: remove obsolete include --- src/gui/widget/msgbox.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gui/widget/msgbox.h b/src/gui/widget/msgbox.h index ad959dc59..5325bd764 100644 --- a/src/gui/widget/msgbox.h +++ b/src/gui/widget/msgbox.h @@ -33,7 +33,6 @@ #endif #include "hintbox.h" -#include #define MSGBOX_MIN_WIDTH HINTBOX_MIN_WIDTH #define MSGBOX_MIN_HEIGHT HINTBOX_MIN_HEIGHT + 75 From ae401c28a8601023ea833fc8173bb9f55ebe6b20 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Fri, 9 Dec 2016 16:16:02 +0100 Subject: [PATCH 033/142] src/gui/osd_setup.cpp fix menu item (possible segfault) Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/2649e909dfb1b9735c12cb3685fab364f19df545 Author: Jacek Jendrzej Date: 2016-12-09 (Fri, 09 Dec 2016) --- src/gui/osd_setup.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index aa7e0f0a3..8bfc58890 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -179,7 +179,7 @@ font_sizes_groups font_sizes_groups[] = {LOCALE_FONTMENU_EPG , epg_font_items , epg_font_sizes , "fontsize.depg", LOCALE_MENU_HINT_EPG_FONTS }, {LOCALE_FONTMENU_INFOBAR , infobar_font_items , infobar_font_sizes , "fontsize.dinf", LOCALE_MENU_HINT_INFOBAR_FONTS }, {LOCALE_FONTMENU_MOVIEBROWSER,moviebrowser_font_items,moviebrowser_font_sizes,"fontsize.dmbr", LOCALE_MENU_HINT_MOVIEBROWSER_FONTS }, - {LOCALE_FONTMENU_MESSAGES , msgtext_font_items , msgtext_font_sizes , "fontsize.msg", LOCALE_MENU_HINT_MESSAGE_FONTS }, + {LOCALE_FONTMENU_MESSAGES , msgtext_font_items , msgtext_font_sizes , "fontsize.dmsg", LOCALE_MENU_HINT_MESSAGE_FONTS }, {LOCALE_FONTMENU_OTHER , other_font_items , other_font_sizes , "fontsize.doth", LOCALE_MENU_HINT_OTHER_FONTS } }; #define FONT_GROUP_COUNT (sizeof(font_sizes_groups)/sizeof(font_sizes_groups[0])) From 932e60f5cf6d864e52591c40edb371c36225a49b Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Fri, 9 Dec 2016 21:32:03 +0100 Subject: [PATCH 034/142] CTextBox: try to fix getMaxLineWidth() methode If found no linebreak, return value could be too small. Space char simulates a line termination as a workaround to get largest possible width. Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/cddf1835b5e1feb5d16705cd21af860403ce5cbc Author: Thilo Graf Date: 2016-12-09 (Fri, 09 Dec 2016) --- src/gui/widget/textbox.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/gui/widget/textbox.cpp b/src/gui/widget/textbox.cpp index c1c17ce60..6c78b4f48 100644 --- a/src/gui/widget/textbox.cpp +++ b/src/gui/widget/textbox.cpp @@ -890,11 +890,17 @@ int CTextBox::getLines(const std::string& text) int CTextBox::getMaxLineWidth(const std::string& text, Font* font) { - // if found no linebreak, return pure size only - if (text.find('\n', 0) == std::string::npos) - return font->getRenderWidth(text.c_str()); + std::string txt = text; + if (txt.find('\n', 0) == std::string::npos){ + /* If found no linebreak, return pure size with additional space char. + * Space char simulates a line termination as a workaround to get + * largest possible width. + */ + txt += ' '; + return font->getRenderWidth(txt.c_str()); + } - std::stringstream in (text); + std::stringstream in (txt); if (!in) return 0; From 0086404fb360d3aef5309ef943775c74c5e63efc Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Sat, 10 Dec 2016 00:16:10 +0100 Subject: [PATCH 035/142] CTestMenu: add sample to visualize current running records Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/864cda9cfc7d8f7b570d7affc0b9ba73e774c50a Author: Thilo Graf Date: 2016-12-10 (Sat, 10 Dec 2016) --- src/gui/test_menu.cpp | 87 ++++++++++++++++++++++++++++++++++++++++++- src/gui/test_menu.h | 1 + 2 files changed, 87 insertions(+), 1 deletion(-) diff --git a/src/gui/test_menu.cpp b/src/gui/test_menu.cpp index a8cb33d63..8fbe7d235 100644 --- a/src/gui/test_menu.cpp +++ b/src/gui/test_menu.cpp @@ -54,7 +54,7 @@ #include #include #include - +#include #include #include #include @@ -935,11 +935,95 @@ int CTestMenu::exec(CMenuTarget* parent, const std::string &actionKey) return res; } + else if (actionKey == "show_records"){ + showRecords(); + return res; + } return showTestMenu(); } +void CTestMenu::showRecords() +{ + CRecordManager * crm = CRecordManager::getInstance(); + + const int box_posX = 30; + const int box_posY = 300; + + if (crm->RecordingStatus()) + { + CComponentsForm *recordsbox = new CComponentsForm(); + recordsbox->setWidth(0); + recordsbox->doPaintBg(false); + recordsbox->setCornerType(CORNER_NONE); + //recordsbox->setColorBody(COL_BACKGROUND_PLUS_0); + + recmap_t recmap = crm->GetRecordMap(); + std::vector images; + CComponentsForm *recline = NULL; + CComponentsText *rec_name = NULL; + int y_recline = 0; + int h_recline = 0; + int w_recbox = 0; + int w_shadow = OFFSET_SHADOW/2; + + for(recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) + { + CRecordInstance * inst = it->second; + + recline = new CComponentsForm(0, y_recline, 0); + recline->doPaintBg(true); + recline->setColorBody(COL_INFOBAR_PLUS_0); + recline->enableShadow(CC_SHADOW_ON, w_shadow); + recline->setCorner(CORNER_RADIUS_MID); + recordsbox->addCCItem(recline); + + CComponentsPicture *iconf = new CComponentsPicture(OFFSET_INNER_MID, CC_CENTERED, NEUTRINO_ICON_REC, recline, CC_SHADOW_OFF, COL_RED, COL_INFOBAR_PLUS_0); + iconf->setCornerType(CORNER_NONE); + iconf->doPaintBg(true); + iconf->SetTransparent(CFrameBuffer::TM_BLACK); + images.push_back(iconf); + h_recline = iconf->getHeight(); + y_recline += h_recline + w_shadow; + recline->setHeight(h_recline); + + std::string records_msg = inst->GetEpgTitle(); + + rec_name = new CComponentsText(iconf->getWidth()+2*OFFSET_INNER_MID, CC_CENTERED, 0, 0, records_msg, CTextBox::AUTO_WIDTH, g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]); + rec_name->doPaintBg(false); + rec_name->setTextColor(COL_INFOBAR_TEXT); + + recline->setHeight(std::max(rec_name->getHeight(), iconf->getHeight())); + recline->setWidth(OFFSET_INNER_MIN+iconf->getWidth()+OFFSET_INNER_MID+rec_name->getWidth()+OFFSET_INNER_MID); + w_recbox = (std::max(recline->getWidth(), recordsbox->getWidth())); + + recline->addCCItem(rec_name); + + recordsbox->setWidth(std::max(recordsbox->getWidth(), recline->getWidth())); + y_recline += h_recline; + } + + int h_rbox = 0; + for(size_t i = 0; i< recordsbox->size(); i++) + h_rbox += recordsbox->getCCItem(i)->getHeight()+w_shadow; + + recordsbox->setDimensionsAll(box_posX, box_posY, w_recbox+w_shadow, h_rbox); + recordsbox->paint0(); + + for(size_t j = 0; j< images.size(); j++){ + images[j]->kill(); + images[j]->paintBlink(); + } + + ShowHint("Testmenu: Records", "Record test ...", 200, 30, NULL, NEUTRINO_ICON_HINT_RECORDING, CComponentsHeader::CC_BTN_EXIT); + recordsbox->kill(); + delete recordsbox; recordsbox = NULL; + } + else + ShowHint("Testmenu: Records", "No records ...", 200, 30, NULL, NEUTRINO_ICON_HINT_RECORDING, CComponentsHeader::CC_BTN_EXIT); +} + /* shows entries for proxy settings */ int CTestMenu::showTestMenu() { @@ -1011,6 +1095,7 @@ void CTestMenu::showCCTests(CMenuWidget *widget) widget->addItem(new CMenuForwarder("Text-Extended", true, NULL, this, "text_ext")); widget->addItem(new CMenuForwarder("Blinking Extended Text", true, NULL, this, "blinking_text_ext")); widget->addItem(new CMenuForwarder("Scrollbar", true, NULL, this, "scrollbar")); + widget->addItem(new CMenuForwarder("Record", true, NULL, this, "show_records")); } void CTestMenu::showHWTests(CMenuWidget *widget) diff --git a/src/gui/test_menu.h b/src/gui/test_menu.h index 1b09192b0..20c4937b1 100644 --- a/src/gui/test_menu.h +++ b/src/gui/test_menu.h @@ -60,6 +60,7 @@ class CTestMenu : public CMenuTarget void showHWTests(CMenuWidget *widget); void showCCTests(CMenuWidget *widget); void showMsgTests(CMenuWidget *widget); + void showRecords(); public: CTestMenu(); ~CTestMenu(); From f199989c9a959a85c80865f4b76dc2ab5606cb07 Mon Sep 17 00:00:00 2001 From: GetAway Date: Sun, 11 Dec 2016 16:53:32 +0100 Subject: [PATCH 036/142] pzapit: add -lockrc/-unlockrc options; port from martii I've pulled it from Duckbox-Developers/neutrino-mp-cst-next and modified it to work Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/0330515abce090034e8ee8f78806f6bc59eb50ff Author: GetAway Date: 2016-12-11 (Sun, 11 Dec 2016) --- src/driver/rcinput.cpp | 19 +++++++++++++++++-- src/driver/rcinput.h | 5 +++-- src/neutrino.cpp | 5 +++++ src/neutrinoMessages.h | 11 +++++++---- src/zapit/include/zapit/client/msgtypes.h | 5 ++--- src/zapit/include/zapit/client/zapitclient.h | 3 +++ src/zapit/lib/zapitclient.cpp | 13 +++++++++++++ src/zapit/src/pzapit.cpp | 18 ++++++++++++++++++ src/zapit/src/zapit.cpp | 11 +++++++++++ 9 files changed, 79 insertions(+), 11 deletions(-) diff --git a/src/driver/rcinput.cpp b/src/driver/rcinput.cpp index 16095b2cd..419cd3769 100644 --- a/src/driver/rcinput.cpp +++ b/src/driver/rcinput.cpp @@ -278,21 +278,36 @@ CRCInput::~CRCInput() * stopInput - stop reading rcin for plugins * **************************************************************************/ -void CRCInput::stopInput() +void CRCInput::stopInput(const bool ext) { + if (isLocked()) + return; + input_stopped = true; close(); + if (ext) + postMsg(NeutrinoMessages::LOCK_RC_EXTERN, 0); +} + +bool CRCInput::isLocked(void) +{ + return input_stopped; } /************************************************************************** * restartInput - restart reading rcin after calling plugins * **************************************************************************/ -void CRCInput::restartInput() +void CRCInput::restartInput(const bool ext) { + if (!isLocked()) + return; + close(); open(); input_stopped = false; + if (ext) + postMsg(NeutrinoMessages::UNLOCK_RC_EXTERN, 0); } #if 0 //never used diff --git a/src/driver/rcinput.h b/src/driver/rcinput.h index a6d43e9db..0f7869e43 100644 --- a/src/driver/rcinput.h +++ b/src/driver/rcinput.h @@ -278,8 +278,9 @@ class CRCInput { return fd_rc[0]; } - void stopInput(); - void restartInput(); + void stopInput(const bool ext = false); + void restartInput(const bool ext = false); + bool isLocked(void); uint64_t repeat_block; uint64_t repeat_block_generic; diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 1cef929db..ca1769fa4 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3394,6 +3394,11 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) CRCLock::getInstance()->exec(NULL, CRCLock::NO_USER_INPUT); return messages_return::handled; } + else if (msg == NeutrinoMessages::LOCK_RC_EXTERN || msg == NeutrinoMessages::UNLOCK_RC_EXTERN) + { + printf("CNeutrinoApp::handleMsg: RC is %s now\n", msg == NeutrinoMessages::LOCK_RC_EXTERN ? "LOCKED" : "UNLOCKED"); + return messages_return::handled; + } else if( msg == NeutrinoMessages::CHANGEMODE ) { printf("CNeutrinoApp::handleMsg: CHANGEMODE to %d rezap %d\n", data & mode_mask, (data & norezap) != norezap); if((data & mode_mask)== mode_radio) { diff --git a/src/neutrinoMessages.h b/src/neutrinoMessages.h index 4049ead7e..fe89d019a 100644 --- a/src/neutrinoMessages.h +++ b/src/neutrinoMessages.h @@ -71,10 +71,13 @@ struct NeutrinoMessages { REMIND = CRCInput::RC_Messages + 18, LOCK_RC = CRCInput::RC_Messages + 19, UNLOCK_RC = CRCInput::RC_Messages + 20, - REBOOT = CRCInput::RC_Messages + 21, - RELOAD_SETUP = CRCInput::RC_Messages + 22, - SHOW_MAINMENU = CRCInput::RC_Messages + 23, - LEAVE_ALL = CRCInput::RC_Messages + 24, + LOCK_RC_EXTERN = CRCInput::RC_Messages + 21, + UNLOCK_RC_EXTERN = CRCInput::RC_Messages + 22, + REBOOT = CRCInput::RC_Messages + 23, + RELOAD_SETUP = CRCInput::RC_Messages + 24, + SHOW_MAINMENU = CRCInput::RC_Messages + 25, + LEAVE_ALL = CRCInput::RC_Messages + 26, + EVT_VOLCHANGED = CRCInput::RC_Events + 1, EVT_MUTECHANGED = CRCInput::RC_Events + 2, diff --git a/src/zapit/include/zapit/client/msgtypes.h b/src/zapit/include/zapit/client/msgtypes.h index dd479f868..c38b754d5 100644 --- a/src/zapit/include/zapit/client/msgtypes.h +++ b/src/zapit/include/zapit/client/msgtypes.h @@ -150,9 +150,8 @@ class CZapitMessages CMD_GET_MODE43 = 109, CMD_SET_MODE43 = 110, CMD_STOP_PIP = 111, - CMD_ZAPTO_EPG = 112 - - + CMD_ZAPTO_EPG = 112, + CMD_LOCKRC = 113 }; struct commandBoolean diff --git a/src/zapit/include/zapit/client/zapitclient.h b/src/zapit/include/zapit/client/zapitclient.h index 0995abf1f..47a90177c 100644 --- a/src/zapit/include/zapit/client/zapitclient.h +++ b/src/zapit/include/zapit/client/zapitclient.h @@ -375,6 +375,9 @@ class CZapitClient:public CBasicClient /* get dvb transmission type */ delivery_system_t getDeliverySystem(void); + /* Lock remote control */ + void lockRc(const bool mute); + void zaptoNvodSubService(const int num); /* send diseqc 1.2 motor command */ diff --git a/src/zapit/lib/zapitclient.cpp b/src/zapit/lib/zapitclient.cpp index a7f3ba252..f733112ef 100644 --- a/src/zapit/lib/zapitclient.cpp +++ b/src/zapit/lib/zapitclient.cpp @@ -611,6 +611,19 @@ void CZapitClient::getVolume(unsigned int *left, unsigned int *right) close_connection(); } + +void CZapitClient::lockRc(const bool b) +{ + CZapitMessages::commandBoolean msg; + //VALGRIND_PARANOIA; + + msg.truefalse = b; + + OpenThreads::ScopedLock lock(mutex); + send(CZapitMessages::CMD_LOCKRC, (char*)&msg, sizeof(msg)); + + close_connection(); +} #if 0 //never used delivery_system_t CZapitClient::getDeliverySystem(void) diff --git a/src/zapit/src/pzapit.cpp b/src/zapit/src/pzapit.cpp index d31e8a718..744187486 100644 --- a/src/zapit/src/pzapit.cpp +++ b/src/zapit/src/pzapit.cpp @@ -70,6 +70,8 @@ int usage (const char * basename) std::cout << "switch to pal mode: " << basename << " --pal" << std::endl; std::cout << "switch to hd 720p mode: " << basename << " --720p" << std::endl; std::cout << "send diseqc 1.2 motor command: " << basename << " -m " << std::endl; + std::cout << "lock remote control: " << basename << " -lockrc" << std::endl; + std::cout << "unlock remote control: " << basename << " -unlockrc" << std::endl; return -1; } @@ -92,6 +94,7 @@ int main (int argc, char** argv) int nvod = -1; int arat = -1; int m43 = -1; + int lockrc = -1; const char * channelName = NULL; bool playback = false; @@ -351,6 +354,16 @@ int main (int argc, char** argv) continue; } } + else if (!strncmp(argv[i], "-lockrc", 7)) + { + lockrc = 1; + continue; + } + else if (!strncmp(argv[i], "-unlockrc", 9)) + { + lockrc = 0; + continue; + } else if (i < argc - 1) { if ((sscanf(argv[i], "%d", &bouquet) > 0) && (sscanf(argv[++i], "%u", &channel) > 0)) @@ -418,6 +431,11 @@ int main (int argc, char** argv) zapit.setVolume(volume, volume); return 0; } + if (lockrc != -1) + { + zapit.lockRc(lockrc); + return 0; + } if (rezap) { zapit.Rezap(); diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index 375c1f228..c9febc2d4 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -1862,6 +1862,17 @@ bool CZapit::ParseCommand(CBasicMessage::Header &rmsg, int connfd) break; } + case CZapitMessages::CMD_LOCKRC: { + CZapitMessages::commandBoolean msgBoolean; + CBasicServer::receive_data(connfd, &msgBoolean, sizeof(msgBoolean)); + extern CRCInput *g_RCInput; + if (msgBoolean.truefalse) + g_RCInput->stopInput(true); + else + g_RCInput->restartInput(true); + break; + } + case CZapitMessages::CMD_SET_VOLUME: { CZapitMessages::commandVolume msgVolume; CBasicServer::receive_data(connfd, &msgVolume, sizeof(msgVolume)); From 9fc50664c700c63adf1defd0cc6d62a080079767 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 12 Dec 2016 08:30:22 +0100 Subject: [PATCH 037/142] channellist: try to fix right status-icon alignment Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/6b4ef6d3f810751a59003f12250865a730eb3875 Author: vanhofen Date: 2016-12-12 (Mon, 12 Dec 2016) Origin message was: ------------------ - channellist: try to fix right status-icon alignment --- src/gui/channellist.cpp | 158 +++++++++++++++++++++++----------------- src/gui/channellist.h | 3 - 2 files changed, 93 insertions(+), 68 deletions(-) diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 22b844784..679686f4e 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -525,26 +525,6 @@ void CChannelList::calcSize() else pig_height = 0; infozone_height = height - theight - pig_height - footerHeight; - - ChannelList_Rec = 0; - int icon_w, h; - int recmode_icon_max = 0; - frameBuffer->getIconSize(NEUTRINO_ICON_REC, &icon_w, &h); - recmode_icon_max = std::max(recmode_icon_max, icon_w); - frameBuffer->getIconSize(NEUTRINO_ICON_AUTO_SHIFT, &icon_w, &h); - recmode_icon_max = std::max(recmode_icon_max, icon_w); - frameBuffer->getIconSize(NEUTRINO_ICON_PIP, &icon_w, &h); - recmode_icon_max = std::max(recmode_icon_max, icon_w); - - for (uint32_t i = 0; i < (*chanlist).size(); i++) { - if (CRecordManager::getInstance()->GetRecordMode((*chanlist)[i]->getChannelID()) || - (*chanlist)[i]->getChannelID() == CZapit::getInstance()->GetPipChannelID()) { - ChannelList_Rec = recmode_icon_max; - break; - } - } - if (ChannelList_Rec > 0) - ChannelList_Rec += 8; } bool CChannelList::updateSelection(int newpos) @@ -1916,13 +1896,13 @@ void CChannelList::paintItem(int pos, const bool firstpaint) char nameAndDescription[255]; char tmp[10]; CZapitChannel* chan = (*chanlist)[curr]; - int prg_offset=0; - int title_offset=0; + int prg_offset = 0; + int title_offset = 0; int rec_mode; if(g_settings.channellist_progressbar_design != CProgressBar::PB_OFF) { prg_offset = g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST_NUMBER]->getRenderWidth("00:00"); - title_offset=6; + title_offset = OFFSET_INNER_SMALL; } snprintf(tmp, sizeof(tmp), "%d", this->historyMode ? pos : chan->number); @@ -1937,52 +1917,99 @@ void CChannelList::paintItem(int pos, const bool firstpaint) rec_mode = CRecordManager::getInstance()->GetRecordMode((*chanlist)[curr]->getChannelID()); //set recording icon - std::string rec_icon; + const char *record_icon = NULL; if (rec_mode & CRecordManager::RECMODE_REC) - rec_icon = NEUTRINO_ICON_REC; + record_icon = NEUTRINO_ICON_REC; else if (rec_mode & CRecordManager::RECMODE_TSHIFT) - rec_icon = NEUTRINO_ICON_AUTO_SHIFT; + record_icon = NEUTRINO_ICON_AUTO_SHIFT; + + //set pip icon + const char *pip_icon = NULL; #ifdef ENABLE_PIP - else if ((*chanlist)[curr]->getChannelID() == CZapit::getInstance()->GetPipChannelID()) - rec_icon = NEUTRINO_ICON_PIP; + if ((*chanlist)[curr]->getChannelID() == CZapit::getInstance()->GetPipChannelID()) + pip_icon = NEUTRINO_ICON_PIP; #endif - //calculating icons - bool isWebTV = !chan->getUrl().empty(); - const char *icon = isWebTV ? NEUTRINO_ICON_STREAMING : NEUTRINO_ICON_SCRAMBLED; - int icon_x = (x+width-15-2) - RADIUS_LARGE/2; - int r_icon_w; int s_icon_h=0; int s_icon_w=0; - frameBuffer->getIconSize(icon, &s_icon_w, &s_icon_h); - r_icon_w = ChannelList_Rec; - int r_icon_x = icon_x; - //paint icon - if(chan->scrambled || isWebTV) - if (frameBuffer->paintIcon(icon, icon_x - s_icon_w, ypos, fheight))//ypos + (fheight - 16)/2); - r_icon_x = r_icon_x - s_icon_w; + //set webtv icon + const char *webtv_icon = NULL; + if (!chan->getUrl().empty()) + webtv_icon = NEUTRINO_ICON_STREAMING; - //paint recording icon - if (!rec_icon.empty()) - frameBuffer->paintIcon(rec_icon, r_icon_x - r_icon_w, ypos, fheight);//ypos + (fheight - 16)/2); + //set scramble icon + const char *scramble_icon = NULL; + if (chan->scrambled) + scramble_icon = NEUTRINO_ICON_SCRAMBLED; + + //calculate and paint right status icons + int icon_w = 0; + int icon_h = 0; + int offset_right = OFFSET_INNER_MID; + int icon_x_right = x + width - 15 - offset_right; + + if (scramble_icon) + { + frameBuffer->getIconSize(scramble_icon, &icon_w, &icon_h); + if (frameBuffer->paintIcon(scramble_icon, icon_x_right - icon_w, ypos, fheight)) + { + offset_right += icon_w + OFFSET_INNER_MID; + icon_x_right -= icon_w + OFFSET_INNER_MID; + } + } + + if (webtv_icon) + { + frameBuffer->getIconSize(webtv_icon, &icon_w, &icon_h); + if (frameBuffer->paintIcon(webtv_icon, icon_x_right - icon_w, ypos, fheight)) + { + offset_right += icon_w + OFFSET_INNER_MID; + icon_x_right -= icon_w + OFFSET_INNER_MID; + } + } + + if (pip_icon) + { + frameBuffer->getIconSize(pip_icon, &icon_w, &icon_h); + if (frameBuffer->paintIcon(pip_icon, icon_x_right - icon_w, ypos, fheight)) + { + offset_right += icon_w + OFFSET_INNER_MID; + icon_x_right -= icon_w + OFFSET_INNER_MID; + } + } + + if (record_icon) + { + frameBuffer->getIconSize(record_icon, &icon_w, &icon_h); + if (frameBuffer->paintIcon(record_icon, icon_x_right - icon_w, ypos, fheight)) + { + offset_right += icon_w + OFFSET_INNER_MID; + icon_x_right -= icon_w + OFFSET_INNER_MID; + } + } //paint buttons if (paintbuttons) paintButtonBar(is_available); - int icon_space = r_icon_w+s_icon_w; - //channel numbers - int icon_w = 0, icon_h = 0; - if (curr == selected && move_state == beMoving) { + if (curr == selected && move_state == beMoving) + { frameBuffer->getIconSize(NEUTRINO_ICON_BUTTON_YELLOW, &icon_w, &icon_h); - frameBuffer->paintIcon(NEUTRINO_ICON_BUTTON_YELLOW, x + 5 + numwidth - icon_w, ypos, fheight); - } else if (edit_state && chan->bLocked) { + frameBuffer->paintIcon(NEUTRINO_ICON_BUTTON_YELLOW, x + OFFSET_INNER_SMALL + numwidth - icon_w, ypos, fheight); + } + else if (edit_state && chan->bLocked) + { frameBuffer->getIconSize(NEUTRINO_ICON_LOCK, &icon_w, &icon_h); - frameBuffer->paintIcon(NEUTRINO_ICON_LOCK, x + 5 + numwidth - icon_w, ypos, fheight); - } else if (g_settings.channellist_show_numbers) { - int numpos = x+5+numwidth- g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST_NUMBER]->getRenderWidth(tmp); - g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST_NUMBER]->RenderString(numpos,ypos+fheight, numwidth+5, tmp, color, fheight); - } else if (!edit_state) + frameBuffer->paintIcon(NEUTRINO_ICON_LOCK, x + OFFSET_INNER_SMALL + numwidth - icon_w, ypos, fheight); + } + else if (g_settings.channellist_show_numbers) + { + int numpos = x + OFFSET_INNER_SMALL + numwidth - g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST_NUMBER]->getRenderWidth(tmp); + g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST_NUMBER]->RenderString(numpos, ypos + fheight, numwidth + 5, tmp, color, fheight); + } + else if (!edit_state) + { numwidth = -5; + } int l=0; if (this->historyMode) @@ -1992,7 +2019,7 @@ void CChannelList::paintItem(int pos, const bool firstpaint) int pb_space = prg_offset - title_offset; int pb_height = g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST_NUMBER]->getDigitHeight(); - CProgressBar pb(x+5+numwidth + title_offset, ypos + (fheight-pb_height)/2, pb_space + 2, pb_height, COL_MENUCONTENT_PLUS_0); + CProgressBar pb(x + OFFSET_INNER_SMALL + numwidth + title_offset, ypos + (fheight-pb_height)/2, pb_space + 2, pb_height, COL_MENUCONTENT_PLUS_0); pb.setType(CProgressBar::PB_TIMESCALE); pb.setDesign(g_settings.channellist_progressbar_design); pb.setCornerType(0); @@ -2007,14 +2034,13 @@ void CChannelList::paintItem(int pos, const bool firstpaint) pb.doPaintBg(false); int pb_max = pb_space - 4; - if (!(p_event->description.empty())) { + if (!(p_event->description.empty())) + { snprintf(nameAndDescription+l, sizeof(nameAndDescription)-l,g_settings.channellist_epgtext_align_right ? " ":" - "); unsigned int ch_name_len = g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->getRenderWidth(nameAndDescription); unsigned int ch_desc_len = g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST_DESCR]->getRenderWidth(p_event->description); - int max_desc_len = width - numwidth - prg_offset - ch_name_len - 15 - 20; // 15 = scrollbar, 20 = spaces - if (chan->scrambled || g_settings.channellist_epgtext_align_right) - max_desc_len -= icon_space+g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST_DESCR]->getWidth(); /* do we need space for the lock/rec icon? */ + int max_desc_len = width - numwidth - prg_offset - ch_name_len - 15 - 2*OFFSET_INNER_MID - offset_right; // 15 = scrollbar if (max_desc_len < 0) max_desc_len = 0; @@ -2027,7 +2053,7 @@ void CChannelList::paintItem(int pos, const bool firstpaint) struct tm *pStartZeit = localtime(&p_event->startTime); snprintf(tmp, sizeof(tmp), "%02d:%02d", pStartZeit->tm_hour, pStartZeit->tm_min); - g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST_NUMBER]->RenderString(x+ 5+ numwidth+ 6, ypos + fheight, width- numwidth- 20- 15 -prg_offset, tmp, ecolor, fheight); + g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST_NUMBER]->RenderString(x + OFFSET_INNER_SMALL + numwidth + 6, ypos + fheight, width - numwidth - 15 - prg_offset - 2*OFFSET_INNER_MID, tmp, ecolor, fheight); } else { @@ -2044,18 +2070,20 @@ void CChannelList::paintItem(int pos, const bool firstpaint) } } - 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 (g_settings.channellist_epgtext_align_right) { // align right - g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST_DESCR]->RenderString(x + width - 20 - ch_desc_len - icon_space - 4, ypos + fheight, ch_desc_len, p_event->description, ecolor); + g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST_DESCR]->RenderString(x + width - 15 - offset_right - ch_desc_len, ypos + fheight, ch_desc_len, p_event->description, ecolor); } else { // align left - g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST_DESCR]->RenderString(x+ 5+ numwidth+ 10+ ch_name_len+ 5+prg_offset, ypos+ fheight, ch_desc_len, p_event->description, ecolor); + g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST_DESCR]->RenderString(x + OFFSET_INNER_SMALL + numwidth + OFFSET_INNER_MID + ch_name_len + OFFSET_INNER_SMALL + prg_offset, ypos + fheight, ch_desc_len, p_event->description, ecolor); } } - else { - if(g_settings.channellist_progressbar_design != CProgressBar::PB_OFF) { + else + { + if (g_settings.channellist_progressbar_design != CProgressBar::PB_OFF) + { pb.setValues(0, pb_max); pb.paint(); } diff --git a/src/gui/channellist.h b/src/gui/channellist.h index 49d057105..2a4058bff 100644 --- a/src/gui/channellist.h +++ b/src/gui/channellist.h @@ -133,9 +133,6 @@ private: bool displayList; bool pig_on_win; - int ChannelList_Rec; - - bool headerNew; void paintDetails(int index); From 766d368363039c0029891bdec7749355c5e72256 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 12 Dec 2016 11:15:14 +0100 Subject: [PATCH 038/142] infoviewer_bb: remove broken code around left/right handling in ca_bar This code wasn't used anymore since years. Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/aa9417a550f64d6b248d9598b6b1d3ba0ef42889 Author: vanhofen Date: 2016-12-12 (Mon, 12 Dec 2016) Origin message was: ------------------ - infoviewer_bb: remove broken code around left/right handling in ca_bar This code wasn't used anymore since years. --- src/gui/infoviewer_bb.cpp | 74 ++++++++++++++------------------------- src/gui/infoviewer_bb.h | 6 ++-- 2 files changed, 29 insertions(+), 51 deletions(-) diff --git a/src/gui/infoviewer_bb.cpp b/src/gui/infoviewer_bb.cpp index cac2bcf6a..fb95da0db 100644 --- a/src/gui/infoviewer_bb.cpp +++ b/src/gui/infoviewer_bb.cpp @@ -88,7 +88,8 @@ CInfoViewerBB::CInfoViewerBB() bbIconInfo[0].h = 0; BBarY = 0; BBarFontY = 0; - foot = cabar = NULL; + foot = NULL; + ca_bar = NULL; Init(); } @@ -465,7 +466,7 @@ void CInfoViewerBB::paintshowButtonBar() g_InfoViewer->sec_timer_id = g_RCInput->addTimer(1*1000*1000, false); if (g_settings.infobar_casystem_display < 2) - paintCA_bar(0,0); + paint_ca_bar(); paintFoot(); @@ -830,13 +831,6 @@ void CInfoViewerBB::showIcon_CA_Status(int notfirst) } if(!notfirst) { -#if 0 - static int icon_space_offset = 0; - if ((g_settings.infobar_casystem_display == 1) && (icon_space_offset)) { - paintCA_bar(0,icon_space_offset); - icon_space_offset = 0; - } -#endif for (int i = 0; i < (int)(sizeof(caids)/sizeof(int)); i++) { bool found = false; for(casys_map_iterator_t it = channel->camap.begin(); it != channel->camap.end(); ++it) { @@ -854,52 +848,36 @@ void CInfoViewerBB::showIcon_CA_Status(int notfirst) } } -void CInfoViewerBB::paintCA_bar(int left, int right) +void CInfoViewerBB::paint_ca_bar() { initBBOffset(); - int xcnt = (g_InfoViewer->BoxEndX - g_InfoViewer->ChanInfoX - (g_settings.infobar_casystem_frame ? 24 : 0)) / 4; - int ycnt = (bottom_bar_offset - (g_settings.infobar_casystem_frame ? 14 : 0)) / 4; int ca_width = g_InfoViewer->BoxEndX - g_InfoViewer->ChanInfoX; - if (right) - right = xcnt - ((right/4)+1); - if (left) - left = xcnt - ((left/4)-1); - - if (g_settings.infobar_casystem_frame) { // with highlighted frame - if (!right || !left) { // paint full bar - // framed ca bar - if (cabar == NULL) - cabar = new CComponentsShapeSquare(g_InfoViewer->ChanInfoX+11, g_InfoViewer->BoxEndY+1, ca_width-22 , bottom_bar_offset-11 , NULL, CC_SHADOW_ON, COL_INFOBAR_CASYSTEM_PLUS_2, COL_INFOBAR_CASYSTEM_PLUS_0); - //cabar->setCorner(RADIUS_SMALL, CORNER_ALL); - cabar->enableShadow(CC_SHADOW_ON, 3, true); - cabar->setFrameThickness(2); - -// cabar->paint(CC_SAVE_SCREEN_NO); - }else{ //TODO: remove this part, cabar object can do this - if (cabar == NULL) - cabar = new CComponentsShapeSquare(g_InfoViewer->ChanInfoX, g_InfoViewer->BoxEndY, ca_width , bottom_bar_offset-11, NULL, CC_SHADOW_OFF, COL_INFOBAR_CASYSTEM_PLUS_2); - //cabar->setCorner(RADIUS_SMALL, CORNER_ALL); - cabar->disableShadow(); - cabar->setFrameThickness(2); - cabar->setColorBody(COL_INFOBAR_CASYSTEM_PLUS_0); - } - cabar->setFrameThickness(2); - cabar->setCorner(RADIUS_SMALL, CORNER_ALL); - cabar->paint(CC_SAVE_SCREEN_NO); + if (g_settings.infobar_casystem_frame) + { + if (ca_bar == NULL) + ca_bar = new CComponentsShapeSquare(g_InfoViewer->ChanInfoX + OFFSET_INNER_MID, g_InfoViewer->BoxEndY, ca_width - 2*OFFSET_INNER_MID, bottom_bar_offset - OFFSET_INNER_MID, NULL, CC_SHADOW_ON, COL_INFOBAR_CASYSTEM_PLUS_2, COL_INFOBAR_CASYSTEM_PLUS_0); + ca_bar->enableShadow(CC_SHADOW_ON, OFFSET_SHADOW/2, true); + ca_bar->setFrameThickness(2); + ca_bar->setCorner(RADIUS_SMALL, CORNER_ALL); + ca_bar->paint(CC_SAVE_SCREEN_NO); } else + { paintBoxRel(g_InfoViewer->ChanInfoX, g_InfoViewer->BoxEndY, ca_width , bottom_bar_offset, COL_INFOBAR_CASYSTEM_PLUS_0); + } #if 1 - if (!g_settings.infobar_casystem_dotmatrix) //don't show dotmatrix - return; + if (g_settings.infobar_casystem_dotmatrix) + { + int xcnt = (g_InfoViewer->BoxEndX - g_InfoViewer->ChanInfoX - (g_settings.infobar_casystem_frame ? 24 : 0)) / 4; + int ycnt = (bottom_bar_offset - (g_settings.infobar_casystem_frame ? 14 : 0)) / 4; - if (left) - left -= 1; - - for (int i = 0 + right; i < xcnt - left; i++) { - for (int j = 0; j < ycnt; j++) { - frameBuffer->paintBoxRel((g_InfoViewer->ChanInfoX + (g_settings.infobar_casystem_frame ? 14 : 2)) + i*4, g_InfoViewer->BoxEndY + (g_settings.infobar_casystem_frame ? 4 : 2) + j*4, 2, 2, COL_INFOBAR_PLUS_1); + for (int i = 0; i < xcnt; i++) + { + for (int j = 0; j < ycnt; j++) + { + frameBuffer->paintBoxRel((g_InfoViewer->ChanInfoX + (g_settings.infobar_casystem_frame ? 14 : 2)) + i*4, g_InfoViewer->BoxEndY + (g_settings.infobar_casystem_frame ? 4 : 2) + j*4, 2, 2, COL_INFOBAR_PLUS_1); + } } } #endif @@ -937,8 +915,8 @@ void CInfoViewerBB::ResetModules() if (foot){ delete foot; foot = NULL; } - if (cabar){ - delete cabar; cabar = NULL; + if (ca_bar){ + delete ca_bar; ca_bar = NULL; } } diff --git a/src/gui/infoviewer_bb.h b/src/gui/infoviewer_bb.h index 81961a018..f0f7cf658 100644 --- a/src/gui/infoviewer_bb.h +++ b/src/gui/infoviewer_bb.h @@ -108,14 +108,14 @@ class CInfoViewerBB pthread_t scrambledT; CProgressBar *hddscale, *sysscale; - CComponentsShapeSquare *foot, *cabar; + CComponentsShapeSquare *foot, *ca_bar; void paintFoot(int w = 0); void showBBIcons(const int modus, const std::string & icon); void getBBIconInfo(void); bool checkBBIcon(const char * const icon, int *w, int *h); void paint_ca_icons(int, const char*, int&); - void paintCA_bar(int,int); + void paint_ca_bar(); void showOne_CAIcon(); static void* scrambledThread(void *arg); @@ -150,7 +150,7 @@ class CInfoViewerBB void initBBOffset(void); // modules CComponentsShapeSquare* getFooter(void){return foot;} - CComponentsShapeSquare* getCABar(void){return cabar;} + CComponentsShapeSquare* getCABar(void){return ca_bar;} void ResetModules(void); void changePB(void); }; From 63bfa0da6005b68b9d6b8c0ab0e4dd775c7fa4d1 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Mon, 12 Dec 2016 17:20:48 +0100 Subject: [PATCH 039/142] fix next epginfo and sat/freq info for webtv Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/af9c9140139e526bbfa038f8402b5b427ad62a45 Author: Jacek Jendrzej Date: 2016-12-12 (Mon, 12 Dec 2016) --- src/gui/channellist.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 679686f4e..81dfbb169 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -1520,24 +1520,23 @@ void CChannelList::paintDetails(int index) int ypos = y + height + OFFSET_INTER; int ypos_a = ypos + OFFSET_INNER_SMALL; - CChannelEvent *p_event = NULL; - - //colored_events init - bool colored_event_C = (g_settings.theme.colored_events_channellist == 1); - bool colored_event_N = (g_settings.theme.colored_events_channellist == 2); - frameBuffer->paintBoxRel(x, ypos, full_width, info_height, COL_MENUCONTENTDARK_PLUS_0, RADIUS_LARGE); frameBuffer->paintBoxFrame(x, ypos, full_width, info_height, 2, COL_FRAME_PLUS_0, RADIUS_LARGE); if ((*chanlist).empty()) return; + //colored_events init + bool colored_event_C = (g_settings.theme.colored_events_channellist == 1); + bool colored_event_N = (g_settings.theme.colored_events_channellist == 2); + + CChannelEvent *p_event = NULL; if (displayNext) p_event = &(*chanlist)[index]->nextEvent; else p_event = &(*chanlist)[index]->currentEvent; - if (/* !IS_WEBTV((*chanlist)[index]->getChannelID()) && */ !p_event->description.empty()) { + if (/* !IS_WEBTV((*chanlist)[index]->getChannelID()) && */ p_event && !p_event->description.empty()) { char cNoch[50] = {0}; // UTF-8 char cSeit[50] = {0}; // UTF-8 @@ -1604,7 +1603,7 @@ void CChannelList::paintDetails(int index) else if (IS_WEBTV((*chanlist)[index]->getChannelID())) { g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x+ 10, ypos_a + fheight, full_width - 30, (*chanlist)[index]->getDesc(), colored_event_C ? COL_COLORED_EVENTS_TEXT : COL_MENUCONTENTDARK_TEXT, 0, true); } - if (IS_WEBTV((*chanlist)[index]->getChannelID())) { + if (g_settings.channellist_foot == 0 && IS_WEBTV((*chanlist)[index]->getChannelID())) { g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x+ 10, ypos_a + 2*fheight + fdescrheight, full_width - 30, (*chanlist)[index]->getUrl(), COL_MENUCONTENTDARK_TEXT, 0, true); } else if(g_settings.channellist_foot == 0) { transponder t; @@ -1621,7 +1620,7 @@ void CChannelList::paintDetails(int index) else if( !displayNext && g_settings.channellist_foot == 1) { // next Event CSectionsdClient::CurrentNextInfo CurrentNext; - CEitManager::getInstance()->getCurrentNextServiceKey((*chanlist)[index]->getChannelID(), CurrentNext); + CEitManager::getInstance()->getCurrentNextServiceKey((*chanlist)[index]->getEpgID(), CurrentNext); if (!CurrentNext.next_name.empty()) { char buf[128] = {0}; char cFrom[50] = {0}; // UTF-8 From 248fdfc34be132bfbf12b4e834fed0bc6850a012 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Fri, 9 Dec 2016 20:11:45 +0100 Subject: [PATCH 040/142] CNeutrinoApp: use default timeout from settings Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/8eae5c5d0938df6bdadffb4939fadeee46358fdc Author: Thilo Graf Date: 2016-12-09 (Fri, 09 Dec 2016) --- src/neutrino.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index ca1769fa4..8f185ce20 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3517,7 +3517,7 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode) if(CRecordManager::getInstance()->RecordingStatus() || cYTCache::getInstance()->isActive()) { do_shutdown = (ShowMsg(LOCALE_MESSAGEBOX_INFO, LOCALE_SHUTDOWN_RECORDING_QUERY, CMsgBox::mbrNo, - CMsgBox::mbYes | CMsgBox::mbNo, NULL, 450, 30, true) == CMsgBox::mbrYes); + CMsgBox::mbYes | CMsgBox::mbNo, NULL, 450, DEFAULT_TIMEOUT, true) == CMsgBox::mbrYes); } if(do_shutdown) { From fb304d1d525dd7e01598ba4c8cf213af57da4885 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Fri, 9 Dec 2016 20:12:05 +0100 Subject: [PATCH 041/142] CRecordManager: use default timeout from settings Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/b273334f46a73a1f955261069fe0d5d6c82a3284 Author: Thilo Graf Date: 2016-12-09 (Fri, 09 Dec 2016) --- src/driver/record.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index ec33188dd..b9ee29bca 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -1418,7 +1418,7 @@ int CRecordManager::exec(CMenuTarget* parent, const std::string & actionKey ) inst->GetRecordString(title, duration); title += duration; tostart = (ShowMsg(LOCALE_RECORDING_IS_RUNNING, title.c_str(), - CMsgBox::mbrYes, CMsgBox::mbYes | CMsgBox::mbNo, NULL, 450, 30) == CMsgBox::mbrYes); + CMsgBox::mbrYes, CMsgBox::mbYes | CMsgBox::mbNo, NULL, 450, DEFAULT_TIMEOUT) == CMsgBox::mbrYes); } if (tostart) { CRecordManager::getInstance()->Record(live_channel_id); From e8039bf7845f35e91bc21a145fd655e09c27882d Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Mon, 12 Dec 2016 21:35:18 +0100 Subject: [PATCH 042/142] CHintBox: fix timeout comparsion default timeout was not defined Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/bd75701fc39b13be9c5b1b27b1cc31b9df4bd6ce Author: Thilo Graf Date: 2016-12-12 (Mon, 12 Dec 2016) --- src/gui/widget/hintbox.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/widget/hintbox.cpp b/src/gui/widget/hintbox.cpp index 52728f3c1..2439f57ed 100644 --- a/src/gui/widget/hintbox.cpp +++ b/src/gui/widget/hintbox.cpp @@ -197,7 +197,7 @@ int CHintBox::exec() neutrino_msg_data_t data; int res = messages_return::none; - if (timeout == NO_TIMEOUT || timeout == 0) + if (timeout == NO_TIMEOUT || timeout == DEFAULT_TIMEOUT) timeout = HINTBOX_DEFAULT_TIMEOUT; uint64_t timeoutEnd = CRCInput::calcTimeoutEnd( timeout ); From 5319fefae77e6062572e29d200815bff0e4b39aa Mon Sep 17 00:00:00 2001 From: vanhofen Date: Tue, 13 Dec 2016 10:53:24 +0100 Subject: [PATCH 043/142] usermenu: sort/cleanup code by items; just code cosmetics Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/e0f860664c85af8e1138f5f8bad2a045f961864f Author: vanhofen Date: 2016-12-13 (Tue, 13 Dec 2016) Origin message was: ------------------ - usermenu: sort/cleanup code by items; just code cosmetics --- src/gui/user_menue.cpp | 204 +++++++++++++++-------------------- src/gui/user_menue_setup.cpp | 30 ++---- src/gui/user_menue_setup.h | 2 - 3 files changed, 95 insertions(+), 141 deletions(-) diff --git a/src/gui/user_menue.cpp b/src/gui/user_menue.cpp index 0e59617a6..a242800be 100644 --- a/src/gui/user_menue.cpp +++ b/src/gui/user_menue.cpp @@ -201,15 +201,58 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) if (it->find_first_not_of("0123456789") == std::string::npos) item = atoi(*it); menu_item = NULL; - switch (item) { + switch (item) + { case SNeutrinoSettings::ITEM_NONE: continue; case SNeutrinoSettings::ITEM_BAR: menu->addItem(GenericMenuSeparatorLine); break; - case SNeutrinoSettings::ITEM_FAVORITS: - keyhelper.get(&key,&icon,feat_key[g_settings.personalize[SNeutrinoSettings::P_FEAT_KEY_FAVORIT]].key); //CRCInput::RC_green - menu_item = new CMenuDForwarder(LOCALE_FAVORITES_MENUEADD, true, NULL, new CFavorites, "-1", key, icon); + case SNeutrinoSettings::ITEM_EPG_LIST: + keyhelper.get(&key,&icon,CRCInput::RC_red); + menu_item = new CMenuDForwarder(LOCALE_EPGMENU_EVENTLIST, !_mode_ts, NULL, new CEventListHandler, "-1", key, icon); + // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); + break; + case SNeutrinoSettings::ITEM_EPG_SUPER: + keyhelper.get(&key,&icon,CRCInput::RC_green); + menu_item = new CMenuDForwarder(LOCALE_EPGMENU_EPGPLUS, !_mode_ts, NULL, new CEPGplusHandler, "-1", key, icon); + // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); + break; + case SNeutrinoSettings::ITEM_EPG_INFO: + keyhelper.get(&key,&icon,CRCInput::RC_yellow); + menu_item = new CMenuDForwarder(LOCALE_EPGMENU_EVENTINFO, !_mode_ts, NULL, new CEPGDataHandler, "-1", key, icon); + // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); + break; + case SNeutrinoSettings::ITEM_EPG_MISC: + dummy = g_Sectionsd->getIsScanningActive(); + keyhelper.get(&key,&icon); + menu_item = new CMenuOptionChooser(LOCALE_MAINMENU_PAUSESECTIONSD, &dummy, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this , key, icon ); + // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); + menu->addItem(menu_item, false); + + keyhelper.get(&key,&icon); + menu_item = new CMenuForwarder(LOCALE_MAINMENU_CLEARSECTIONSD, true, NULL, neutrino, "clearSectionsd", key,icon); + // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); + break; + case SNeutrinoSettings::ITEM_AUDIO_SELECT: + keyhelper.get(&key,&icon); + menu_item = new CMenuDForwarder(LOCALE_AUDIOSELECTMENUE_HEAD, !_mode_ts, NULL, new CAudioSelectMenuHandler, "-1", key,icon); + // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); + break; + case SNeutrinoSettings::ITEM_SUBCHANNEL: + if (g_RemoteControl->subChannels.empty()) + break; + if (_mode_webtv) + break; + // NVOD/SubService- Kanal! + CMenuWidget *tmpNVODSelector = new CMenuWidget(g_RemoteControl->are_subchannels ? LOCALE_NVODSELECTOR_SUBSERVICE : LOCALE_NVODSELECTOR_STARTTIME, NEUTRINO_ICON_VIDEO); + if (!subchanselect.getNVODMenu(tmpNVODSelector)) + { + delete tmpNVODSelector; + break; + } + keyhelper.get(&key,&icon); + menu_item = new CMenuDForwarder(g_RemoteControl->are_subchannels ? LOCALE_NVODSELECTOR_SUBSERVICE : LOCALE_NVODSELECTOR_STARTTIME, true, NULL, tmpNVODSelector, "-1", key,icon); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; case SNeutrinoSettings::ITEM_RECORD: @@ -231,89 +274,27 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) menu_item = new CMenuDForwarder(LOCALE_TIMERLIST_NAME, true, NULL, new CTimerList, "-1", key, icon); menu_item->setHint(NEUTRINO_ICON_HINT_TIMERS, LOCALE_MENU_HINT_TIMERS); break; - case SNeutrinoSettings::ITEM_REMOTE: - keyhelper.get(&key,&icon,feat_key[g_settings.personalize[SNeutrinoSettings::P_FEAT_KEY_RC_LOCK]].key); //CRCInput::RC_nokey); - menu_item = new CMenuForwarder(LOCALE_RCLOCK_TITLE, true, NULL, CRCLock::getInstance(), "-1" , key, icon ); + case SNeutrinoSettings::ITEM_VTXT: + keyhelper.get(&key,&icon, feat_key[g_settings.personalize[SNeutrinoSettings::P_FEAT_KEY_VTXT]].key); //CRCInput::RC_blue + menu_item = new CMenuForwarder(LOCALE_USERMENU_ITEM_VTXT, true, NULL, CPluginsExec::getInstance(), "teletext", key, icon); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; - case SNeutrinoSettings::ITEM_EPG_SUPER: - keyhelper.get(&key,&icon,CRCInput::RC_green); - menu_item = new CMenuDForwarder(LOCALE_EPGMENU_EPGPLUS, !_mode_ts, NULL, new CEPGplusHandler, "-1", key, icon); + case SNeutrinoSettings::ITEM_FAVORITS: + keyhelper.get(&key,&icon,feat_key[g_settings.personalize[SNeutrinoSettings::P_FEAT_KEY_FAVORIT]].key); //CRCInput::RC_green + menu_item = new CMenuDForwarder(LOCALE_FAVORITES_MENUEADD, true, NULL, new CFavorites, "-1", key, icon); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; - case SNeutrinoSettings::ITEM_EPG_LIST: - keyhelper.get(&key,&icon,CRCInput::RC_red); - menu_item = new CMenuDForwarder(LOCALE_EPGMENU_EVENTLIST, !_mode_ts, NULL, new CEventListHandler, "-1", key, icon); - // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); - break; - case SNeutrinoSettings::ITEM_EPG_INFO: - keyhelper.get(&key,&icon,CRCInput::RC_yellow); - menu_item = new CMenuDForwarder(LOCALE_EPGMENU_EVENTINFO, !_mode_ts, NULL, new CEPGDataHandler, "-1", key, icon); - // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); - break; - case SNeutrinoSettings::ITEM_EPG_MISC: - { - dummy = g_Sectionsd->getIsScanningActive(); - keyhelper.get(&key,&icon); - // new CMenuOptionChooser(LOCALE_VIDEOMENU_VIDEOMODE, &g_settings.video_Mode, VIDEOMENU_VIDEOMODE_OPTIONS, VIDEOMENU_VIDEOMODE_OPTION_COUNT, true, this, CRCInput::RC_nokey, "", true); - menu_item = new CMenuOptionChooser(LOCALE_MAINMENU_PAUSESECTIONSD, &dummy, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this , key, icon ); - menu->addItem(menu_item, false); - - keyhelper.get(&key,&icon); - menu_item = new CMenuForwarder(LOCALE_MAINMENU_CLEARSECTIONSD, true, NULL, neutrino, "clearSectionsd", key,icon); - // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); - break; - } - case SNeutrinoSettings::ITEM_AUDIO_SELECT: - keyhelper.get(&key,&icon); - menu_item = new CMenuDForwarder(LOCALE_AUDIOSELECTMENUE_HEAD, !_mode_ts, NULL, new CAudioSelectMenuHandler, "-1", key,icon); - // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); - break; - case SNeutrinoSettings::ITEM_SUBCHANNEL: - { - if (g_RemoteControl->subChannels.empty()) - break; - if (_mode_webtv) - break; - // NVOD/SubService- Kanal! - CMenuWidget *tmpNVODSelector = new CMenuWidget(g_RemoteControl->are_subchannels ? LOCALE_NVODSELECTOR_SUBSERVICE : LOCALE_NVODSELECTOR_STARTTIME, NEUTRINO_ICON_VIDEO); - if (!subchanselect.getNVODMenu(tmpNVODSelector)) { - delete tmpNVODSelector; - break; - } - keyhelper.get(&key,&icon); - menu_item = new CMenuDForwarder(g_RemoteControl->are_subchannels ? LOCALE_NVODSELECTOR_SUBSERVICE : LOCALE_NVODSELECTOR_STARTTIME, true, NULL, tmpNVODSelector, "-1", key,icon); - // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); - - break; - } case SNeutrinoSettings::ITEM_TECHINFO: keyhelper.get(&key,&icon,CRCInput::RC_blue); menu_item = new CMenuDForwarder(LOCALE_EPGMENU_STREAMINFO, !neutrino->channelList->isEmpty(), NULL, new CStreamInfo2, "-1", key, icon ); menu_item->setHint(NEUTRINO_ICON_HINT_STREAMINFO, LOCALE_MENU_HINT_STREAMINFO); break; - 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->setHint(NEUTRINO_ICON_HINT_GAMES, LOCALE_MENU_HINT_GAMES); - break; - 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 ); - // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); - 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->setHint(NEUTRINO_ICON_HINT_SCRIPTS, LOCALE_MENU_HINT_SCRIPTS); - 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 ); + case SNeutrinoSettings::ITEM_REMOTE: + keyhelper.get(&key,&icon,feat_key[g_settings.personalize[SNeutrinoSettings::P_FEAT_KEY_RC_LOCK]].key); //CRCInput::RC_nokey); + menu_item = new CMenuForwarder(LOCALE_RCLOCK_TITLE, true, NULL, CRCLock::getInstance(), "-1" , key, icon ); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; case SNeutrinoSettings::ITEM_PLUGIN_TYPES: - { unsigned int number_of_plugins = (unsigned int) g_PluginList->getNumberOfPlugins(); if (!number_of_plugins) continue; @@ -347,12 +328,6 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) } menu_item = NULL; break; - } - case SNeutrinoSettings::ITEM_VTXT: - keyhelper.get(&key,&icon, feat_key[g_settings.personalize[SNeutrinoSettings::P_FEAT_KEY_VTXT]].key); //CRCInput::RC_blue - menu_item = new CMenuForwarder(LOCALE_USERMENU_ITEM_VTXT, true, NULL, CPluginsExec::getInstance(), "teletext", key, icon); - // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); - break; case SNeutrinoSettings::ITEM_IMAGEINFO: keyhelper.get(&key,&icon); menu_item = new CMenuDForwarder(LOCALE_SERVICEMENU_IMAGEINFO, true, NULL, new CImageInfo, NULL, key, icon); @@ -365,9 +340,9 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) break; #if !HAVE_SPARK_HARDWARE case SNeutrinoSettings::ITEM_CAM: - //if(cs_get_revision() == 10) continue; keyhelper.get(&key,&icon); menu_item = new CMenuForwarder(LOCALE_CI_SETTINGS, true, NULL, g_CamHandler, NULL, key, icon); + // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; #endif case SNeutrinoSettings::ITEM_CLOCK: @@ -375,37 +350,16 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) menu_item = new CMenuForwarder(!g_settings.mode_clock ? LOCALE_CLOCK_SWITCH_ON:LOCALE_CLOCK_SWITCH_OFF, true, NULL, neutrino, "clock_switch", key, icon); menu_item->setHint("", LOCALE_MENU_HINT_CLOCK_MODE); break; - case SNeutrinoSettings::ITEM_ADZAP: - keyhelper.get(&key,&icon,CRCInput::RC_blue); - menu_item = new CMenuForwarder(LOCALE_USERMENU_ITEM_ADZAP, true, adzap_active ? g_Locale->getText(LOCALE_OPTIONS_OFF) : NULL, CAdZapMenu::getInstance(), "adzap", key, icon); - menu_item->setHint(NEUTRINO_ICON_HINT_ADZAP, adzap_active ? LOCALE_MENU_HINT_ADZAP_ACTIVE : LOCALE_MENU_HINT_ADZAP); - break; -#if 0 - case SNeutrinoSettings::ITEM_TUNER_RESTART: + case SNeutrinoSettings::ITEM_GAMES: keyhelper.get(&key,&icon); - menu_item = new CMenuForwarder(LOCALE_SERVICEMENU_RESTART_TUNER, true, NULL, neutrino, "restarttuner", key, icon); - menu_item->setHint(NEUTRINO_ICON_HINT_RELOAD_CHANNELS, LOCALE_MENU_HINT_RESTART_TUNER); + 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->setHint(NEUTRINO_ICON_HINT_GAMES, LOCALE_MENU_HINT_GAMES); break; - case SNeutrinoSettings::ITEM_RASS: - if (!(neutrino->getMode() == CNeutrinoApp::mode_radio && g_Radiotext && g_Radiotext->haveRASS())) - continue; + case SNeutrinoSettings::ITEM_SCRIPTS: keyhelper.get(&key,&icon); - menu_item = new CMenuForwarder(LOCALE_RASS_HEAD, true, NULL, neutrino, "rass", key, icon); - menu_item->setHint(NEUTRINO_ICON_HINT_RASS, LOCALE_MENU_HINT_RASS); + 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->setHint(NEUTRINO_ICON_HINT_SCRIPTS, LOCALE_MENU_HINT_SCRIPTS); break; - case SNeutrinoSettings::ITEM_NETZKINO: - keyhelper.get(&key,&icon); - menu_item = new CMenuForwarder(LOCALE_MOVIEPLAYER_NKPLAYBACK, true, NULL, neutrino, "nkplayback", key, icon); - menu_item->setHint(NEUTRINO_ICON_HINT_NKPLAY, LOCALE_MENU_HINT_NKPLAY); - break; -#endif -#if HAVE_SPARK_HARDWARE - case SNeutrinoSettings::ITEM_THREE_D_MODE: - keyhelper.get(&key,&icon); - menu_item = new CMenuForwarder(LOCALE_THREE_D_SETTINGS, true, NULL, neutrino, "3dmode", key, icon); - menu_item->setHint("", LOCALE_MENU_HINT_VIDEO_THREE_D); - break; -#endif case SNeutrinoSettings::ITEM_YOUTUBE: keyhelper.get(&key,&icon); menu_item = new CMenuForwarder(LOCALE_MOVIEPLAYER_YTPLAYBACK, !_mode_ts, NULL, neutrino, "ytplayback", key, icon); @@ -416,6 +370,21 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) menu_item = new CMenuForwarder(LOCALE_MOVIEPLAYER_FILEPLAYBACK, !_mode_ts, NULL, neutrino, "fileplayback", key, icon); menu_item->setHint(NEUTRINO_ICON_HINT_FILEPLAY, LOCALE_MENU_HINT_FILEPLAY); break; + 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 ); + // 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 ); + // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); + break; + case SNeutrinoSettings::ITEM_HDDMENU: + keyhelper.get(&key,&icon); + menu_item = new CMenuForwarder(LOCALE_HDD_SETTINGS, true, NULL, CHDDMenuHandler::getInstance(), NULL, key, icon); + menu_item->setHint(NEUTRINO_ICON_HINT_HDD, LOCALE_MENU_HINT_HDD); + break; case SNeutrinoSettings::ITEM_AUDIOPLAY: keyhelper.get(&key,&icon); menu_item = new CMenuForwarder(LOCALE_AUDIOPLAYER_NAME, true, NULL, neutrino, "audioplayer", key, icon); @@ -426,11 +395,6 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) menu_item = new CMenuForwarder(LOCALE_INETRADIO_NAME, true, NULL, neutrino, "inetplayer", key, icon); menu_item->setHint(NEUTRINO_ICON_HINT_INET_RADIO, LOCALE_MENU_HINT_INET_RADIO); break; - case SNeutrinoSettings::ITEM_HDDMENU: - keyhelper.get(&key,&icon); - menu_item = new CMenuForwarder(LOCALE_HDD_SETTINGS, true, NULL, CHDDMenuHandler::getInstance(), NULL, key, icon); - menu_item->setHint(NEUTRINO_ICON_HINT_HDD, LOCALE_MENU_HINT_HDD); - break; case SNeutrinoSettings::ITEM_NETSETTINGS: keyhelper.get(&key,&icon); menu_item = new CMenuForwarder(LOCALE_MAINSETTINGS_NETWORK, true, NULL, CNetworkSetup::getInstance(), NULL, key, icon); @@ -446,10 +410,15 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) break; keyhelper.get(&key,&icon); menu_item = new CMenuDForwarder(LOCALE_LIVESTREAM_RESOLUTION, true, NULL, new CWebTVResolution(), NULL, key, icon); - //menu_item->setHint(xx, yy); + // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); + break; + case SNeutrinoSettings::ITEM_ADZAP: + keyhelper.get(&key,&icon,CRCInput::RC_blue); + menu_item = new CMenuForwarder(LOCALE_USERMENU_ITEM_ADZAP, true, adzap_active ? g_Locale->getText(LOCALE_OPTIONS_OFF) : NULL, CAdZapMenu::getInstance(), "adzap", key, icon); + menu_item->setHint(NEUTRINO_ICON_HINT_ADZAP, adzap_active ? LOCALE_MENU_HINT_ADZAP_ACTIVE : LOCALE_MENU_HINT_ADZAP); break; case -1: // plugin - { + { int number_of_plugins = g_PluginList->getNumberOfPlugins(); if (!number_of_plugins) continue; @@ -466,8 +435,9 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) } if (count == number_of_plugins) continue; - } } + + } // switch end itemstr_last = *it; if (menu_item) { diff --git a/src/gui/user_menue_setup.cpp b/src/gui/user_menue_setup.cpp index 8db4e8306..b67a76370 100644 --- a/src/gui/user_menue_setup.cpp +++ b/src/gui/user_menue_setup.cpp @@ -52,13 +52,6 @@ #include static bool usermenu_show = true; -#if 0 -#if HAVE_SPARK_HARDWARE -static bool usermenu_show_three_d_mode = true; -#else -static bool usermenu_show_three_d_mode = false; -#endif -#endif #if HAVE_SPARK_HARDWARE static bool usermenu_show_cam = false; // FIXME -- use hwcaps? #else @@ -81,33 +74,27 @@ static keyvals usermenu_items[] = { SNeutrinoSettings::ITEM_EPG_MISC, LOCALE_USERMENU_ITEM_EPG_MISC, usermenu_show }, { SNeutrinoSettings::ITEM_AUDIO_SELECT, LOCALE_AUDIOSELECTMENUE_HEAD, usermenu_show }, { SNeutrinoSettings::ITEM_SUBCHANNEL, LOCALE_NVODSELECTOR_HEAD, usermenu_show }, - { SNeutrinoSettings::ITEM_FILEPLAY, LOCALE_MOVIEPLAYER_FILEPLAYBACK, usermenu_show }, - { SNeutrinoSettings::ITEM_AUDIOPLAY, LOCALE_AUDIOPLAYER_NAME, usermenu_show }, - { SNeutrinoSettings::ITEM_INETPLAY, LOCALE_INETRADIO_NAME, usermenu_show }, + { SNeutrinoSettings::ITEM_RECORD, LOCALE_TIMERLIST_TYPE_RECORD, usermenu_show }, { SNeutrinoSettings::ITEM_MOVIEPLAYER_MB, LOCALE_MOVIEBROWSER_HEAD, usermenu_show }, { SNeutrinoSettings::ITEM_TIMERLIST, LOCALE_TIMERLIST_NAME, usermenu_show }, - { SNeutrinoSettings::ITEM_REMOTE, LOCALE_RCLOCK_TITLE, usermenu_show }, + { SNeutrinoSettings::ITEM_VTXT, LOCALE_USERMENU_ITEM_VTXT, usermenu_show }, { SNeutrinoSettings::ITEM_FAVORITS, LOCALE_FAVORITES_MENUEADD, usermenu_show }, { SNeutrinoSettings::ITEM_TECHINFO, LOCALE_EPGMENU_STREAMINFO, usermenu_show }, + { SNeutrinoSettings::ITEM_REMOTE, LOCALE_RCLOCK_TITLE, usermenu_show }, { SNeutrinoSettings::ITEM_PLUGIN_TYPES, LOCALE_USERMENU_ITEM_PLUGIN_TYPES, usermenu_show }, - { SNeutrinoSettings::ITEM_VTXT, LOCALE_USERMENU_ITEM_VTXT, usermenu_show }, { SNeutrinoSettings::ITEM_IMAGEINFO, LOCALE_SERVICEMENU_IMAGEINFO, usermenu_show }, { SNeutrinoSettings::ITEM_BOXINFO, LOCALE_EXTRA_DBOXINFO, usermenu_show }, { SNeutrinoSettings::ITEM_CAM, LOCALE_CI_SETTINGS, usermenu_show_cam }, { SNeutrinoSettings::ITEM_CLOCK, LOCALE_CLOCK_SWITCH_ON, usermenu_show }, { SNeutrinoSettings::ITEM_GAMES, LOCALE_MAINMENU_GAMES, usermenu_show }, - { SNeutrinoSettings::ITEM_TOOLS, LOCALE_MAINMENU_TOOLS, usermenu_show }, { SNeutrinoSettings::ITEM_SCRIPTS, LOCALE_MAINMENU_SCRIPTS, usermenu_show }, - { SNeutrinoSettings::ITEM_LUA, LOCALE_MAINMENU_LUA, usermenu_show }, -#if 0 - { SNeutrinoSettings::ITEM_TUNER_RESTART, LOCALE_SERVICEMENU_RESTART_TUNER, usermenu_show }, - { SNeutrinoSettings::ITEM_THREE_D_MODE, LOCALE_THREE_D_SETTINGS, usermenu_show_three_d_mode }, - { SNeutrinoSettings::ITEM_RASS, LOCALE_RASS_HEAD, usermenu_show }, - { SNeutrinoSettings::ITEM_NETZKINO, LOCALE_MOVIEPLAYER_NKPLAYBACK, usermenu_show }, -#endif { SNeutrinoSettings::ITEM_YOUTUBE, LOCALE_MOVIEPLAYER_YTPLAYBACK, usermenu_show }, - { SNeutrinoSettings::ITEM_RECORD, LOCALE_TIMERLIST_TYPE_RECORD, usermenu_show }, + { SNeutrinoSettings::ITEM_FILEPLAY, LOCALE_MOVIEPLAYER_FILEPLAYBACK, usermenu_show }, + { SNeutrinoSettings::ITEM_TOOLS, LOCALE_MAINMENU_TOOLS, usermenu_show }, + { SNeutrinoSettings::ITEM_LUA, LOCALE_MAINMENU_LUA, usermenu_show }, { SNeutrinoSettings::ITEM_HDDMENU, LOCALE_HDD_SETTINGS, usermenu_show }, + { SNeutrinoSettings::ITEM_AUDIOPLAY, LOCALE_AUDIOPLAYER_NAME, usermenu_show }, + { SNeutrinoSettings::ITEM_INETPLAY, LOCALE_INETRADIO_NAME, usermenu_show }, { SNeutrinoSettings::ITEM_NETSETTINGS, LOCALE_MAINSETTINGS_NETWORK, usermenu_show }, { SNeutrinoSettings::ITEM_SWUPDATE, LOCALE_SERVICEMENU_UPDATE, usermenu_show }, { SNeutrinoSettings::ITEM_LIVESTREAM_RESOLUTION,LOCALE_LIVESTREAM_RESOLUTION, usermenu_show }, @@ -266,7 +253,6 @@ int CUserMenuSetup::showSetup() return res; } - //check button name for details like empty string and show an user message on issue void CUserMenuSetup::checkButtonName() { diff --git a/src/gui/user_menue_setup.h b/src/gui/user_menue_setup.h index f622eadf5..0bdeebf47 100644 --- a/src/gui/user_menue_setup.h +++ b/src/gui/user_menue_setup.h @@ -59,7 +59,6 @@ const struct usermenu_props_t usermenu[USERMENU_ITEMS_COUNT] = {LOCALE_USERMENU_BUTTON_BLUE , SNeutrinoSettings::BUTTON_BLUE , CRCInput::RC_blue ,NEUTRINO_ICON_BUTTON_BLUE ,LOCALE_USERMENU_TITLE_BLUE } }; - class CUserMenuSetup : public CMenuTarget { private: @@ -87,5 +86,4 @@ class CUserMenuSetup : public CMenuTarget static neutrino_locale_t getLocale(unsigned int i); }; - #endif From 7cbc87af3bce1780c586edc2d7e2e64124707b16 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Tue, 13 Dec 2016 11:10:58 +0100 Subject: [PATCH 044/142] settings.h: completion of 5319fefae77e6062572e29d200815bff0e4b39aa Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/b22b276d1840699adf8b5f1573c22b0703c16f70 Author: vanhofen Date: 2016-12-13 (Tue, 13 Dec 2016) Origin message was: ------------------ - settings.h: completion of 5319fefae77e6062572e29d200815bff0e4b39aa --- src/system/settings.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/system/settings.h b/src/system/settings.h index ed314dfea..1d4477cb4 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -786,15 +786,18 @@ struct SNeutrinoSettings // USERMENU typedef enum { - BUTTON_RED = 0, // Do not change ordering of members, add new item just before BUTTON_MAX!!! + // Do not change ordering of members, add new item just before BUTTON_MAX!!! + BUTTON_RED = 0, BUTTON_GREEN = 1, BUTTON_YELLOW = 2, BUTTON_BLUE = 3, - BUTTON_MAX // MUST be always the last in the list + BUTTON_MAX // MUST be always the last in the list } USER_BUTTON; + typedef enum { - ITEM_NONE = 0, // Do not change ordering of members, add new item just before ITEM_MAX!!! + // Do not change ordering of members, add new item just before ITEM_MAX!!! + ITEM_NONE = 0, ITEM_BAR = 1, ITEM_EPG_LIST = 2, ITEM_EPG_SUPER = 3, @@ -820,18 +823,16 @@ struct SNeutrinoSettings ITEM_FILEPLAY = 23, ITEM_TOOLS = 24, ITEM_LUA = 25, - ITEM_HDDMENU = 26, ITEM_AUDIOPLAY = 27, ITEM_INETPLAY = 28, ITEM_NETSETTINGS = 29, ITEM_SWUPDATE = 30, - ITEM_LIVESTREAM_RESOLUTION = 31, ITEM_ADZAP = 32, - - ITEM_MAX // MUST be always the last in the list + ITEM_MAX // MUST be always the last in the list } USER_ITEM; + typedef struct { unsigned int key; std::string items; From 0800f92373fe0b72a1662c2ee668db7644d90fa3 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Tue, 13 Dec 2016 12:32:00 +0100 Subject: [PATCH 045/142] usermenu: add brackets to code; fix compilation Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/8dcaad4f07b2675f535ef9cb36eafe4cacd87e0e Author: vanhofen Date: 2016-12-13 (Tue, 13 Dec 2016) Origin message was: ------------------ - usermenu: add brackets to code; fix compilation --- src/gui/user_menue.cpp | 72 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 3 deletions(-) diff --git a/src/gui/user_menue.cpp b/src/gui/user_menue.cpp index a242800be..bd5987f30 100644 --- a/src/gui/user_menue.cpp +++ b/src/gui/user_menue.cpp @@ -204,26 +204,37 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) switch (item) { case SNeutrinoSettings::ITEM_NONE: + { continue; + } case SNeutrinoSettings::ITEM_BAR: + { menu->addItem(GenericMenuSeparatorLine); break; + } case SNeutrinoSettings::ITEM_EPG_LIST: + { keyhelper.get(&key,&icon,CRCInput::RC_red); menu_item = new CMenuDForwarder(LOCALE_EPGMENU_EVENTLIST, !_mode_ts, NULL, new CEventListHandler, "-1", key, icon); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; + } case SNeutrinoSettings::ITEM_EPG_SUPER: + { keyhelper.get(&key,&icon,CRCInput::RC_green); menu_item = new CMenuDForwarder(LOCALE_EPGMENU_EPGPLUS, !_mode_ts, NULL, new CEPGplusHandler, "-1", key, icon); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; + } case SNeutrinoSettings::ITEM_EPG_INFO: + { keyhelper.get(&key,&icon,CRCInput::RC_yellow); menu_item = new CMenuDForwarder(LOCALE_EPGMENU_EVENTINFO, !_mode_ts, NULL, new CEPGDataHandler, "-1", key, icon); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; + } case SNeutrinoSettings::ITEM_EPG_MISC: + { dummy = g_Sectionsd->getIsScanningActive(); keyhelper.get(&key,&icon); menu_item = new CMenuOptionChooser(LOCALE_MAINMENU_PAUSESECTIONSD, &dummy, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this , key, icon ); @@ -234,12 +245,16 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) menu_item = new CMenuForwarder(LOCALE_MAINMENU_CLEARSECTIONSD, true, NULL, neutrino, "clearSectionsd", key,icon); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; + } case SNeutrinoSettings::ITEM_AUDIO_SELECT: + { keyhelper.get(&key,&icon); menu_item = new CMenuDForwarder(LOCALE_AUDIOSELECTMENUE_HEAD, !_mode_ts, NULL, new CAudioSelectMenuHandler, "-1", key,icon); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; + } case SNeutrinoSettings::ITEM_SUBCHANNEL: + { if (g_RemoteControl->subChannels.empty()) break; if (_mode_webtv) @@ -255,46 +270,62 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) menu_item = new CMenuDForwarder(g_RemoteControl->are_subchannels ? LOCALE_NVODSELECTOR_SUBSERVICE : LOCALE_NVODSELECTOR_STARTTIME, true, NULL, tmpNVODSelector, "-1", key,icon); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; + } case SNeutrinoSettings::ITEM_RECORD: + { if (g_settings.recording_type == RECORDING_OFF) break; keyhelper.get(&key,&icon,CRCInput::RC_red); menu_item = new CMenuForwarder(LOCALE_MAINMENU_RECORDING, true, NULL, CRecordManager::getInstance(), "-1", key, icon); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; + } case SNeutrinoSettings::ITEM_MOVIEPLAYER_MB: + { if (g_settings.recording_type == RECORDING_OFF) break; keyhelper.get(&key,&icon,CRCInput::RC_green); menu_item = new CMenuForwarder(LOCALE_MOVIEBROWSER_HEAD, !_mode_ts, NULL, neutrino, "tsmoviebrowser", key, icon); menu_item->setHint(NEUTRINO_ICON_HINT_MB, LOCALE_MENU_HINT_MB); break; + } case SNeutrinoSettings::ITEM_TIMERLIST: + { keyhelper.get(&key,&icon,feat_key[g_settings.personalize[SNeutrinoSettings::P_FEAT_KEY_TIMERLIST]].key); //CRCInput::RC_yellow menu_item = new CMenuDForwarder(LOCALE_TIMERLIST_NAME, true, NULL, new CTimerList, "-1", key, icon); menu_item->setHint(NEUTRINO_ICON_HINT_TIMERS, LOCALE_MENU_HINT_TIMERS); break; + } case SNeutrinoSettings::ITEM_VTXT: + { keyhelper.get(&key,&icon, feat_key[g_settings.personalize[SNeutrinoSettings::P_FEAT_KEY_VTXT]].key); //CRCInput::RC_blue menu_item = new CMenuForwarder(LOCALE_USERMENU_ITEM_VTXT, true, NULL, CPluginsExec::getInstance(), "teletext", key, icon); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; + } case SNeutrinoSettings::ITEM_FAVORITS: + { keyhelper.get(&key,&icon,feat_key[g_settings.personalize[SNeutrinoSettings::P_FEAT_KEY_FAVORIT]].key); //CRCInput::RC_green menu_item = new CMenuDForwarder(LOCALE_FAVORITES_MENUEADD, true, NULL, new CFavorites, "-1", key, icon); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; + } case SNeutrinoSettings::ITEM_TECHINFO: + { keyhelper.get(&key,&icon,CRCInput::RC_blue); menu_item = new CMenuDForwarder(LOCALE_EPGMENU_STREAMINFO, !neutrino->channelList->isEmpty(), NULL, new CStreamInfo2, "-1", key, icon ); menu_item->setHint(NEUTRINO_ICON_HINT_STREAMINFO, LOCALE_MENU_HINT_STREAMINFO); break; + } case SNeutrinoSettings::ITEM_REMOTE: + { keyhelper.get(&key,&icon,feat_key[g_settings.personalize[SNeutrinoSettings::P_FEAT_KEY_RC_LOCK]].key); //CRCInput::RC_nokey); menu_item = new CMenuForwarder(LOCALE_RCLOCK_TITLE, true, NULL, CRCLock::getInstance(), "-1" , key, icon ); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; + } case SNeutrinoSettings::ITEM_PLUGIN_TYPES: + { unsigned int number_of_plugins = (unsigned int) g_PluginList->getNumberOfPlugins(); if (!number_of_plugins) continue; @@ -328,95 +359,130 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) } menu_item = NULL; break; + } case SNeutrinoSettings::ITEM_IMAGEINFO: + { keyhelper.get(&key,&icon); menu_item = new CMenuDForwarder(LOCALE_SERVICEMENU_IMAGEINFO, true, NULL, new CImageInfo, NULL, key, icon); menu_item->setHint(NEUTRINO_ICON_HINT_IMAGEINFO, LOCALE_MENU_HINT_IMAGEINFO); break; + } case SNeutrinoSettings::ITEM_BOXINFO: + { keyhelper.get(&key,&icon); menu_item = new CMenuDForwarder(LOCALE_EXTRA_DBOXINFO, true, NULL, new CDBoxInfoWidget, NULL, key, icon); menu_item->setHint(NEUTRINO_ICON_HINT_DBOXINFO, LOCALE_MENU_HINT_DBOXINFO); break; + } #if !HAVE_SPARK_HARDWARE case SNeutrinoSettings::ITEM_CAM: + { keyhelper.get(&key,&icon); menu_item = new CMenuForwarder(LOCALE_CI_SETTINGS, true, NULL, g_CamHandler, NULL, key, icon); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; + } #endif case SNeutrinoSettings::ITEM_CLOCK: + { keyhelper.get(&key,&icon); menu_item = new CMenuForwarder(!g_settings.mode_clock ? LOCALE_CLOCK_SWITCH_ON:LOCALE_CLOCK_SWITCH_OFF, true, NULL, neutrino, "clock_switch", key, icon); menu_item->setHint("", LOCALE_MENU_HINT_CLOCK_MODE); break; + } 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->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->setHint(NEUTRINO_ICON_HINT_SCRIPTS, LOCALE_MENU_HINT_SCRIPTS); break; + } case SNeutrinoSettings::ITEM_YOUTUBE: + { keyhelper.get(&key,&icon); menu_item = new CMenuForwarder(LOCALE_MOVIEPLAYER_YTPLAYBACK, !_mode_ts, NULL, neutrino, "ytplayback", key, icon); menu_item->setHint(NEUTRINO_ICON_HINT_YTPLAY, LOCALE_MENU_HINT_YTPLAY); break; + } case SNeutrinoSettings::ITEM_FILEPLAY: + { keyhelper.get(&key,&icon); menu_item = new CMenuForwarder(LOCALE_MOVIEPLAYER_FILEPLAYBACK, !_mode_ts, NULL, neutrino, "fileplayback", key, icon); menu_item->setHint(NEUTRINO_ICON_HINT_FILEPLAY, LOCALE_MENU_HINT_FILEPLAY); break; - case SNeutrinoSettings::ITEM_TOOLS: + } + 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_PluginList->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; + 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 ); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; + } case SNeutrinoSettings::ITEM_HDDMENU: + { keyhelper.get(&key,&icon); menu_item = new CMenuForwarder(LOCALE_HDD_SETTINGS, true, NULL, CHDDMenuHandler::getInstance(), NULL, key, icon); menu_item->setHint(NEUTRINO_ICON_HINT_HDD, LOCALE_MENU_HINT_HDD); break; + } case SNeutrinoSettings::ITEM_AUDIOPLAY: + { keyhelper.get(&key,&icon); menu_item = new CMenuForwarder(LOCALE_AUDIOPLAYER_NAME, true, NULL, neutrino, "audioplayer", key, icon); menu_item->setHint(NEUTRINO_ICON_HINT_APLAY, LOCALE_MENU_HINT_APLAY); break; + } case SNeutrinoSettings::ITEM_INETPLAY: + { keyhelper.get(&key,&icon); menu_item = new CMenuForwarder(LOCALE_INETRADIO_NAME, true, NULL, neutrino, "inetplayer", key, icon); menu_item->setHint(NEUTRINO_ICON_HINT_INET_RADIO, LOCALE_MENU_HINT_INET_RADIO); break; + } case SNeutrinoSettings::ITEM_NETSETTINGS: + { keyhelper.get(&key,&icon); menu_item = new CMenuForwarder(LOCALE_MAINSETTINGS_NETWORK, true, NULL, CNetworkSetup::getInstance(), NULL, key, icon); menu_item->setHint(NEUTRINO_ICON_HINT_NETWORK, LOCALE_MENU_HINT_NETWORK); break; + } case SNeutrinoSettings::ITEM_SWUPDATE: + { keyhelper.get(&key,&icon); menu_item = new CMenuDForwarder(LOCALE_SERVICEMENU_UPDATE, true, NULL, new CSoftwareUpdate(), NULL, key, icon); menu_item->setHint(NEUTRINO_ICON_HINT_SW_UPDATE, LOCALE_MENU_HINT_SW_UPDATE); break; + } case SNeutrinoSettings::ITEM_LIVESTREAM_RESOLUTION: + { if (!_mode_webtv) break; keyhelper.get(&key,&icon); menu_item = new CMenuDForwarder(LOCALE_LIVESTREAM_RESOLUTION, true, NULL, new CWebTVResolution(), NULL, key, icon); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; + } case SNeutrinoSettings::ITEM_ADZAP: + { keyhelper.get(&key,&icon,CRCInput::RC_blue); menu_item = new CMenuForwarder(LOCALE_USERMENU_ITEM_ADZAP, true, adzap_active ? g_Locale->getText(LOCALE_OPTIONS_OFF) : NULL, CAdZapMenu::getInstance(), "adzap", key, icon); menu_item->setHint(NEUTRINO_ICON_HINT_ADZAP, adzap_active ? LOCALE_MENU_HINT_ADZAP_ACTIVE : LOCALE_MENU_HINT_ADZAP); break; + } case -1: // plugin { int number_of_plugins = g_PluginList->getNumberOfPlugins(); From c36053860a8c55919d3bcf93130c1241b5b5527f Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Wed, 14 Dec 2016 16:19:40 +0100 Subject: [PATCH 046/142] CComponentsHeader: fix font and height handling Font was not changeable. setCaptionFont() was without effect. Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/ab8aa776870fb80a9c19ca3a14ef39884906fb2b Author: Thilo Graf Date: 2016-12-14 (Wed, 14 Dec 2016) --- src/gui/components/cc_frm_header.cpp | 24 ++++++-------- src/gui/components/cc_frm_header.h | 49 ++++++++++++++++++++-------- 2 files changed, 46 insertions(+), 27 deletions(-) diff --git a/src/gui/components/cc_frm_header.cpp b/src/gui/components/cc_frm_header.cpp index c7485ec83..5a6e3ec74 100644 --- a/src/gui/components/cc_frm_header.cpp +++ b/src/gui/components/cc_frm_header.cpp @@ -93,12 +93,10 @@ void CComponentsHeader::initVarHeader( const int& x_pos, const int& y_pos, const //init header width width = width_old = w == 0 ? frameBuffer->getScreenWidth(true) : w; + height = height_old = h; - //init header default height - height = height_old = max(h, g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight()); - - cch_size_mode = CC_HEADER_SIZE_LARGE; - initCaptionFont(); //sets cch_font and calculate height if required; + cch_font = NULL; + cch_size_mode = CC_HEADER_SIZE_LARGE; shadow = shadow_mode; col_frame = col_frame_old = color_frame; @@ -160,15 +158,15 @@ void CComponentsHeader::setCaption(neutrino_locale_t caption_locale, const int& void CComponentsHeader::setCaptionFont(Font* font) { - initCaptionFont(font); //cch_font = font + cch_font = font; } -void CComponentsHeader::initCaptionFont(Font* font) +void CComponentsHeader::initCaptionFont() { Font *l_font = g_Font[SNeutrinoSettings::FONT_TYPE_MENU_TITLE]; Font *s_font = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]; - if (font == NULL){ + if (cch_font == NULL){ cch_font = (cch_size_mode == CC_HEADER_SIZE_LARGE? l_font : s_font); //select matching height @@ -177,10 +175,8 @@ void CComponentsHeader::initCaptionFont(Font* font) else height = std::min(height, s_font->getHeight()); } - else{ - cch_font = font; + else height = std::max(height, cch_font->getHeight()); - } } void CComponentsHeader::setIcon(const char* icon_name) @@ -513,12 +509,12 @@ void CComponentsHeader::initCaption() void CComponentsHeader::initCCItems() { - //set basic properties - Init(x, y, width, height, col_frame, col_body, col_shadow); - //set size initCaptionFont(); + //set basic properties + Init(x, y, width, height, col_frame, col_body, col_shadow); + //init icon initIcon(); diff --git a/src/gui/components/cc_frm_header.h b/src/gui/components/cc_frm_header.h index b3f185e68..d091e800f 100644 --- a/src/gui/components/cc_frm_header.h +++ b/src/gui/components/cc_frm_header.h @@ -99,7 +99,7 @@ class CComponentsHeader : public CComponentsForm, public CCTextScreen bool cch_cl_enable_run; ///init font object and recalculates height if required - void initCaptionFont(Font* font = NULL); + void initCaptionFont(); ///sub: init icon object void initIcon(); ///sub: init caption object @@ -136,13 +136,44 @@ class CComponentsHeader : public CComponentsForm, public CCTextScreen virtual void setCaption(neutrino_locale_t caption_locale, const int& align_mode = CTextBox::NO_AUTO_LINEBREAK, const fb_pixel_t& text_color = COL_MENUHEAD_TEXT); ///set alignment of caption within header, possible paramters are CTextBox::CENTER, CTextBox::NO_AUTO_LINEBREAK - virtual void setCaptionAlignment(const int& align_mode){cch_caption_align = align_mode;}; - ///set text font object for caption + virtual void setCaptionAlignment(const int& align_mode){cch_caption_align = align_mode;} + + /**Set text font for title. + * Internal default font is g_Font[SNeutrinoSettings::FONT_TYPE_MENU_TITLE] and + * default height of header object is calculated from this font type. + * Height can be changed with modes by setSizeMode(), setHeight() or constructor. + * @return void + * + * @param[in] font exepts font object, type Font* + * @see getCaptionFont(), setSizeMode(), + * setCaptionColor(), + * setCaptionAlignment(), + * setCaption() + */ virtual void setCaptionFont(Font* font); ///returns font object of title caption - virtual Font* getCaptionFont(){return cch_font;}; + virtual Font* getCaptionFont(){return cch_font;} ///set text color for caption - virtual void setCaptionColor(fb_pixel_t text_color){cch_col_text = text_color;}; + virtual void setCaptionColor(fb_pixel_t text_color){cch_col_text = text_color;} + + enum + { + CC_HEADER_SIZE_LARGE = 0, + CC_HEADER_SIZE_SMALL = 1 + }; + /**Set size mode of header. + * These modes are using fonts SNeutrinoSettings::FONT_TYPE_MENU_TITLE for large mode (default) + * and SNeutrinoSettings::FONT_TYPE_MENU for small mode to set required height. + * If other size wanted then use set setCaptionFont() and setHeight() + * @return void + * + * @param[in] size_mode exepts type int (enums) + * possible modes are: + * CC_HEADER_SIZE_LARGE + * CC_HEADER_SIZE_SMALL + * @see setCaption(), setHeight() + */ + virtual void setSizeMode(const int& size_mode){cch_size_mode = size_mode; initCCItems();} ///set offset between items virtual void setOffset(const int offset){cch_offset = offset;}; @@ -198,14 +229,6 @@ class CComponentsHeader : public CComponentsForm, public CCTextScreen ///set offset between icons within context button object virtual void setButtonsSpace(const int buttons_space){cch_buttons_space = buttons_space;} - enum - { - CC_HEADER_SIZE_LARGE = 0, - CC_HEADER_SIZE_SMALL = 1 - }; - ///set size of header, possible values are CC_HEADER_SIZE_LARGE, CC_HEADER_SIZE_SMALL - virtual void setSizeMode(const int& size_mode){cch_size_mode = size_mode; initCCItems();} - ///init all items within header object virtual void initCCItems(); ///returns the text object From 9805b1547dba5ecd121088d8525e089dad7f311f Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Wed, 14 Dec 2016 22:40:47 +0100 Subject: [PATCH 047/142] CNeutrinoApp: simplify shutdown message handling Usage of only one cancel button is more plausible. 'cancel' means cancel this action. And not more! Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/c5f1a03a31536d5182c266a45aa5a4c643d2ff32 Author: Thilo Graf Date: 2016-12-14 (Wed, 14 Dec 2016) --- src/neutrino.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 8f185ce20..d852de5e1 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3276,9 +3276,9 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) } else if( msg == NeutrinoMessages::SLEEPTIMER) { if(data) {//INACTIVITY SLEEPTIMER - skipShutdownTimer = - (ShowMsg(LOCALE_MESSAGEBOX_INFO, g_settings.shutdown_real ? LOCALE_SHUTDOWNTIMER_ANNOUNCE:LOCALE_SLEEPTIMERBOX_ANNOUNCE, - CMsgBox::mbrNo, CMsgBox::mbYes | CMsgBox::mbNo, NULL, 450, 30, true) == CMsgBox::mbrYes);//FIXME + int msgbox = ShowMsg(LOCALE_MESSAGEBOX_INFO, g_settings.shutdown_real ? LOCALE_SHUTDOWNTIMER_ANNOUNCE:LOCALE_SLEEPTIMERBOX_ANNOUNCE, + CMsgBox::mbrCancel, CMsgBox::mbCancel, NULL, 450, 60); + skipShutdownTimer = !(msgbox & CMsgBox::mbrTimeout); if(skipShutdownTimer) { printf("NeutrinoMessages::INACTIVITY SLEEPTIMER: skiping\n"); skipShutdownTimer = false; From efaa271c55e638a5a0b736e5ec271c41def634f1 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Thu, 15 Dec 2016 11:37:57 +0100 Subject: [PATCH 048/142] yWeb: fix extentions-url to (still empty) gui-yweb repository Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/fdca96f7db1504d8a18f5334f2e42061810883e2 Author: vanhofen Date: 2016-12-15 (Thu, 15 Dec 2016) Origin message was: ------------------ - yWeb: fix extentions-url to (still empty) gui-yweb repository --- src/nhttpd/web/extentions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nhttpd/web/extentions.txt b/src/nhttpd/web/extentions.txt index c0eb6dcae..9df0559ef 100644 --- a/src/nhttpd/web/extentions.txt +++ b/src/nhttpd/web/extentions.txt @@ -1 +1 @@ -type:u,site:CST-git,desc:yWeb extentions,url:http://git.coolstreamtech.de/?p=cst-public-gui-yweb.git;a=blob_plain;hb=refs/heads/master;f=Y_Extentions.txt +type:u,site:Tuxbox-Neutrino,desc:yWeb extentions,url:https://raw.githubusercontent.com/tuxbox-neutrino/gui-yweb/master/Y_Extentions.txt From 0a874ca762de4c8203ca3ee62fb7d77c1263edaa Mon Sep 17 00:00:00 2001 From: vanhofen Date: Thu, 15 Dec 2016 14:00:45 +0100 Subject: [PATCH 049/142] yWeb: move data from /src to /data Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/29847283ad2fabe507eaf0f9fb631eec5161619b Author: vanhofen Date: 2016-12-15 (Thu, 15 Dec 2016) Origin message was: ------------------ - yWeb: move data from /src to /data --- configure.ac | 10 +++++----- data/Makefile.am | 3 ++- {src/nhttpd/web => data/y-web}/Makefile.am | 0 {src/nhttpd/web => data/y-web}/Y_About.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Baselib.js | 0 {src/nhttpd/web => data/y-web}/Y_Blocks.txt | 0 .../y-web}/Y_Boxcontrol_Bouquet_Editor_Edit.yhtm | 0 .../y-web}/Y_Boxcontrol_Bouquet_Editor_Main.yhtm | 0 .../y-web}/Y_Boxcontrol_Bouquetlist.yhtm | 0 .../web => data/y-web}/Y_Boxcontrol_Bouquets.yhtm | 0 .../y-web}/Y_Boxcontrol_Channellist.yhtm | 0 .../web => data/y-web}/Y_Boxcontrol_Menue.yhtm | 0 .../web => data/y-web}/Y_Boxcontrol_Messages.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Dist.css | 0 {src/nhttpd/web => data/y-web}/Y_Dyn_Pages.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_EPG.js | 0 {src/nhttpd/web => data/y-web}/Y_EPG_Plus.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Ext_Menue.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Ext_Settings.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Ext_Uninstall.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Ext_Update.js | 0 {src/nhttpd/web => data/y-web}/Y_Ext_Update.yhtm | 0 .../web => data/y-web}/Y_Ext_Update_refresh.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Filemgr.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Filemgr_Edit.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Filemgr_blocks.txt | 0 {src/nhttpd/web => data/y-web}/Y_Flash.js | 0 {src/nhttpd/web => data/y-web}/Y_Info_Help.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Info_Menue.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Info_Updates.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Live.js | 0 {src/nhttpd/web => data/y-web}/Y_Live.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_LiveViewFull.yhtm | 0 .../web => data/y-web}/Y_Live_DoubleView.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Live_EPG.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Live_EPG_Info.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Live_Menue.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Live_Msg.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Live_Record.yhtm | 0 .../nhttpd/web => data/y-web}/Y_Live_Transcode.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Main.css | 0 {src/nhttpd/web => data/y-web}/Y_Menue.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Refresh.yhtm | 0 .../web => data/y-web}/Y_Settings_Backup.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Settings_Live.yhtm | 0 .../nhttpd/web => data/y-web}/Y_Settings_Menue.yhtm | 0 .../nhttpd/web => data/y-web}/Y_Settings_Timer.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Settings_VNC.yhtm | 0 .../web => data/y-web}/Y_Settings_automount.yhtm | 0 .../y-web}/Y_Settings_automount_liste.yhtm | 0 .../web => data/y-web}/Y_Settings_buttons.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Settings_lcd.yhtm | 0 .../nhttpd/web => data/y-web}/Y_Settings_mount.yhtm | 0 .../web => data/y-web}/Y_Settings_mount_liste.yhtm | 0 .../y-web}/Y_Settings_neutrino_forms.yhtm | 0 .../web => data/y-web}/Y_Settings_nhttpd.yhtm | 0 .../web => data/y-web}/Y_Settings_personalize.yhtm | 0 .../web => data/y-web}/Y_Settings_umount_liste.yhtm | 0 .../web => data/y-web}/Y_Settings_video_audio.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Settings_wol.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Settings_yWeb.yhtm | 0 .../nhttpd/web => data/y-web}/Y_Settings_zapit.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_StreamInfo.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Timer_Edit.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Timer_List.yhtm | 0 .../nhttpd/web => data/y-web}/Y_Tools_Bootlogo.yhtm | 0 .../web => data/y-web}/Y_Tools_Boxcontrol.yhtm | 0 .../web => data/y-web}/Y_Tools_Check_Install.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Tools_Cmd.yhtm | 0 .../web => data/y-web}/Y_Tools_Flash_Menue.yhtm | 0 .../web => data/y-web}/Y_Tools_Flash_Upload.yhtm | 0 .../web => data/y-web}/Y_Tools_Info_Menue.yhtm | 0 .../web => data/y-web}/Y_Tools_Installer.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Tools_Menue.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Tools_Rcsim.yhtm | 0 .../web => data/y-web}/Y_Tools_Screenshot.yhtm | 0 .../nhttpd/web => data/y-web}/Y_Tools_Timer_Sync.js | 0 .../web => data/y-web}/Y_Tools_Timer_Sync.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Tools_lcshot.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_Tools_tvshot.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_User.css | 0 {src/nhttpd/web => data/y-web}/Y_VLC.js | 0 {src/nhttpd/web => data/y-web}/Y_Version.txt | 0 {src/nhttpd/web => data/y-web}/Y_Wait.yhtm | 0 {src/nhttpd/web => data/y-web}/Y_blank.htm | 0 .../nhttpd/web => data/y-web}/Y_neutrino_Blocks.txt | 0 {src/nhttpd/web => data/y-web}/Y_yweb.js | 0 {src/nhttpd/web => data/y-web}/accordion.js | 0 {src/nhttpd/web => data/y-web}/channels.js | 0 {src/nhttpd/web => data/y-web}/channels.txt | 0 {src/nhttpd/web => data/y-web}/effects.js | 0 {src/nhttpd/web => data/y-web}/extentions.txt | 0 .../y-web}/extentions/boxinfo/boxinfo_uninstall.inc | 0 .../boxinfo/files/httpd/Y_Ext_BoxInfo.yhtm | 0 .../boxinfo/files/httpd/scripts/Y_Ext_BoxInfo.sh | 0 .../y-web}/extentions/boxinfo/install.inc | 0 .../y-web}/extentions/boxinfo/install.sh | 0 .../y-web}/extentions/boxinfo/uninstall.sh | 0 .../hddtools/files/httpd/Y_Ext_hddtools.yhtm | 0 .../hddtools/files/httpd/scripts/Y_Ext_hddtools.sh | 0 .../extentions/hddtools/hddtools_uninstall.inc | 0 .../y-web}/extentions/hddtools/install.inc | 0 .../y-web}/extentions/hddtools/install.sh | 0 .../y-web}/extentions/hddtools/uninstall.sh | 0 {src/nhttpd/web => data/y-web}/favicon.ico | Bin {src/nhttpd/web => data/y-web}/images/Makefile.am | 0 {src/nhttpd/web => data/y-web}/images/accept.png | Bin {src/nhttpd/web => data/y-web}/images/alert.gif | Bin {src/nhttpd/web => data/y-web}/images/arrowdown.png | Bin {src/nhttpd/web => data/y-web}/images/arrowleft.png | Bin .../nhttpd/web => data/y-web}/images/arrowright.png | Bin {src/nhttpd/web => data/y-web}/images/arrowup.png | Bin {src/nhttpd/web => data/y-web}/images/audiobar.png | Bin {src/nhttpd/web => data/y-web}/images/blank.gif | Bin .../web => data/y-web}/images/check_green.png | Bin {src/nhttpd/web => data/y-web}/images/chmod.png | Bin {src/nhttpd/web => data/y-web}/images/comment.png | Bin {src/nhttpd/web => data/y-web}/images/copy.gif | Bin {src/nhttpd/web => data/y-web}/images/cross.png | Bin {src/nhttpd/web => data/y-web}/images/cut.png | Bin {src/nhttpd/web => data/y-web}/images/dir_up.png | Bin {src/nhttpd/web => data/y-web}/images/download.png | Bin {src/nhttpd/web => data/y-web}/images/elist.png | Bin {src/nhttpd/web => data/y-web}/images/epg.png | Bin {src/nhttpd/web => data/y-web}/images/exlink.gif | Bin {src/nhttpd/web => data/y-web}/images/ext_add.png | Bin .../nhttpd/web => data/y-web}/images/ext_delete.png | Bin {src/nhttpd/web => data/y-web}/images/ext_edit.png | Bin {src/nhttpd/web => data/y-web}/images/ext_error.png | Bin {src/nhttpd/web => data/y-web}/images/ext_ex.png | Bin {src/nhttpd/web => data/y-web}/images/ext_menu.png | Bin {src/nhttpd/web => data/y-web}/images/ext_mgr.png | Bin .../nhttpd/web => data/y-web}/images/ext_normal.png | Bin .../nhttpd/web => data/y-web}/images/ext_plugin.png | Bin .../nhttpd/web => data/y-web}/images/ext_script.png | Bin {src/nhttpd/web => data/y-web}/images/fb.png | Bin {src/nhttpd/web => data/y-web}/images/film.png | Bin {src/nhttpd/web => data/y-web}/images/flash.png | Bin .../nhttpd/web => data/y-web}/images/folder_add.png | Bin .../nhttpd/web => data/y-web}/images/ftype_file.gif | Bin .../nhttpd/web => data/y-web}/images/ftype_file.png | Bin .../web => data/y-web}/images/ftype_folder.gif | Bin .../web => data/y-web}/images/ftype_folder.png | Bin .../nhttpd/web => data/y-web}/images/ftype_link.gif | Bin .../nhttpd/web => data/y-web}/images/ftype_link.png | Bin .../nhttpd/web => data/y-web}/images/fullscreen.png | Bin {src/nhttpd/web => data/y-web}/images/help.gif | Bin {src/nhttpd/web => data/y-web}/images/hidden.png | Bin {src/nhttpd/web => data/y-web}/images/home.png | Bin {src/nhttpd/web => data/y-web}/images/info.png | Bin {src/nhttpd/web => data/y-web}/images/inlink.gif | Bin {src/nhttpd/web => data/y-web}/images/key.png | Bin {src/nhttpd/web => data/y-web}/images/live.png | Bin .../nhttpd/web => data/y-web}/images/live_popup.png | Bin {src/nhttpd/web => data/y-web}/images/livelock.png | Bin .../nhttpd/web => data/y-web}/images/liveunlock.png | Bin {src/nhttpd/web => data/y-web}/images/lock.png | Bin {src/nhttpd/web => data/y-web}/images/modify.png | Bin {src/nhttpd/web => data/y-web}/images/new.png | Bin {src/nhttpd/web => data/y-web}/images/ok.gif | Bin {src/nhttpd/web => data/y-web}/images/package.png | Bin {src/nhttpd/web => data/y-web}/images/page_edit.png | Bin {src/nhttpd/web => data/y-web}/images/paste.gif | Bin {src/nhttpd/web => data/y-web}/images/pause.png | Bin {src/nhttpd/web => data/y-web}/images/picture.png | Bin {src/nhttpd/web => data/y-web}/images/play.png | Bin {src/nhttpd/web => data/y-web}/images/popup.png | Bin .../nhttpd/web => data/y-web}/images/properties.png | Bin {src/nhttpd/web => data/y-web}/images/radio.png | Bin {src/nhttpd/web => data/y-web}/images/rc_cst_v1.jpg | Bin {src/nhttpd/web => data/y-web}/images/rc_cst_v2.png | Bin {src/nhttpd/web => data/y-web}/images/rc_cst_v3.png | Bin {src/nhttpd/web => data/y-web}/images/rc_cst_v4.png | Bin {src/nhttpd/web => data/y-web}/images/rc_cst_v5.png | Bin {src/nhttpd/web => data/y-web}/images/rc_cst_v6.png | Bin .../web => data/y-web}/images/rc_dbox_nokia_old.png | Bin .../web => data/y-web}/images/rc_dbox_philips.png | Bin {src/nhttpd/web => data/y-web}/images/record.gif | Bin {src/nhttpd/web => data/y-web}/images/record.png | Bin {src/nhttpd/web => data/y-web}/images/reload.png | Bin {src/nhttpd/web => data/y-web}/images/remove.png | Bin {src/nhttpd/web => data/y-web}/images/rename.gif | Bin {src/nhttpd/web => data/y-web}/images/save.png | Bin {src/nhttpd/web => data/y-web}/images/saveall.png | Bin {src/nhttpd/web => data/y-web}/images/smallwait.gif | Bin {src/nhttpd/web => data/y-web}/images/snapshot.png | Bin {src/nhttpd/web => data/y-web}/images/stop.png | Bin {src/nhttpd/web => data/y-web}/images/stream.png | Bin .../nhttpd/web => data/y-web}/images/streaminfo.png | Bin {src/nhttpd/web => data/y-web}/images/text.png | Bin {src/nhttpd/web => data/y-web}/images/time_add.png | Bin {src/nhttpd/web => data/y-web}/images/time_down.png | Bin {src/nhttpd/web => data/y-web}/images/time_up.png | Bin {src/nhttpd/web => data/y-web}/images/timer.gif | Bin {src/nhttpd/web => data/y-web}/images/transcode.png | Bin {src/nhttpd/web => data/y-web}/images/tux-yweb.png | Bin .../web => data/y-web}/images/udp_switch_off.png | Bin .../web => data/y-web}/images/udp_switch_on.png | Bin {src/nhttpd/web => data/y-web}/images/unlock.png | Bin {src/nhttpd/web => data/y-web}/images/upload.png | Bin {src/nhttpd/web => data/y-web}/images/visible.png | Bin {src/nhttpd/web => data/y-web}/images/vlc.png | Bin .../nhttpd/web => data/y-web}/images/volumedown.png | Bin .../nhttpd/web => data/y-web}/images/volumemute.png | Bin .../web => data/y-web}/images/volumeunmute.png | Bin {src/nhttpd/web => data/y-web}/images/volumeup.png | Bin {src/nhttpd/web => data/y-web}/images/wait.gif | Bin {src/nhttpd/web => data/y-web}/images/webtv.png | Bin {src/nhttpd/web => data/y-web}/images/wget.png | Bin {src/nhttpd/web => data/y-web}/images/work.gif | Bin {src/nhttpd/web => data/y-web}/images/x_red.png | Bin {src/nhttpd/web => data/y-web}/images/zap.png | Bin {src/nhttpd/web => data/y-web}/index.html | 0 {src/nhttpd/web => data/y-web}/languages/Czech | 0 {src/nhttpd/web => data/y-web}/languages/Deutsch | 0 {src/nhttpd/web => data/y-web}/languages/English | 0 .../nhttpd/web => data/y-web}/languages/Makefile.am | 0 {src/nhttpd/web => data/y-web}/languages/Polski | 0 {src/nhttpd/web => data/y-web}/languages/Portuguese | 0 {src/nhttpd/web => data/y-web}/languages/Slovak | 0 {src/nhttpd/web => data/y-web}/prototype.js | 0 {src/nhttpd/web => data/y-web}/robots.txt | 0 {src/nhttpd/web => data/y-web}/scripts/Makefile.am | 0 {src/nhttpd/web => data/y-web}/scripts/Y_Live.sh | 0 {src/nhttpd/web => data/y-web}/scripts/Y_NAS.sh | 0 {src/nhttpd/web => data/y-web}/scripts/Y_Tools.sh | 0 .../nhttpd/web => data/y-web}/scripts/_Y_Globals.sh | 0 .../nhttpd/web => data/y-web}/scripts/_Y_Library.sh | 0 {src/nhttpd/web => data/y-web}/scripts/api.sh | 0 {src/nhttpd/web => data/y-web}/styles/Makefile.am | 0 .../web => data/y-web}/styles/Y_Dist-GreyBlue.css | 0 .../web => data/y-web}/styles/Y_Dist-Tuxbox.css | 0 {src/nhttpd/web => data/y-web}/ywidget.css | 0 {src/nhttpd/web => data/y-web}/ywidget.js | 0 src/nhttpd/Makefile.am | 2 +- 235 files changed, 8 insertions(+), 7 deletions(-) rename {src/nhttpd/web => data/y-web}/Makefile.am (100%) rename {src/nhttpd/web => data/y-web}/Y_About.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Baselib.js (100%) rename {src/nhttpd/web => data/y-web}/Y_Blocks.txt (100%) rename {src/nhttpd/web => data/y-web}/Y_Boxcontrol_Bouquet_Editor_Edit.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Boxcontrol_Bouquet_Editor_Main.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Boxcontrol_Bouquetlist.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Boxcontrol_Bouquets.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Boxcontrol_Channellist.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Boxcontrol_Menue.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Boxcontrol_Messages.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Dist.css (100%) rename {src/nhttpd/web => data/y-web}/Y_Dyn_Pages.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_EPG.js (100%) rename {src/nhttpd/web => data/y-web}/Y_EPG_Plus.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Ext_Menue.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Ext_Settings.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Ext_Uninstall.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Ext_Update.js (100%) rename {src/nhttpd/web => data/y-web}/Y_Ext_Update.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Ext_Update_refresh.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Filemgr.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Filemgr_Edit.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Filemgr_blocks.txt (100%) rename {src/nhttpd/web => data/y-web}/Y_Flash.js (100%) rename {src/nhttpd/web => data/y-web}/Y_Info_Help.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Info_Menue.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Info_Updates.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Live.js (100%) rename {src/nhttpd/web => data/y-web}/Y_Live.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_LiveViewFull.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Live_DoubleView.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Live_EPG.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Live_EPG_Info.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Live_Menue.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Live_Msg.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Live_Record.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Live_Transcode.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Main.css (100%) rename {src/nhttpd/web => data/y-web}/Y_Menue.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Refresh.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_Backup.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_Live.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_Menue.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_Timer.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_VNC.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_automount.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_automount_liste.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_buttons.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_lcd.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_mount.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_mount_liste.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_neutrino_forms.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_nhttpd.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_personalize.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_umount_liste.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_video_audio.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_wol.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_yWeb.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Settings_zapit.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_StreamInfo.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Timer_Edit.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Timer_List.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Tools_Bootlogo.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Tools_Boxcontrol.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Tools_Check_Install.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Tools_Cmd.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Tools_Flash_Menue.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Tools_Flash_Upload.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Tools_Info_Menue.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Tools_Installer.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Tools_Menue.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Tools_Rcsim.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Tools_Screenshot.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Tools_Timer_Sync.js (100%) rename {src/nhttpd/web => data/y-web}/Y_Tools_Timer_Sync.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Tools_lcshot.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_Tools_tvshot.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_User.css (100%) rename {src/nhttpd/web => data/y-web}/Y_VLC.js (100%) rename {src/nhttpd/web => data/y-web}/Y_Version.txt (100%) rename {src/nhttpd/web => data/y-web}/Y_Wait.yhtm (100%) rename {src/nhttpd/web => data/y-web}/Y_blank.htm (100%) rename {src/nhttpd/web => data/y-web}/Y_neutrino_Blocks.txt (100%) rename {src/nhttpd/web => data/y-web}/Y_yweb.js (100%) rename {src/nhttpd/web => data/y-web}/accordion.js (100%) rename {src/nhttpd/web => data/y-web}/channels.js (100%) rename {src/nhttpd/web => data/y-web}/channels.txt (100%) rename {src/nhttpd/web => data/y-web}/effects.js (100%) rename {src/nhttpd/web => data/y-web}/extentions.txt (100%) rename {src/nhttpd/web => data/y-web}/extentions/boxinfo/boxinfo_uninstall.inc (100%) rename {src/nhttpd/web => data/y-web}/extentions/boxinfo/files/httpd/Y_Ext_BoxInfo.yhtm (100%) rename {src/nhttpd/web => data/y-web}/extentions/boxinfo/files/httpd/scripts/Y_Ext_BoxInfo.sh (100%) rename {src/nhttpd/web => data/y-web}/extentions/boxinfo/install.inc (100%) rename {src/nhttpd/web => data/y-web}/extentions/boxinfo/install.sh (100%) rename {src/nhttpd/web => data/y-web}/extentions/boxinfo/uninstall.sh (100%) rename {src/nhttpd/web => data/y-web}/extentions/hddtools/files/httpd/Y_Ext_hddtools.yhtm (100%) rename {src/nhttpd/web => data/y-web}/extentions/hddtools/files/httpd/scripts/Y_Ext_hddtools.sh (100%) rename {src/nhttpd/web => data/y-web}/extentions/hddtools/hddtools_uninstall.inc (100%) rename {src/nhttpd/web => data/y-web}/extentions/hddtools/install.inc (100%) rename {src/nhttpd/web => data/y-web}/extentions/hddtools/install.sh (100%) rename {src/nhttpd/web => data/y-web}/extentions/hddtools/uninstall.sh (100%) rename {src/nhttpd/web => data/y-web}/favicon.ico (100%) rename {src/nhttpd/web => data/y-web}/images/Makefile.am (100%) rename {src/nhttpd/web => data/y-web}/images/accept.png (100%) rename {src/nhttpd/web => data/y-web}/images/alert.gif (100%) rename {src/nhttpd/web => data/y-web}/images/arrowdown.png (100%) rename {src/nhttpd/web => data/y-web}/images/arrowleft.png (100%) rename {src/nhttpd/web => data/y-web}/images/arrowright.png (100%) rename {src/nhttpd/web => data/y-web}/images/arrowup.png (100%) rename {src/nhttpd/web => data/y-web}/images/audiobar.png (100%) rename {src/nhttpd/web => data/y-web}/images/blank.gif (100%) rename {src/nhttpd/web => data/y-web}/images/check_green.png (100%) rename {src/nhttpd/web => data/y-web}/images/chmod.png (100%) rename {src/nhttpd/web => data/y-web}/images/comment.png (100%) rename {src/nhttpd/web => data/y-web}/images/copy.gif (100%) rename {src/nhttpd/web => data/y-web}/images/cross.png (100%) rename {src/nhttpd/web => data/y-web}/images/cut.png (100%) rename {src/nhttpd/web => data/y-web}/images/dir_up.png (100%) rename {src/nhttpd/web => data/y-web}/images/download.png (100%) rename {src/nhttpd/web => data/y-web}/images/elist.png (100%) rename {src/nhttpd/web => data/y-web}/images/epg.png (100%) rename {src/nhttpd/web => data/y-web}/images/exlink.gif (100%) rename {src/nhttpd/web => data/y-web}/images/ext_add.png (100%) rename {src/nhttpd/web => data/y-web}/images/ext_delete.png (100%) rename {src/nhttpd/web => data/y-web}/images/ext_edit.png (100%) rename {src/nhttpd/web => data/y-web}/images/ext_error.png (100%) rename {src/nhttpd/web => data/y-web}/images/ext_ex.png (100%) rename {src/nhttpd/web => data/y-web}/images/ext_menu.png (100%) rename {src/nhttpd/web => data/y-web}/images/ext_mgr.png (100%) rename {src/nhttpd/web => data/y-web}/images/ext_normal.png (100%) rename {src/nhttpd/web => data/y-web}/images/ext_plugin.png (100%) rename {src/nhttpd/web => data/y-web}/images/ext_script.png (100%) rename {src/nhttpd/web => data/y-web}/images/fb.png (100%) rename {src/nhttpd/web => data/y-web}/images/film.png (100%) rename {src/nhttpd/web => data/y-web}/images/flash.png (100%) rename {src/nhttpd/web => data/y-web}/images/folder_add.png (100%) rename {src/nhttpd/web => data/y-web}/images/ftype_file.gif (100%) rename {src/nhttpd/web => data/y-web}/images/ftype_file.png (100%) rename {src/nhttpd/web => data/y-web}/images/ftype_folder.gif (100%) rename {src/nhttpd/web => data/y-web}/images/ftype_folder.png (100%) rename {src/nhttpd/web => data/y-web}/images/ftype_link.gif (100%) rename {src/nhttpd/web => data/y-web}/images/ftype_link.png (100%) rename {src/nhttpd/web => data/y-web}/images/fullscreen.png (100%) rename {src/nhttpd/web => data/y-web}/images/help.gif (100%) rename {src/nhttpd/web => data/y-web}/images/hidden.png (100%) rename {src/nhttpd/web => data/y-web}/images/home.png (100%) rename {src/nhttpd/web => data/y-web}/images/info.png (100%) rename {src/nhttpd/web => data/y-web}/images/inlink.gif (100%) rename {src/nhttpd/web => data/y-web}/images/key.png (100%) rename {src/nhttpd/web => data/y-web}/images/live.png (100%) rename {src/nhttpd/web => data/y-web}/images/live_popup.png (100%) rename {src/nhttpd/web => data/y-web}/images/livelock.png (100%) rename {src/nhttpd/web => data/y-web}/images/liveunlock.png (100%) rename {src/nhttpd/web => data/y-web}/images/lock.png (100%) rename {src/nhttpd/web => data/y-web}/images/modify.png (100%) rename {src/nhttpd/web => data/y-web}/images/new.png (100%) rename {src/nhttpd/web => data/y-web}/images/ok.gif (100%) rename {src/nhttpd/web => data/y-web}/images/package.png (100%) rename {src/nhttpd/web => data/y-web}/images/page_edit.png (100%) rename {src/nhttpd/web => data/y-web}/images/paste.gif (100%) rename {src/nhttpd/web => data/y-web}/images/pause.png (100%) rename {src/nhttpd/web => data/y-web}/images/picture.png (100%) rename {src/nhttpd/web => data/y-web}/images/play.png (100%) rename {src/nhttpd/web => data/y-web}/images/popup.png (100%) rename {src/nhttpd/web => data/y-web}/images/properties.png (100%) rename {src/nhttpd/web => data/y-web}/images/radio.png (100%) rename {src/nhttpd/web => data/y-web}/images/rc_cst_v1.jpg (100%) rename {src/nhttpd/web => data/y-web}/images/rc_cst_v2.png (100%) rename {src/nhttpd/web => data/y-web}/images/rc_cst_v3.png (100%) rename {src/nhttpd/web => data/y-web}/images/rc_cst_v4.png (100%) rename {src/nhttpd/web => data/y-web}/images/rc_cst_v5.png (100%) rename {src/nhttpd/web => data/y-web}/images/rc_cst_v6.png (100%) rename {src/nhttpd/web => data/y-web}/images/rc_dbox_nokia_old.png (100%) rename {src/nhttpd/web => data/y-web}/images/rc_dbox_philips.png (100%) rename {src/nhttpd/web => data/y-web}/images/record.gif (100%) rename {src/nhttpd/web => data/y-web}/images/record.png (100%) rename {src/nhttpd/web => data/y-web}/images/reload.png (100%) rename {src/nhttpd/web => data/y-web}/images/remove.png (100%) rename {src/nhttpd/web => data/y-web}/images/rename.gif (100%) rename {src/nhttpd/web => data/y-web}/images/save.png (100%) rename {src/nhttpd/web => data/y-web}/images/saveall.png (100%) rename {src/nhttpd/web => data/y-web}/images/smallwait.gif (100%) rename {src/nhttpd/web => data/y-web}/images/snapshot.png (100%) rename {src/nhttpd/web => data/y-web}/images/stop.png (100%) rename {src/nhttpd/web => data/y-web}/images/stream.png (100%) rename {src/nhttpd/web => data/y-web}/images/streaminfo.png (100%) rename {src/nhttpd/web => data/y-web}/images/text.png (100%) rename {src/nhttpd/web => data/y-web}/images/time_add.png (100%) rename {src/nhttpd/web => data/y-web}/images/time_down.png (100%) rename {src/nhttpd/web => data/y-web}/images/time_up.png (100%) rename {src/nhttpd/web => data/y-web}/images/timer.gif (100%) rename {src/nhttpd/web => data/y-web}/images/transcode.png (100%) rename {src/nhttpd/web => data/y-web}/images/tux-yweb.png (100%) rename {src/nhttpd/web => data/y-web}/images/udp_switch_off.png (100%) rename {src/nhttpd/web => data/y-web}/images/udp_switch_on.png (100%) rename {src/nhttpd/web => data/y-web}/images/unlock.png (100%) rename {src/nhttpd/web => data/y-web}/images/upload.png (100%) rename {src/nhttpd/web => data/y-web}/images/visible.png (100%) rename {src/nhttpd/web => data/y-web}/images/vlc.png (100%) rename {src/nhttpd/web => data/y-web}/images/volumedown.png (100%) rename {src/nhttpd/web => data/y-web}/images/volumemute.png (100%) rename {src/nhttpd/web => data/y-web}/images/volumeunmute.png (100%) rename {src/nhttpd/web => data/y-web}/images/volumeup.png (100%) rename {src/nhttpd/web => data/y-web}/images/wait.gif (100%) rename {src/nhttpd/web => data/y-web}/images/webtv.png (100%) rename {src/nhttpd/web => data/y-web}/images/wget.png (100%) rename {src/nhttpd/web => data/y-web}/images/work.gif (100%) rename {src/nhttpd/web => data/y-web}/images/x_red.png (100%) rename {src/nhttpd/web => data/y-web}/images/zap.png (100%) rename {src/nhttpd/web => data/y-web}/index.html (100%) rename {src/nhttpd/web => data/y-web}/languages/Czech (100%) rename {src/nhttpd/web => data/y-web}/languages/Deutsch (100%) rename {src/nhttpd/web => data/y-web}/languages/English (100%) rename {src/nhttpd/web => data/y-web}/languages/Makefile.am (100%) rename {src/nhttpd/web => data/y-web}/languages/Polski (100%) rename {src/nhttpd/web => data/y-web}/languages/Portuguese (100%) rename {src/nhttpd/web => data/y-web}/languages/Slovak (100%) rename {src/nhttpd/web => data/y-web}/prototype.js (100%) rename {src/nhttpd/web => data/y-web}/robots.txt (100%) rename {src/nhttpd/web => data/y-web}/scripts/Makefile.am (100%) rename {src/nhttpd/web => data/y-web}/scripts/Y_Live.sh (100%) rename {src/nhttpd/web => data/y-web}/scripts/Y_NAS.sh (100%) rename {src/nhttpd/web => data/y-web}/scripts/Y_Tools.sh (100%) rename {src/nhttpd/web => data/y-web}/scripts/_Y_Globals.sh (100%) rename {src/nhttpd/web => data/y-web}/scripts/_Y_Library.sh (100%) rename {src/nhttpd/web => data/y-web}/scripts/api.sh (100%) rename {src/nhttpd/web => data/y-web}/styles/Makefile.am (100%) rename {src/nhttpd/web => data/y-web}/styles/Y_Dist-GreyBlue.css (100%) rename {src/nhttpd/web => data/y-web}/styles/Y_Dist-Tuxbox.css (100%) rename {src/nhttpd/web => data/y-web}/ywidget.css (100%) rename {src/nhttpd/web => data/y-web}/ywidget.js (100%) diff --git a/configure.ac b/configure.ac index ed540a2a4..bb155c1f9 100644 --- a/configure.ac +++ b/configure.ac @@ -270,11 +270,6 @@ lib/libiw/Makefile lib/luaclient/Makefile src/lcddisplay/Makefile src/nhttpd/Makefile -src/nhttpd/web/Makefile -src/nhttpd/web/images/Makefile -src/nhttpd/web/scripts/Makefile -src/nhttpd/web/languages/Makefile -src/nhttpd/web/styles/Makefile src/nhttpd/tuxboxapi/Makefile src/nhttpd/yhttpd_core/Makefile src/nhttpd/yhttpd_mods/Makefile @@ -324,6 +319,11 @@ data/pictures/backgrounds/Makefile data/pictures/screensaver/Makefile data/scripts/Makefile data/themes/Makefile +data/y-web/Makefile +data/y-web/images/Makefile +data/y-web/scripts/Makefile +data/y-web/languages/Makefile +data/y-web/styles/Makefile src/eitd/Makefile src/timerd/Makefile src/zapit/Makefile diff --git a/data/Makefile.am b/data/Makefile.am index b318e5a1f..1ff743d21 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -9,7 +9,8 @@ SUBDIRS = \ neutrino-scripts \ pictures \ scripts \ - themes + themes \ + y-web if BOXTYPE_TRIPLE SUBDIRS += lcd diff --git a/src/nhttpd/web/Makefile.am b/data/y-web/Makefile.am similarity index 100% rename from src/nhttpd/web/Makefile.am rename to data/y-web/Makefile.am diff --git a/src/nhttpd/web/Y_About.yhtm b/data/y-web/Y_About.yhtm similarity index 100% rename from src/nhttpd/web/Y_About.yhtm rename to data/y-web/Y_About.yhtm diff --git a/src/nhttpd/web/Y_Baselib.js b/data/y-web/Y_Baselib.js similarity index 100% rename from src/nhttpd/web/Y_Baselib.js rename to data/y-web/Y_Baselib.js diff --git a/src/nhttpd/web/Y_Blocks.txt b/data/y-web/Y_Blocks.txt similarity index 100% rename from src/nhttpd/web/Y_Blocks.txt rename to data/y-web/Y_Blocks.txt diff --git a/src/nhttpd/web/Y_Boxcontrol_Bouquet_Editor_Edit.yhtm b/data/y-web/Y_Boxcontrol_Bouquet_Editor_Edit.yhtm similarity index 100% rename from src/nhttpd/web/Y_Boxcontrol_Bouquet_Editor_Edit.yhtm rename to data/y-web/Y_Boxcontrol_Bouquet_Editor_Edit.yhtm diff --git a/src/nhttpd/web/Y_Boxcontrol_Bouquet_Editor_Main.yhtm b/data/y-web/Y_Boxcontrol_Bouquet_Editor_Main.yhtm similarity index 100% rename from src/nhttpd/web/Y_Boxcontrol_Bouquet_Editor_Main.yhtm rename to data/y-web/Y_Boxcontrol_Bouquet_Editor_Main.yhtm diff --git a/src/nhttpd/web/Y_Boxcontrol_Bouquetlist.yhtm b/data/y-web/Y_Boxcontrol_Bouquetlist.yhtm similarity index 100% rename from src/nhttpd/web/Y_Boxcontrol_Bouquetlist.yhtm rename to data/y-web/Y_Boxcontrol_Bouquetlist.yhtm diff --git a/src/nhttpd/web/Y_Boxcontrol_Bouquets.yhtm b/data/y-web/Y_Boxcontrol_Bouquets.yhtm similarity index 100% rename from src/nhttpd/web/Y_Boxcontrol_Bouquets.yhtm rename to data/y-web/Y_Boxcontrol_Bouquets.yhtm diff --git a/src/nhttpd/web/Y_Boxcontrol_Channellist.yhtm b/data/y-web/Y_Boxcontrol_Channellist.yhtm similarity index 100% rename from src/nhttpd/web/Y_Boxcontrol_Channellist.yhtm rename to data/y-web/Y_Boxcontrol_Channellist.yhtm diff --git a/src/nhttpd/web/Y_Boxcontrol_Menue.yhtm b/data/y-web/Y_Boxcontrol_Menue.yhtm similarity index 100% rename from src/nhttpd/web/Y_Boxcontrol_Menue.yhtm rename to data/y-web/Y_Boxcontrol_Menue.yhtm diff --git a/src/nhttpd/web/Y_Boxcontrol_Messages.yhtm b/data/y-web/Y_Boxcontrol_Messages.yhtm similarity index 100% rename from src/nhttpd/web/Y_Boxcontrol_Messages.yhtm rename to data/y-web/Y_Boxcontrol_Messages.yhtm diff --git a/src/nhttpd/web/Y_Dist.css b/data/y-web/Y_Dist.css similarity index 100% rename from src/nhttpd/web/Y_Dist.css rename to data/y-web/Y_Dist.css diff --git a/src/nhttpd/web/Y_Dyn_Pages.yhtm b/data/y-web/Y_Dyn_Pages.yhtm similarity index 100% rename from src/nhttpd/web/Y_Dyn_Pages.yhtm rename to data/y-web/Y_Dyn_Pages.yhtm diff --git a/src/nhttpd/web/Y_EPG.js b/data/y-web/Y_EPG.js similarity index 100% rename from src/nhttpd/web/Y_EPG.js rename to data/y-web/Y_EPG.js diff --git a/src/nhttpd/web/Y_EPG_Plus.yhtm b/data/y-web/Y_EPG_Plus.yhtm similarity index 100% rename from src/nhttpd/web/Y_EPG_Plus.yhtm rename to data/y-web/Y_EPG_Plus.yhtm diff --git a/src/nhttpd/web/Y_Ext_Menue.yhtm b/data/y-web/Y_Ext_Menue.yhtm similarity index 100% rename from src/nhttpd/web/Y_Ext_Menue.yhtm rename to data/y-web/Y_Ext_Menue.yhtm diff --git a/src/nhttpd/web/Y_Ext_Settings.yhtm b/data/y-web/Y_Ext_Settings.yhtm similarity index 100% rename from src/nhttpd/web/Y_Ext_Settings.yhtm rename to data/y-web/Y_Ext_Settings.yhtm diff --git a/src/nhttpd/web/Y_Ext_Uninstall.yhtm b/data/y-web/Y_Ext_Uninstall.yhtm similarity index 100% rename from src/nhttpd/web/Y_Ext_Uninstall.yhtm rename to data/y-web/Y_Ext_Uninstall.yhtm diff --git a/src/nhttpd/web/Y_Ext_Update.js b/data/y-web/Y_Ext_Update.js similarity index 100% rename from src/nhttpd/web/Y_Ext_Update.js rename to data/y-web/Y_Ext_Update.js diff --git a/src/nhttpd/web/Y_Ext_Update.yhtm b/data/y-web/Y_Ext_Update.yhtm similarity index 100% rename from src/nhttpd/web/Y_Ext_Update.yhtm rename to data/y-web/Y_Ext_Update.yhtm diff --git a/src/nhttpd/web/Y_Ext_Update_refresh.yhtm b/data/y-web/Y_Ext_Update_refresh.yhtm similarity index 100% rename from src/nhttpd/web/Y_Ext_Update_refresh.yhtm rename to data/y-web/Y_Ext_Update_refresh.yhtm diff --git a/src/nhttpd/web/Y_Filemgr.yhtm b/data/y-web/Y_Filemgr.yhtm similarity index 100% rename from src/nhttpd/web/Y_Filemgr.yhtm rename to data/y-web/Y_Filemgr.yhtm diff --git a/src/nhttpd/web/Y_Filemgr_Edit.yhtm b/data/y-web/Y_Filemgr_Edit.yhtm similarity index 100% rename from src/nhttpd/web/Y_Filemgr_Edit.yhtm rename to data/y-web/Y_Filemgr_Edit.yhtm diff --git a/src/nhttpd/web/Y_Filemgr_blocks.txt b/data/y-web/Y_Filemgr_blocks.txt similarity index 100% rename from src/nhttpd/web/Y_Filemgr_blocks.txt rename to data/y-web/Y_Filemgr_blocks.txt diff --git a/src/nhttpd/web/Y_Flash.js b/data/y-web/Y_Flash.js similarity index 100% rename from src/nhttpd/web/Y_Flash.js rename to data/y-web/Y_Flash.js diff --git a/src/nhttpd/web/Y_Info_Help.yhtm b/data/y-web/Y_Info_Help.yhtm similarity index 100% rename from src/nhttpd/web/Y_Info_Help.yhtm rename to data/y-web/Y_Info_Help.yhtm diff --git a/src/nhttpd/web/Y_Info_Menue.yhtm b/data/y-web/Y_Info_Menue.yhtm similarity index 100% rename from src/nhttpd/web/Y_Info_Menue.yhtm rename to data/y-web/Y_Info_Menue.yhtm diff --git a/src/nhttpd/web/Y_Info_Updates.yhtm b/data/y-web/Y_Info_Updates.yhtm similarity index 100% rename from src/nhttpd/web/Y_Info_Updates.yhtm rename to data/y-web/Y_Info_Updates.yhtm diff --git a/src/nhttpd/web/Y_Live.js b/data/y-web/Y_Live.js similarity index 100% rename from src/nhttpd/web/Y_Live.js rename to data/y-web/Y_Live.js diff --git a/src/nhttpd/web/Y_Live.yhtm b/data/y-web/Y_Live.yhtm similarity index 100% rename from src/nhttpd/web/Y_Live.yhtm rename to data/y-web/Y_Live.yhtm diff --git a/src/nhttpd/web/Y_LiveViewFull.yhtm b/data/y-web/Y_LiveViewFull.yhtm similarity index 100% rename from src/nhttpd/web/Y_LiveViewFull.yhtm rename to data/y-web/Y_LiveViewFull.yhtm diff --git a/src/nhttpd/web/Y_Live_DoubleView.yhtm b/data/y-web/Y_Live_DoubleView.yhtm similarity index 100% rename from src/nhttpd/web/Y_Live_DoubleView.yhtm rename to data/y-web/Y_Live_DoubleView.yhtm diff --git a/src/nhttpd/web/Y_Live_EPG.yhtm b/data/y-web/Y_Live_EPG.yhtm similarity index 100% rename from src/nhttpd/web/Y_Live_EPG.yhtm rename to data/y-web/Y_Live_EPG.yhtm diff --git a/src/nhttpd/web/Y_Live_EPG_Info.yhtm b/data/y-web/Y_Live_EPG_Info.yhtm similarity index 100% rename from src/nhttpd/web/Y_Live_EPG_Info.yhtm rename to data/y-web/Y_Live_EPG_Info.yhtm diff --git a/src/nhttpd/web/Y_Live_Menue.yhtm b/data/y-web/Y_Live_Menue.yhtm similarity index 100% rename from src/nhttpd/web/Y_Live_Menue.yhtm rename to data/y-web/Y_Live_Menue.yhtm diff --git a/src/nhttpd/web/Y_Live_Msg.yhtm b/data/y-web/Y_Live_Msg.yhtm similarity index 100% rename from src/nhttpd/web/Y_Live_Msg.yhtm rename to data/y-web/Y_Live_Msg.yhtm diff --git a/src/nhttpd/web/Y_Live_Record.yhtm b/data/y-web/Y_Live_Record.yhtm similarity index 100% rename from src/nhttpd/web/Y_Live_Record.yhtm rename to data/y-web/Y_Live_Record.yhtm diff --git a/src/nhttpd/web/Y_Live_Transcode.yhtm b/data/y-web/Y_Live_Transcode.yhtm similarity index 100% rename from src/nhttpd/web/Y_Live_Transcode.yhtm rename to data/y-web/Y_Live_Transcode.yhtm diff --git a/src/nhttpd/web/Y_Main.css b/data/y-web/Y_Main.css similarity index 100% rename from src/nhttpd/web/Y_Main.css rename to data/y-web/Y_Main.css diff --git a/src/nhttpd/web/Y_Menue.yhtm b/data/y-web/Y_Menue.yhtm similarity index 100% rename from src/nhttpd/web/Y_Menue.yhtm rename to data/y-web/Y_Menue.yhtm diff --git a/src/nhttpd/web/Y_Refresh.yhtm b/data/y-web/Y_Refresh.yhtm similarity index 100% rename from src/nhttpd/web/Y_Refresh.yhtm rename to data/y-web/Y_Refresh.yhtm diff --git a/src/nhttpd/web/Y_Settings_Backup.yhtm b/data/y-web/Y_Settings_Backup.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_Backup.yhtm rename to data/y-web/Y_Settings_Backup.yhtm diff --git a/src/nhttpd/web/Y_Settings_Live.yhtm b/data/y-web/Y_Settings_Live.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_Live.yhtm rename to data/y-web/Y_Settings_Live.yhtm diff --git a/src/nhttpd/web/Y_Settings_Menue.yhtm b/data/y-web/Y_Settings_Menue.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_Menue.yhtm rename to data/y-web/Y_Settings_Menue.yhtm diff --git a/src/nhttpd/web/Y_Settings_Timer.yhtm b/data/y-web/Y_Settings_Timer.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_Timer.yhtm rename to data/y-web/Y_Settings_Timer.yhtm diff --git a/src/nhttpd/web/Y_Settings_VNC.yhtm b/data/y-web/Y_Settings_VNC.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_VNC.yhtm rename to data/y-web/Y_Settings_VNC.yhtm diff --git a/src/nhttpd/web/Y_Settings_automount.yhtm b/data/y-web/Y_Settings_automount.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_automount.yhtm rename to data/y-web/Y_Settings_automount.yhtm diff --git a/src/nhttpd/web/Y_Settings_automount_liste.yhtm b/data/y-web/Y_Settings_automount_liste.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_automount_liste.yhtm rename to data/y-web/Y_Settings_automount_liste.yhtm diff --git a/src/nhttpd/web/Y_Settings_buttons.yhtm b/data/y-web/Y_Settings_buttons.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_buttons.yhtm rename to data/y-web/Y_Settings_buttons.yhtm diff --git a/src/nhttpd/web/Y_Settings_lcd.yhtm b/data/y-web/Y_Settings_lcd.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_lcd.yhtm rename to data/y-web/Y_Settings_lcd.yhtm diff --git a/src/nhttpd/web/Y_Settings_mount.yhtm b/data/y-web/Y_Settings_mount.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_mount.yhtm rename to data/y-web/Y_Settings_mount.yhtm diff --git a/src/nhttpd/web/Y_Settings_mount_liste.yhtm b/data/y-web/Y_Settings_mount_liste.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_mount_liste.yhtm rename to data/y-web/Y_Settings_mount_liste.yhtm diff --git a/src/nhttpd/web/Y_Settings_neutrino_forms.yhtm b/data/y-web/Y_Settings_neutrino_forms.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_neutrino_forms.yhtm rename to data/y-web/Y_Settings_neutrino_forms.yhtm diff --git a/src/nhttpd/web/Y_Settings_nhttpd.yhtm b/data/y-web/Y_Settings_nhttpd.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_nhttpd.yhtm rename to data/y-web/Y_Settings_nhttpd.yhtm diff --git a/src/nhttpd/web/Y_Settings_personalize.yhtm b/data/y-web/Y_Settings_personalize.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_personalize.yhtm rename to data/y-web/Y_Settings_personalize.yhtm diff --git a/src/nhttpd/web/Y_Settings_umount_liste.yhtm b/data/y-web/Y_Settings_umount_liste.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_umount_liste.yhtm rename to data/y-web/Y_Settings_umount_liste.yhtm diff --git a/src/nhttpd/web/Y_Settings_video_audio.yhtm b/data/y-web/Y_Settings_video_audio.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_video_audio.yhtm rename to data/y-web/Y_Settings_video_audio.yhtm diff --git a/src/nhttpd/web/Y_Settings_wol.yhtm b/data/y-web/Y_Settings_wol.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_wol.yhtm rename to data/y-web/Y_Settings_wol.yhtm diff --git a/src/nhttpd/web/Y_Settings_yWeb.yhtm b/data/y-web/Y_Settings_yWeb.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_yWeb.yhtm rename to data/y-web/Y_Settings_yWeb.yhtm diff --git a/src/nhttpd/web/Y_Settings_zapit.yhtm b/data/y-web/Y_Settings_zapit.yhtm similarity index 100% rename from src/nhttpd/web/Y_Settings_zapit.yhtm rename to data/y-web/Y_Settings_zapit.yhtm diff --git a/src/nhttpd/web/Y_StreamInfo.yhtm b/data/y-web/Y_StreamInfo.yhtm similarity index 100% rename from src/nhttpd/web/Y_StreamInfo.yhtm rename to data/y-web/Y_StreamInfo.yhtm diff --git a/src/nhttpd/web/Y_Timer_Edit.yhtm b/data/y-web/Y_Timer_Edit.yhtm similarity index 100% rename from src/nhttpd/web/Y_Timer_Edit.yhtm rename to data/y-web/Y_Timer_Edit.yhtm diff --git a/src/nhttpd/web/Y_Timer_List.yhtm b/data/y-web/Y_Timer_List.yhtm similarity index 100% rename from src/nhttpd/web/Y_Timer_List.yhtm rename to data/y-web/Y_Timer_List.yhtm diff --git a/src/nhttpd/web/Y_Tools_Bootlogo.yhtm b/data/y-web/Y_Tools_Bootlogo.yhtm similarity index 100% rename from src/nhttpd/web/Y_Tools_Bootlogo.yhtm rename to data/y-web/Y_Tools_Bootlogo.yhtm diff --git a/src/nhttpd/web/Y_Tools_Boxcontrol.yhtm b/data/y-web/Y_Tools_Boxcontrol.yhtm similarity index 100% rename from src/nhttpd/web/Y_Tools_Boxcontrol.yhtm rename to data/y-web/Y_Tools_Boxcontrol.yhtm diff --git a/src/nhttpd/web/Y_Tools_Check_Install.yhtm b/data/y-web/Y_Tools_Check_Install.yhtm similarity index 100% rename from src/nhttpd/web/Y_Tools_Check_Install.yhtm rename to data/y-web/Y_Tools_Check_Install.yhtm diff --git a/src/nhttpd/web/Y_Tools_Cmd.yhtm b/data/y-web/Y_Tools_Cmd.yhtm similarity index 100% rename from src/nhttpd/web/Y_Tools_Cmd.yhtm rename to data/y-web/Y_Tools_Cmd.yhtm diff --git a/src/nhttpd/web/Y_Tools_Flash_Menue.yhtm b/data/y-web/Y_Tools_Flash_Menue.yhtm similarity index 100% rename from src/nhttpd/web/Y_Tools_Flash_Menue.yhtm rename to data/y-web/Y_Tools_Flash_Menue.yhtm diff --git a/src/nhttpd/web/Y_Tools_Flash_Upload.yhtm b/data/y-web/Y_Tools_Flash_Upload.yhtm similarity index 100% rename from src/nhttpd/web/Y_Tools_Flash_Upload.yhtm rename to data/y-web/Y_Tools_Flash_Upload.yhtm diff --git a/src/nhttpd/web/Y_Tools_Info_Menue.yhtm b/data/y-web/Y_Tools_Info_Menue.yhtm similarity index 100% rename from src/nhttpd/web/Y_Tools_Info_Menue.yhtm rename to data/y-web/Y_Tools_Info_Menue.yhtm diff --git a/src/nhttpd/web/Y_Tools_Installer.yhtm b/data/y-web/Y_Tools_Installer.yhtm similarity index 100% rename from src/nhttpd/web/Y_Tools_Installer.yhtm rename to data/y-web/Y_Tools_Installer.yhtm diff --git a/src/nhttpd/web/Y_Tools_Menue.yhtm b/data/y-web/Y_Tools_Menue.yhtm similarity index 100% rename from src/nhttpd/web/Y_Tools_Menue.yhtm rename to data/y-web/Y_Tools_Menue.yhtm diff --git a/src/nhttpd/web/Y_Tools_Rcsim.yhtm b/data/y-web/Y_Tools_Rcsim.yhtm similarity index 100% rename from src/nhttpd/web/Y_Tools_Rcsim.yhtm rename to data/y-web/Y_Tools_Rcsim.yhtm diff --git a/src/nhttpd/web/Y_Tools_Screenshot.yhtm b/data/y-web/Y_Tools_Screenshot.yhtm similarity index 100% rename from src/nhttpd/web/Y_Tools_Screenshot.yhtm rename to data/y-web/Y_Tools_Screenshot.yhtm diff --git a/src/nhttpd/web/Y_Tools_Timer_Sync.js b/data/y-web/Y_Tools_Timer_Sync.js similarity index 100% rename from src/nhttpd/web/Y_Tools_Timer_Sync.js rename to data/y-web/Y_Tools_Timer_Sync.js diff --git a/src/nhttpd/web/Y_Tools_Timer_Sync.yhtm b/data/y-web/Y_Tools_Timer_Sync.yhtm similarity index 100% rename from src/nhttpd/web/Y_Tools_Timer_Sync.yhtm rename to data/y-web/Y_Tools_Timer_Sync.yhtm diff --git a/src/nhttpd/web/Y_Tools_lcshot.yhtm b/data/y-web/Y_Tools_lcshot.yhtm similarity index 100% rename from src/nhttpd/web/Y_Tools_lcshot.yhtm rename to data/y-web/Y_Tools_lcshot.yhtm diff --git a/src/nhttpd/web/Y_Tools_tvshot.yhtm b/data/y-web/Y_Tools_tvshot.yhtm similarity index 100% rename from src/nhttpd/web/Y_Tools_tvshot.yhtm rename to data/y-web/Y_Tools_tvshot.yhtm diff --git a/src/nhttpd/web/Y_User.css b/data/y-web/Y_User.css similarity index 100% rename from src/nhttpd/web/Y_User.css rename to data/y-web/Y_User.css diff --git a/src/nhttpd/web/Y_VLC.js b/data/y-web/Y_VLC.js similarity index 100% rename from src/nhttpd/web/Y_VLC.js rename to data/y-web/Y_VLC.js diff --git a/src/nhttpd/web/Y_Version.txt b/data/y-web/Y_Version.txt similarity index 100% rename from src/nhttpd/web/Y_Version.txt rename to data/y-web/Y_Version.txt diff --git a/src/nhttpd/web/Y_Wait.yhtm b/data/y-web/Y_Wait.yhtm similarity index 100% rename from src/nhttpd/web/Y_Wait.yhtm rename to data/y-web/Y_Wait.yhtm diff --git a/src/nhttpd/web/Y_blank.htm b/data/y-web/Y_blank.htm similarity index 100% rename from src/nhttpd/web/Y_blank.htm rename to data/y-web/Y_blank.htm diff --git a/src/nhttpd/web/Y_neutrino_Blocks.txt b/data/y-web/Y_neutrino_Blocks.txt similarity index 100% rename from src/nhttpd/web/Y_neutrino_Blocks.txt rename to data/y-web/Y_neutrino_Blocks.txt diff --git a/src/nhttpd/web/Y_yweb.js b/data/y-web/Y_yweb.js similarity index 100% rename from src/nhttpd/web/Y_yweb.js rename to data/y-web/Y_yweb.js diff --git a/src/nhttpd/web/accordion.js b/data/y-web/accordion.js similarity index 100% rename from src/nhttpd/web/accordion.js rename to data/y-web/accordion.js diff --git a/src/nhttpd/web/channels.js b/data/y-web/channels.js similarity index 100% rename from src/nhttpd/web/channels.js rename to data/y-web/channels.js diff --git a/src/nhttpd/web/channels.txt b/data/y-web/channels.txt similarity index 100% rename from src/nhttpd/web/channels.txt rename to data/y-web/channels.txt diff --git a/src/nhttpd/web/effects.js b/data/y-web/effects.js similarity index 100% rename from src/nhttpd/web/effects.js rename to data/y-web/effects.js diff --git a/src/nhttpd/web/extentions.txt b/data/y-web/extentions.txt similarity index 100% rename from src/nhttpd/web/extentions.txt rename to data/y-web/extentions.txt diff --git a/src/nhttpd/web/extentions/boxinfo/boxinfo_uninstall.inc b/data/y-web/extentions/boxinfo/boxinfo_uninstall.inc similarity index 100% rename from src/nhttpd/web/extentions/boxinfo/boxinfo_uninstall.inc rename to data/y-web/extentions/boxinfo/boxinfo_uninstall.inc diff --git a/src/nhttpd/web/extentions/boxinfo/files/httpd/Y_Ext_BoxInfo.yhtm b/data/y-web/extentions/boxinfo/files/httpd/Y_Ext_BoxInfo.yhtm similarity index 100% rename from src/nhttpd/web/extentions/boxinfo/files/httpd/Y_Ext_BoxInfo.yhtm rename to data/y-web/extentions/boxinfo/files/httpd/Y_Ext_BoxInfo.yhtm diff --git a/src/nhttpd/web/extentions/boxinfo/files/httpd/scripts/Y_Ext_BoxInfo.sh b/data/y-web/extentions/boxinfo/files/httpd/scripts/Y_Ext_BoxInfo.sh similarity index 100% rename from src/nhttpd/web/extentions/boxinfo/files/httpd/scripts/Y_Ext_BoxInfo.sh rename to data/y-web/extentions/boxinfo/files/httpd/scripts/Y_Ext_BoxInfo.sh diff --git a/src/nhttpd/web/extentions/boxinfo/install.inc b/data/y-web/extentions/boxinfo/install.inc similarity index 100% rename from src/nhttpd/web/extentions/boxinfo/install.inc rename to data/y-web/extentions/boxinfo/install.inc diff --git a/src/nhttpd/web/extentions/boxinfo/install.sh b/data/y-web/extentions/boxinfo/install.sh similarity index 100% rename from src/nhttpd/web/extentions/boxinfo/install.sh rename to data/y-web/extentions/boxinfo/install.sh diff --git a/src/nhttpd/web/extentions/boxinfo/uninstall.sh b/data/y-web/extentions/boxinfo/uninstall.sh similarity index 100% rename from src/nhttpd/web/extentions/boxinfo/uninstall.sh rename to data/y-web/extentions/boxinfo/uninstall.sh diff --git a/src/nhttpd/web/extentions/hddtools/files/httpd/Y_Ext_hddtools.yhtm b/data/y-web/extentions/hddtools/files/httpd/Y_Ext_hddtools.yhtm similarity index 100% rename from src/nhttpd/web/extentions/hddtools/files/httpd/Y_Ext_hddtools.yhtm rename to data/y-web/extentions/hddtools/files/httpd/Y_Ext_hddtools.yhtm diff --git a/src/nhttpd/web/extentions/hddtools/files/httpd/scripts/Y_Ext_hddtools.sh b/data/y-web/extentions/hddtools/files/httpd/scripts/Y_Ext_hddtools.sh similarity index 100% rename from src/nhttpd/web/extentions/hddtools/files/httpd/scripts/Y_Ext_hddtools.sh rename to data/y-web/extentions/hddtools/files/httpd/scripts/Y_Ext_hddtools.sh diff --git a/src/nhttpd/web/extentions/hddtools/hddtools_uninstall.inc b/data/y-web/extentions/hddtools/hddtools_uninstall.inc similarity index 100% rename from src/nhttpd/web/extentions/hddtools/hddtools_uninstall.inc rename to data/y-web/extentions/hddtools/hddtools_uninstall.inc diff --git a/src/nhttpd/web/extentions/hddtools/install.inc b/data/y-web/extentions/hddtools/install.inc similarity index 100% rename from src/nhttpd/web/extentions/hddtools/install.inc rename to data/y-web/extentions/hddtools/install.inc diff --git a/src/nhttpd/web/extentions/hddtools/install.sh b/data/y-web/extentions/hddtools/install.sh similarity index 100% rename from src/nhttpd/web/extentions/hddtools/install.sh rename to data/y-web/extentions/hddtools/install.sh diff --git a/src/nhttpd/web/extentions/hddtools/uninstall.sh b/data/y-web/extentions/hddtools/uninstall.sh similarity index 100% rename from src/nhttpd/web/extentions/hddtools/uninstall.sh rename to data/y-web/extentions/hddtools/uninstall.sh diff --git a/src/nhttpd/web/favicon.ico b/data/y-web/favicon.ico similarity index 100% rename from src/nhttpd/web/favicon.ico rename to data/y-web/favicon.ico diff --git a/src/nhttpd/web/images/Makefile.am b/data/y-web/images/Makefile.am similarity index 100% rename from src/nhttpd/web/images/Makefile.am rename to data/y-web/images/Makefile.am diff --git a/src/nhttpd/web/images/accept.png b/data/y-web/images/accept.png similarity index 100% rename from src/nhttpd/web/images/accept.png rename to data/y-web/images/accept.png diff --git a/src/nhttpd/web/images/alert.gif b/data/y-web/images/alert.gif similarity index 100% rename from src/nhttpd/web/images/alert.gif rename to data/y-web/images/alert.gif diff --git a/src/nhttpd/web/images/arrowdown.png b/data/y-web/images/arrowdown.png similarity index 100% rename from src/nhttpd/web/images/arrowdown.png rename to data/y-web/images/arrowdown.png diff --git a/src/nhttpd/web/images/arrowleft.png b/data/y-web/images/arrowleft.png similarity index 100% rename from src/nhttpd/web/images/arrowleft.png rename to data/y-web/images/arrowleft.png diff --git a/src/nhttpd/web/images/arrowright.png b/data/y-web/images/arrowright.png similarity index 100% rename from src/nhttpd/web/images/arrowright.png rename to data/y-web/images/arrowright.png diff --git a/src/nhttpd/web/images/arrowup.png b/data/y-web/images/arrowup.png similarity index 100% rename from src/nhttpd/web/images/arrowup.png rename to data/y-web/images/arrowup.png diff --git a/src/nhttpd/web/images/audiobar.png b/data/y-web/images/audiobar.png similarity index 100% rename from src/nhttpd/web/images/audiobar.png rename to data/y-web/images/audiobar.png diff --git a/src/nhttpd/web/images/blank.gif b/data/y-web/images/blank.gif similarity index 100% rename from src/nhttpd/web/images/blank.gif rename to data/y-web/images/blank.gif diff --git a/src/nhttpd/web/images/check_green.png b/data/y-web/images/check_green.png similarity index 100% rename from src/nhttpd/web/images/check_green.png rename to data/y-web/images/check_green.png diff --git a/src/nhttpd/web/images/chmod.png b/data/y-web/images/chmod.png similarity index 100% rename from src/nhttpd/web/images/chmod.png rename to data/y-web/images/chmod.png diff --git a/src/nhttpd/web/images/comment.png b/data/y-web/images/comment.png similarity index 100% rename from src/nhttpd/web/images/comment.png rename to data/y-web/images/comment.png diff --git a/src/nhttpd/web/images/copy.gif b/data/y-web/images/copy.gif similarity index 100% rename from src/nhttpd/web/images/copy.gif rename to data/y-web/images/copy.gif diff --git a/src/nhttpd/web/images/cross.png b/data/y-web/images/cross.png similarity index 100% rename from src/nhttpd/web/images/cross.png rename to data/y-web/images/cross.png diff --git a/src/nhttpd/web/images/cut.png b/data/y-web/images/cut.png similarity index 100% rename from src/nhttpd/web/images/cut.png rename to data/y-web/images/cut.png diff --git a/src/nhttpd/web/images/dir_up.png b/data/y-web/images/dir_up.png similarity index 100% rename from src/nhttpd/web/images/dir_up.png rename to data/y-web/images/dir_up.png diff --git a/src/nhttpd/web/images/download.png b/data/y-web/images/download.png similarity index 100% rename from src/nhttpd/web/images/download.png rename to data/y-web/images/download.png diff --git a/src/nhttpd/web/images/elist.png b/data/y-web/images/elist.png similarity index 100% rename from src/nhttpd/web/images/elist.png rename to data/y-web/images/elist.png diff --git a/src/nhttpd/web/images/epg.png b/data/y-web/images/epg.png similarity index 100% rename from src/nhttpd/web/images/epg.png rename to data/y-web/images/epg.png diff --git a/src/nhttpd/web/images/exlink.gif b/data/y-web/images/exlink.gif similarity index 100% rename from src/nhttpd/web/images/exlink.gif rename to data/y-web/images/exlink.gif diff --git a/src/nhttpd/web/images/ext_add.png b/data/y-web/images/ext_add.png similarity index 100% rename from src/nhttpd/web/images/ext_add.png rename to data/y-web/images/ext_add.png diff --git a/src/nhttpd/web/images/ext_delete.png b/data/y-web/images/ext_delete.png similarity index 100% rename from src/nhttpd/web/images/ext_delete.png rename to data/y-web/images/ext_delete.png diff --git a/src/nhttpd/web/images/ext_edit.png b/data/y-web/images/ext_edit.png similarity index 100% rename from src/nhttpd/web/images/ext_edit.png rename to data/y-web/images/ext_edit.png diff --git a/src/nhttpd/web/images/ext_error.png b/data/y-web/images/ext_error.png similarity index 100% rename from src/nhttpd/web/images/ext_error.png rename to data/y-web/images/ext_error.png diff --git a/src/nhttpd/web/images/ext_ex.png b/data/y-web/images/ext_ex.png similarity index 100% rename from src/nhttpd/web/images/ext_ex.png rename to data/y-web/images/ext_ex.png diff --git a/src/nhttpd/web/images/ext_menu.png b/data/y-web/images/ext_menu.png similarity index 100% rename from src/nhttpd/web/images/ext_menu.png rename to data/y-web/images/ext_menu.png diff --git a/src/nhttpd/web/images/ext_mgr.png b/data/y-web/images/ext_mgr.png similarity index 100% rename from src/nhttpd/web/images/ext_mgr.png rename to data/y-web/images/ext_mgr.png diff --git a/src/nhttpd/web/images/ext_normal.png b/data/y-web/images/ext_normal.png similarity index 100% rename from src/nhttpd/web/images/ext_normal.png rename to data/y-web/images/ext_normal.png diff --git a/src/nhttpd/web/images/ext_plugin.png b/data/y-web/images/ext_plugin.png similarity index 100% rename from src/nhttpd/web/images/ext_plugin.png rename to data/y-web/images/ext_plugin.png diff --git a/src/nhttpd/web/images/ext_script.png b/data/y-web/images/ext_script.png similarity index 100% rename from src/nhttpd/web/images/ext_script.png rename to data/y-web/images/ext_script.png diff --git a/src/nhttpd/web/images/fb.png b/data/y-web/images/fb.png similarity index 100% rename from src/nhttpd/web/images/fb.png rename to data/y-web/images/fb.png diff --git a/src/nhttpd/web/images/film.png b/data/y-web/images/film.png similarity index 100% rename from src/nhttpd/web/images/film.png rename to data/y-web/images/film.png diff --git a/src/nhttpd/web/images/flash.png b/data/y-web/images/flash.png similarity index 100% rename from src/nhttpd/web/images/flash.png rename to data/y-web/images/flash.png diff --git a/src/nhttpd/web/images/folder_add.png b/data/y-web/images/folder_add.png similarity index 100% rename from src/nhttpd/web/images/folder_add.png rename to data/y-web/images/folder_add.png diff --git a/src/nhttpd/web/images/ftype_file.gif b/data/y-web/images/ftype_file.gif similarity index 100% rename from src/nhttpd/web/images/ftype_file.gif rename to data/y-web/images/ftype_file.gif diff --git a/src/nhttpd/web/images/ftype_file.png b/data/y-web/images/ftype_file.png similarity index 100% rename from src/nhttpd/web/images/ftype_file.png rename to data/y-web/images/ftype_file.png diff --git a/src/nhttpd/web/images/ftype_folder.gif b/data/y-web/images/ftype_folder.gif similarity index 100% rename from src/nhttpd/web/images/ftype_folder.gif rename to data/y-web/images/ftype_folder.gif diff --git a/src/nhttpd/web/images/ftype_folder.png b/data/y-web/images/ftype_folder.png similarity index 100% rename from src/nhttpd/web/images/ftype_folder.png rename to data/y-web/images/ftype_folder.png diff --git a/src/nhttpd/web/images/ftype_link.gif b/data/y-web/images/ftype_link.gif similarity index 100% rename from src/nhttpd/web/images/ftype_link.gif rename to data/y-web/images/ftype_link.gif diff --git a/src/nhttpd/web/images/ftype_link.png b/data/y-web/images/ftype_link.png similarity index 100% rename from src/nhttpd/web/images/ftype_link.png rename to data/y-web/images/ftype_link.png diff --git a/src/nhttpd/web/images/fullscreen.png b/data/y-web/images/fullscreen.png similarity index 100% rename from src/nhttpd/web/images/fullscreen.png rename to data/y-web/images/fullscreen.png diff --git a/src/nhttpd/web/images/help.gif b/data/y-web/images/help.gif similarity index 100% rename from src/nhttpd/web/images/help.gif rename to data/y-web/images/help.gif diff --git a/src/nhttpd/web/images/hidden.png b/data/y-web/images/hidden.png similarity index 100% rename from src/nhttpd/web/images/hidden.png rename to data/y-web/images/hidden.png diff --git a/src/nhttpd/web/images/home.png b/data/y-web/images/home.png similarity index 100% rename from src/nhttpd/web/images/home.png rename to data/y-web/images/home.png diff --git a/src/nhttpd/web/images/info.png b/data/y-web/images/info.png similarity index 100% rename from src/nhttpd/web/images/info.png rename to data/y-web/images/info.png diff --git a/src/nhttpd/web/images/inlink.gif b/data/y-web/images/inlink.gif similarity index 100% rename from src/nhttpd/web/images/inlink.gif rename to data/y-web/images/inlink.gif diff --git a/src/nhttpd/web/images/key.png b/data/y-web/images/key.png similarity index 100% rename from src/nhttpd/web/images/key.png rename to data/y-web/images/key.png diff --git a/src/nhttpd/web/images/live.png b/data/y-web/images/live.png similarity index 100% rename from src/nhttpd/web/images/live.png rename to data/y-web/images/live.png diff --git a/src/nhttpd/web/images/live_popup.png b/data/y-web/images/live_popup.png similarity index 100% rename from src/nhttpd/web/images/live_popup.png rename to data/y-web/images/live_popup.png diff --git a/src/nhttpd/web/images/livelock.png b/data/y-web/images/livelock.png similarity index 100% rename from src/nhttpd/web/images/livelock.png rename to data/y-web/images/livelock.png diff --git a/src/nhttpd/web/images/liveunlock.png b/data/y-web/images/liveunlock.png similarity index 100% rename from src/nhttpd/web/images/liveunlock.png rename to data/y-web/images/liveunlock.png diff --git a/src/nhttpd/web/images/lock.png b/data/y-web/images/lock.png similarity index 100% rename from src/nhttpd/web/images/lock.png rename to data/y-web/images/lock.png diff --git a/src/nhttpd/web/images/modify.png b/data/y-web/images/modify.png similarity index 100% rename from src/nhttpd/web/images/modify.png rename to data/y-web/images/modify.png diff --git a/src/nhttpd/web/images/new.png b/data/y-web/images/new.png similarity index 100% rename from src/nhttpd/web/images/new.png rename to data/y-web/images/new.png diff --git a/src/nhttpd/web/images/ok.gif b/data/y-web/images/ok.gif similarity index 100% rename from src/nhttpd/web/images/ok.gif rename to data/y-web/images/ok.gif diff --git a/src/nhttpd/web/images/package.png b/data/y-web/images/package.png similarity index 100% rename from src/nhttpd/web/images/package.png rename to data/y-web/images/package.png diff --git a/src/nhttpd/web/images/page_edit.png b/data/y-web/images/page_edit.png similarity index 100% rename from src/nhttpd/web/images/page_edit.png rename to data/y-web/images/page_edit.png diff --git a/src/nhttpd/web/images/paste.gif b/data/y-web/images/paste.gif similarity index 100% rename from src/nhttpd/web/images/paste.gif rename to data/y-web/images/paste.gif diff --git a/src/nhttpd/web/images/pause.png b/data/y-web/images/pause.png similarity index 100% rename from src/nhttpd/web/images/pause.png rename to data/y-web/images/pause.png diff --git a/src/nhttpd/web/images/picture.png b/data/y-web/images/picture.png similarity index 100% rename from src/nhttpd/web/images/picture.png rename to data/y-web/images/picture.png diff --git a/src/nhttpd/web/images/play.png b/data/y-web/images/play.png similarity index 100% rename from src/nhttpd/web/images/play.png rename to data/y-web/images/play.png diff --git a/src/nhttpd/web/images/popup.png b/data/y-web/images/popup.png similarity index 100% rename from src/nhttpd/web/images/popup.png rename to data/y-web/images/popup.png diff --git a/src/nhttpd/web/images/properties.png b/data/y-web/images/properties.png similarity index 100% rename from src/nhttpd/web/images/properties.png rename to data/y-web/images/properties.png diff --git a/src/nhttpd/web/images/radio.png b/data/y-web/images/radio.png similarity index 100% rename from src/nhttpd/web/images/radio.png rename to data/y-web/images/radio.png diff --git a/src/nhttpd/web/images/rc_cst_v1.jpg b/data/y-web/images/rc_cst_v1.jpg similarity index 100% rename from src/nhttpd/web/images/rc_cst_v1.jpg rename to data/y-web/images/rc_cst_v1.jpg diff --git a/src/nhttpd/web/images/rc_cst_v2.png b/data/y-web/images/rc_cst_v2.png similarity index 100% rename from src/nhttpd/web/images/rc_cst_v2.png rename to data/y-web/images/rc_cst_v2.png diff --git a/src/nhttpd/web/images/rc_cst_v3.png b/data/y-web/images/rc_cst_v3.png similarity index 100% rename from src/nhttpd/web/images/rc_cst_v3.png rename to data/y-web/images/rc_cst_v3.png diff --git a/src/nhttpd/web/images/rc_cst_v4.png b/data/y-web/images/rc_cst_v4.png similarity index 100% rename from src/nhttpd/web/images/rc_cst_v4.png rename to data/y-web/images/rc_cst_v4.png diff --git a/src/nhttpd/web/images/rc_cst_v5.png b/data/y-web/images/rc_cst_v5.png similarity index 100% rename from src/nhttpd/web/images/rc_cst_v5.png rename to data/y-web/images/rc_cst_v5.png diff --git a/src/nhttpd/web/images/rc_cst_v6.png b/data/y-web/images/rc_cst_v6.png similarity index 100% rename from src/nhttpd/web/images/rc_cst_v6.png rename to data/y-web/images/rc_cst_v6.png diff --git a/src/nhttpd/web/images/rc_dbox_nokia_old.png b/data/y-web/images/rc_dbox_nokia_old.png similarity index 100% rename from src/nhttpd/web/images/rc_dbox_nokia_old.png rename to data/y-web/images/rc_dbox_nokia_old.png diff --git a/src/nhttpd/web/images/rc_dbox_philips.png b/data/y-web/images/rc_dbox_philips.png similarity index 100% rename from src/nhttpd/web/images/rc_dbox_philips.png rename to data/y-web/images/rc_dbox_philips.png diff --git a/src/nhttpd/web/images/record.gif b/data/y-web/images/record.gif similarity index 100% rename from src/nhttpd/web/images/record.gif rename to data/y-web/images/record.gif diff --git a/src/nhttpd/web/images/record.png b/data/y-web/images/record.png similarity index 100% rename from src/nhttpd/web/images/record.png rename to data/y-web/images/record.png diff --git a/src/nhttpd/web/images/reload.png b/data/y-web/images/reload.png similarity index 100% rename from src/nhttpd/web/images/reload.png rename to data/y-web/images/reload.png diff --git a/src/nhttpd/web/images/remove.png b/data/y-web/images/remove.png similarity index 100% rename from src/nhttpd/web/images/remove.png rename to data/y-web/images/remove.png diff --git a/src/nhttpd/web/images/rename.gif b/data/y-web/images/rename.gif similarity index 100% rename from src/nhttpd/web/images/rename.gif rename to data/y-web/images/rename.gif diff --git a/src/nhttpd/web/images/save.png b/data/y-web/images/save.png similarity index 100% rename from src/nhttpd/web/images/save.png rename to data/y-web/images/save.png diff --git a/src/nhttpd/web/images/saveall.png b/data/y-web/images/saveall.png similarity index 100% rename from src/nhttpd/web/images/saveall.png rename to data/y-web/images/saveall.png diff --git a/src/nhttpd/web/images/smallwait.gif b/data/y-web/images/smallwait.gif similarity index 100% rename from src/nhttpd/web/images/smallwait.gif rename to data/y-web/images/smallwait.gif diff --git a/src/nhttpd/web/images/snapshot.png b/data/y-web/images/snapshot.png similarity index 100% rename from src/nhttpd/web/images/snapshot.png rename to data/y-web/images/snapshot.png diff --git a/src/nhttpd/web/images/stop.png b/data/y-web/images/stop.png similarity index 100% rename from src/nhttpd/web/images/stop.png rename to data/y-web/images/stop.png diff --git a/src/nhttpd/web/images/stream.png b/data/y-web/images/stream.png similarity index 100% rename from src/nhttpd/web/images/stream.png rename to data/y-web/images/stream.png diff --git a/src/nhttpd/web/images/streaminfo.png b/data/y-web/images/streaminfo.png similarity index 100% rename from src/nhttpd/web/images/streaminfo.png rename to data/y-web/images/streaminfo.png diff --git a/src/nhttpd/web/images/text.png b/data/y-web/images/text.png similarity index 100% rename from src/nhttpd/web/images/text.png rename to data/y-web/images/text.png diff --git a/src/nhttpd/web/images/time_add.png b/data/y-web/images/time_add.png similarity index 100% rename from src/nhttpd/web/images/time_add.png rename to data/y-web/images/time_add.png diff --git a/src/nhttpd/web/images/time_down.png b/data/y-web/images/time_down.png similarity index 100% rename from src/nhttpd/web/images/time_down.png rename to data/y-web/images/time_down.png diff --git a/src/nhttpd/web/images/time_up.png b/data/y-web/images/time_up.png similarity index 100% rename from src/nhttpd/web/images/time_up.png rename to data/y-web/images/time_up.png diff --git a/src/nhttpd/web/images/timer.gif b/data/y-web/images/timer.gif similarity index 100% rename from src/nhttpd/web/images/timer.gif rename to data/y-web/images/timer.gif diff --git a/src/nhttpd/web/images/transcode.png b/data/y-web/images/transcode.png similarity index 100% rename from src/nhttpd/web/images/transcode.png rename to data/y-web/images/transcode.png diff --git a/src/nhttpd/web/images/tux-yweb.png b/data/y-web/images/tux-yweb.png similarity index 100% rename from src/nhttpd/web/images/tux-yweb.png rename to data/y-web/images/tux-yweb.png diff --git a/src/nhttpd/web/images/udp_switch_off.png b/data/y-web/images/udp_switch_off.png similarity index 100% rename from src/nhttpd/web/images/udp_switch_off.png rename to data/y-web/images/udp_switch_off.png diff --git a/src/nhttpd/web/images/udp_switch_on.png b/data/y-web/images/udp_switch_on.png similarity index 100% rename from src/nhttpd/web/images/udp_switch_on.png rename to data/y-web/images/udp_switch_on.png diff --git a/src/nhttpd/web/images/unlock.png b/data/y-web/images/unlock.png similarity index 100% rename from src/nhttpd/web/images/unlock.png rename to data/y-web/images/unlock.png diff --git a/src/nhttpd/web/images/upload.png b/data/y-web/images/upload.png similarity index 100% rename from src/nhttpd/web/images/upload.png rename to data/y-web/images/upload.png diff --git a/src/nhttpd/web/images/visible.png b/data/y-web/images/visible.png similarity index 100% rename from src/nhttpd/web/images/visible.png rename to data/y-web/images/visible.png diff --git a/src/nhttpd/web/images/vlc.png b/data/y-web/images/vlc.png similarity index 100% rename from src/nhttpd/web/images/vlc.png rename to data/y-web/images/vlc.png diff --git a/src/nhttpd/web/images/volumedown.png b/data/y-web/images/volumedown.png similarity index 100% rename from src/nhttpd/web/images/volumedown.png rename to data/y-web/images/volumedown.png diff --git a/src/nhttpd/web/images/volumemute.png b/data/y-web/images/volumemute.png similarity index 100% rename from src/nhttpd/web/images/volumemute.png rename to data/y-web/images/volumemute.png diff --git a/src/nhttpd/web/images/volumeunmute.png b/data/y-web/images/volumeunmute.png similarity index 100% rename from src/nhttpd/web/images/volumeunmute.png rename to data/y-web/images/volumeunmute.png diff --git a/src/nhttpd/web/images/volumeup.png b/data/y-web/images/volumeup.png similarity index 100% rename from src/nhttpd/web/images/volumeup.png rename to data/y-web/images/volumeup.png diff --git a/src/nhttpd/web/images/wait.gif b/data/y-web/images/wait.gif similarity index 100% rename from src/nhttpd/web/images/wait.gif rename to data/y-web/images/wait.gif diff --git a/src/nhttpd/web/images/webtv.png b/data/y-web/images/webtv.png similarity index 100% rename from src/nhttpd/web/images/webtv.png rename to data/y-web/images/webtv.png diff --git a/src/nhttpd/web/images/wget.png b/data/y-web/images/wget.png similarity index 100% rename from src/nhttpd/web/images/wget.png rename to data/y-web/images/wget.png diff --git a/src/nhttpd/web/images/work.gif b/data/y-web/images/work.gif similarity index 100% rename from src/nhttpd/web/images/work.gif rename to data/y-web/images/work.gif diff --git a/src/nhttpd/web/images/x_red.png b/data/y-web/images/x_red.png similarity index 100% rename from src/nhttpd/web/images/x_red.png rename to data/y-web/images/x_red.png diff --git a/src/nhttpd/web/images/zap.png b/data/y-web/images/zap.png similarity index 100% rename from src/nhttpd/web/images/zap.png rename to data/y-web/images/zap.png diff --git a/src/nhttpd/web/index.html b/data/y-web/index.html similarity index 100% rename from src/nhttpd/web/index.html rename to data/y-web/index.html diff --git a/src/nhttpd/web/languages/Czech b/data/y-web/languages/Czech similarity index 100% rename from src/nhttpd/web/languages/Czech rename to data/y-web/languages/Czech diff --git a/src/nhttpd/web/languages/Deutsch b/data/y-web/languages/Deutsch similarity index 100% rename from src/nhttpd/web/languages/Deutsch rename to data/y-web/languages/Deutsch diff --git a/src/nhttpd/web/languages/English b/data/y-web/languages/English similarity index 100% rename from src/nhttpd/web/languages/English rename to data/y-web/languages/English diff --git a/src/nhttpd/web/languages/Makefile.am b/data/y-web/languages/Makefile.am similarity index 100% rename from src/nhttpd/web/languages/Makefile.am rename to data/y-web/languages/Makefile.am diff --git a/src/nhttpd/web/languages/Polski b/data/y-web/languages/Polski similarity index 100% rename from src/nhttpd/web/languages/Polski rename to data/y-web/languages/Polski diff --git a/src/nhttpd/web/languages/Portuguese b/data/y-web/languages/Portuguese similarity index 100% rename from src/nhttpd/web/languages/Portuguese rename to data/y-web/languages/Portuguese diff --git a/src/nhttpd/web/languages/Slovak b/data/y-web/languages/Slovak similarity index 100% rename from src/nhttpd/web/languages/Slovak rename to data/y-web/languages/Slovak diff --git a/src/nhttpd/web/prototype.js b/data/y-web/prototype.js similarity index 100% rename from src/nhttpd/web/prototype.js rename to data/y-web/prototype.js diff --git a/src/nhttpd/web/robots.txt b/data/y-web/robots.txt similarity index 100% rename from src/nhttpd/web/robots.txt rename to data/y-web/robots.txt diff --git a/src/nhttpd/web/scripts/Makefile.am b/data/y-web/scripts/Makefile.am similarity index 100% rename from src/nhttpd/web/scripts/Makefile.am rename to data/y-web/scripts/Makefile.am diff --git a/src/nhttpd/web/scripts/Y_Live.sh b/data/y-web/scripts/Y_Live.sh similarity index 100% rename from src/nhttpd/web/scripts/Y_Live.sh rename to data/y-web/scripts/Y_Live.sh diff --git a/src/nhttpd/web/scripts/Y_NAS.sh b/data/y-web/scripts/Y_NAS.sh similarity index 100% rename from src/nhttpd/web/scripts/Y_NAS.sh rename to data/y-web/scripts/Y_NAS.sh diff --git a/src/nhttpd/web/scripts/Y_Tools.sh b/data/y-web/scripts/Y_Tools.sh similarity index 100% rename from src/nhttpd/web/scripts/Y_Tools.sh rename to data/y-web/scripts/Y_Tools.sh diff --git a/src/nhttpd/web/scripts/_Y_Globals.sh b/data/y-web/scripts/_Y_Globals.sh similarity index 100% rename from src/nhttpd/web/scripts/_Y_Globals.sh rename to data/y-web/scripts/_Y_Globals.sh diff --git a/src/nhttpd/web/scripts/_Y_Library.sh b/data/y-web/scripts/_Y_Library.sh similarity index 100% rename from src/nhttpd/web/scripts/_Y_Library.sh rename to data/y-web/scripts/_Y_Library.sh diff --git a/src/nhttpd/web/scripts/api.sh b/data/y-web/scripts/api.sh similarity index 100% rename from src/nhttpd/web/scripts/api.sh rename to data/y-web/scripts/api.sh diff --git a/src/nhttpd/web/styles/Makefile.am b/data/y-web/styles/Makefile.am similarity index 100% rename from src/nhttpd/web/styles/Makefile.am rename to data/y-web/styles/Makefile.am diff --git a/src/nhttpd/web/styles/Y_Dist-GreyBlue.css b/data/y-web/styles/Y_Dist-GreyBlue.css similarity index 100% rename from src/nhttpd/web/styles/Y_Dist-GreyBlue.css rename to data/y-web/styles/Y_Dist-GreyBlue.css diff --git a/src/nhttpd/web/styles/Y_Dist-Tuxbox.css b/data/y-web/styles/Y_Dist-Tuxbox.css similarity index 100% rename from src/nhttpd/web/styles/Y_Dist-Tuxbox.css rename to data/y-web/styles/Y_Dist-Tuxbox.css diff --git a/src/nhttpd/web/ywidget.css b/data/y-web/ywidget.css similarity index 100% rename from src/nhttpd/web/ywidget.css rename to data/y-web/ywidget.css diff --git a/src/nhttpd/web/ywidget.js b/data/y-web/ywidget.js similarity index 100% rename from src/nhttpd/web/ywidget.js rename to data/y-web/ywidget.js diff --git a/src/nhttpd/Makefile.am b/src/nhttpd/Makefile.am index 1ea01bff6..3eb0c22a3 100644 --- a/src/nhttpd/Makefile.am +++ b/src/nhttpd/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = yhttpd_core yhttpd_mods tuxboxapi web +SUBDIRS = yhttpd_core yhttpd_mods tuxboxapi AM_CPPFLAGS = -fno-rtti -fno-exceptions -D_FILE_OFFSET_BITS=64 From 1f85db63a90730d9d9a94dcf0f70e9c91fdde623 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Thu, 15 Dec 2016 14:00:45 +0100 Subject: [PATCH 050/142] configure.ac: sort Makefiles alphabetically Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/48d0c1321d33ea442b4c3d4bf882115aee55f82f Author: vanhofen Date: 2016-12-15 (Thu, 15 Dec 2016) Origin message was: ------------------ - configure.ac: sort Makefiles alphabetically --- configure.ac | 76 ++++++++++++++++++++++++++-------------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/configure.ac b/configure.ac index bb155c1f9..4b729fadf 100644 --- a/configure.ac +++ b/configure.ac @@ -253,41 +253,6 @@ AC_SUBST(BLURAY_LIBS) AC_OUTPUT([ Makefile -lib/Makefile -lib/libconfigfile/Makefile -lib/connection/Makefile -lib/libeventserver/Makefile -lib/libmd5sum/Makefile -lib/libnet/Makefile -lib/xmltree/Makefile -lib/jsoncpp/Makefile -lib/sectionsdclient/Makefile -lib/timerdclient/Makefile -lib/libtuxtxt/Makefile -lib/libdvbsub/Makefile -lib/libupnpclient/Makefile -lib/libiw/Makefile -lib/luaclient/Makefile -src/lcddisplay/Makefile -src/nhttpd/Makefile -src/nhttpd/tuxboxapi/Makefile -src/nhttpd/yhttpd_core/Makefile -src/nhttpd/yhttpd_mods/Makefile -src/nhttpd/nhttpd.conf -src/Makefile -src/daemonc/Makefile -src/driver/pictureviewer/Makefile -src/driver/audiodec/Makefile -src/driver/Makefile -src/gui/Makefile -src/gui/bedit/Makefile -src/gui/components/Makefile -src/gui/lua/Makefile -src/gui/moviebrowser/Makefile -src/gui/widget/Makefile -src/system/Makefile -src/system/mtdutils/Makefile -src/system/mtdutils/lib/Makefile data/Makefile data/fonts/Makefile data/icons/Makefile @@ -309,8 +274,8 @@ data/inetradio/Makefile data/initial/Makefile data/iso-codes/Makefile data/lcd/Makefile -data/lcd/icons/Makefile data/lcd/clock/Makefile +data/lcd/icons/Makefile data/license/Makefile data/locale/Makefile data/neutrino-scripts/Makefile @@ -321,13 +286,48 @@ data/scripts/Makefile data/themes/Makefile data/y-web/Makefile data/y-web/images/Makefile -data/y-web/scripts/Makefile data/y-web/languages/Makefile +data/y-web/scripts/Makefile data/y-web/styles/Makefile +lib/Makefile +lib/connection/Makefile +lib/jsoncpp/Makefile +lib/libconfigfile/Makefile +lib/libdvbsub/Makefile +lib/libeventserver/Makefile +lib/libiw/Makefile +lib/libmd5sum/Makefile +lib/libnet/Makefile +lib/libtuxtxt/Makefile +lib/libupnpclient/Makefile +lib/luaclient/Makefile +lib/sectionsdclient/Makefile +lib/timerdclient/Makefile +lib/xmltree/Makefile +src/Makefile +src/daemonc/Makefile +src/driver/Makefile +src/driver/audiodec/Makefile +src/driver/pictureviewer/Makefile src/eitd/Makefile +src/gui/Makefile +src/gui/bedit/Makefile +src/gui/components/Makefile +src/gui/lua/Makefile +src/gui/moviebrowser/Makefile +src/gui/widget/Makefile +src/lcddisplay/Makefile +src/nhttpd/Makefile +src/nhttpd/nhttpd.conf +src/nhttpd/tuxboxapi/Makefile +src/nhttpd/yhttpd_core/Makefile +src/nhttpd/yhttpd_mods/Makefile +src/system/Makefile +src/system/mtdutils/Makefile +src/system/mtdutils/lib/Makefile src/timerd/Makefile src/zapit/Makefile +src/zapit/data/Makefile src/zapit/lib/Makefile src/zapit/src/Makefile -src/zapit/data/Makefile ]) From ee2d7be3a5ad4cae3fe2350140d220a8cfe613b7 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Thu, 15 Dec 2016 14:00:45 +0100 Subject: [PATCH 051/142] move nhttdp-documentation to /doc-directory Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/6b084689b491d62b33e05a39d77803d9800e515e Author: vanhofen Date: 2016-12-15 (Thu, 15 Dec 2016) Origin message was: ------------------ - move nhttdp-documentation to /doc-directory --- {src/nhttpd/doc => doc/nhttpd}/Changelog.txt | 0 .../nhttpd}/design/Kollaborationsdiagramm1.gif | 0 .../doc => doc/nhttpd}/design/Sequenzdiagramm1.gif | Bin {src/nhttpd/doc => doc/nhttpd}/design/Webserver.gif | Bin .../doc => doc/nhttpd}/design/big_picturer.gif | 0 {src/nhttpd/doc => doc/nhttpd}/design/mods.gif | Bin {src/nhttpd/doc => doc/nhttpd}/design/nhttpd.gif | Bin .../doc => doc/nhttpd}/design/nhttpdNeutrinoAPI.gif | Bin {src/nhttpd/doc => doc/nhttpd}/index.html | 0 .../doc => doc/nhttpd}/nhttpd_controlapi.html | 0 .../doc => doc/nhttpd}/nhttpd_implementation.html | 0 {src/nhttpd/doc => doc/nhttpd}/yhttpd.css | 0 {src/nhttpd/doc => doc/nhttpd}/yhttpd_conf.txt | 0 .../doc => doc/nhttpd}/yhttpd_documentation.html | 0 14 files changed, 0 insertions(+), 0 deletions(-) rename {src/nhttpd/doc => doc/nhttpd}/Changelog.txt (100%) rename {src/nhttpd/doc => doc/nhttpd}/design/Kollaborationsdiagramm1.gif (100%) rename {src/nhttpd/doc => doc/nhttpd}/design/Sequenzdiagramm1.gif (100%) rename {src/nhttpd/doc => doc/nhttpd}/design/Webserver.gif (100%) rename {src/nhttpd/doc => doc/nhttpd}/design/big_picturer.gif (100%) rename {src/nhttpd/doc => doc/nhttpd}/design/mods.gif (100%) rename {src/nhttpd/doc => doc/nhttpd}/design/nhttpd.gif (100%) rename {src/nhttpd/doc => doc/nhttpd}/design/nhttpdNeutrinoAPI.gif (100%) rename {src/nhttpd/doc => doc/nhttpd}/index.html (100%) rename {src/nhttpd/doc => doc/nhttpd}/nhttpd_controlapi.html (100%) rename {src/nhttpd/doc => doc/nhttpd}/nhttpd_implementation.html (100%) rename {src/nhttpd/doc => doc/nhttpd}/yhttpd.css (100%) rename {src/nhttpd/doc => doc/nhttpd}/yhttpd_conf.txt (100%) rename {src/nhttpd/doc => doc/nhttpd}/yhttpd_documentation.html (100%) diff --git a/src/nhttpd/doc/Changelog.txt b/doc/nhttpd/Changelog.txt similarity index 100% rename from src/nhttpd/doc/Changelog.txt rename to doc/nhttpd/Changelog.txt diff --git a/src/nhttpd/doc/design/Kollaborationsdiagramm1.gif b/doc/nhttpd/design/Kollaborationsdiagramm1.gif similarity index 100% rename from src/nhttpd/doc/design/Kollaborationsdiagramm1.gif rename to doc/nhttpd/design/Kollaborationsdiagramm1.gif diff --git a/src/nhttpd/doc/design/Sequenzdiagramm1.gif b/doc/nhttpd/design/Sequenzdiagramm1.gif similarity index 100% rename from src/nhttpd/doc/design/Sequenzdiagramm1.gif rename to doc/nhttpd/design/Sequenzdiagramm1.gif diff --git a/src/nhttpd/doc/design/Webserver.gif b/doc/nhttpd/design/Webserver.gif similarity index 100% rename from src/nhttpd/doc/design/Webserver.gif rename to doc/nhttpd/design/Webserver.gif diff --git a/src/nhttpd/doc/design/big_picturer.gif b/doc/nhttpd/design/big_picturer.gif similarity index 100% rename from src/nhttpd/doc/design/big_picturer.gif rename to doc/nhttpd/design/big_picturer.gif diff --git a/src/nhttpd/doc/design/mods.gif b/doc/nhttpd/design/mods.gif similarity index 100% rename from src/nhttpd/doc/design/mods.gif rename to doc/nhttpd/design/mods.gif diff --git a/src/nhttpd/doc/design/nhttpd.gif b/doc/nhttpd/design/nhttpd.gif similarity index 100% rename from src/nhttpd/doc/design/nhttpd.gif rename to doc/nhttpd/design/nhttpd.gif diff --git a/src/nhttpd/doc/design/nhttpdNeutrinoAPI.gif b/doc/nhttpd/design/nhttpdNeutrinoAPI.gif similarity index 100% rename from src/nhttpd/doc/design/nhttpdNeutrinoAPI.gif rename to doc/nhttpd/design/nhttpdNeutrinoAPI.gif diff --git a/src/nhttpd/doc/index.html b/doc/nhttpd/index.html similarity index 100% rename from src/nhttpd/doc/index.html rename to doc/nhttpd/index.html diff --git a/src/nhttpd/doc/nhttpd_controlapi.html b/doc/nhttpd/nhttpd_controlapi.html similarity index 100% rename from src/nhttpd/doc/nhttpd_controlapi.html rename to doc/nhttpd/nhttpd_controlapi.html diff --git a/src/nhttpd/doc/nhttpd_implementation.html b/doc/nhttpd/nhttpd_implementation.html similarity index 100% rename from src/nhttpd/doc/nhttpd_implementation.html rename to doc/nhttpd/nhttpd_implementation.html diff --git a/src/nhttpd/doc/yhttpd.css b/doc/nhttpd/yhttpd.css similarity index 100% rename from src/nhttpd/doc/yhttpd.css rename to doc/nhttpd/yhttpd.css diff --git a/src/nhttpd/doc/yhttpd_conf.txt b/doc/nhttpd/yhttpd_conf.txt similarity index 100% rename from src/nhttpd/doc/yhttpd_conf.txt rename to doc/nhttpd/yhttpd_conf.txt diff --git a/src/nhttpd/doc/yhttpd_documentation.html b/doc/nhttpd/yhttpd_documentation.html similarity index 100% rename from src/nhttpd/doc/yhttpd_documentation.html rename to doc/nhttpd/yhttpd_documentation.html From 831b4e4c821ab9e53e2e164cc930c775ac09ed55 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Thu, 15 Dec 2016 14:00:45 +0100 Subject: [PATCH 052/142] doc: remove outdated nhttpd changelog Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/69edfcd24487fe3c11ed6658e0c36aad15241c43 Author: vanhofen Date: 2016-12-15 (Thu, 15 Dec 2016) Origin message was: ------------------ - doc: remove outdated nhttpd changelog --- doc/nhttpd/Changelog.txt | 320 --------------------------------------- 1 file changed, 320 deletions(-) delete mode 100644 doc/nhttpd/Changelog.txt diff --git a/doc/nhttpd/Changelog.txt b/doc/nhttpd/Changelog.txt deleted file mode 100644 index f06bd2b72..000000000 --- a/doc/nhttpd/Changelog.txt +++ /dev/null @@ -1,320 +0,0 @@ -Severity id Headline Build - -5-Enhancement JG200000540 nhttpd: new: /y/cache-info view and clear cache nhttpd 3.0.5 -5-Enhancement JG200000553 Live: Support for Non-compatible HTTP1.1-Clients like JtG-Servernhttpd 3.0.5 -5-Enhancement JG200000548 nhttpd: new hooks for Upload handling n httpd 3.0.5 -5-Enhancement JG200000549 nhttpd: mod_auth new Base64 algorism nhttpd 3.0.5 -5-Enhancement JG200000545 nhttpd: upload POST works with SSL now nhttpd 3.0.5 -5-Enhancement JG200000528 nhttpd: Autentication: new implemented nhttpd 3.0.5 -5-Enhancement JG200000538 nhttpd: yParser Cache nhttpd 3.0.5 -5-Enhancement JG200000544 nhttpd: new format of nhttpd.conf nhttpd 3.0.5 -5-Enhancement JG200000541 nhttpd: new /y/server-config nhttpd 3.0.5 -5-Enhancement JG200000550 nhttpd: add SSL support nhttpd 3.0.5 -5-Enhancement JG200000542 nhttpd: new module mod_cache for caching dynamic content nhttpd 3.0.5 -5-Enhancement JG200000543 nhttpd: new module mod_weblog CLF and ELF logging nhttpd 3.0.5 -5-Enhancement JG200000547 nhttpd: more Features for HTTP1.1 support nhttpd 3.0.5 -5-Enhancement JG200000546 nhttpd: new Socket multiplexing for multi-threading nhttpd 3.0.5 -5-Enhancement JG200000536 nhttpd: Upload Progress .. nhttpd 3.0.5 - -5-Enhancement JG200000552 Settings: Support for new nhttpd.conf Format R2.2.0 -5-Enhancement JG200000530 nhttpd: Webserver (yhhtpd) rewritten nhttpd 3.0.0 -5-Enhancement JG200000529 nhttpd: split nhttpd in yhttpd_core, yhttpd_mods, neutrinoAPI nhttpd 3.0.0 -5-Enhancement JG200000527 Bouquet: Bouquet-Editor moved to tools R2.1.0 -5-Enhancement JG200000523 Bouquet-Editor: new implemented R2.1.0 -5-Enhancement JG200000526 Bouquet: EPG-List: new implemented R2.1.0 -5-Enhancement JG200000534 Boxcontrol: Use /control/standby to determine standby status R2.1.0 -5-Enhancement JG200000440 Timer: ANNOUNCE_TIME_1=-120 at Rec from EPG .. R2.1.0 -5-Enhancement JG200000524 Timer: TimerList new implemented R2.1.0 -5-Enhancement JG200000531 Timer: use RecordingSafty in Timer-Prog R2.1.0 -5-Enhancement JG200000525 Timer: add/modify Timer: new implemented R2.1.0 -4-Minor JG200000522 Tools: Flash fix reboot button R2.1.0 - -5-Enhancement JG200000511 GUI: disable AutoMount if ManagementIP does not match R2.0.2 -4-Minor JG200000519 Live: VLC Snapshot with IE works again R2.0.2 -5-Enhancement JG200000512 Live: fix: Fullscreen-Button (IE) does not work R2.0.2 -5-Enhancement JG200000518 Live: add EPG-Button for Popup R2.0.2 -3-Average JG200000517 Record: fixed: Record without transcoding works again R2.0.2 -5-Enhancement JG200000514 Settings: Diverse: add EPG-Settings R2.0.2 -5-Enhancement JG200000513 Settings: Diverse: add Virtual zap R2.0.2 - -3-Average JG200000504 fix: call dboxshot correctly if installed in /var/bin (in Remote OSD) R2.0.1 -3-Average JG200000506 Live: fixed Problems switching channels in LiveTV/Radio R2.0.1 -5-Enhancement JG200000507 Live: MiniEPG only on demand R2.0.1 - -5-Enhancement JG200000478 Boxcontrol: OSD Screenshot: Support for dboxshot R2.0.0 -5-Enhancement JG200000480 Boxcontrol: Control: Live lock / unlock R2.0.0 -5-Enhancement JG200000482 Boxcontrol: Control: new: Standby Status R2.0.0 -5-Enhancement JG200000483 EPG: Link to IMDB R2.0.0 -5-Enhancement JG200000498 Boxcontrol: add SPTS Status R2.0.0 -5-Enhancement JG200000497 Boxcontrol: New RC-Imake: Nokia-Remote R2.0.0 -5-Enhancement JG200000494 Boxcontrol: Control: Add optical Output on/off/status R2.0.0 -4-Minor JG200000392 GUI: initialize Volumen correctly .. R2.0.0 -5-Enhancement JG200000331 GUI: all Pages W3C XHTML 1.0 conform .. R2.0.0 -5-Enhancement JG200000465 GUI: new volumen control R2.0.0 -5-Enhancement JG200000459 GUI: new yWeb 2.0 Layout R2.0.0 -5-Enhancement JG200000254 GUI: Show channel-logos (if mounted) R2.0.0 -5-Enhancement JG200000455 GUI: Help: New Item to Wiki R2.0.0 -5-Enhancement JG200000449 GUI: show actual time in main menu R2.0.0 -5-Enhancement JG200000439 GUI: show custom text in Menue to identify box (if you have several boxes) R2.0.0 -5-Enhancement JG200000468 Info: add external Links for getting help R2.0.0 -5-Enhancement JG200000473 Live: Radio-Streaming with VLC (0.8.5) New! R2.0.0 -5-Enhancement JG200000500 Live: Transcode: own dialogue and more settings R2.0.0 -5-Enhancement JG200000464 Live: Mini EPG for actual channel R2.0.0 -5-Enhancement JG200000484 Live: dont show bouquet if set to hidden R2.0.0 -5-Enhancement JG200000408 Live: deinterlace & http-caching R2.0.0 -5-Enhancement JG200000492 Live: Set Timer from Mini EPG R2.0.0 -5-Enhancement JG200000457 Record: Transcode while recording R2.0.0 -5-Enhancement JG200000443 Record: new option: display off R2.0.0 -5-Enhancement JG200000458 Record: add Profiles for transcoding (iPodVideo, custom...) R2.0.0 -5-Enhancement JG200000474 Record: Radio-Recording & Transcoding (VLC) to mp3, iPod, custom R2.0.0 -5-Enhancement JG200000477 Record: Radio-Recording & Transcoding (mp3, iPod, custom) R2.0.0 -5-Enhancement JG200000456 Settings: Backup & Restore settings R2.0.0 -5-Enhancement JG200000475 Settings: new direct recording Filename template R2.0.0 -5-Enhancement JG200000496 settings: remove support antiservices.xml R2.0.0 -5-Enhancement JG200000479 Settings: New Menu for Live-Settings R2.0.0 -5-Enhancement JG200000487 Settings: WebServer: new ExtrasDocRoot/URL R2.0.0 -5-Enhancement JG200000134 Timer: new: EPG+ R2.0.0 -5-Enhancement JG200000452 Timer: SyncTimer: Switch to TV only from radio-mode R2.0.0 -5-Enhancement JG200000490 Timer: EPG+ add set timer and zapto R2.0.0 -4-Minor JG200000137 Tools: Message to box displays special charachers correct R2.0.0 -5-Enhancement JG200000448 Tools: Wake on Lan fix Javascript Error R2.0.0 -5-Enhancement JG200000470 Tools: Flash image: add Demo mode R2.0.0 -5-Enhancement JG200000469 Tools: Flash image: new dialogs R2.0.0 -5-Enhancement JG200000476 Tools: AutoMount (Warmduscher Interface) R2.0.0 - -3-Average JG200000485 nhttpd: fixed: yvars now in WebserverRequest (multi-threading) nhttpd 2.2.4 -5-Enhancement JG200000463 nhttpd: add EPG data in XML format nhttpd 2.2.4 -5-Enhancement JG200000486 nhttpd: add caching for blocks nhttpd 2.2.4 -5-Enhancement JG200000488 nhttpd: Set Timer, zapto,epg: Channel_name with multiple values .. nhttpd 2.2.4 -5-Enhancement JG200000491 nhttpd: new: XML-Format for bouquets nhttpd 2.2.4 -5-Enhancement JG200000495 nhttpd: new: zapto?getallsubchannels nhttpd 2.2.4 - -5-Enhancement JG200000399 Boxcontrol: view box record-status .. R1.5.0 -3-Average JG200000424 Bouquetedit: fixed probs with Firefox 1.5 editing problems R1.5.0 -5-Enhancement JG200000414 GUI: Links to Wiki R1.5.0 -3-Average JG200000420 Live: fixed Stream-URL problems with yadd & Firefox R1.5.0 -5-Enhancement JG200000432 Live: Radio works with yadds R1.5.0 -5-Enhancement JG200000351 LiveView: Build Stream-URL with ClientAddr (for NAT, Remapping) R1.5.0 -4-Minor JG200000433 Settings: WOL fixed Javascript Errors R1.5.0 -5-Enhancement JG200000394 Settings: add: Neutrino direct recording settings ... R1.5.0 -5-Enhancement JG200000417 Settings: WebServer: add HostedDocumentRoot R1.5.0 -5-Enhancement JG200000418 Settings: WebServer: add NoAuthClient R1.5.0 -5-Enhancement JG200000373 Settings: yWeb speed up using caching R1.5.0 -5-Enhancement JG200000434 Settings: WOL Link to yWeb-Settings R1.5.0 -5-Enhancement JG200000435 Settings: About: Links to Wiki R1.5.0 -5-Enhancement JG200000425 Timer: SyncTimer: added start and stop deplay from recording settings R1.5.0 -5-Enhancement JG200000405 Timer: Sync Timer: add rec_dir R1.5.0 -5-Enhancement JG200000231 Timer: tvinfo.de download & TimerSync R1.5.0 -5-Enhancement JG200000398 Timer: new timer default now: record R1.5.0 -4-Minor JG200000410 Tools: Sagem RC is displayed in primary menu R1.5.0 -5-Enhancement JG200000415 Tools: new: Check Installation R1.5.0 -5-Enhancement JG200000348 Tools: Info: use echo -e to advoid escaped newline output R1.5.0 - -5-Enhancement JG200000438 nhttpd: add Timer: rec_dir from neutrino.conf as default nhttpd 2.2.3 -5-Enhancement JG200000423 nhttpd: fixed lost Data in POST-Method (Mozilla/Firefox) nhttpd 2.2.2 -5-Enhancement JG200000422 nhttpd: No Authentication with new NoAuthClient fixed nhttpd 2.2.2 -5-Enhancement JG200000428 nhttpd: ini-set caching: clear config on open nhttpd 2.2.2 - -5-Enhancement JG200000294 nhttpd: Host other Webs (Root defined at HostedDocumentRoot in nhttpd.conf) nhttpd 2.2.1 -5-Enhancement JG200000388 nhttpd: set IP with no authentication (e.g. for JtG etc) nhttpd 2.2.1 -5-Enhancement JG200000416 nhttdp: zapto mit channel_name nhttpd 2.2.1 - -3-Average JG200000369 Live: fixed problems switching Radio-Channels R1.4.3 -4-Minor JG200000355 nhttpd: change port now used in Scripts R1.4.3 -4-Minor JG200000365 Settings: fixed: upload cam-alpha.bin now named correctly R1.4.3 -5-Enhancement JG200000366 settings: add port to WebServer settings R1.4.3 -5-Enhancement JG200000367 gui: add remote control for Sagem R1.4.3 -5-Enhancement JG200000389 tools: restart sectionsd R1.4.3 -5-Enhancement JG200000391 flash: fixed reboot after flashing R1.4.3 - -4-Minor JG200000359 tools: fix reboot after flash R1.4.2 -5-Enhancement JG200000332 Live: record: filepath settings at settings->yWeb R1.4.2 -5-Enhancement JG200000337 bouquets: start bouquetlist at actual bouquet R1.4.2 -5-Enhancement JG200000360 bouquet: text in black again R1.4.2 - -5-Enhancement JG200000127 flash download: button for delete download-image in /tmp R1.4.1 -5-Enhancement JG200000339 nhttpd: new: file-action:;; R1.4.1 -5-Enhancement JG200000340 new: Neutrino-Settings: pictureviewer R1.4.1 -5-Enhancement JG200000341 new: Neutrino-Settings: Audioplayer R1.4.1 -5-Enhancement JG200000342 new: Neutrino-Settings: Movieplayer R1.4.1 -5-Enhancement JG200000343 new: Neutrino-Settings: Diverse R1.4.1 -5-Enhancement JG200000344 new: Neutrino-Settings: Boot Options R1.4.1 -5-Enhancement JG200000345 new: Neutrino-Settings: Parental R1.4.1 -5-Enhancement JG200000346 new: Neutrino-Settings: Recording R1.4.1 -5-Enhancement JG200000347 Timer: add recordingDir R1.4.1 - -3-Average JG200000156 Flash: Error in mtd list if length!=5 R1.4.0 -5-Enhancement JG200000326 Flash: New Dialogs R1.4.0 -5-Enhancement JG200000233 Tools: new: Wake on LAN for 3 MACs R1.4.0 -5-Enhancement JG200000246 mount: do mount at mount list R1.4.0 -5-Enhancement JG200000247 mount: new: unmount list R1.4.0 -5-Enhancement JG200000305 infos: /proc/cpuinfo, meminfo, version... R1.4.0 -5-Enhancement JG200000271 nhttpd: ycgi: new: include-block:;; R1.4.0 -5-Enhancement JG200000314 nhttpd: ycgi: new: ini-set:;; R1.4.0 -5-Enhancement JG200000234 nhttpd: ycgi: new: if-file-exists:~~ R1.4.0 -5-Enhancement JG200000315 nhttpd: ycgi: new: if-not-equal R1.4.0 -5-Enhancement JG200000317 nhttpd: ycgi: new: add var-set, var-get for local ycgi varables R1.4.0 -5-Enhancement JG200000318 Live: Experimental: Change VLC audio channel R1.4.0 -5-Enhancement JG200000311 Live: record (Expert Mode ActiveX).. R1.4.0 -5-Enhancement JG200000312 Live: record: mux type = ts, ps R1.4.0 -5-Enhancement JG200000319 Live: Expert Mode: Take VLC Snapshot R1.4.0 -5-Enhancement JG200000320 after change Web Password: reload nhttpd.conf R1.4.0 -5-Enhancement JG200000325 General from-dialog updates R1.4.0 -5-Enhancement JG200000327 New: OSD Snapshot with fbshot R1.4.0 -5-Enhancement JG200000316 Management IP for some dialogs required R1.4.0 - -3-Average JG200000308 nhttpd: re-write file upload handling (solved: problems with pre-send data - mozilla engines) R1.3.6 -5-Enhancement JG200000144 Live: add Streaminfo button R1.3.6 -5-Enhancement JG200000145 yInstaller: upload a tar-file and execude included install.sh R1.3.6 -5-Enhancement JG200000287 WebIF: telnet like commandline R1.3.6 -5-Enhancement JG200000292 Live: channel-EPG-Panel autorefresh all 5min R1.3.6 -5-Enhancement JG200000297 Live: epg preview for selected channel R1.3.6 -5-Enhancement JG200000304 nhttpd: new func get_request_data R1.3.6 -5-Enhancement JG200000307 nhttpd: re-write file upload handling (saving memory) R1.3.6 - -4-Minor JG200000266 Settings: WebServer JavaScript-Error for field port R1.3.5 -4-Minor JG200000269 _Y_Library.sh:config_set_value() interpret backslash R1.3.5 -4-Minor JG200000232 Live:Sprache: DropDown ins TV Fenster R1.3.5 -5-Enhancement JG200000141 Live: enable select audio-pid R1.3.5 -5-Enhancement JG200000237 robots.txt in html-root R1.3.5 -5-Enhancement JG200000255 keine hard-links nach httpd-y (z.B. _Y_Globals.sh) R1.3.5 -5-Enhancement JG200000272 Dialog Boot-Logo und LCD-Logo zusammenfassen R1.3.5 -5-Enhancement JG200000277 Tooltips in english R1.3.5 -5-Enhancement JG200000278 Tools->msg beide Dialoge zusammenfassen R1.3.5 -5-Enhancement JG200000280 tools: move Message to Boxcontrol R1.3.5 -5-Enhancement JG200000284 use image am maps for web-based remote control R1.3.5 - -4-Minor JG200000216 nhttp: Upload temporary file moved from /var/tmp to /tmp/upload.tmp R1.3.4 -5-Enhancement JG200000139 Live: EPG-Title in Channel-Dropdown R1.3.4 -5-Enhancement JG200000212 nhttpd: use relative path for includes R1.3.4 -5-Enhancement JG200000217 nhttpd: ycgi: set Working-Dir to template path R1.3.4 -5-Enhancement JG200000227 ycgi: new:func:get_audio_pids_as_dropdown R1.3.4 -5-Enhancement JG200000229 remote RC via Web R1.3.4 - -5-Enhancement JG200000218 ycgi: new cmd: if-empty R1.3.3 -5-Enhancement JG200000219 ycgi: new cmd: if-equal R1.3.3 -5-Enhancement JG200000220 ycgi: new:func:get_bouquts_as_dropdown R1.3.3 -5-Enhancement JG200000221 ycgi: new:func:get_actual_bouquet_numer R1.3.3 -5-Enhancement JG200000222 ycgi: new:func:get_canel_as_dropdown R1.3.3 -5-Enhancement JG200000223 ycgi: new:func:get_actual_channel_id R1.3.3 -5-Enhancement JG200000224 ycgi: new:func:get_mode R1.3.3 -5-Enhancement JG200000225 ycgi: new:func:get_video_pids R1.3.3 -5-Enhancement JG200000226 ycgi: new:func:get_radio_pid R1.3.3 -5-Enhancement JG200000235 ycgi: Neu *.yhtm-Dateien & Reorg der Dateien R1.3.3 - -5-Enhancement JG200000035 Live: Window size configurable R1.3.2 -5-Enhancement JG200000107 Live: new: Double-View R1.3.2 -5-Enhancement JG200000206 nhttpd: Set Working dir for Skripts R1.3.2 -5-Enhancement JG200000207 scripts: relative local include path R1.3.2 -5-Enhancement JG200000209 correct Frame-Destinations VNC, Skins, WebServer R1.3.2 -5-Enhancement JG200000210 Settings: yWeb Configurator (slave box, live resolution) R1.3.2 -5-Enhancement JG200000211 add ucode.bin for up/download R1.3.2 - -5-Enhancement JG200000200 Live: Radio: Player via Dateierweiterung m3u, m4u starten R1.3.1 -3-Average JG200000147 LiveView nur 9 Bouquets im Dropdown. fixed. R1.3.1 -4-Minor JG200000179 dietmarW-Images habe kein /var/tmp also /tmp nutzen R1.3.1 -5-Enhancement JG200000084 Plugins: Settings: Mount-Einstellungen R1.3.1 -5-Enhancement JG200000182 Live: Bouquets & Channel: Dropdown Breite begrenzen R1.3.1 -5-Enhancement JG200000183 Bouquets: epg und settings im yWeb_Layout R1.3.1 -5-Enhancement JG200000184 ycgi: execute=