From f57fc0bb89f7e5f21f32ad0ab4b643e7f5d78e0a Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Thu, 8 Nov 2012 12:24:23 +0100 Subject: [PATCH 01/69] src/neutrino.cpp: -add lockStandbyCall Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/299e20387d96ff8f70905af75cf97c60446841da Author: Jacek Jendrzej Date: 2012-11-08 (Thu, 08 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/neutrino.cpp | 7 +++++++ src/neutrino.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 42919c114..06d015cf3 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -207,6 +207,7 @@ CNeutrinoApp::CNeutrinoApp() RADIOchannelList = NULL; skipShutdownTimer = false; skipSleepTimer = false; + lockStandbyCall = false; current_muted = 0; recordingstatus = 0; g_channel_list_changed = 0; @@ -3079,6 +3080,11 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) //static bool wasshift = false; INFO("%s", bOnOff ? "ON" : "OFF" ); + if(lockStandbyCall) + return; + + lockStandbyCall = true; + if( bOnOff ) { if( mode == mode_scart ) { //g_Controld->setScartMode( 0 ); @@ -3207,6 +3213,7 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) g_volume->AudioMute(current_muted, true); StartSubtitles(); } + lockStandbyCall = false; } void CNeutrinoApp::radioMode( bool rezap) diff --git a/src/neutrino.h b/src/neutrino.h index b129adfe6..c36dd2406 100644 --- a/src/neutrino.h +++ b/src/neutrino.h @@ -119,6 +119,7 @@ private: bool skipShutdownTimer; bool skipSleepTimer; + bool lockStandbyCall; bool pbBlinkChange; int tvsort[LIST_MODE_LAST]; int radiosort[LIST_MODE_LAST]; From 07ac341c28d54e555165ddf1d1dd04dc4b238839 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Thu, 8 Nov 2012 13:35:00 +0100 Subject: [PATCH 02/69] neutrino: -add save epg on stadbyOn/Off option Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/a47c6593dc98faa2c26a14aeaf2961a006f3487e Author: Jacek Jendrzej Date: 2012-11-08 (Thu, 08 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/locale/deutsch.locale | 2 ++ data/locale/english.locale | 2 ++ src/gui/miscsettings_menu.cpp | 4 ++++ src/neutrino.cpp | 5 +++-- src/system/locals.h | 2 ++ src/system/locals_intern.h | 2 ++ src/system/settings.h | 1 + 7 files changed, 16 insertions(+), 2 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 0d1ab625b..817e3c5e0 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -749,6 +749,7 @@ menu.hint_epg_fonts Ändern Sie für die EPG-Details die Schriftgrößen menu.hint_epg_max_events Maximum an Events im Zwischenspeicher. Nach Erreichen der\nGrenze werden EPG-Daten für zukünftige gelöscht menu.hint_epg_old_events EPG im Speicher behalten in Stunden,\nauch wenn es veraltet ist menu.hint_epg_save Speichert die EPG-Daten auf einer Harddisk oder USB-Stick\nund läd es nach einen Neustart +menu.hint_epg_save_standby Speichert die EPG-Daten in Bereitschaft Modus menu.hint_event_textcolor Ändern Sie die Event-Farbe für farbige Event-Optionen in Kanalliste und Infobar menu.hint_eventlist_fonts Ändern Sie in der Event-Liste die Schriftgrößen menu.hint_extended Energiespar-, EPG-Speicher- / Lade-Optionen,\nHDMI-CEC, Startkanal, Zap-Optionen @@ -1100,6 +1101,7 @@ miscsettings.epg_old_events EPG verwerfen nach (Std.) miscsettings.epg_old_events_hint1 Wie lange abgelaufene EPG-Daten aufheben? miscsettings.epg_old_events_hint2 Angabe in Stunden miscsettings.epg_save EPG zwischenspeichern +miscsettings.epg_save_standby EPG speichern in Standby-Modus miscsettings.general Allgemein miscsettings.head Erweitert miscsettings.infobar Infobar diff --git a/data/locale/english.locale b/data/locale/english.locale index 48bad20a2..eb24ddc23 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -749,6 +749,7 @@ menu.hint_epg_fonts Change EPG details window font sizes menu.hint_epg_max_events Maximum events to cache. After reaching limit\nEPG cache will remove future events menu.hint_epg_old_events Hours after event end time to consider\nevent old and remove it from cache menu.hint_epg_save Save cached EPG to harddisk or usb flash\nand load it after boot +menu.hint_epg_save_standby Save EPG on soft standby mode menu.hint_event_textcolor Change event color for colored-event options\nin channel list and infobar menu.hint_eventlist_fonts Change event list font sizes menu.hint_extended Power saving, EPG save/load options\nHDMI-CEC, Start channel, zap options @@ -1100,6 +1101,7 @@ miscsettings.epg_old_events EPG remove after (std.) miscsettings.epg_old_events_hint1 How long will EPG-Data be stored after they timed out? miscsettings.epg_old_events_hint2 Set in hours miscsettings.epg_save Save/Restore epg on reboot +miscsettings.epg_save_standby Save epg on soft standby miscsettings.general General miscsettings.head Extended settings miscsettings.infobar Infobar diff --git a/src/gui/miscsettings_menu.cpp b/src/gui/miscsettings_menu.cpp index af9c630ed..8f0d0acde 100644 --- a/src/gui/miscsettings_menu.cpp +++ b/src/gui/miscsettings_menu.cpp @@ -307,6 +307,10 @@ void CMiscMenue::showMiscSettingsMenuEpg(CMenuWidget *ms_epg) mc->setHint("", LOCALE_MENU_HINT_EPG_SAVE); ms_epg->addItem(mc); + CMenuOptionChooser * mc1 = new CMenuOptionChooser(LOCALE_MISCSETTINGS_EPG_SAVE_STANDBY, &g_settings.epg_save_standby, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc1->setHint("", LOCALE_MENU_HINT_EPG_SAVE_STANDBY); + ms_epg->addItem(mc1); + CStringInput * miscSettings_epg_cache = new CStringInput(LOCALE_MISCSETTINGS_EPG_CACHE, &g_settings.epg_cache, 2,LOCALE_MISCSETTINGS_EPG_CACHE_HINT1, LOCALE_MISCSETTINGS_EPG_CACHE_HINT2 , "0123456789 ", sectionsdConfigNotifier); CMenuForwarder * mf = new CMenuDForwarder(LOCALE_MISCSETTINGS_EPG_CACHE, true, g_settings.epg_cache, miscSettings_epg_cache); mf->setHint("", LOCALE_MENU_HINT_EPG_CACHE); diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 06d015cf3..edbdde21e 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -424,7 +424,7 @@ int CNeutrinoApp::loadSetup(const char * fname) snprintf(g_settings.ifname, sizeof(g_settings.ifname), "%s", configfile.getString("ifname", "eth0").c_str());; g_settings.epg_save = configfile.getBool("epg_save", false); - + g_settings.epg_save_standby = configfile.getBool("epg_save_standby", true); //widget settings g_settings.widget_fade = false; g_settings.widget_fade = configfile.getBool("widget_fade" , false ); @@ -864,6 +864,7 @@ void CNeutrinoApp::saveSetup(const char * fname) configfile.setString("timezone", g_settings.timezone); // epg configfile.setBool("epg_save", g_settings.epg_save); + configfile.setBool("epg_save_standby", g_settings.epg_save_standby); configfile.setString("epg_cache_time" ,g_settings.epg_cache ); configfile.setString("epg_extendedcache_time" ,g_settings.epg_extendedcache); configfile.setString("epg_old_events" ,g_settings.epg_old_events ); @@ -3120,7 +3121,7 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) if(!CRecordManager::getInstance()->RecordingStatus() ) { //only save epg when not recording - if(g_settings.epg_save && !fromDeepStandby) { + if(g_settings.epg_save && !fromDeepStandby && g_settings.epg_save_standby) { saveEpg(false);//false CVFD::MODE_STANDBY } } diff --git a/src/system/locals.h b/src/system/locals.h index 73aeb3603..6808a23f9 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -776,6 +776,7 @@ typedef enum LOCALE_MENU_HINT_EPG_MAX_EVENTS, LOCALE_MENU_HINT_EPG_OLD_EVENTS, LOCALE_MENU_HINT_EPG_SAVE, + LOCALE_MENU_HINT_EPG_SAVE_STANDBY, LOCALE_MENU_HINT_EVENT_TEXTCOLOR, LOCALE_MENU_HINT_EVENTLIST_FONTS, LOCALE_MENU_HINT_EXTENDED, @@ -1127,6 +1128,7 @@ typedef enum LOCALE_MISCSETTINGS_EPG_OLD_EVENTS_HINT1, LOCALE_MISCSETTINGS_EPG_OLD_EVENTS_HINT2, LOCALE_MISCSETTINGS_EPG_SAVE, + LOCALE_MISCSETTINGS_EPG_SAVE_STANDBY, LOCALE_MISCSETTINGS_GENERAL, LOCALE_MISCSETTINGS_HEAD, LOCALE_MISCSETTINGS_INFOBAR, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index ede893246..47161f20e 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -776,6 +776,7 @@ const char * locale_real_names[] = "menu.hint_epg_max_events", "menu.hint_epg_old_events", "menu.hint_epg_save", + "menu.hint_epg_save_standby", "menu.hint_event_textcolor", "menu.hint_eventlist_fonts", "menu.hint_extended", @@ -1127,6 +1128,7 @@ const char * locale_real_names[] = "miscsettings.epg_old_events_hint1", "miscsettings.epg_old_events_hint2", "miscsettings.epg_save", + "miscsettings.epg_save_standby", "miscsettings.general", "miscsettings.head", "miscsettings.infobar", diff --git a/src/system/settings.h b/src/system/settings.h index cbb7b0c25..2ca0ddd42 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -123,6 +123,7 @@ struct SNeutrinoSettings // EPG int epg_save; + int epg_save_standby; std::string epg_cache; std::string epg_old_events; std::string epg_max_events; From f1a62f638f16ba0d53efb77d3436292f9fb80af9 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Thu, 8 Nov 2012 17:24:10 +0100 Subject: [PATCH 03/69] src/gui/miscsettings_menu.cpp: -add COnOffNotifier for EPG menu Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/0acc943a4f7f564bf4a9007e46b166d450946f67 Author: Jacek Jendrzej Date: 2012-11-08 (Thu, 08 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/miscsettings_menu.cpp | 48 ++++++++++++++++++++++------------- src/gui/miscsettings_menu.h | 2 +- 2 files changed, 31 insertions(+), 19 deletions(-) diff --git a/src/gui/miscsettings_menu.cpp b/src/gui/miscsettings_menu.cpp index 8f0d0acde..c1bd9c746 100644 --- a/src/gui/miscsettings_menu.cpp +++ b/src/gui/miscsettings_menu.cpp @@ -229,6 +229,7 @@ int CMiscMenue::showMiscSettingsMenu() delete sectionsdConfigNotifier; if(cs_get_revision() > 7) delete miscNotifier; + delete miscEpgNotifier; return res; } @@ -303,37 +304,48 @@ void CMiscMenue::showMiscSettingsMenuEpg(CMenuWidget *ms_epg) { ms_epg->addIntroItems(LOCALE_MISCSETTINGS_EPG_HEAD); - CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_EPG_SAVE, &g_settings.epg_save, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); - mc->setHint("", LOCALE_MENU_HINT_EPG_SAVE); - ms_epg->addItem(mc); - CMenuOptionChooser * mc1 = new CMenuOptionChooser(LOCALE_MISCSETTINGS_EPG_SAVE_STANDBY, &g_settings.epg_save_standby, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + CMenuOptionChooser * mc1 = new CMenuOptionChooser(LOCALE_MISCSETTINGS_EPG_SAVE_STANDBY, &g_settings.epg_save_standby, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, g_settings.epg_save); mc1->setHint("", LOCALE_MENU_HINT_EPG_SAVE_STANDBY); - ms_epg->addItem(mc1); CStringInput * miscSettings_epg_cache = new CStringInput(LOCALE_MISCSETTINGS_EPG_CACHE, &g_settings.epg_cache, 2,LOCALE_MISCSETTINGS_EPG_CACHE_HINT1, LOCALE_MISCSETTINGS_EPG_CACHE_HINT2 , "0123456789 ", sectionsdConfigNotifier); - CMenuForwarder * mf = new CMenuDForwarder(LOCALE_MISCSETTINGS_EPG_CACHE, true, g_settings.epg_cache, miscSettings_epg_cache); + CMenuForwarder * mf = new CMenuDForwarder(LOCALE_MISCSETTINGS_EPG_CACHE, g_settings.epg_save, g_settings.epg_cache, miscSettings_epg_cache); mf->setHint("", LOCALE_MENU_HINT_EPG_CACHE); - ms_epg->addItem(mf); CStringInput * miscSettings_epg_cache_e = new CStringInput(LOCALE_MISCSETTINGS_EPG_EXTENDEDCACHE, &g_settings.epg_extendedcache, 3,LOCALE_MISCSETTINGS_EPG_EXTENDEDCACHE_HINT1, LOCALE_MISCSETTINGS_EPG_EXTENDEDCACHE_HINT2 , "0123456789 ", sectionsdConfigNotifier); - mf = new CMenuDForwarder(LOCALE_MISCSETTINGS_EPG_EXTENDEDCACHE, true, g_settings.epg_extendedcache, miscSettings_epg_cache_e); - mf->setHint("", LOCALE_MENU_HINT_EPG_EXTENDEDCACHE); - ms_epg->addItem(mf); + CMenuForwarder * mf1 = new CMenuDForwarder(LOCALE_MISCSETTINGS_EPG_EXTENDEDCACHE, g_settings.epg_save, g_settings.epg_extendedcache, miscSettings_epg_cache_e); + mf1->setHint("", LOCALE_MENU_HINT_EPG_EXTENDEDCACHE); CStringInput * miscSettings_epg_old_events = new CStringInput(LOCALE_MISCSETTINGS_EPG_OLD_EVENTS, &g_settings.epg_old_events, 3,LOCALE_MISCSETTINGS_EPG_OLD_EVENTS_HINT1, LOCALE_MISCSETTINGS_EPG_OLD_EVENTS_HINT2 , "0123456789 ", sectionsdConfigNotifier); - mf = new CMenuDForwarder(LOCALE_MISCSETTINGS_EPG_OLD_EVENTS, true, g_settings.epg_old_events, miscSettings_epg_old_events); - mf->setHint("", LOCALE_MENU_HINT_EPG_OLD_EVENTS); - ms_epg->addItem(mf); + CMenuForwarder * mf2 = new CMenuDForwarder(LOCALE_MISCSETTINGS_EPG_OLD_EVENTS, g_settings.epg_save, g_settings.epg_old_events, miscSettings_epg_old_events); + mf2->setHint("", LOCALE_MENU_HINT_EPG_OLD_EVENTS); CStringInput * miscSettings_epg_max_events = new CStringInput(LOCALE_MISCSETTINGS_EPG_MAX_EVENTS, &g_settings.epg_max_events, 6,LOCALE_MISCSETTINGS_EPG_MAX_EVENTS_HINT1, LOCALE_MISCSETTINGS_EPG_MAX_EVENTS_HINT2 , "0123456789 ", sectionsdConfigNotifier); - mf = new CMenuDForwarder(LOCALE_MISCSETTINGS_EPG_MAX_EVENTS, true, g_settings.epg_max_events, miscSettings_epg_max_events); - mf->setHint("", LOCALE_MENU_HINT_EPG_MAX_EVENTS); - ms_epg->addItem(mf); + CMenuForwarder * mf3 = new CMenuDForwarder(LOCALE_MISCSETTINGS_EPG_MAX_EVENTS, g_settings.epg_save, g_settings.epg_max_events, miscSettings_epg_max_events); + mf3->setHint("", LOCALE_MENU_HINT_EPG_MAX_EVENTS); - mf = new CMenuForwarder(LOCALE_MISCSETTINGS_EPG_DIR, true, g_settings.epg_dir, this, "epgdir"); - mf->setHint("", LOCALE_MENU_HINT_EPG_DIR); + CMenuForwarder * mf4 = new CMenuForwarder(LOCALE_MISCSETTINGS_EPG_DIR, g_settings.epg_save, g_settings.epg_dir, this, "epgdir"); + mf4->setHint("", LOCALE_MENU_HINT_EPG_DIR); + + miscEpgNotifier = new COnOffNotifier(); + miscEpgNotifier->addItem(mc1); + miscEpgNotifier->addItem(mf); + miscEpgNotifier->addItem(mf1); + miscEpgNotifier->addItem(mf2); + miscEpgNotifier->addItem(mf3); + miscEpgNotifier->addItem(mf4); + + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_EPG_SAVE, &g_settings.epg_save, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true,miscEpgNotifier); + mc->setHint("", LOCALE_MENU_HINT_EPG_SAVE); + + ms_epg->addItem(mc); + ms_epg->addItem(mc1); ms_epg->addItem(mf); + ms_epg->addItem(mf1); + ms_epg->addItem(mf2); + ms_epg->addItem(mf3); + ms_epg->addItem(mf4); + } //filebrowser settings diff --git a/src/gui/miscsettings_menu.h b/src/gui/miscsettings_menu.h index b05d0c68a..d9c0269fb 100644 --- a/src/gui/miscsettings_menu.h +++ b/src/gui/miscsettings_menu.h @@ -41,7 +41,7 @@ class CMiscMenue : public CMenuTarget CFanControlNotifier *fanNotifier; CSectionsdConfigNotifier* sectionsdConfigNotifier; COnOffNotifier* miscNotifier; - + COnOffNotifier* miscEpgNotifier; int width; int showMiscSettingsMenu(); From 1e990760e32b368cdeb10663ad5fe11b5c87ea2f Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Thu, 8 Nov 2012 20:08:17 +0100 Subject: [PATCH 04/69] src/system/configure_network.cpp: use old startNetwork/stop Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/0cce4b9c80e5348967240d3ccf4303f8b4442c78 Author: Jacek Jendrzej Date: 2012-11-08 (Thu, 08 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/system/configure_network.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/system/configure_network.cpp b/src/system/configure_network.cpp index 6eaa20d54..ff927a375 100644 --- a/src/system/configure_network.cpp +++ b/src/system/configure_network.cpp @@ -218,11 +218,11 @@ void CNetworkConfig::commitConfig(void) void CNetworkConfig::startNetwork(void) { - const char _ifup[] = "/sbin/ifup"; + std::string cmd = "/sbin/ifup " + ifname; #ifdef DEBUG - printf("CNetworkConfig::startNetwork: %s %s\n",_ifup, ifname.c_str()); + printf("CNetworkConfig::startNetwork: %s\n", cmd.c_str()); #endif - my_system(_ifup, ifname.c_str()); + my_system("/bin/sh", "-c", cmd.c_str()); if (!inet_static) { init_vars(); @@ -232,11 +232,11 @@ void CNetworkConfig::startNetwork(void) void CNetworkConfig::stopNetwork(void) { - const char _ifdown[] = "/sbin/ifdown"; + std::string cmd = "/sbin/ifdown " + ifname; #ifdef DEBUG - printf("CNetworkConfig::stopNetwork: %s %s\n",_ifdown, ifname.c_str()); + printf("CNetworkConfig::stopNetwork: %s\n", cmd.c_str()); #endif - my_system(_ifdown, ifname.c_str()); + my_system("/bin/sh", "-c", cmd.c_str()); } From 0b9bcf1bad145a7a66cb58197bb1c46ae4316190 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Wed, 7 Nov 2012 22:13:14 +0100 Subject: [PATCH 05/69] CTextBox: remove dub allocation of m_pcFontText Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/08e66deb7519cc6e00e3041f740df40ac6bfdd7d Author: Thilo Graf Date: 2012-11-07 (Wed, 07 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/widget/textbox.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gui/widget/textbox.cpp b/src/gui/widget/textbox.cpp index fb19beddb..815cdc063 100644 --- a/src/gui/widget/textbox.cpp +++ b/src/gui/widget/textbox.cpp @@ -150,7 +150,6 @@ void CTextBox::initVar(void) m_cText = ""; m_nMode = SCROLL; - m_pcFontText = NULL; m_pcFontText = g_Font[SNeutrinoSettings::FONT_TYPE_EPG_INFO1]; m_nFontTextHeight = m_pcFontText->getHeight(); m_nMaxTextWidth = 0; From 02ddbf031c472e4398f1833aa0ae4b518d785dda Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Thu, 8 Nov 2012 17:12:58 +0100 Subject: [PATCH 06/69] CTextBox: Fix displayed text width in function setText() Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/11b2242d2e58dea90d88c05bed668d5973502ec5 Author: Michael Liebmann Date: 2012-11-08 (Thu, 08 Nov 2012) Origin message was: ------------------ * CTextBox: Fix displayed text width in function setText() ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/widget/textbox.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/gui/widget/textbox.cpp b/src/gui/widget/textbox.cpp index 815cdc063..47b5d0c4c 100644 --- a/src/gui/widget/textbox.cpp +++ b/src/gui/widget/textbox.cpp @@ -332,8 +332,8 @@ void CTextBox::refreshTextLineArray(void) lineBreakWidth = std::max(m_nMaxWidth, m_cFrameTextRel.iWidth - 2*text_border_width); } -// if(m_nMaxWidth) -// lineBreakWidth = m_nMaxWidth; + if(m_nMaxTextWidth) + lineBreakWidth = m_nMaxTextWidth; //TRACE("[CTextBox] line %d: lineBreakWidth %d\n", __LINE__, lineBreakWidth); @@ -595,8 +595,7 @@ bool CTextBox::setText(const std::string* newText, int max_width) { //TRACE("[CTextBox]->SetText \r\n"); bool result = false; - if (max_width>0) - m_nMaxTextWidth = max_width; + m_nMaxTextWidth = max_width; //printf("setText: _max_width %d max_width %d\n", _max_width, max_width); if (newText != NULL) From 39d3ded5204b5dfa54c263d0bcd41fe607388d80 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Fri, 9 Nov 2012 13:45:57 +0100 Subject: [PATCH 07/69] src/gui/zapit_setup.cpp: use COnOffNotifier Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/8a89f09e6408e542d125f19ca5cfa428e571e0e3 Author: Jacek Jendrzej Date: 2012-11-09 (Fri, 09 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/zapit_setup.cpp | 34 +++++++++++++--------------------- src/gui/zapit_setup.h | 4 +--- 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/src/gui/zapit_setup.cpp b/src/gui/zapit_setup.cpp index 6a68b0704..d196e7be0 100644 --- a/src/gui/zapit_setup.cpp +++ b/src/gui/zapit_setup.cpp @@ -39,8 +39,6 @@ CZapitSetup::CZapitSetup() { - zapit1 = NULL; - zapit2 = NULL; width = w_max (40, 10); //% } @@ -67,38 +65,32 @@ void CZapitSetup::showMenu() //menue init CMenuWidget *zapit = new CMenuWidget(LOCALE_MAINMENU_SETTINGS, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_ZAPIT); zapit->addIntroItems(LOCALE_ZAPITSETUP_INFO); - + COnOffNotifier* miscZapitNotifier = new COnOffNotifier(0); //zapit - CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_ZAPITSETUP_LAST_USE, &g_settings.uselastchannel, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_ZAPITSETUP_LAST_USE, &g_settings.uselastchannel, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, miscZapitNotifier, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); mc->setHint("", LOCALE_MENU_HINT_LAST_USE); - zapit->addItem(mc); + CSelectChannelWidget select; - zapit->addItem(GenericMenuSeparatorLine); - - zapit1 = new CMenuForwarder(LOCALE_ZAPITSETUP_LAST_TV , !g_settings.uselastchannel, g_settings.StartChannelTV, &select, "tv", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN ); + CMenuForwarder *zapit1 = new CMenuForwarder(LOCALE_ZAPITSETUP_LAST_TV , g_settings.uselastchannel, g_settings.StartChannelTV, &select, "tv", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN ); zapit1->setHint("", LOCALE_MENU_HINT_LAST_TV); - zapit->addItem(zapit1); - zapit2 = new CMenuForwarder(LOCALE_ZAPITSETUP_LAST_RADIO , !g_settings.uselastchannel, g_settings.StartChannelRadio, &select, "radio", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW ); + CMenuForwarder *zapit2 = new CMenuForwarder(LOCALE_ZAPITSETUP_LAST_RADIO , g_settings.uselastchannel, g_settings.StartChannelRadio, &select, "radio", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW ); zapit2->setHint("", LOCALE_MENU_HINT_LAST_RADIO); + + miscZapitNotifier->addItem(zapit1); + miscZapitNotifier->addItem(zapit2); + + zapit->addItem(mc); + zapit->addItem(GenericMenuSeparatorLine); + zapit->addItem(zapit1); zapit->addItem(zapit2); zapit->exec(NULL, ""); + delete miscZapitNotifier; delete zapit; } -bool CZapitSetup::changeNotify(const neutrino_locale_t OptionName, void *) -{ - if (ARE_LOCALES_EQUAL(OptionName, LOCALE_ZAPITSETUP_LAST_USE)) - { - zapit1->setActive(!g_settings.uselastchannel); - zapit2->setActive(!g_settings.uselastchannel); - } - - return false; -} - //select menu CSelectChannelWidget::CSelectChannelWidget() { diff --git a/src/gui/zapit_setup.h b/src/gui/zapit_setup.h index 8e8c7f3db..95636611e 100644 --- a/src/gui/zapit_setup.h +++ b/src/gui/zapit_setup.h @@ -31,10 +31,9 @@ #include #include -class CZapitSetup : public CMenuTarget, CChangeObserver +class CZapitSetup : public CMenuTarget { private: - CMenuForwarder *zapit1, *zapit2; int width; @@ -44,7 +43,6 @@ public: CZapitSetup(); ~CZapitSetup(); int exec(CMenuTarget* parent, const std::string & actionKey); - virtual bool changeNotify(const neutrino_locale_t , void *); }; class CSelectChannelWidget : public CMenuWidget From c8ecddea7ac18e4f8fd39f8a6a0487b486a1e260 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Fri, 9 Nov 2012 14:50:55 +0100 Subject: [PATCH 08/69] src/neutrino.cpp:-add ask MESSAGEBOX for INACTIVITY SLEEPTIMER Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/282560875b5b5525d8aac9c31c33e29379bdedf5 Author: Jacek Jendrzej Date: 2012-11-09 (Fri, 09 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/neutrino.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index c740fa2e5..760a5c07e 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2658,10 +2658,21 @@ _repeat: return messages_return::handled; } else if( msg == NeutrinoMessages::SLEEPTIMER) { - if(skipSleepTimer) { - printf("NeutrinoMessages::SLEEPTIMER: skiping\n"); - skipSleepTimer = false; - return messages_return::handled; + if(data) {//INACTIVITY SLEEPTIMER + skipShutdownTimer = + (ShowLocalizedMessage(LOCALE_MESSAGEBOX_INFO, LOCALE_SHUTDOWNTIMER_ANNOUNCE, + CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, true) == CMessageBox::mbrYes);//FIXME + if(skipShutdownTimer) { + printf("NeutrinoMessages::INACTIVITY SLEEPTIMER: skiping\n"); + skipShutdownTimer = false; + return messages_return::handled; + } + }else{ //MAIN-MENU SLEEPTIMER + if(skipSleepTimer) { + printf("NeutrinoMessages::SLEEPTIMER: skiping\n"); + skipSleepTimer = false; + return messages_return::handled; + } } if(g_settings.shutdown_real) ExitRun(true, (cs_get_revision() > 7)); From 548de021933b21157f1fe7afc28d98fe65b1a46f Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Fri, 9 Nov 2012 15:05:34 +0100 Subject: [PATCH 09/69] src/neutrino.cpp:use LOCALE_SLEEPTIMERBOX_ANNOUNCE , supplement to c8ecddea7ac18e4f8fd39f8a6a0487b486a1e260 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/b56c86395309d984081f3916195947846dd248f0 Author: Jacek Jendrzej Date: 2012-11-09 (Fri, 09 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/neutrino.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 760a5c07e..72e87564d 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2660,7 +2660,7 @@ _repeat: else if( msg == NeutrinoMessages::SLEEPTIMER) { if(data) {//INACTIVITY SLEEPTIMER skipShutdownTimer = - (ShowLocalizedMessage(LOCALE_MESSAGEBOX_INFO, LOCALE_SHUTDOWNTIMER_ANNOUNCE, + (ShowLocalizedMessage(LOCALE_MESSAGEBOX_INFO, LOCALE_SLEEPTIMERBOX_ANNOUNCE, CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, true) == CMessageBox::mbrYes);//FIXME if(skipShutdownTimer) { printf("NeutrinoMessages::INACTIVITY SLEEPTIMER: skiping\n"); From e591a56cfd8d9981c32de8f13667632548ca3e7b Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Fri, 9 Nov 2012 15:31:26 +0100 Subject: [PATCH 10/69] src/neutrino.cpp: see the appropriate message depending on settings Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/fdb1fa6352e2b1841cbdd31a09e8000f14de889e Author: Jacek Jendrzej Date: 2012-11-09 (Fri, 09 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/neutrino.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 72e87564d..ee7849628 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2654,13 +2654,13 @@ _repeat: } else if( msg == NeutrinoMessages::ANNOUNCE_SLEEPTIMER) { if( mode != mode_scart && mode != mode_standby) - skipSleepTimer = (ShowLocalizedMessage(LOCALE_MESSAGEBOX_INFO, LOCALE_SLEEPTIMERBOX_ANNOUNCE,CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, true) == CMessageBox::mbrYes); + skipSleepTimer = (ShowLocalizedMessage(LOCALE_MESSAGEBOX_INFO, g_settings.shutdown_real ? LOCALE_SHUTDOWNTIMER_ANNOUNCE:LOCALE_SLEEPTIMERBOX_ANNOUNCE,CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, true) == CMessageBox::mbrYes); return messages_return::handled; } else if( msg == NeutrinoMessages::SLEEPTIMER) { if(data) {//INACTIVITY SLEEPTIMER skipShutdownTimer = - (ShowLocalizedMessage(LOCALE_MESSAGEBOX_INFO, LOCALE_SLEEPTIMERBOX_ANNOUNCE, + (ShowLocalizedMessage(LOCALE_MESSAGEBOX_INFO, g_settings.shutdown_real ? LOCALE_SHUTDOWNTIMER_ANNOUNCE:LOCALE_SLEEPTIMERBOX_ANNOUNCE, CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, true) == CMessageBox::mbrYes);//FIXME if(skipShutdownTimer) { printf("NeutrinoMessages::INACTIVITY SLEEPTIMER: skiping\n"); From 0af735aa17d873ec7ab6541ab417428505bfea09 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Fri, 9 Nov 2012 17:32:15 +0100 Subject: [PATCH 11/69] src/gui/channellist.cpp:-add sort by channel number Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/c47aebdb642c93fa01f8be8d8e65ea4aa1913f98 Author: Jacek Jendrzej Date: 2012-11-09 (Fri, 09 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/locale/deutsch.locale | 1 + data/locale/english.locale | 1 + src/gui/channellist.cpp | 22 ++++++++++++++++------ src/gui/channellist.h | 10 ++++++++++ src/neutrino.cpp | 10 ++++++---- src/system/locals.h | 1 + src/system/locals_intern.h | 1 + 7 files changed, 36 insertions(+), 10 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 817e3c5e0..9084627c8 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -211,6 +211,7 @@ channellist.foot_freq Tuning-Parameter channellist.foot_next Nachfolgesendung channellist.foot_off aus channellist.foot_sort_alpha Sortiert[alpha] +channellist.foot_sort_chnum Sortiert[nummer] channellist.foot_sort_freq Sortiert[freq] channellist.foot_sort_sat Sortiert[sat] channellist.head Alle Kanäle diff --git a/data/locale/english.locale b/data/locale/english.locale index eb24ddc23..cb537a192 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -211,6 +211,7 @@ channellist.foot_freq Sat/Freq Info channellist.foot_next next Event channellist.foot_off off channellist.foot_sort_alpha sorted[alpha] +channellist.foot_sort_chnum Sortiert[number] channellist.foot_sort_freq sorted[freq] channellist.foot_sort_sat sorted[sat] channellist.head All Services diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 92c7f50d3..eaf0a8bfb 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -223,6 +223,11 @@ void CChannelList::SortTP(void) sort(chanlist.begin(), chanlist.end(), CmpChannelByFreq()); } +void CChannelList::SortChNumber(void) +{ + sort(chanlist.begin(), chanlist.end(), CmpChannelByChNum()); +} + CZapitChannel* CChannelList::getChannel(int number) { for (uint32_t i=0; i< chanlist.size(); i++) { @@ -814,8 +819,8 @@ int CChannelList::show() int mode = CNeutrinoApp::getInstance()->GetChannelMode(); if(mode != LIST_MODE_FAV) { g_settings.channellist_sort_mode++; - if(g_settings.channellist_sort_mode > 2) - g_settings.channellist_sort_mode = 0; + if(g_settings.channellist_sort_mode > SORT_MAX-1) + g_settings.channellist_sort_mode = SORT_ALPHA; CNeutrinoApp::getInstance()->SetChannelMode(mode); paintHead(); // update button bar paint(); @@ -1631,7 +1636,7 @@ void CChannelList::paintButtonBar(bool is_current) struct button_label Button[num_buttons]; const neutrino_locale_t button_ids[] = {LOCALE_INFOVIEWER_NOW,LOCALE_INFOVIEWER_NEXT,LOCALE_MAINMENU_RECORDING,LOCALE_MAINMENU_RECORDING_STOP,NONEXISTANT_LOCALE, - LOCALE_CHANNELLIST_FOOT_SORT_ALPHA,LOCALE_CHANNELLIST_FOOT_SORT_FREQ,LOCALE_CHANNELLIST_FOOT_SORT_SAT}; + LOCALE_CHANNELLIST_FOOT_SORT_ALPHA,LOCALE_CHANNELLIST_FOOT_SORT_FREQ,LOCALE_CHANNELLIST_FOOT_SORT_SAT,LOCALE_CHANNELLIST_FOOT_SORT_CHNUM}; const std::vector buttonID_rest (button_ids, button_ids + sizeof(button_ids) / sizeof(neutrino_locale_t) ); for (int i = 0;iBouquets.size()); for (uint32_t i = 0; i < bouquetList->Bouquets.size(); i++) { - if(g_settings.channellist_sort_mode == 0) + if(g_settings.channellist_sort_mode == CChannelList::SORT_ALPHA) bouquetList->Bouquets[i]->channelList->SortAlpha(); - if(g_settings.channellist_sort_mode == 1) + if(g_settings.channellist_sort_mode == CChannelList::SORT_TP) bouquetList->Bouquets[i]->channelList->SortTP(); - if(g_settings.channellist_sort_mode == 2) + if(g_settings.channellist_sort_mode == CChannelList::SORT_SAT) bouquetList->Bouquets[i]->channelList->SortSat(); + if(g_settings.channellist_sort_mode == CChannelList::SORT_CH_NUMBER) + bouquetList->Bouquets[i]->channelList->SortChNumber(); } channelList->adjustToChannelID(channelList->getActiveChannel_ChannelID()); } diff --git a/src/system/locals.h b/src/system/locals.h index 6808a23f9..2a35ef6b2 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -238,6 +238,7 @@ typedef enum LOCALE_CHANNELLIST_FOOT_NEXT, LOCALE_CHANNELLIST_FOOT_OFF, LOCALE_CHANNELLIST_FOOT_SORT_ALPHA, + LOCALE_CHANNELLIST_FOOT_SORT_CHNUM, LOCALE_CHANNELLIST_FOOT_SORT_FREQ, LOCALE_CHANNELLIST_FOOT_SORT_SAT, LOCALE_CHANNELLIST_HEAD, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 47161f20e..905652f7f 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -238,6 +238,7 @@ const char * locale_real_names[] = "channellist.foot_next", "channellist.foot_off", "channellist.foot_sort_alpha", + "channellist.foot_sort_chnum", "channellist.foot_sort_freq", "channellist.foot_sort_sat", "channellist.head", From accfa436938c09406e7a103fc08c1275ca201074 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Fri, 9 Nov 2012 18:00:01 +0100 Subject: [PATCH 12/69] english.locale: fix german word Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/9a3d2c4cba9c68bd38f3b7f40b703263e1445074 Author: vanhofen Date: 2012-11-09 (Fri, 09 Nov 2012) Origin message was: ------------------ - english.locale: fix german word ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- 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 cb537a192..23118da8d 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -211,7 +211,7 @@ channellist.foot_freq Sat/Freq Info channellist.foot_next next Event channellist.foot_off off channellist.foot_sort_alpha sorted[alpha] -channellist.foot_sort_chnum Sortiert[number] +channellist.foot_sort_chnum sorted[number] channellist.foot_sort_freq sorted[freq] channellist.foot_sort_sat sorted[sat] channellist.head All Services From a3aa2545357eab800d9ac5670d0f71c6731718a9 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Sat, 10 Nov 2012 17:20:29 +0100 Subject: [PATCH 13/69] src/gui/zapit_setup.cpp: fix on/off logic Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/56122fb9a09e180dfa4a6b988879f70496ad4240 Author: Jacek Jendrzej Date: 2012-11-10 (Sat, 10 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/zapit_setup.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/zapit_setup.cpp b/src/gui/zapit_setup.cpp index d196e7be0..245af0c4e 100644 --- a/src/gui/zapit_setup.cpp +++ b/src/gui/zapit_setup.cpp @@ -65,17 +65,17 @@ void CZapitSetup::showMenu() //menue init CMenuWidget *zapit = new CMenuWidget(LOCALE_MAINMENU_SETTINGS, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_ZAPIT); zapit->addIntroItems(LOCALE_ZAPITSETUP_INFO); - COnOffNotifier* miscZapitNotifier = new COnOffNotifier(0); + COnOffNotifier* miscZapitNotifier = new COnOffNotifier(1); //zapit CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_ZAPITSETUP_LAST_USE, &g_settings.uselastchannel, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, miscZapitNotifier, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); mc->setHint("", LOCALE_MENU_HINT_LAST_USE); CSelectChannelWidget select; - CMenuForwarder *zapit1 = new CMenuForwarder(LOCALE_ZAPITSETUP_LAST_TV , g_settings.uselastchannel, g_settings.StartChannelTV, &select, "tv", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN ); + CMenuForwarder *zapit1 = new CMenuForwarder(LOCALE_ZAPITSETUP_LAST_TV , !g_settings.uselastchannel, g_settings.StartChannelTV, &select, "tv", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN ); zapit1->setHint("", LOCALE_MENU_HINT_LAST_TV); - CMenuForwarder *zapit2 = new CMenuForwarder(LOCALE_ZAPITSETUP_LAST_RADIO , g_settings.uselastchannel, g_settings.StartChannelRadio, &select, "radio", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW ); + CMenuForwarder *zapit2 = new CMenuForwarder(LOCALE_ZAPITSETUP_LAST_RADIO , !g_settings.uselastchannel, g_settings.StartChannelRadio, &select, "radio", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW ); zapit2->setHint("", LOCALE_MENU_HINT_LAST_RADIO); miscZapitNotifier->addItem(zapit1); From 45a9ce6263af70500cb1434b3ac3dc8231ddde5a Mon Sep 17 00:00:00 2001 From: vanhofen Date: Sun, 11 Nov 2012 00:17:12 +0100 Subject: [PATCH 14/69] infoviewer_bb.cpp: fix resolution 1080 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/187825be19e19eeb20f377f6a68eac62bd362ae4 Author: vanhofen Date: 2012-11-11 (Sun, 11 Nov 2012) Origin message was: ------------------ - infoviewer_bb.cpp: fix resolution 1080 ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/infoviewer_bb.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/infoviewer_bb.cpp b/src/gui/infoviewer_bb.cpp index cf033a766..efba7b31f 100644 --- a/src/gui/infoviewer_bb.cpp +++ b/src/gui/infoviewer_bb.cpp @@ -498,7 +498,7 @@ void CInfoViewerBB::showIcon_Resolution() case 1920: icon_name = NEUTRINO_ICON_RESOLUTION_1920; break; - case 1088: + case 1080: icon_name = NEUTRINO_ICON_RESOLUTION_1080; break; case 1440: @@ -545,7 +545,7 @@ void CInfoViewerBB::showIcon_Resolution() case 1920: case 1440: case 1280: - case 1088: + case 1080: case 720: icon_name = NEUTRINO_ICON_RESOLUTION_HD; break; From 8ef2d45fc1f2e49303869437f057fe10eddb707f Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Sun, 11 Nov 2012 07:53:57 +0100 Subject: [PATCH 15/69] Software Update with apply the settings (Part10) - Blacklist added to exclude files - Files are marked by a prefixed '-' in the settingsupdate.conf Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/cddf86725d2d76037504c7fe78ce906ab46d33c9 Author: Michael Liebmann Date: 2012-11-11 (Sun, 11 Nov 2012) Origin message was: ------------------ * Software Update with apply the settings (Part10) - Blacklist added to exclude files - Files are marked by a prefixed '-' in the settingsupdate.conf ------------------ This commit was generated by Migit --- data/settingsupdate.conf | 15 ++++++-- src/gui/ext_update.cpp | 77 ++++++++++++++++++++++++++++++++++------ src/gui/ext_update.h | 2 ++ src/system/helpers.cpp | 8 +++-- src/system/helpers.h | 2 +- 5 files changed, 89 insertions(+), 15 deletions(-) diff --git a/data/settingsupdate.conf b/data/settingsupdate.conf index 795e0025b..1d2ed7a13 100644 --- a/data/settingsupdate.conf +++ b/data/settingsupdate.conf @@ -3,8 +3,8 @@ #:LogFile=/tmp/update.log -## Mögliche Einträge: -#==================== +## Mögliche Einträge für Sicherungen: +#==================================== # ganzes Verzeichnis #------------------- # /var/etc @@ -26,3 +26,14 @@ /etc/wpa_supplicant.conf /var/etc /var/tuxbox/config + +#---------------------------------------------------------------------------------------- +## von der Sicherung auszuschließende Dateien, gekennzeichnet durch ein vorangestelltes - +#---------------------------------------------------------------------------------------- +-/var/tuxbox/config/cables.xml +-/var/tuxbox/config/encoding.conf +-/var/tuxbox/config/providermap.xml +-/var/tuxbox/config/radio-stations.xml +-/var/tuxbox/config/satellites.xml +-/var/tuxbox/config/settingsupdate.conf +-/var/tuxbox/config/tobackup.conf diff --git a/src/gui/ext_update.cpp b/src/gui/ext_update.cpp index c8763de72..b5b70998c 100644 --- a/src/gui/ext_update.cpp +++ b/src/gui/ext_update.cpp @@ -25,8 +25,8 @@ Boston, MA 02110-1301, USA. */ -#define UPDATE_DEBUG_TIMER -#define UPDATE_DEBUG +//#define UPDATE_DEBUG_TIMER +//#define UPDATE_DEBUG #ifdef HAVE_CONFIG_H #include @@ -73,6 +73,7 @@ CExtUpdate::CExtUpdate() fLogfile = "/tmp/update.log"; mountPkt = "/tmp/image_mount"; FileHelpers = NULL; + BlackList.clear(); } CExtUpdate::~CExtUpdate() @@ -81,6 +82,7 @@ CExtUpdate::~CExtUpdate() delete[] MTDBuf; if(FileHelpers) delete[] FileHelpers; + BlackList.clear(); } CExtUpdate* CExtUpdate::getInstance() @@ -159,10 +161,10 @@ bool CExtUpdate::applySettings(const std::string & filename, int mode) bool CExtUpdate::isMtdramLoad() { - char buf[256] = ""; bool ret = false; FILE* f = fopen("/proc/modules", "r"); if (f) { + char buf[256] = ""; while(fgets(buf, sizeof(buf), f) != NULL) { if (strstr(buf, "mtdram") != NULL) { ret = true; @@ -294,7 +296,8 @@ bool CExtUpdate::applySettings() if (res) return ErrorReset(RESET_UNLOAD, "mount error"); - readBackupList(mountPkt); + if (!readBackupList(mountPkt)) + return ErrorReset(0, "error readBackupList"); res = umount(mountPkt.c_str()); if (res) @@ -359,7 +362,6 @@ bool CExtUpdate::copyFileList(const std::string & fileList, const std::string & struct dirent **namelist; std::string fList = fileList, dst; static struct stat FileInfo; - char buf[PATH_MAX]; size_t pos = fileList.find_last_of("/"); fList = fileList.substr(0, pos); @@ -373,6 +375,7 @@ bool CExtUpdate::copyFileList(const std::string & fileList, const std::string & std::string dName = namelist[n]->d_name; if (lstat((fList+"/"+dName).c_str(), &FileInfo) != -1) { if (S_ISLNK(FileInfo.st_mode)) { + char buf[PATH_MAX]; int len = readlink((fList+"/"+dName).c_str(), buf, sizeof(buf)-1); if (len != -1) { buf[len] = '\0'; @@ -383,7 +386,8 @@ bool CExtUpdate::copyFileList(const std::string & fileList, const std::string & else if (S_ISREG(FileInfo.st_mode)) { WRITE_UPDATE_LOG("copy %s => %s\n", (fList+"/"+dName).c_str(), (dst+"/"+dName).c_str()); - if (!FileHelpers->copyFile((fList+"/"+dName).c_str(), (dst+"/"+dName).c_str(), FileInfo.st_mode & 0x0FFF)) + std::string save = (isBlacklistEntry(fList+"/"+dName)) ? ".save" : ""; + if (!FileHelpers->copyFile((fList+"/"+dName).c_str(), (dst + "/" + dName + save).c_str(), FileInfo.st_mode & 0x0FFF)) return ErrorReset(0, "copyFile error"); } } @@ -424,6 +428,18 @@ bool CExtUpdate::readConfig(const std::string & line) return true; } +bool CExtUpdate::isBlacklistEntry(const std::string & file) +{ + for(vector::iterator it = BlackList.begin(); it != BlackList.end(); ++it) { + if (*it == file) { + DBG_MSG("BlacklistEntry %s\n", (*it).c_str()); + WRITE_UPDATE_LOG("BlacklistEntry: %s\n", (*it).c_str()); + return true; + } + } + return false; +} + bool CExtUpdate::readBackupList(const std::string & dstPath) { char buf[PATH_MAX]; @@ -452,10 +468,37 @@ bool CExtUpdate::readBackupList(const std::string & dstPath) if (fz.__pos == 0) return ErrorReset(RESET_F1, "backuplist filesize is 0"); size_t pos; + std::string line; + + // read blacklist + BlackList.clear(); while(fgets(buf, sizeof(buf), f1) != NULL) { - std::string line = buf; + line = buf; line = trim(line); - // remove comments + // ignore comments + if (line.find_first_of("#") == 0) + continue; + pos = line.find_first_of("#"); + if (pos != std::string::npos) { + line = line.substr(0, pos); + line = trim(line); + } + // find blacklist entry + if (line.find_first_of("-") == 0) { + line = line.substr(1); + if ((line.length() > 1) && (lstat(line.c_str(), &FileInfo) != -1)) { + if (S_ISREG(FileInfo.st_mode)) + BlackList.push_back(line); + } + } + } + + // read backuplist + fseek(f1, 0, SEEK_SET); + while(fgets(buf, sizeof(buf), f1) != NULL) { + line = buf; + line = trim(line); + // ignore comments if (line.find_first_of("#") == 0) { if (line.find_first_of(":") == 1) { // config vars if (line.length() > 1) @@ -468,6 +511,19 @@ bool CExtUpdate::readBackupList(const std::string & dstPath) line = line.substr(0, pos); line = trim(line); } + + // '+' add entry = default + if (line.find_first_of("+") == 0) + line = line.substr(1); + + // '-' blacklist entry + if (line.find_first_of("-") == 0) + continue; + + // Entry '~' (delete) ignore currently still + if (line.find_first_of("~") == 0) + continue; + // special folders else if ((line == "/") || (line == "/*") || (line == "/*.*") || (line.find("/dev") == 0) || (line.find("/proc") == 0) || (line.find("/sys") == 0) || (line.find("/mnt") == 0) || (line.find("/tmp") == 0)) { @@ -501,7 +557,8 @@ bool CExtUpdate::readBackupList(const std::string & dstPath) WRITE_UPDATE_LOG("\n"); WRITE_UPDATE_LOG("file: %s => %s\n", line.c_str(), dst.c_str()); WRITE_UPDATE_LOG("--------------------\n"); - if (!FileHelpers->copyFile(line.c_str(), dst.c_str(), FileInfo.st_mode & 0x0FFF)) + std::string save = (isBlacklistEntry(line)) ? ".save" : ""; + if (!FileHelpers->copyFile(line.c_str(), (dst + save).c_str(), FileInfo.st_mode & 0x0FFF)) return ErrorReset(0, "copyFile error"); } else if (S_ISDIR(FileInfo.st_mode)) { @@ -510,7 +567,7 @@ bool CExtUpdate::readBackupList(const std::string & dstPath) WRITE_UPDATE_LOG("\n"); WRITE_UPDATE_LOG("directory: %s => %s\n", line.c_str(), dst.c_str()); WRITE_UPDATE_LOG("--------------------\n"); - FileHelpers->copyDir(line.c_str(), dst.c_str()); + FileHelpers->copyDir(line.c_str(), dst.c_str(), true); } } diff --git a/src/gui/ext_update.h b/src/gui/ext_update.h index 9f0ee6744..57e1b921a 100644 --- a/src/gui/ext_update.h +++ b/src/gui/ext_update.h @@ -54,6 +54,7 @@ class CExtUpdate std::string backupList, defaultBackup; std::string mountPkt; CFileHelpers* FileHelpers; + std::vector BlackList; bool applySettings(void); bool readBackupList(const std::string & dstPath); @@ -80,6 +81,7 @@ class CExtUpdate bool applySettings(const std::string & filename, int mode); bool ErrorReset(bool modus, const std::string & msg1="", const std::string & msg2=""); + bool isBlacklistEntry(const std::string & file); }; diff --git a/src/system/helpers.cpp b/src/system/helpers.cpp index c993bbf41..23708b752 100644 --- a/src/system/helpers.cpp +++ b/src/system/helpers.cpp @@ -37,6 +37,7 @@ #include #include +#include bool file_exists(const char *filename) { @@ -339,7 +340,7 @@ bool CFileHelpers::copyFile(const char *Src, const char *Dst, mode_t mode) return true; } -bool CFileHelpers::copyDir(const char *Src, const char *Dst) +bool CFileHelpers::copyDir(const char *Src, const char *Dst, bool backupMode) { DIR *Directory; struct dirent *CurrentFile; @@ -402,7 +403,10 @@ bool CFileHelpers::copyDir(const char *Src, const char *Dst) } // is file else if (S_ISREG(FileInfo.st_mode)) { - copyFile(srcPath, dstPath, FileInfo.st_mode & 0x0FFF); + std::string save = ""; + if (backupMode && (CExtUpdate::getInstance()->isBlacklistEntry(srcPath))) + save = ".save"; + copyFile(srcPath, (dstPath + save).c_str(), FileInfo.st_mode & 0x0FFF); } } } diff --git a/src/system/helpers.h b/src/system/helpers.h index b3393a0d3..2d9731494 100644 --- a/src/system/helpers.h +++ b/src/system/helpers.h @@ -50,7 +50,7 @@ class CFileHelpers bool doCopyFlag; bool copyFile(const char *Src, const char *Dst, mode_t mode); - bool copyDir(const char *Src, const char *Dst); + bool copyDir(const char *Src, const char *Dst, bool backupMode=false); bool createDir(const char *Dir, mode_t mode); bool removeDir(const char *Dir); From 114ce441ab38fa970be0a31d1edb7761723d69c1 Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Sun, 11 Nov 2012 02:41:51 +0100 Subject: [PATCH 16/69] infoviewer/streaminfo2: fix resolution 1080 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/967f9f8ef43d60133df269320707d3ededeaf7eb Author: Michael Liebmann Date: 2012-11-11 (Sun, 11 Nov 2012) Origin message was: ------------------ - infoviewer/streaminfo2: fix resolution 1080 ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/infoviewer_bb.cpp | 2 ++ src/gui/streaminfo2.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/gui/infoviewer_bb.cpp b/src/gui/infoviewer_bb.cpp index efba7b31f..58edd77a7 100644 --- a/src/gui/infoviewer_bb.cpp +++ b/src/gui/infoviewer_bb.cpp @@ -499,6 +499,7 @@ void CInfoViewerBB::showIcon_Resolution() icon_name = NEUTRINO_ICON_RESOLUTION_1920; break; case 1080: + case 1088: icon_name = NEUTRINO_ICON_RESOLUTION_1080; break; case 1440: @@ -546,6 +547,7 @@ void CInfoViewerBB::showIcon_Resolution() case 1440: case 1280: case 1080: + case 1088: case 720: icon_name = NEUTRINO_ICON_RESOLUTION_HD; break; diff --git a/src/gui/streaminfo2.cpp b/src/gui/streaminfo2.cpp index 94357d8b6..b9b01188f 100644 --- a/src/gui/streaminfo2.cpp +++ b/src/gui/streaminfo2.cpp @@ -473,6 +473,8 @@ void CStreamInfo2::paint_techinfo(int xpos, int ypos) if(channel->getVideoPid() && !(videoDecoder->getBlank())){ videoDecoder->getPictureInfo(xres, yres, framerate); + if (yres == 1088) + yres = 1080; aspectRatio = videoDecoder->getAspectRatio(); } From 963dc532139d50b0102cd2068c7ee3c30d7bea6b Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Mon, 12 Nov 2012 12:23:23 +0100 Subject: [PATCH 17/69] src/driver/rcinput.cpp: use standby_rc in repeat mode only if need Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/7d570537fdf18cc6ed530e8508169a98de27c0ca Author: Jacek Jendrzej Date: 2012-11-12 (Mon, 12 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/driver/rcinput.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/driver/rcinput.cpp b/src/driver/rcinput.cpp index 3ecf6e7ef..270afb8d2 100644 --- a/src/driver/rcinput.cpp +++ b/src/driver/rcinput.cpp @@ -1218,7 +1218,7 @@ printf("[neutrino] CSectionsdClient::EVT_GOT_CN_EPG\n"); (trkey == RC_plus ) || (trkey == RC_minus ) || (trkey == RC_page_down ) || (trkey == RC_page_up ) || ((bAllowRepeatLR) && ((trkey == RC_left ) || (trkey == RC_right))) || - ((trkey == RC_standby) && (cs_get_revision() > 7)) ) + (g_settings.shutdown_real_rcdelay && ((trkey == RC_standby) && (cs_get_revision() > 7))) ) { #ifdef ENABLE_REPEAT_CHECK if (rc_last_repeat_key != ev.code) { From 92dadbc680e24b9a74d058b1cda8cdec8a87b847 Mon Sep 17 00:00:00 2001 From: gixxpunk Date: Tue, 13 Nov 2012 19:35:43 +0100 Subject: [PATCH 18/69] cables.xml: update um and kms Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/c37a25172e99c3fec4446e2b067304cb0ac0eb16 Author: gixxpunk Date: 2012-11-13 (Tue, 13 Nov 2012) Origin message was: ------------------ - cables.xml: update um and kms ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/cables.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/data/cables.xml b/data/cables.xml index 9bfecff6e..777088793 100644 --- a/data/cables.xml +++ b/data/cables.xml @@ -25,6 +25,7 @@ + @@ -223,13 +224,12 @@ - - - - - + + + + + - @@ -255,12 +255,12 @@ - - - + + + From 6b429a3eae99aae4ac60a0884d5ff43550d6cd62 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 15 Nov 2012 19:12:13 +0400 Subject: [PATCH 19/69] neutrino.cpp: comment saveSetup in signal handler - this can damage config file, try to protect against broken config - check screen_End* and load load defaults Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/b47821214039d924f1fbe42e01fe3212c0120684 Author: [CST] Focus Date: 2012-11-15 (Thu, 15 Nov 2012) ------------------ This commit was generated by Migit --- src/neutrino.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 9933f5db3..1092a7c5a 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -287,6 +287,15 @@ int CNeutrinoApp::loadSetup(const char * fname) if(!configfile.loadConfig(fname)) { //file existiert nicht erg = 1; + } else { + /* try to detect bad / broken config file */ + if (!configfile.getInt32("screen_EndX_crt", 0) || + !configfile.getInt32("screen_EndY_crt", 0) || + !configfile.getInt32("screen_EndX_lcd", 0) || + !configfile.getInt32("screen_EndY_lcd", 0)) { + printf("[neutrino] config file %s is broken, using defaults\n", fname); + configfile.clear(); + } } std::ifstream checkParentallocked(NEUTRINO_PARENTALLOCKED_FILE); if(checkParentallocked) { @@ -3518,7 +3527,7 @@ void sighandler (int signum) case SIGTERM: case SIGINT: delete CRecordManager::getInstance(); - CNeutrinoApp::getInstance()->saveSetup(NEUTRINO_SETTINGS_FILE); + //CNeutrinoApp::getInstance()->saveSetup(NEUTRINO_SETTINGS_FILE); stop_daemons(); stop_video(); //_exit(0); From 1bc9db42f7fea6f5c8b165e7999b7e2c92f70102 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 15 Nov 2012 19:13:13 +0400 Subject: [PATCH 20/69] eitd/xmlutil.cpp: fix crash, if epg data saved with older image - item/item_description can be present and break parsing Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/1f65f1bc80d77111bb89c63db910a805c57f3f99 Author: [CST] Focus Date: 2012-11-15 (Thu, 15 Nov 2012) ------------------ This commit was generated by Migit --- src/eitd/xmlutil.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/eitd/xmlutil.cpp b/src/eitd/xmlutil.cpp index c57cfa023..b700011f3 100644 --- a/src/eitd/xmlutil.cpp +++ b/src/eitd/xmlutil.cpp @@ -334,16 +334,18 @@ void *insertEventsfromFile(void * data) std::string(xmlGetAttribute(node, "string"))); node = node->xmlNextNode; } -#ifdef USE_ITEM_DESCRIPTION while (xmlGetNextOccurence(node, "item") != NULL) { +#ifdef USE_ITEM_DESCRIPTION e.item = std::string(xmlGetAttribute(node, "string")); +#endif node = node->xmlNextNode; } while (xmlGetNextOccurence(node, "item_description") != NULL) { +#ifdef USE_ITEM_DESCRIPTION e.itemDescription = std::string(xmlGetAttribute(node, "string")); +#endif node = node->xmlNextNode; } -#endif while (xmlGetNextOccurence(node, "extended_text") != NULL) { e.appendExtendedText( std::string(ZapitTools::UTF8_to_Latin1(xmlGetAttribute(node, "lang"))), std::string(xmlGetAttribute(node, "string"))); From 95fe89ddbb70eecb9b8f2a4e6946a0e695a63323 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 15 Nov 2012 19:16:10 +0400 Subject: [PATCH 21/69] driver/streamts.cpp: fix debug msg Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/00e188b37d632800761805b08de4617678187583 Author: [CST] Focus Date: 2012-11-15 (Thu, 15 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/driver/streamts.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/driver/streamts.cpp b/src/driver/streamts.cpp index 0e3142c5c..bfbb5c576 100644 --- a/src/driver/streamts.cpp +++ b/src/driver/streamts.cpp @@ -127,7 +127,7 @@ bool CStreamInstance::Send(ssize_t r) if (ret != r) { if (r < 0) perror("send"); - printf("send err, fd %d: %d\n", *it, r); + printf("send err, fd %d: (%d from %d)\n", *it, ret, r); } } mutex.unlock(); From 48adde4a315da10bc26d49f0806c473591033e13 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 15 Nov 2012 19:17:19 +0400 Subject: [PATCH 22/69] zapit/src/frontend.cpp: add 50ms delay after reset and before diseqc cmd Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/f2f763391f51e467b88ebb1f62783673cb74f272 Author: [CST] Focus Date: 2012-11-15 (Thu, 15 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/zapit/src/frontend.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/zapit/src/frontend.cpp b/src/zapit/src/frontend.cpp index 4ffd3be48..c3b6a6a13 100644 --- a/src/zapit/src/frontend.cpp +++ b/src/zapit/src/frontend.cpp @@ -1168,9 +1168,8 @@ void CFrontend::setDiseqc(int sat_no, const uint8_t pol, const uint32_t frequenc secSetVoltage(v, 100); #endif sendDiseqcReset(); + usleep(50*1000); /* sleep at least 50 milli seconds */ for (loop = 0; loop <= config.diseqcRepeats; loop++) { - //usleep(50*1000); /* sleep at least 50 milli seconds */ - if (config.diseqcType == MINI_DISEQC) sendToneBurst(b, 1); From 21a4195103f741f25a776cc099edf024c664b9d5 Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Thu, 15 Nov 2012 05:21:10 +0100 Subject: [PATCH 23/69] infoviewer_bb.cpp: Optimize display of simple resolution in the info bar Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/d9cf5197f4f4628fc57a32ee4dd8f0b0510704b9 Author: Michael Liebmann Date: 2012-11-15 (Thu, 15 Nov 2012) Origin message was: ------------------ * infoviewer_bb.cpp: Optimize display of simple resolution in the info bar ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/infoviewer_bb.cpp | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/src/gui/infoviewer_bb.cpp b/src/gui/infoviewer_bb.cpp index 58edd77a7..62c3bca74 100644 --- a/src/gui/infoviewer_bb.cpp +++ b/src/gui/infoviewer_bb.cpp @@ -542,29 +542,12 @@ void CInfoViewerBB::showIcon_Resolution() } if (g_settings.infobar_show_res == 1) {//show simple resolution icon on infobar videoDecoder->getPictureInfo(xres, yres, framerate); - switch (yres) { - case 1920: - case 1440: - case 1280: - case 1080: - case 1088: - case 720: + if (yres > 704) icon_name = NEUTRINO_ICON_RESOLUTION_HD; - break; - case 704: - case 576: - case 544: - case 528: - case 480: - case 382: - case 352: - case 288: + else if (yres >= 288) icon_name = NEUTRINO_ICON_RESOLUTION_SD; - break; - default: + else icon_name = NEUTRINO_ICON_RESOLUTION_000; - break; - } } } showBBIcons(CInfoViewerBB::ICON_RES, icon_name); From 48abdf965eb8565e57d9b710ad9a32c823365da1 Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Mon, 12 Nov 2012 16:13:11 +0100 Subject: [PATCH 24/69] Software Update with apply the settings (Part11) - Deletelist added to delete files or directories from image - Files/Directories are marked by a prefixed '~' in the settingsupdate.conf - Rework readBackupList() Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/1ca7ced674c1658fbb65197af7f762e45615eaa0 Author: Michael Liebmann Date: 2012-11-12 (Mon, 12 Nov 2012) Origin message was: ------------------ * Software Update with apply the settings (Part11) - Deletelist added to delete files or directories from image - Files/Directories are marked by a prefixed '~' in the settingsupdate.conf - Rework readBackupList() ------------------ This commit was generated by Migit --- data/locale/deutsch.locale | 1 + data/locale/english.locale | 1 + data/settingsupdate.conf | 7 ++ src/gui/ext_update.cpp | 168 ++++++++++++++++++++++++++----------- src/gui/ext_update.h | 4 +- src/system/locals.h | 1 + src/system/locals_intern.h | 1 + 7 files changed, 132 insertions(+), 51 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 9084627c8..f620f4e35 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -486,6 +486,7 @@ flashupdate.settings Update-Einstellungen flashupdate.squashfs.noversion Bei Updates werden Versionsüberprüfungen derzeit nur über Web-Updates unterstützt.\nWollen Sie das ausgewählte Image wirklich installieren? flashupdate.titlereadflash Flash auslesen flashupdate.titlewriteflash Flash schreiben +flashupdate.update_with_settings_del_skipped Ordner [%s] kann nicht gelöscht werden. Eintrag wird übersprungen. flashupdate.update_with_settings_processed Image wird bearbeitet... flashupdate.update_with_settings_skipped Ordner [%s] kann nicht gesichert werden. Eintrag wird übersprungen. flashupdate.update_with_settings_successfully Settingsübernahme erfolgreich.\nDas Image kann jetzt geflasht werden. diff --git a/data/locale/english.locale b/data/locale/english.locale index 23118da8d..163dc7cdf 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -486,6 +486,7 @@ flashupdate.settings Update settings flashupdate.squashfs.noversion SquashFS version checks are currently only supported when updating over the web.\nAre you sure that you wish to install this image? flashupdate.titlereadflash Reading Flash flashupdate.titlewriteflash Writing Flash +flashupdate.update_with_settings_del_skipped Folder [%s] can not be deleted. Entry is skipped. flashupdate.update_with_settings_processed Image is being processed... flashupdate.update_with_settings_skipped Folder [%s] can not be saved. Entry is skipped. flashupdate.update_with_settings_successfully Setting takeover successfully.\nThe image can now be flashed. diff --git a/data/settingsupdate.conf b/data/settingsupdate.conf index 1d2ed7a13..9515124bc 100644 --- a/data/settingsupdate.conf +++ b/data/settingsupdate.conf @@ -37,3 +37,10 @@ -/var/tuxbox/config/satellites.xml -/var/tuxbox/config/settingsupdate.conf -/var/tuxbox/config/tobackup.conf + +#---------------------------------------------------------------------------- +## nach der Sicherung aus dem neuen Image zu löschende Dateien/Verzeichnisse, +## gekennzeichnet durch ein vorangestelltes ~ +# z.B. +# ~/share/tuxbox/neutrino/themes/Classic.theme +#---------------------------------------------------------------------------- diff --git a/src/gui/ext_update.cpp b/src/gui/ext_update.cpp index b5b70998c..2e0215c82 100644 --- a/src/gui/ext_update.cpp +++ b/src/gui/ext_update.cpp @@ -73,7 +73,9 @@ CExtUpdate::CExtUpdate() fLogfile = "/tmp/update.log"; mountPkt = "/tmp/image_mount"; FileHelpers = NULL; - BlackList.clear(); + copyList.clear(); + blackList.clear(); + deleteList.clear(); } CExtUpdate::~CExtUpdate() @@ -82,7 +84,9 @@ CExtUpdate::~CExtUpdate() delete[] MTDBuf; if(FileHelpers) delete[] FileHelpers; - BlackList.clear(); + copyList.clear(); + blackList.clear(); + deleteList.clear(); } CExtUpdate* CExtUpdate::getInstance() @@ -120,6 +124,7 @@ bool CExtUpdate::ErrorReset(bool modus, const std::string & msg1, const std::str } if(hintBox) hintBox->hide(); + sync(); return false; } @@ -339,6 +344,7 @@ bool CExtUpdate::applySettings() if(hintBox) hintBox->hide(); + sync(); return true; } @@ -399,6 +405,40 @@ bool CExtUpdate::copyFileList(const std::string & fileList, const std::string & return true; } +bool CExtUpdate::deleteFileList(const std::string & fileList) +{ + Wildcard = ""; + struct dirent **namelist; + std::string fList = fileList; + static struct stat FileInfo; + + size_t pos = fileList.find_last_of("/"); + fList = fileList.substr(0, pos); + Wildcard = fileList.substr(pos+1); + + int n = scandir(fList.c_str(), &namelist, fileSelect, 0); + if (n > 0) { + while (n--) { + std::string dName = namelist[n]->d_name; + if (lstat((fList+"/"+dName).c_str(), &FileInfo) != -1) { + if (S_ISDIR(FileInfo.st_mode)) { + // Directory + WRITE_UPDATE_LOG("delete directory: %s\n", (fList+"/"+dName).c_str()); + FileHelpers->removeDir((fList+"/"+dName).c_str()); + } + else if (S_ISREG(FileInfo.st_mode)) { + // File + WRITE_UPDATE_LOG("delete file: %s\n", (fList+"/"+dName).c_str()); + unlink((fList+"/"+dName).c_str()); + } + } + free(namelist[n]); + } + free(namelist); + } + return true; +} + bool CExtUpdate::findConfigEntry(std::string & line, std::string find) { if (line.find("#:" + find + "=") == 0) { @@ -430,7 +470,7 @@ bool CExtUpdate::readConfig(const std::string & line) bool CExtUpdate::isBlacklistEntry(const std::string & file) { - for(vector::iterator it = BlackList.begin(); it != BlackList.end(); ++it) { + for(vector::iterator it = blackList.begin(); it != blackList.end(); ++it) { if (*it == file) { DBG_MSG("BlacklistEntry %s\n", (*it).c_str()); WRITE_UPDATE_LOG("BlacklistEntry: %s\n", (*it).c_str()); @@ -440,6 +480,20 @@ bool CExtUpdate::isBlacklistEntry(const std::string & file) return false; } +bool CExtUpdate::checkSpecialFolders(std::string line, bool copy) +{ + if ((line == "/") || (line == "/*") || (line == "/*.*") || (line.find("/dev") == 0) || (line.find("/proc") == 0) || + (line.find("/sys") == 0) || (line.find("/mnt") == 0) || (line.find("/tmp") == 0)) { + char buf[PATH_MAX]; + neutrino_locale_t msg = (copy) ? LOCALE_FLASHUPDATE_UPDATE_WITH_SETTINGS_SKIPPED : LOCALE_FLASHUPDATE_UPDATE_WITH_SETTINGS_DEL_SKIPPED; + snprintf(buf, sizeof(buf), g_Locale->getText(msg), line.c_str()); + WRITE_UPDATE_LOG("%s%s", buf, "\n"); + ShowMsgUTF(LOCALE_MESSAGEBOX_INFO, buf, CMessageBox::mbrOk, CMessageBox::mbOk, NEUTRINO_ICON_INFO); + return true; + } + return false; +} + bool CExtUpdate::readBackupList(const std::string & dstPath) { char buf[PATH_MAX]; @@ -470,37 +524,18 @@ bool CExtUpdate::readBackupList(const std::string & dstPath) size_t pos; std::string line; - // read blacklist - BlackList.clear(); - while(fgets(buf, sizeof(buf), f1) != NULL) { - line = buf; - line = trim(line); - // ignore comments - if (line.find_first_of("#") == 0) - continue; - pos = line.find_first_of("#"); - if (pos != std::string::npos) { - line = line.substr(0, pos); - line = trim(line); - } - // find blacklist entry - if (line.find_first_of("-") == 0) { - line = line.substr(1); - if ((line.length() > 1) && (lstat(line.c_str(), &FileInfo) != -1)) { - if (S_ISREG(FileInfo.st_mode)) - BlackList.push_back(line); - } - } - } - - // read backuplist - fseek(f1, 0, SEEK_SET); + // read blacklist and config vars + copyList.clear(); + blackList.clear(); + deleteList.clear(); while(fgets(buf, sizeof(buf), f1) != NULL) { + std::string tmpLine; line = buf; line = trim(line); // ignore comments if (line.find_first_of("#") == 0) { - if (line.find_first_of(":") == 1) { // config vars + // config vars + if (line.find_first_of(":") == 1) { if (line.length() > 1) readConfig(line); } @@ -511,27 +546,39 @@ bool CExtUpdate::readBackupList(const std::string & dstPath) line = line.substr(0, pos); line = trim(line); } - - // '+' add entry = default - if (line.find_first_of("+") == 0) - line = line.substr(1); - - // '-' blacklist entry - if (line.find_first_of("-") == 0) - continue; - - // Entry '~' (delete) ignore currently still - if (line.find_first_of("~") == 0) - continue; - - // special folders - else if ((line == "/") || (line == "/*") || (line == "/*.*") || (line.find("/dev") == 0) || (line.find("/proc") == 0) || - (line.find("/sys") == 0) || (line.find("/mnt") == 0) || (line.find("/tmp") == 0)) { - snprintf(buf, sizeof(buf), g_Locale->getText(LOCALE_FLASHUPDATE_UPDATE_WITH_SETTINGS_SKIPPED), line.c_str()); - WRITE_UPDATE_LOG("%s%s", buf, "\n"); - ShowMsgUTF(LOCALE_MESSAGEBOX_INFO, buf, CMessageBox::mbrOk, CMessageBox::mbOk, NEUTRINO_ICON_INFO); - continue; + // find blackList entry + if (line.find_first_of("-") == 0) { + tmpLine = line.substr(1); + if ((tmpLine.length() > 1) && (lstat(tmpLine.c_str(), &FileInfo) != -1)) { + if (S_ISREG(FileInfo.st_mode)) + blackList.push_back(tmpLine); + } } + // find deleteList entry + else if (line.find_first_of("~") == 0) { + tmpLine = line.substr(1); + if (checkSpecialFolders(tmpLine, false)) + continue; + tmpLine = dstPath + tmpLine; + if (line.length() > 2) + deleteList.push_back(tmpLine); + } + // find copyList entry + else { + tmpLine = (line.find_first_of("+") == 0) ? line.substr(1) : line; // '+' add entry = default + if (checkSpecialFolders(tmpLine, true)) + continue; + if (tmpLine.length() > 1) + copyList.push_back(tmpLine); + } + } + fclose(f1); + + // read copyList + vector::iterator it; + for(it = copyList.begin(); it != copyList.end(); ++it) { + line = *it; + line = trim(line); // remove '/' from line end size_t len = line.length(); pos = line.find_last_of("/"); @@ -573,8 +620,29 @@ bool CExtUpdate::readBackupList(const std::string & dstPath) } } - fclose(f1); + // read DeleteList + for(it = deleteList.begin(); it != deleteList.end(); ++it) { + line = *it; + if (lstat(line.c_str(), &FileInfo) != -1) { + if ((line.find("*") != std::string::npos) || (line.find("?") != std::string::npos)) { + // Wildcards + WRITE_UPDATE_LOG("delete file list: %s\n", line.c_str()); + deleteFileList(line.c_str()); + } + else if (S_ISREG(FileInfo.st_mode)) { + // File + WRITE_UPDATE_LOG("delete file: %s\n", line.c_str()); + unlink(line.c_str()); + } + else if (S_ISDIR(FileInfo.st_mode)){ + // Directory + WRITE_UPDATE_LOG("delete directory: %s\n", line.c_str()); + FileHelpers->removeDir(line.c_str()); + } + } + } + sync(); return true; } diff --git a/src/gui/ext_update.h b/src/gui/ext_update.h index 57e1b921a..e0291641b 100644 --- a/src/gui/ext_update.h +++ b/src/gui/ext_update.h @@ -54,14 +54,16 @@ class CExtUpdate std::string backupList, defaultBackup; std::string mountPkt; CFileHelpers* FileHelpers; - std::vector BlackList; + std::vector copyList, blackList, deleteList; bool applySettings(void); bool readBackupList(const std::string & dstPath); bool copyFileList(const std::string & fileList, const std::string & dstPath); + bool deleteFileList(const std::string & fileList); bool readConfig(const std::string & Config); bool findConfigEntry(std::string & line, std::string find); bool isMtdramLoad(); + bool checkSpecialFolders(std::string line, bool copy); FILE * fUpdate; char updateLogBuf[1024]; diff --git a/src/system/locals.h b/src/system/locals.h index 2a35ef6b2..792767143 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -513,6 +513,7 @@ typedef enum LOCALE_FLASHUPDATE_SQUASHFS_NOVERSION, LOCALE_FLASHUPDATE_TITLEREADFLASH, LOCALE_FLASHUPDATE_TITLEWRITEFLASH, + LOCALE_FLASHUPDATE_UPDATE_WITH_SETTINGS_DEL_SKIPPED, LOCALE_FLASHUPDATE_UPDATE_WITH_SETTINGS_PROCESSED, LOCALE_FLASHUPDATE_UPDATE_WITH_SETTINGS_SKIPPED, LOCALE_FLASHUPDATE_UPDATE_WITH_SETTINGS_SUCCESSFULLY, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 905652f7f..243d504ad 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -513,6 +513,7 @@ const char * locale_real_names[] = "flashupdate.squashfs.noversion", "flashupdate.titlereadflash", "flashupdate.titlewriteflash", + "flashupdate.update_with_settings_del_skipped", "flashupdate.update_with_settings_processed", "flashupdate.update_with_settings_skipped", "flashupdate.update_with_settings_successfully", From f66d16857013dab9040d13016b26b25d1f498171 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 15:36:59 +0400 Subject: [PATCH 25/69] gui/filebrowser.cpp: save return status to check if all gui must be closed Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/f02a95e04d1a665aee5641a371f3e753ba2707c4 Author: [CST] Focus Date: 2012-11-16 (Fri, 16 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/filebrowser.cpp | 11 +++++++++++ src/gui/filebrowser.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/src/gui/filebrowser.cpp b/src/gui/filebrowser.cpp index 18d431de1..09cef99fa 100644 --- a/src/gui/filebrowser.cpp +++ b/src/gui/filebrowser.cpp @@ -838,6 +838,7 @@ bool CFileBrowser::exec(const char * const dirname) neutrino_msg_data_t data; bool res = false; + menu_ret = menu_return::RETURN_REPAINT; #ifdef ENABLE_INTERNETRADIO if (m_Mode == ModeSC) { @@ -1105,10 +1106,20 @@ bool CFileBrowser::exec(const char * const dirname) else if (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites) { //FIXME do nothing ? } + else if (msg == NeutrinoMessages::STANDBY_ON || + msg == NeutrinoMessages::SHUTDOWN || + msg == NeutrinoMessages::SLEEPTIMER) + { + menu_ret = menu_return::RETURN_EXIT_ALL; + loop = false; + g_RCInput->postMsg(msg, data); + } + else { if ( CNeutrinoApp::getInstance()->handleMsg( msg, data ) & messages_return::cancel_all ) { + menu_ret = menu_return::RETURN_EXIT_ALL; loop = false; } } diff --git a/src/gui/filebrowser.h b/src/gui/filebrowser.h index b1e92dabf..5cf100bdf 100644 --- a/src/gui/filebrowser.h +++ b/src/gui/filebrowser.h @@ -177,6 +177,7 @@ class CFileBrowser int x; int y; + int menu_ret; SMSKeyInput m_SMSKeyInput; @@ -229,6 +230,7 @@ class CFileBrowser { return Path; } + int getMenuRet() { return menu_ret; } // size_t CurlWriteToString(void *ptr, size_t size, size_t nmemb, void *data); private: From e895657b825526d705d11b91379a709e5fc636f8 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 15:37:38 +0400 Subject: [PATCH 26/69] gui/moviebrowser.cpp: save return status to check if all gui must be closed Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/36fa514bedfd6e10b9abdb621cfa8d9daa34a837 Author: [CST] Focus Date: 2012-11-16 (Fri, 16 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/moviebrowser.cpp | 11 ++++++++++- src/gui/moviebrowser.h | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index 1fd5de186..4aab7d741 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -912,6 +912,7 @@ int CMovieBrowser::exec(CMenuTarget* parent, const std::string & actionKey) int CMovieBrowser::exec(const char* path) { bool res = false; + menu_ret = menu_return::RETURN_REPAINT; TRACE("[mb] start MovieBrowser\r\n"); int timeout = -1; @@ -1034,10 +1035,18 @@ int CMovieBrowser::exec(const char* path) else if (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites) { //FIXME do nothing ? } + else if ( msg == NeutrinoMessages::STANDBY_ON || + msg == NeutrinoMessages::SHUTDOWN || + msg == NeutrinoMessages::SLEEPTIMER) + { + menu_ret = menu_return::RETURN_EXIT_ALL; + loop = false; + g_RCInput->postMsg(msg, data); + } else if (CNeutrinoApp::getInstance()->handleMsg(msg, data) & messages_return::cancel_all) { TRACE("[mb]->exec: getInstance\r\n"); - //res = menu_return::RETURN_EXIT_ALL; + menu_ret = menu_return::RETURN_EXIT_ALL; loop = false; } } diff --git a/src/gui/moviebrowser.h b/src/gui/moviebrowser.h index a18f19fe3..1b3c89712 100644 --- a/src/gui/moviebrowser.h +++ b/src/gui/moviebrowser.h @@ -303,6 +303,7 @@ class CMovieBrowser : public CMenuTarget std::string getScreenshotName(std::string movie); //bool restart_mb_timeout; + int menu_ret; public: // Functions //////////////////////////////////////////////////////////7 CMovieBrowser(const char* path); //P1 @@ -324,6 +325,7 @@ class CMovieBrowser : public CMenuTarget bool delFile(CFile& file); bool delFile_vlc(CFile& file); bool delFile_std(CFile& file); + int getMenuRet() { return menu_ret; } private: //Functions ///// MovieBrowser init /////////////// From 9735d81eed0ee7a48606325cd9f151d60b781b53 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 15:38:43 +0400 Subject: [PATCH 27/69] gui/movieplayer.cpp: get return status from filebrowser/moviebrowser Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/ff478108417560003f77a35f53b57c4031f13589 Author: [CST] Focus Date: 2012-11-16 (Fri, 16 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/movieplayer.cpp | 14 +++++++++++--- src/gui/movieplayer.h | 1 + 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index 6e5446e29..d7e02a6ef 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -223,7 +223,7 @@ int CMoviePlayerGui::exec(CMenuTarget * parent, const std::string & actionKey) timeshift = 0; return menu_return::RETURN_EXIT_ALL; } - return menu_return::RETURN_REPAINT; + return menu_ret; //menu_return::RETURN_REPAINT; } void CMoviePlayerGui::updateLcd() @@ -286,6 +286,7 @@ void CMoviePlayerGui::fillPids() bool CMoviePlayerGui::SelectFile() { bool ret = false; + menu_ret = menu_return::RETURN_REPAINT; /*clear audiopids */ for (int i = 0; i < numpida; i++) { @@ -344,7 +345,8 @@ bool CMoviePlayerGui::SelectFile() ret = true; } - } + } else + menu_ret = moviebrowser->getMenuRet(); } else { // filebrowser if (filebrowser->exec(Path_local.c_str()) == true) { @@ -380,7 +382,8 @@ bool CMoviePlayerGui::SelectFile() } } } - } + } else + menu_ret = filebrowser->getMenuRet(); } if(ret && file_name.empty()) { std::string::size_type pos = full_name.find_last_of('/'); @@ -403,6 +406,7 @@ void CMoviePlayerGui::PlayFile(void) { neutrino_msg_t msg; neutrino_msg_data_t data; + menu_ret = menu_return::RETURN_REPAINT; int position = 0, duration = 0; bool first_start_timeshift = false; @@ -651,6 +655,9 @@ void CMoviePlayerGui::PlayFile(void) msg == NeutrinoMessages::SHUTDOWN || msg == NeutrinoMessages::SLEEPTIMER) { // Exit for Record/Zapto Timers printf("CMoviePlayerGui::PlayFile: ZAPTO etc..\n"); + if(msg != NeutrinoMessages::ZAPTO) + menu_ret = menu_return::RETURN_EXIT_ALL; + playstate = CMoviePlayerGui::STOPPED; g_RCInput->postMsg(msg, data); } else if (msg == CRCInput::RC_timeout) { @@ -661,6 +668,7 @@ void CMoviePlayerGui::PlayFile(void) if (CNeutrinoApp::getInstance()->handleMsg(msg, data) & messages_return::cancel_all) { printf("CMoviePlayerGui::PlayFile: neutrino handleMsg messages_return::cancel_all\n"); playstate = CMoviePlayerGui::STOPPED; + menu_ret = menu_return::RETURN_EXIT_ALL; } else if ( msg <= CRCInput::RC_MaxRC ) { update_lcd = true; diff --git a/src/gui/movieplayer.h b/src/gui/movieplayer.h index 31125f1a1..8217045e8 100644 --- a/src/gui/movieplayer.h +++ b/src/gui/movieplayer.h @@ -94,6 +94,7 @@ class CMoviePlayerGui : public CMenuTarget CFileBrowser * filebrowser; CFileFilter tsfilefilter; std::string Path_local; + int menu_ret; /* playback from bookmark */ CBookmarkManager * bookmarkmanager; From a1e87094f276792ff132e01d578a6b6c71f352ea Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 15:45:39 +0400 Subject: [PATCH 28/69] gui/audioplayer.cpp: return menu_return::RETURN_EXIT_ALL on standby/shutdown, thanks satbaby for patch Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/6d7f1efd0662bb9480158c396373f4d546041635 Author: [CST] Focus Date: 2012-11-16 (Fri, 16 Nov 2012) ------------------ This commit was generated by Migit --- src/gui/audioplayer.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index c7e82d9ba..13f2184df 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -325,7 +325,7 @@ int CAudioPlayerGui::exec(CMenuTarget* parent, const std::string &actionKey) if (my_system(AUDIOPLAYER_START_SCRIPT) != 0) perror("Datei " AUDIOPLAYER_START_SCRIPT " fehlt.Bitte erstellen, wenn gebraucht.\nFile " AUDIOPLAYER_START_SCRIPT " not found. Please create if needed.\n"); - show(); + int res = show(); // Restore previous background if (usedBackground) @@ -346,8 +346,7 @@ int CAudioPlayerGui::exec(CMenuTarget* parent, const std::string &actionKey) CNeutrinoApp::getInstance()->StartSubtitles(); - // always exit all - return menu_return::RETURN_EXIT_ALL; + return res; } //------------------------------------------------------------------------ @@ -359,7 +358,7 @@ int CAudioPlayerGui::show() int pic_index = 0; - int ret = -1; + int ret = menu_return::RETURN_REPAINT; CVFD::getInstance()->setMode(CVFD::MODE_AUDIO); paintLCD(); @@ -878,8 +877,11 @@ int CAudioPlayerGui::show() msg == NeutrinoMessages::SHUTDOWN || msg == NeutrinoMessages::SLEEPTIMER) { + if(msg != NeutrinoMessages::RECORD_START ) + ret = menu_return::RETURN_EXIT_ALL; // Exit for Record/Zapto Timers loop = false; + g_RCInput->postMsg(msg, data); } else if (msg == NeutrinoMessages::EVT_TIMER) @@ -890,6 +892,7 @@ int CAudioPlayerGui::show() { if ( CNeutrinoApp::getInstance()->handleMsg( msg, data ) & messages_return::cancel_all ) { + ret = menu_return::RETURN_EXIT_ALL; loop = false; } // update mute icon From 9cbcdf739adda3e97225e8c1e83e6475ce9f34dd Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 15:52:02 +0400 Subject: [PATCH 29/69] gui/mediaplayer.cpp: return result from audio/movie players, thanks satbaby for patch Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/a4df1e2939e7f809d63e692e49b59656aa1c9339 Author: [CST] Focus Date: 2012-11-16 (Fri, 16 Nov 2012) ------------------ This commit was generated by Migit --- src/gui/mediaplayer.cpp | 35 +++++++++++------------------------ 1 file changed, 11 insertions(+), 24 deletions(-) diff --git a/src/gui/mediaplayer.cpp b/src/gui/mediaplayer.cpp index 30172d0f5..62712ee6a 100644 --- a/src/gui/mediaplayer.cpp +++ b/src/gui/mediaplayer.cpp @@ -91,39 +91,27 @@ int CMediaPlayerMenu::exec(CMenuTarget* parent, const std::string &actionKey) { if (audioPlayer == NULL) audioPlayer = new CAudioPlayerGui(); - audioPlayer->exec(NULL, "init"); + int res = audioPlayer->exec(NULL, "init"); - return menu_return::RETURN_REPAINT; + return res /*menu_return::RETURN_REPAINT*/; } else if (actionKey == "inetplayer") { if (inetPlayer == NULL) inetPlayer = new CAudioPlayerGui(true); - inetPlayer->exec(NULL, "init"); + int res = inetPlayer->exec(NULL, "init"); - return menu_return::RETURN_REPAINT; + return res; //menu_return::RETURN_REPAINT; } else if (actionKey == "movieplayer") { -#if 0 //Is it really necessary to lock here? Moviebrowser got its own configurable parental lock. - bool show = true; - if ((g_settings.parentallock_prompt == PARENTALLOCK_PROMPT_ONSIGNAL) || (g_settings.parentallock_prompt == PARENTALLOCK_PROMPT_CHANGETOLOCKED)) { - CZapProtection zapProtection( g_settings.parentallock_pincode, 0x100 ); - show = zapProtection.check(); - } - - if(show){ -#endif - int mode = CNeutrinoApp::getInstance()->getMode(); - if( mode == NeutrinoMessages::mode_radio ) - videoDecoder->StopPicture(); - CMoviePlayerGui::getInstance().exec(NULL, "tsmoviebrowser"); - if( mode == NeutrinoMessages::mode_radio ) - videoDecoder->ShowPicture(DATADIR "/neutrino/icons/radiomode.jpg"); -#if 0 - } -#endif - return menu_return::RETURN_REPAINT;; + int mode = CNeutrinoApp::getInstance()->getMode(); + if( mode == NeutrinoMessages::mode_radio ) + videoDecoder->StopPicture(); + int res = CMoviePlayerGui::getInstance().exec(NULL, "tsmoviebrowser"); + if( mode == NeutrinoMessages::mode_radio ) + videoDecoder->ShowPicture(DATADIR "/neutrino/icons/radiomode.jpg"); + return res; } int res = initMenuMedia(); @@ -236,7 +224,6 @@ int CMediaPlayerMenu::initMenuMedia(CMenuWidget *m, CPersonalizeGui *p) setUsageMode();//set default usage_mode } - return res; } From 050a3aef1b5710e8255e3371fb6d706656ae00da Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Fri, 16 Nov 2012 13:36:12 +0100 Subject: [PATCH 30/69] src/neutrino.cpp: add cancel message to RC_standby_on and RC_power_off (THX Gaucho316) Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/0f8c9bbef19abe362bd8e11ff186a1bc09adf138 Author: Jacek Jendrzej Date: 2012-11-16 (Fri, 16 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/neutrino.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 1092a7c5a..8323ec90a 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2363,7 +2363,7 @@ _repeat: else if (msg == CRCInput::RC_standby_on) { if (data == 0) g_RCInput->postMsg(NeutrinoMessages::STANDBY_ON, 0); - return messages_return::handled; + return messages_return::cancel_all | messages_return::handled; } else if ((msg == CRCInput::RC_standby_off) || (msg == CRCInput::RC_power_on)) { if (data == 0) @@ -2372,7 +2372,7 @@ _repeat: } else if (msg == CRCInput::RC_power_off) { g_RCInput->postMsg(NeutrinoMessages::SHUTDOWN, 0); - return messages_return::handled; + return messages_return::cancel_all | messages_return::handled; } else if (msg == (neutrino_msg_t) g_settings.key_power_off /*CRCInput::RC_standby*/) { if (data == 0) { From cdeb632164a04200d79f6c3be801efb1bfd2eeee Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 16:49:58 +0400 Subject: [PATCH 31/69] gui/update.cpp: return result from file browser or image select menu Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/76947173c0ac2dca9e329c06568b3ee0077fe75c Author: [CST] Focus Date: 2012-11-16 (Fri, 16 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/update.cpp | 9 ++++++--- src/gui/update.h | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/gui/update.cpp b/src/gui/update.cpp index 591dcaba9..e64dfb39b 100644 --- a/src/gui/update.cpp +++ b/src/gui/update.cpp @@ -243,7 +243,7 @@ bool CFlashUpdate::selectHttpImage(void) else ShowMsgUTF(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_FLASHUPDATE_NEW_NOTFOUND), CMessageBox::mbrOk, CMessageBox::mbOk, NEUTRINO_ICON_INFO); - SelectionWidget.exec(NULL, ""); + menu_ret = SelectionWidget.exec(NULL, ""); for (std::vector::iterator it = update_t_list.begin(); it != update_t_list.end(); ++it) delete (*it); @@ -343,8 +343,10 @@ printf("[update] mode is %d\n", g_settings.softupdate_mode); UpdatesBrowser.Filter = &UpdatesFilter; CFile * CFileSelected = NULL; - if (!(UpdatesBrowser.exec(g_settings.update_dir))) + if (!(UpdatesBrowser.exec(g_settings.update_dir))) { + menu_ret = UpdatesBrowser.getMenuRet(); return false; + } CFileSelected = UpdatesBrowser.getSelectedFile(); @@ -386,6 +388,7 @@ int CFlashUpdate::exec(CMenuTarget* parent, const std::string &) if(parent) parent->hide(); + menu_ret = menu_return::RETURN_REPAINT; paint(); if(sysfs.size() < 8) { @@ -395,7 +398,7 @@ int CFlashUpdate::exec(CMenuTarget* parent, const std::string &) } if(!checkVersion4Update()) { hide(); - return menu_return::RETURN_REPAINT; + return menu_ret; //menu_return::RETURN_REPAINT; } #ifdef VFD_UPDATE diff --git a/src/gui/update.h b/src/gui/update.h index 98122db86..487ff3eb8 100644 --- a/src/gui/update.h +++ b/src/gui/update.h @@ -53,6 +53,7 @@ class CFlashUpdate : public CProgressWindow std::string installedVersion; std::string newVersion; + int menu_ret; bool selectHttpImage(void); bool getUpdateImage(const std::string & version); From 9398e225379cf36e75ce07bb8f49a560c33cfb1e Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 19:46:37 +0400 Subject: [PATCH 32/69] locals: add extra hint for local sw update menu point Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/b2e3f2a19b7195a0b4657d7433c7cd59932a19c5 Author: [CST] Focus Date: 2012-11-16 (Fri, 16 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/locale/english.locale | 3 ++- src/system/locals.h | 1 + src/system/locals_intern.h | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/data/locale/english.locale b/data/locale/english.locale index 163dc7cdf..36b2bcc3e 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1035,7 +1035,8 @@ menu.hint_shutdown_rcdelay Enable deep-standby, if power button\npressed more th menu.hint_shutdown_real Enable soft-standby mode\nIf disabled, power button put box to deep-standby menu.hint_sleeptimer Set timer to put your box\nin sleep mode menu.hint_soft_restart Restart Neutrino-HD without reboot -menu.hint_softupdate_check In the Internet or local check for available updates +menu.hint_softupdate_check Check online update, download and flash firmware +menu.hint_softupdate_check_local Select and flash firmware from local file menu.hint_softupdate_expert Separate partitions from the flash read / write to the flash menu.hint_softupdate_expert_read Separate partitions (U-Boot, Splash, Kernel, SystemFS) from the flash read menu.hint_softupdate_expert_write Separate partitions (Splash, Kernel, SystemFS) write to the flash diff --git a/src/system/locals.h b/src/system/locals.h index 792767143..237eb94cf 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1063,6 +1063,7 @@ typedef enum LOCALE_MENU_HINT_SLEEPTIMER, LOCALE_MENU_HINT_SOFT_RESTART, LOCALE_MENU_HINT_SOFTUPDATE_CHECK, + LOCALE_MENU_HINT_SOFTUPDATE_CHECK_LOCAL, LOCALE_MENU_HINT_SOFTUPDATE_EXPERT, LOCALE_MENU_HINT_SOFTUPDATE_EXPERT_READ, LOCALE_MENU_HINT_SOFTUPDATE_EXPERT_WRITE, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 243d504ad..7d307bdb7 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1063,6 +1063,7 @@ const char * locale_real_names[] = "menu.hint_sleeptimer", "menu.hint_soft_restart", "menu.hint_softupdate_check", + "menu.hint_softupdate_check_local", "menu.hint_softupdate_expert", "menu.hint_softupdate_expert_read", "menu.hint_softupdate_expert_write", From 9968abbbf24744b10f0feec4c66b93da65a18cb5 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 19:47:25 +0400 Subject: [PATCH 33/69] gui/update.cpp: add local variable for update mode Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/2ac735d0ec439c011d154938794fad2ec94f8a27 Author: [CST] Focus Date: 2012-11-16 (Fri, 16 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/update.cpp | 18 ++++++++++++------ src/gui/update.h | 1 + 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/gui/update.cpp b/src/gui/update.cpp index e64dfb39b..86a30055f 100644 --- a/src/gui/update.cpp +++ b/src/gui/update.cpp @@ -287,9 +287,9 @@ bool CFlashUpdate::checkVersion4Update() CFlashVersionInfo * versionInfo; neutrino_locale_t msg_body; #ifdef DEBUG -printf("[update] mode is %d\n", g_settings.softupdate_mode); +printf("[update] mode is %d\n", softupdate_mode); #endif - if(g_settings.softupdate_mode==1) //internet-update + if(softupdate_mode==1) //internet-update { if(!selectHttpImage()) return false; @@ -383,8 +383,14 @@ printf("[update] mode is %d\n", g_settings.softupdate_mode); return (ShowMsgUTF(LOCALE_MESSAGEBOX_INFO, msg, CMessageBox::mbrYes, CMessageBox::mbYes | CMessageBox::mbNo, NEUTRINO_ICON_UPDATE) == CMessageBox::mbrYes); // UTF-8 } -int CFlashUpdate::exec(CMenuTarget* parent, const std::string &) +int CFlashUpdate::exec(CMenuTarget* parent, const std::string &actionKey) { + printf("CFlashUpdate::exec: [%s]\n", actionKey.c_str()); + if (actionKey == "local") + softupdate_mode = 0; + else + softupdate_mode = 1; + if(parent) parent->hide(); @@ -410,7 +416,7 @@ int CFlashUpdate::exec(CMenuTarget* parent, const std::string &) paint(); showGlobalStatus(20); - if(g_settings.softupdate_mode==1) //internet-update + if(softupdate_mode==1) //internet-update { char const * fname = rindex(filename.c_str(), '/') +1; char fullname[255]; @@ -432,12 +438,12 @@ int CFlashUpdate::exec(CMenuTarget* parent, const std::string &) ft.setStatusViewer(this); showStatusMessageUTF(g_Locale->getText(LOCALE_FLASHUPDATE_MD5CHECK)); // UTF-8 - if((g_settings.softupdate_mode==1) && !ft.check_md5(filename, file_md5)) { + if((softupdate_mode==1) && !ft.check_md5(filename, file_md5)) { hide(); ShowHintUTF(LOCALE_MESSAGEBOX_ERROR, g_Locale->getText(LOCALE_FLASHUPDATE_MD5SUMERROR)); // UTF-8 return menu_return::RETURN_REPAINT; } - if(g_settings.softupdate_mode==1) { //internet-update + if(softupdate_mode==1) { //internet-update if ( ShowMsgUTF(LOCALE_MESSAGEBOX_INFO, (fileType < '3') ? "Flash downloaded image ?" : "Install downloaded pack ?", CMessageBox::mbrYes, CMessageBox::mbYes | CMessageBox::mbNo, NEUTRINO_ICON_UPDATE) != CMessageBox::mbrYes) // UTF-8 { hide(); diff --git a/src/gui/update.h b/src/gui/update.h index 487ff3eb8..8d9a30266 100644 --- a/src/gui/update.h +++ b/src/gui/update.h @@ -54,6 +54,7 @@ class CFlashUpdate : public CProgressWindow std::string installedVersion; std::string newVersion; int menu_ret; + int softupdate_mode; bool selectHttpImage(void); bool getUpdateImage(const std::string & version); From 56c937e64e3053153a17ec9ef12788a519b62495 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 19:49:25 +0400 Subject: [PATCH 34/69] gui/update_settings.cpp: always enable both url and local dir option: local dir also used as target to download image from inet Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/cce9ced9f3c75965b77205b07b2365c0fe09a5d8 Author: [CST] Focus Date: 2012-11-16 (Fri, 16 Nov 2012) ------------------ This commit was generated by Migit --- src/gui/update_settings.cpp | 51 +++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/src/gui/update_settings.cpp b/src/gui/update_settings.cpp index 07de21474..fecfa1912 100644 --- a/src/gui/update_settings.cpp +++ b/src/gui/update_settings.cpp @@ -1,27 +1,27 @@ /* Neutrino-GUI - DBoxII-Project - + Update settings implementation - Neutrino-GUI - + Copyright (C) 2001 Steffen Hehn 'McClean' and some other guys Homepage: http://dbox.cyberphoria.org/ - + Copyright (C) 2012 T. Graf 'dbt' Homepage: http://www.dbox2-tuning.net/ - + 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 Library General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, @@ -70,32 +70,32 @@ int CUpdateSettings::exec(CMenuTarget* parent, const std::string &actionKey) { dprintf(DEBUG_DEBUG, "init software-update settings\n"); int res = menu_return::RETURN_REPAINT; - + if (parent) parent->hide(); - + if(actionKey == "update_dir") { const char *action_str = "update"; if(chooserDir(g_settings.update_dir, true, action_str, sizeof(g_settings.update_dir)-1)) printf("[neutrino] new %s dir %s\n", action_str, g_settings.update_dir); - + return res; } #ifndef USE_SMS_INPUT else if(actionKey == "select_url_config_file"){ CFileBrowser fileBrowser; CFileFilter fileFilter; - + fileFilter.addFilter("conf"); fileFilter.addFilter("urls"); fileBrowser.Filter = &fileFilter; - if (fileBrowser.exec("/var/etc") == true) + if (fileBrowser.exec("/var/etc") == true) strncpy(g_settings.softupdate_url_file, fileBrowser.getSelectedFile()->Name.c_str(), 30); - + return res; } #endif - + res = initMenu(); return res; } @@ -104,31 +104,37 @@ int CUpdateSettings::exec(CMenuTarget* parent, const std::string &actionKey) int CUpdateSettings::initMenu() { CMenuWidget w_upsettings(LOCALE_SERVICEMENU_UPDATE, NEUTRINO_ICON_UPDATE, width, MN_WIDGET_ID_SOFTWAREUPDATE_SETTINGS); - + w_upsettings.addIntroItems(LOCALE_FLASHUPDATE_SETTINGS); - + +#if 0 #ifdef USE_SMS_INPUT CMenuForwarder * fw_url = new CMenuForwarder(LOCALE_FLASHUPDATE_URL_FILE, g_settings.softupdate_mode, g_settings.softupdate_url_file, input_url_file, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); #else CMenuForwarder * fw_url = new CMenuForwarder(LOCALE_FLASHUPDATE_URL_FILE, g_settings.softupdate_mode, g_settings.softupdate_url_file, this, "select_url_config_file", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); #endif CMenuForwarder * fw_update_dir = new CMenuForwarder(LOCALE_EXTRA_UPDATE_DIR, !g_settings.softupdate_mode, g_settings.update_dir , this, "update_dir", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); - + CUrlConfigSetupNotifier url_setup_notifier(fw_url, fw_update_dir, updateItem); - + CMenuOptionChooser *oj_mode = new CMenuOptionChooser(LOCALE_FLASHUPDATE_UPDATEMODE, &g_settings.softupdate_mode, FLASHUPDATE_UPDATEMODE_OPTIONS, FLASHUPDATE_UPDATEMODE_OPTION_COUNT, true, &url_setup_notifier); - +#endif + + CMenuForwarder * fw_url = new CMenuForwarder(LOCALE_FLASHUPDATE_URL_FILE, true, g_settings.softupdate_url_file, this, "select_url_config_file", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + CMenuForwarder * fw_update_dir = new CMenuForwarder(LOCALE_EXTRA_UPDATE_DIR, true, g_settings.update_dir , this, "update_dir", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); +#if 0 w_upsettings.addItem(oj_mode, true); w_upsettings.addItem(GenericMenuSeparatorLine); +#endif w_upsettings.addItem(fw_update_dir); w_upsettings.addItem(fw_url); - + int res = w_upsettings.exec (NULL, ""); - + return res; } - +#if 0 CUrlConfigSetupNotifier::CUrlConfigSetupNotifier( CMenuItem* i1, CMenuItem* i2, CMenuForwarder * f1) { toDisable[0] = i1; @@ -149,3 +155,4 @@ bool CUrlConfigSetupNotifier::changeNotify(const neutrino_locale_t, void *) } return false; } +#endif From 7b7b257a336bda5d804c85d7a5fe067727300c7d Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 19:52:22 +0400 Subject: [PATCH 35/69] gui/update_menue.cpp: show both local and inet update menu points: i dont see reason why user should switch mode in settings before use one or other Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/b627c4767bceb6a43d955fee48447568e43b9c6e Author: [CST] Focus Date: 2012-11-16 (Fri, 16 Nov 2012) ------------------ This commit was generated by Migit --- src/gui/update_menue.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/gui/update_menue.cpp b/src/gui/update_menue.cpp index e5f38e0e9..ed09f2468 100644 --- a/src/gui/update_menue.cpp +++ b/src/gui/update_menue.cpp @@ -82,14 +82,24 @@ int CSoftwareUpdate::showSoftwareUpdate() //flashing CFlashUpdate flash; +#if 0 neutrino_locale_t up_text = (g_settings.softupdate_mode == 0) ? LOCALE_FLASHUPDATE_CHECKUPDATE_LOCAL : LOCALE_FLASHUPDATE_CHECKUPDATE_INTERNET; update_item = new CMenuForwarder(up_text, true, NULL, &flash, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); update_item->setHint("", LOCALE_MENU_HINT_SOFTUPDATE_CHECK); softUpdate.addItem(update_item); +#endif + + update_item = new CMenuForwarder(LOCALE_FLASHUPDATE_CHECKUPDATE_INTERNET, true, NULL, &flash, "inet", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + update_item->setHint("", LOCALE_MENU_HINT_SOFTUPDATE_CHECK); + softUpdate.addItem(update_item); + + update_item = new CMenuForwarder(LOCALE_FLASHUPDATE_CHECKUPDATE_LOCAL, true, NULL, &flash, "local", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_GREEN); + update_item->setHint("", LOCALE_MENU_HINT_SOFTUPDATE_CHECK_LOCAL); + softUpdate.addItem(update_item); //settings CUpdateSettings update_settings(update_item); - mf = new CMenuForwarder(LOCALE_FLASHUPDATE_SETTINGS, true, NULL, &update_settings, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf = new CMenuForwarder(LOCALE_FLASHUPDATE_SETTINGS, true, NULL, &update_settings, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_YELLOW); mf->setHint("", LOCALE_MENU_HINT_SOFTUPDATE_SETTINGS); softUpdate.addItem(mf); @@ -98,7 +108,7 @@ int CSoftwareUpdate::showSoftwareUpdate() //expert-functions CMenuWidget mtdexpert(LOCALE_FLASHUPDATE_EXPERTFUNCTIONS, NEUTRINO_ICON_UPDATE, width, MN_WIDGET_ID_MTDEXPERT); showSoftwareUpdateExpert(&mtdexpert); - mf = new CMenuForwarder(LOCALE_FLASHUPDATE_EXPERTFUNCTIONS, true, NULL, &mtdexpert, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + mf = new CMenuForwarder(LOCALE_FLASHUPDATE_EXPERTFUNCTIONS, true, NULL, &mtdexpert, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_BLUE); mf->setHint("", LOCALE_MENU_HINT_SOFTUPDATE_EXPERT); softUpdate.addItem(mf); From 164cc7c7a8251739480c0045efd7e1cadee4efe2 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Fri, 16 Nov 2012 18:37:48 +0100 Subject: [PATCH 36/69] deutsch.locale: update Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/4af0eed1c59a99fb6621adb9cb11678252fb5ed1 Author: vanhofen Date: 2012-11-16 (Fri, 16 Nov 2012) Origin message was: ------------------ - deutsch.locale: update ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/locale/deutsch.locale | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index f620f4e35..3df57cfcf 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1035,7 +1035,8 @@ menu.hint_shutdown_rcdelay Aktiviert den Deep-Standby, wenn der Powerknopf\nlän menu.hint_shutdown_real Aktivieren des Soft-Standby-Modus, wenn diese Option\ndeaktiviert ist, geht die Box in den Deep-Standby menu.hint_sleeptimer Zeitschaltuhr auf Ihrer Box aktivieren.\nDie Box geht dann in den Standby-Modus menu.hint_soft_restart Neustarten von Neutrino-HD ohne zu Rebooten -menu.hint_softupdate_check Im Internet oder lokal nach verfügbaren Updates suchen +menu.hint_softupdate_check Im Internet nach verfügbaren Updates suchen, herunterladen und installieren +menu.hint_softupdate_check_local Lokal nach verfügbaren Updates suchen und installieren menu.hint_softupdate_expert Einzelne Partitionen aus dem Flash lesen / in den Flash schreiben menu.hint_softupdate_expert_read Einzelne Partitionen (U-Boot, Splash, Kernel, SystemFS) aus dem Flash lesen menu.hint_softupdate_expert_write Einzelne Partitionen (Splash, Kernel, SystemFS) in den Flash schreiben From 2d33b7b2a038de25479683b76066aef65f9a90b1 Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Fri, 16 Nov 2012 21:39:02 +0100 Subject: [PATCH 37/69] Software Update: Added more files for network settings in settingsupdate.conf Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/07639c848868daadcbfddab0eac6b645fc08da13 Author: Michael Liebmann Date: 2012-11-16 (Fri, 16 Nov 2012) Origin message was: ------------------ * Software Update: Added more files for network settings in settingsupdate.conf ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/settingsupdate.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/data/settingsupdate.conf b/data/settingsupdate.conf index 9515124bc..d12e5b7e2 100644 --- a/data/settingsupdate.conf +++ b/data/settingsupdate.conf @@ -22,7 +22,10 @@ #------------------------------------------------------------------------------------------------ ## Sicherungen +/etc/hostname +/etc/hosts /etc/network +/etc/resolv.conf /etc/wpa_supplicant.conf /var/etc /var/tuxbox/config From fc4a856164dbed38d193480b1af4550ab7664a22 Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Sat, 17 Nov 2012 00:37:08 +0100 Subject: [PATCH 38/69] src/gui/update_menue.cpp: Fix assignment color buttons Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/1fc054758840dda89e90fc549511e81d662678eb Author: Michael Liebmann Date: 2012-11-17 (Sat, 17 Nov 2012) Origin message was: ------------------ * src/gui/update_menue.cpp: Fix assignment color buttons ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/update_menue.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/update_menue.cpp b/src/gui/update_menue.cpp index ed09f2468..c93a40ec5 100644 --- a/src/gui/update_menue.cpp +++ b/src/gui/update_menue.cpp @@ -93,13 +93,13 @@ int CSoftwareUpdate::showSoftwareUpdate() update_item->setHint("", LOCALE_MENU_HINT_SOFTUPDATE_CHECK); softUpdate.addItem(update_item); - update_item = new CMenuForwarder(LOCALE_FLASHUPDATE_CHECKUPDATE_LOCAL, true, NULL, &flash, "local", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_GREEN); + update_item = new CMenuForwarder(LOCALE_FLASHUPDATE_CHECKUPDATE_LOCAL, true, NULL, &flash, "local", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); update_item->setHint("", LOCALE_MENU_HINT_SOFTUPDATE_CHECK_LOCAL); softUpdate.addItem(update_item); //settings CUpdateSettings update_settings(update_item); - mf = new CMenuForwarder(LOCALE_FLASHUPDATE_SETTINGS, true, NULL, &update_settings, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_YELLOW); + mf = new CMenuForwarder(LOCALE_FLASHUPDATE_SETTINGS, true, NULL, &update_settings, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); mf->setHint("", LOCALE_MENU_HINT_SOFTUPDATE_SETTINGS); softUpdate.addItem(mf); @@ -108,7 +108,7 @@ int CSoftwareUpdate::showSoftwareUpdate() //expert-functions CMenuWidget mtdexpert(LOCALE_FLASHUPDATE_EXPERTFUNCTIONS, NEUTRINO_ICON_UPDATE, width, MN_WIDGET_ID_MTDEXPERT); showSoftwareUpdateExpert(&mtdexpert); - mf = new CMenuForwarder(LOCALE_FLASHUPDATE_EXPERTFUNCTIONS, true, NULL, &mtdexpert, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_BLUE); + mf = new CMenuForwarder(LOCALE_FLASHUPDATE_EXPERTFUNCTIONS, true, NULL, &mtdexpert, NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); mf->setHint("", LOCALE_MENU_HINT_SOFTUPDATE_EXPERT); softUpdate.addItem(mf); From 23a1ea4e7d5c535f1a367f9c4ba32d8213288c4f Mon Sep 17 00:00:00 2001 From: vanhofen Date: Sat, 17 Nov 2012 09:09:35 +0100 Subject: [PATCH 39/69] icons: new mounted.png, not_mounted.png Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/a4e480a124a28670bf565ff924703078e40f4b7e Author: vanhofen Date: 2012-11-17 (Sat, 17 Nov 2012) Origin message was: ------------------ - icons: new mounted.png, not_mounted.png ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/icons/mounted.png | Bin 215 -> 864 bytes data/icons/not_mounted.png | Bin 184 -> 858 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/icons/mounted.png b/data/icons/mounted.png index 7be710bc9cf0574d7923aac49603c679498c9289..c730d0f545f1d74feebaad09006949ebcd25655f 100644 GIT binary patch delta 833 zcmV-H1HSy%0pJFZ7#j!%0002scRlz3000JJOGiWi{{a60|De66laWste+P6)O+^RX z3lRteJMAe7hX4Qq?MXyIR7l6|mCtLOWe~?dGxKIQ&5vE}vFxP>1;s6M5NGO zJoQjKgjP!~_8{0pL61G82BCfpbe0c2x$WqPfFRMIWeaxA;Gt`syF@d|2BxDeW?jzJ*V`_L5Ftp;E z&eua3dp|hcJx%lVCIA^pc;N2O5Y%3zL0G%G_FU8Ef0{?96o8v6H<5t#x!<^b?e@^U z%p$4RK3oA55`gaKe_bR5wF0<#Z0w6qSy;aWhbMr$42YUyFz)uj=kyKg) zN>7?^HW_P=VPXJ$fA!7~khP2pKVRUlwHW*26W6vTvw zzdmH=&m9`=CO-ZQLG4atU>NT%&CuWYhuklnR6e0sjU#!z zuBlIY5D|z9GAWFmZ=wi-VycJ;W{OQI-)?@#-@or80e{SGu=M59P^FPUGU7pf)MBCn z(+LQwl$9Wgf2e|jOv3bg(+m_Ek+a?}ScjNL6&y|`DVPW;36dm5!VkYENVp{Rh zk00}7eV5qtA}7#jH*kEkO-TmRoH&7@cqF2UM8II8Q`rK-fv-{gGDH4W!R+Q zyT=6E{eymIk;TF6|HnPu2cANoKEQSbEcCW||JQ@_8`Y~f{e|%_I&f^`_3O=g00000 LNkvXXu0mjfs;`cV delta 199 zcmaFBcAas8L_G^L0|SFlq{3++B^uxp;`;ypf5sxl1q=);d3m=fDxR>hd7hcM(_yzJ zPyu5}kY6x^!?PP{Kn`btM`SSr1Gf+eGhVt|_Xj8#?djqeA~7{Nfq~JDP36Fe133o{ zEMa)aVKifhfrREk%Y}*_a|~GA86w>pjvhVAk>=3A(7bV@AoHBVOO`Y|FmNd4FyP=g wuvWaKn8ne7!H4URiQ?`l9(>Avd_Nf&9>s9n{~^)13}_F7r>mdKI;Vst0Ic^xx&QzG diff --git a/data/icons/not_mounted.png b/data/icons/not_mounted.png index b394ba62b06796c271709d065d00bcec8c17fb7c..30f909884a121106a00d48374871f4fb6e59cd03 100644 GIT binary patch delta 827 zcmV-B1H}Be0on$T7#j!%0002scRlz3000JJOGiWi{{a60|De66laWste+P6)O+^RX z3lRtgH8`h50ssI4=Sf6CR7l6|l|gSCRS?I2GjEaC&aSKW>`Q8*k|3KDDN!#RDj`n2 zl`qgrkxWbiLb(9vib}nM8d2p=zeJ@#1u21I2&m-XOFu%4qGaC;hqYZhj#MF)Tj%n2 zXW#zkKlA=G4_@0#Om2K|f8%{%2WY%v?B~F(1lXBhm~XV-ZNF0V-Y>mI|FFN40FBnw z7W+T#BO-_jik7PiAgGSs6%ayD1R47TMRoKqhz43$Tl5e6jRe5VFf%kLm|$us0W(MS z1uHW{HQ?r;&|GNFFhA%WkmosO20#K(6a@h8AmWG%W=_y@1w)4{f87jIMPmv0VEbFl zouGl+Yq#0k+hcWgb&Qz+#29fLw}@z6Csr?S*uoML=(Qn0kRNc}>c5tf+| zW1I+3#9=v44V43(?gUeZT2|x9 zk5Bk{f1klo2`Vbo^E!ykmdM?RCIEc$+2#zhdw1`VrYRerZg6~j3=S*TR#>^VGPQ5_ z(Js}ra;8K@#D+=%xc=VtnE=ru&E}f`R4Ntl(trQ!`{Q!1e|6S)_V+XD`316kB0w=r z$Ibct%P;ur&jSX7e-IH65QHqt$g=W~*EiP3fs3Nx%3D{+hu)$Q|tLArG6v%n%i_+8h9?f@(md zY%&!ktyXBaf7hd7hcM(_yzJ zPyu5}kY6x^!?PP{Kn`btM`SSr1Gf+eGhVt|_Xj9wLx6m!eUL%ZAXtD<;Y`b-ndclP>z}^tD?&6DH0zT9aRn(>|kIxFo8X8SEuDC Ppg|0tu6{1-oD!M Date: Sat, 17 Nov 2012 10:29:40 +0100 Subject: [PATCH 40/69] icons: add hint_mb.png Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/58a50668d432a2991b734ba28c139baf199fcd8b Author: vanhofen Date: 2012-11-17 (Sat, 17 Nov 2012) Origin message was: ------------------ - icons: add hint_mb.png ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/icons/hint_mb.png | Bin 0 -> 6454 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 data/icons/hint_mb.png diff --git a/data/icons/hint_mb.png b/data/icons/hint_mb.png new file mode 100644 index 0000000000000000000000000000000000000000..1bb508a8bff372afea2621f1c439809019a60dea GIT binary patch literal 6454 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 QegFUf07*qoM6N<$f<}$CY5)KL literal 0 HcmV?d00001 From 8cbf315be0cdeac77013e19264bdb23e216d4e6a Mon Sep 17 00:00:00 2001 From: OneOfNine Date: Sat, 17 Nov 2012 10:35:06 +0100 Subject: [PATCH 41/69] icons: improve border_lr.png, border_ul.png Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/6a1aac4c2dc5f64aea5b420759a5befd5c8a7711 Author: OneOfNine Date: 2012-11-17 (Sat, 17 Nov 2012) Origin message was: ------------------ - icons: improve border_lr.png, border_ul.png ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/icons/border_lr.png | Bin 692 -> 3556 bytes data/icons/border_ul.png | Bin 713 -> 3913 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/icons/border_lr.png b/data/icons/border_lr.png index 450d5b6f5efa34a9c9ef53ecdf12948b00227e1f..69205da355f76f10bb5e6179adf0f159dc35718e 100644 GIT binary patch literal 3556 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 b`OVcDP_r8IrxWDVj{(-^4rWhGd{X}hYp6F@ delta 680 zcmV;Z0$2Uy8?*(G7=Hu<0000GwrUFi001yhOjJex|NjJT1Ox&Er2_@HjwK2St{4`! zDk#9&tSqz|90ZgE#4apMNz~+0RQ$>`WMbsu`~>9y0004WQchCz=oJu8CelC3lopPb1>kf0b={k_6=mtr@t5FoC5s+m1lyRaR9j(WHN9h zNgxOlBakEzgoy(XBoKs&38W_wgoz)JoInsJenDyiL74ahi3tQ@Vg}L@2*Si1Bqb1p z2@9ko5QGUEB!46jgb4=(5{d+Y1OwPaQ795H2`sAPML_~OQC8J)o+}EF39Lr2AOV#q z4`4|6fJ%e`ktnOpJrDeZ8DaBs_Bakf0WUFt*8p%6So~cya1*HYS zC=e#%z)8e`yWQkHfqx(gz)q0BobP@j<3Ulb^XX8TC2|&+@6Gz~iM0|uC`XXHiD?j| z0wZt}(|@x{14AMN?(bY+64S#)YJ`X9CuazVfDaFh2@=e{$;!HWO85oyvDtrq_1jk2 zKPU*U-)-37}3 zhkL81wzqe7tGl{qcHKuRb#--hJEeO6+U5 z*;lvuJl8_vTH5~Jb{v4cz%Kyr2VR@=S{D(Y-s!fPo(`EA>e)B-l%;1^to8fazHR-0 z^nsiL4= zRq1bj{x{U`Z$;d?-yVP0i;J_ttQUdTN3{{=XSr1v+Qqyj%uv&e+B*=_&1t<)gcqKa$$QdnF`dD$U3qoXIQ%~?q{Qe5a88jI1Uriie z{ZR(m8?S5<&AX$@dbg|JZZ`R!W>Z2{I_`cx1AG|x;UoZfJ@8lnufC>OwC}7`%$zZ_ zRdvhu#Og^Lvj2MqMXQmI7B_~oT$h~rT@6TJ47F~TCmId?>gJ}bMG?RX@N2;FaRRUi z{F8y3u9%&*zp`hKv7ix%$xzALDPOkvo?7`yUv-Y_*3=lGuPU@~}pn{&r|8E0OlWi2lc0=<1{ z$?VPL6u8~9U}jtZ{Bi*7FBG(F43W3>s4`yF?;h!y3&#RFsnb7%! zP#db8a#^wUMZ57ZVA}q-?0y`M=0KilwY2FP=qhk>EC9q+!I!k+eajbLr4?M|_dn}( zx?9D$&RCpqbdCbnOF{YK{h)7%8i?@SR!g62w?*N3;1OJh(inUIJ2Q;#yjVA2AI(7F z{T0|)@dn6=$nj1`kA$H#RW0yo;Dt2jNYx`2JK;&U{~p~%&e~%7`yeDG2zs_;tG~rM z_Df4upKG`ILainzx?O;O06vwb^`{0v6P+J2!PXxu_hh$AHHyfAO2QC|NZcKvvei-3 z11q`i71*nA#@(orFbUGPZ?98Wm4>xiiz4}6rz2n4+@!6#0UQB-havik(=x!_+?Z?s z{Vh9ode3({JRXLG)=FMPO|K##u`(s8*qq<)&BfMdVtev8Bhp(JpVAtUUhi1LT3+mS zlFVsa0)0S8t`_X z+pU`c+moLyf36?;^FBHwvfLgaGE8fNChmk|6J&vc2ydF3BQK&WVJLOi3XcGP3p8+5 z$XsFxyz+v?dcN=X_%oka4+i{haGme}3w&!7rowCDsf}EtaBp!fR8G?$D5%Gu86m* zP0(4Gpa$f+Qc2!iF6+F=CBPp7?*@t&F93;wOYAHYB=Yw2hEhpxbRfJ8_ygcKFC-?U z0l@Ag0|q5!)_F+1{&XgM2sb>WbWsAZ8%oki5F(HqaIFWS?3nOJ-W(M!CIGsY-SbFg zKNIqv3EnX;0(X0JRJ>>ykV%1SP|<8iR`oN%00&DYxv5;%%9c5LFEDp801(BamPc&5 zuC(Bfqlwyj7EG7{e#V8Uc3xz!2VvJTA(aX0(O`s2h2TCP# zbGfV)V-`IKyE0FhxCs)VtIBs;EuN~^dnM)!K@bb%MYv&ZjvMFabzWqT_X+RWZA?gI zf_f%n#FOSgPjR0Jb_% zWG#yLVi2xn+J{%f>8uCj9npU_u%II%JfH#ZQ~~7WnL1 z6rEfNLs@M!RJVMBj!1;lm=GsxH3{ef}!D3O~;>s3F9)$Ppq+?FcfGo66uirHQevpGhz~Oakn=4@` zM;i^bA{f;k6S7Lyavp?RDitj|5bg%&#*cxc_))=C(fry7mk z*vqUzFrWvDMR{ALqGgw?-35GL(mo+I08vKDH+`%AxTkR8?ajyH`eCtu6W&H*COo)q zZEHCUWwqH<5m6(OY1txv`v0ekMS17Kg3gIlJQF^M8@RO#s-aocg8IVHb4U%iA9&!D zwe^)Slqc(Ttm%yuDJq;f|<@1W0 zPw$NkQ8!ATh-JtC$;JdFWz##x!!^%@W3Hn=)3SvRMl>%X*Of}--S&4gL}yOwk#UyH zpApVFy>I&H=)O(WjmKOSHM3+b4t4!QB6?M!AU+IwGf3lj$NbS4ghxFSfYE(||BrQXmJE9zshzN& z6Gs^^LHGGybbR6j1IGCxiH?ts9;&N0K3lDt)keehZI4p6*fK+$iX!zz$`{hsE7RO~ zRe^@Jil2sFhPi0f(`GGaYySRmN()y?zOU(-@N~0j5m6bUY!UBeL|Bg^*4?xTZQN7z zIxYZ?D{!jY73(G~9gYPesv@*i~dYzWF z;D%U+<1|6fE1WtRMQlcq#=S?9qSg3|m$tR)=h$iBW|^9lv^^6JHB~o0@0g%HZk`7S z@$W`N+p4nKY^tB1?C%(2x|%cqya@dJhP8a7(O}k?-u%hu+iLJ5pVy*@qm2e$`HwSM ziGV)={-Unh_~&X>R-4VODfkkvLeON$omdyp84-E3TGbzQIs$wH`06lBP6NOO@W~GF z_03IruGJ#vl&|reK03%&CMUR4rJ<_--D=56H^t)J2BlUA?+cAa9IV z-+ub135ze>PjRnCM4oN8IZ~@h$2qJ|0MD>9qQIAdLKm)orq#-y>~{6Ce4cVHC&oKy z+3w-Y>I#F)9twT$qW@p4D%A7*8rb0u>UnPGkV*?f?OU1G~@TW z#1!6AzUDv>;hW8-K2obmHHsRzmjHc;ofiRq3HYRe%jb>Z$MSi7Wj-%^^LZ_ZNK2Iy zoetmcboBo^9oe)Nbq(ka&*1hbCr=B20I$VO&v?aRE~hun&vSLLD24c8yX3)DIc2SW zZF7_V*xZz^i_8DAByvZ6_sl_>173maaQ{Vtay(sGd_UH|JxQG@{u|%{@5Ah<=nqp_ z2!L1PIwO8{Mudtn>5!3&1;ouK`U1ngh-I#m{c2xG_Bs1J`q5%zm8n z_gBL8|CapsoQ%Q#jZ#~y_=qA0Tn=36ThA-}aleO~OZmG#O>Z!Lg?gp{fa@0xd=k<& zef8z!djh929suHeVumwcsyUT0`hclqAk+5=PXU+$FqJ6)Qvjwi1z-xmRHgvD^yL2m X2&ZEi@G`WMbs|Ur%=c0004WQchC1R9M5c*ga0eFciRXCnuk7qfy|BB+pk_roaQ0fC!87p#~cqSf`N`Wmy9t zQU4_XL{jXk)qfoVx`Zi`qN*+qelR_aFfXc)25dkOIHCccHzZh$H^G?E?)`U8AxzWs z<@#012%a#`y=%c00gS}57MCX}6*48I49r9WV(A0IOi&<@!c2r6h|pCcg`0?>zyw$c zoyL*I*I^*+1is?V!@5xDnjVLhph3WSMj2m&K5;O>Nq?9J%1D@ik+3cWov;9%urD^5 zumPEHZYPy+0F`hj43TgFkpQNoKLG%L0-E&R1O&W^9)#=!2z&|EKU6d~(E^=pGtFGx z&A)|tzO^3su9%5rOMv3No?fwH{MxQPx_`|QaCXrcwXYJac*no!Mq$nNpI1{v!a z)q|gJ8-HL4HGL7~BviZE+&+IDo&5$*4B*WLa6)w(;QDlQcR(;P010fFV8RE$M04EB z4)7iz?QCs9#9Q6ndRVTdX0C2{#d#9on)W3K;3kyt4<|tZCqV+<8;B=C11muTE5QI} zf&t6~2N($sFcK^74@?qFFeaE_Og3=AIl%?z1RD$qHW(6o&?oqyPs{*a jVg?YiK`{46lfR5#fHG-+35m)L00000NkvXXu0mjf%NQEZ From 420644bd437fe45dbdabce112808f8d9f9e6eeb5 Mon Sep 17 00:00:00 2001 From: OneOfNine Date: Sat, 17 Nov 2012 10:42:01 +0100 Subject: [PATCH 42/69] icons: improve numericpad.png Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/51b6928d03e486a0f51b886cc93f8c785e5f46e0 Author: OneOfNine Date: 2012-11-17 (Sat, 17 Nov 2012) Origin message was: ------------------ - icons: improve numericpad.png ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/icons/numericpad.png | Bin 646 -> 14341 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/data/icons/numericpad.png b/data/icons/numericpad.png index 101b57842826912d31532ff1e6bdc9f203d73193..ca445e4e46d9941f694679582db80d297658c1ab 100644 GIT binary patch literal 14341 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 D{JkL_ literal 646 zcmV;10(t$3P)005f-0{{R3-@F0<00006P)t-s00000 z$jCGMt_uJF0y{}WK~zY`<<-Gz+dvQi(3NE*2&zPGfi#gnK|&CEs(k7>pWtH1Ie*YS zwLKVewK3Gc;7{06h}pvVz@+1C1HgaUn7(vtQCPIw$4{;>I z&8E_rPCg-?`aK9QicDiUB0O$&@XG>n=97Vi0ezWIA}ieFEQf?itsZADO}Mk7GgH#@ z?-JYI>_K3kgC7|dV`@dyU>ugF>&_7a3eP#rO!#a27?uVvxSUt^iEDD!^0yec7;rfQ z=TBgdTX%8-*bkn>7h^=R%AfaQ2jzxpbC!&f$N3WC(q?!QOGL$YLm%PL4T@?1>tDX=CZ232&~6 zS2lW2<1ck)&P4m(PiV+T^jF_!vcc$Xd|Cl+HVdWy{O9u?;Ao6k6cL0EzUdpG{q=s@ zBTOKCaI3^+xP3cSgrNeQY4o#dB`K#s{312x+coA~uM@xp;joVw>I+*JKl@B|cCpUD zS&@ggwl5g`TSvw`^rdSay`+OJdUX$m&|o_Vt+<2GwEq~gb+Riu>?Z#qcG?VP5rgH= ggVo8lw|fvC0ROvl|A6wQ6#xJL07*qoM6N<$f+L$GE&u=k From c6fffb4c81caf55723675be0ac20a531bf8f3c34 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Sat, 17 Nov 2012 11:33:46 +0100 Subject: [PATCH 43/69] icons: install hint_mb.png Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/8183e41d331c5165ea3c5d6033e8d3536f48e82a Author: vanhofen Date: 2012-11-17 (Sat, 17 Nov 2012) Origin message was: ------------------ - icons: install hint_mb.png ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/icons/Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am index 4dd2afa5f..4b256a96e 100644 --- a/data/icons/Makefile.am +++ b/data/icons/Makefile.am @@ -94,6 +94,7 @@ install_DATA += \ hint_keys.png \ hint_language.png \ hint_manage.png \ + hint_mb.png \ hint_media.png \ hint_movie.png \ hint_network.png \ From 41108bafca19e98e8a98824874a77812207d0f3f Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Mon, 19 Nov 2012 02:32:06 +0100 Subject: [PATCH 44/69] Software Update: /var/etc/update.urls is excluded from saving - Message 'Setting takeover successfully...' removed Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/04e71239f2b4a68ab11205f02d9f9702dd232003 Author: Michael Liebmann Date: 2012-11-19 (Mon, 19 Nov 2012) Origin message was: ------------------ * Software Update: /var/etc/update.urls is excluded from saving - Message 'Setting takeover successfully...' removed ------------------ This commit was generated by Migit --- data/settingsupdate.conf | 1 + src/gui/ext_update.cpp | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/data/settingsupdate.conf b/data/settingsupdate.conf index d12e5b7e2..45eafcac9 100644 --- a/data/settingsupdate.conf +++ b/data/settingsupdate.conf @@ -33,6 +33,7 @@ #---------------------------------------------------------------------------------------- ## von der Sicherung auszuschließende Dateien, gekennzeichnet durch ein vorangestelltes - #---------------------------------------------------------------------------------------- +-/var/etc/update.urls -/var/tuxbox/config/cables.xml -/var/tuxbox/config/encoding.conf -/var/tuxbox/config/providermap.xml diff --git a/src/gui/ext_update.cpp b/src/gui/ext_update.cpp index 2e0215c82..7e4d430e4 100644 --- a/src/gui/ext_update.cpp +++ b/src/gui/ext_update.cpp @@ -155,7 +155,6 @@ bool CExtUpdate::applySettings(const std::string & filename, int mode) return false; } } - ShowMsgUTF(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_FLASHUPDATE_UPDATE_WITH_SETTINGS_SUCCESSFULLY), CMessageBox::mbrOk, CMessageBox::mbOk, NEUTRINO_ICON_INFO); WRITE_UPDATE_LOG("\n"); WRITE_UPDATE_LOG("##### Settings taken. #####\n"); if (mode == MODE_EXPERT) From a590d8321e5d75bd01ef40b7e2dd3201471e5bca Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Mon, 19 Nov 2012 17:58:24 +0100 Subject: [PATCH 45/69] src/driver/streamts.cpp fix segfault Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/af7b6d7a986f612f5009781b1192abbd2b60c0fd Author: Jacek Jendrzej Date: 2012-11-19 (Mon, 19 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/driver/streamts.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/driver/streamts.cpp b/src/driver/streamts.cpp index bfbb5c576..31459da81 100644 --- a/src/driver/streamts.cpp +++ b/src/driver/streamts.cpp @@ -346,8 +346,8 @@ bool CStreamManager::Parse(int fd, stream_pids_t &pids, t_channel_id &chid) } } } - if(CRecordManager::getInstance()->RecordingStatus(tmpid)) { - printf("CStreamManager::Parse: channel %llx recorded, aborting..\n", tmpid); + if(CRecordManager::getInstance()->RecordingStatus(chid)) { + printf("CStreamManager::Parse: channel %llx recorded, aborting..\n", chid); return false; } #endif From 629cc6837e32b567017767bd7137d1845a9f7fb3 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 19 Nov 2012 18:13:35 +0100 Subject: [PATCH 46/69] src/driver/streamts.cpp: fix linefeed Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/fc2c89c664965691bfffaae551ca15b6d0bc3927 Author: vanhofen Date: 2012-11-19 (Mon, 19 Nov 2012) Origin message was: ------------------ - src/driver/streamts.cpp: fix linefeed ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/driver/streamts.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/driver/streamts.cpp b/src/driver/streamts.cpp index 31459da81..1b0e7f15b 100644 --- a/src/driver/streamts.cpp +++ b/src/driver/streamts.cpp @@ -346,8 +346,8 @@ bool CStreamManager::Parse(int fd, stream_pids_t &pids, t_channel_id &chid) } } } - if(CRecordManager::getInstance()->RecordingStatus(chid)) { - printf("CStreamManager::Parse: channel %llx recorded, aborting..\n", chid); + if(CRecordManager::getInstance()->RecordingStatus(chid)) { + printf("CStreamManager::Parse: channel %llx recorded, aborting..\n", chid); return false; } #endif From 49e7d1904d0dec1b346a311bbf336452016e78d4 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 19 Nov 2012 22:33:50 +0100 Subject: [PATCH 47/69] yweb: fix remotecontrol; remove dependency from MAC Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/8131a25af15413755755bc86b7db551440c583f3 Author: vanhofen Date: 2012-11-19 (Mon, 19 Nov 2012) Origin message was: ------------------ - yweb: fix remotecontrol; remove dependency from MAC ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- .../tuxboxapi/coolstream/controlapi.cpp | 57 +++++++++-------- .../tuxboxapi/coolstream/neutrinoyparser.cpp | 61 +++++++++---------- src/nhttpd/web/Y_Version.txt | 4 +- 3 files changed, 58 insertions(+), 64 deletions(-) diff --git a/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp b/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp index dfc1c5118..036cf3809 100644 --- a/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp +++ b/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp @@ -595,44 +595,43 @@ void CControlAPI::InfoCGI(CyhookHandler *hh) void CControlAPI::HWInfoCGI(CyhookHandler *hh) { unsigned int system_rev = cs_get_revision(); - std::string boxname; + std::string boxname = "Coolstream "; static CNetAdapter netadapter; std::string eth_id = netadapter.getMacAddr(); std::transform(eth_id.begin(), eth_id.end(), eth_id.begin(), ::tolower); - if("00:c5:5c" == eth_id.substr(0, 8) ) - boxname = "Coolstream "; - else if("ba:dd:ad" == eth_id.substr(0, 8) ) - boxname = "Armas "; +#if HAVE_TRIPLEDRAGON + boxname = "Armas "; +#endif switch(system_rev) { - case 1: - if( boxname == "Armas ") - boxname += "TripleDragon"; - break; - case 6: - boxname += "HD1"; - break; - case 7: - boxname += "BSE"; - break; - case 8: - case 9: - boxname += "Neo"; - break; - case 10: - boxname += "Zee"; - break; + case 1: + if( boxname == "Armas ") + boxname += "TripleDragon"; + break; + case 6: + boxname += "HD1"; + break; + case 7: + boxname += "BSE"; + break; + case 8: + case 9: + boxname += "Neo"; + break; + case 10: + boxname += "Zee"; + break; - default: { - char buffer[10]; - snprintf(buffer, sizeof(buffer), "%u\n", system_rev); - boxname += "Unknown nr. "; - boxname += buffer; - } - break; + default: + char buffer[10]; + snprintf(buffer, sizeof(buffer), "%u\n", system_rev); + boxname += "Unknown nr. "; + boxname += buffer; + break; } + boxname += (g_info.delivery_system == DVB_S || (system_rev == 1)) ? " SAT":" CABLE"; hh->printf("%s\nMAC:%s\n", boxname.c_str(),eth_id.c_str()); diff --git a/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp b/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp index a4ba3bce3..4498f8064 100644 --- a/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp +++ b/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp @@ -647,48 +647,43 @@ std::string CNeutrinoYParser::func_get_partition_list(CyhookHandler *, std::str return yresult; } //------------------------------------------------------------------------- -// y-func : get boxtypetext (Nokia, Philips, Sagem) +// y-func : get boxtypetext //------------------------------------------------------------------------- std::string CNeutrinoYParser::func_get_boxtype(CyhookHandler *, std::string) { unsigned int system_rev = cs_get_revision(); - std::string boxname; - static CNetAdapter netadapter; - std::string eth_id = netadapter.getMacAddr(); - std::transform(eth_id.begin(), eth_id.end(), eth_id.begin(), ::tolower); + std::string boxname = "Coolstream "; - if("00:c5:5c" == eth_id.substr(0, 8) ) - boxname = "Coolstream "; - else if("ba:dd:ad" == eth_id.substr(0, 8) ) - boxname = "Armas "; +#if HAVE_TRIPLEDRAGON + boxname = "Armas "; +#endif switch(system_rev) { - case 1: - if( boxname == "Armas ") - boxname += "TripleDragon"; - break; - case 6: - boxname += "HD1"; - break; - case 7: - boxname += "BSE"; - break; - case 8: - case 9: - boxname += "Neo"; - break; - case 10: - boxname += "Zee"; - break; + case 1: + if( boxname == "Armas ") + boxname += "TripleDragon"; + break; + case 6: + boxname += "HD1"; + break; + case 7: + boxname += "BSE"; + break; + case 8: + case 9: + boxname += "Neo"; + break; + case 10: + boxname += "Zee"; + break; - default: { - char buffer[10]; - snprintf(buffer, sizeof(buffer), "%u\n", system_rev); - boxname += "Unknown nr. "; - boxname += buffer; - } - break; + default: + char buffer[10]; + snprintf(buffer, sizeof(buffer), "%u\n", system_rev); + boxname += "Unknown nr. "; + boxname += buffer; + break; } boxname += (g_info.delivery_system == DVB_S || (system_rev == 1)) ? " SAT":" CABLE"; diff --git a/src/nhttpd/web/Y_Version.txt b/src/nhttpd/web/Y_Version.txt index 770a0d8f8..e8859d88d 100644 --- a/src/nhttpd/web/Y_Version.txt +++ b/src/nhttpd/web/Y_Version.txt @@ -1,4 +1,4 @@ -version=2.8.0.30 -date=18.08.2012 +version=2.8.0.31 +date=19.11.2012 type=Release info=Port Coolstream From 07320a4ab2c6b7ac47a18706e7e0487d32cec2fb Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Tue, 20 Nov 2012 13:21:33 +0100 Subject: [PATCH 48/69] src/gui/mediaplayer.cpp: fix memleaks when using CMenuForwarder Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/ed8734e2b9034ae4ad072db9f68dc8a80daee13b Author: Jacek Jendrzej Date: 2012-11-20 (Tue, 20 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/mediaplayer.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/gui/mediaplayer.cpp b/src/gui/mediaplayer.cpp index 62712ee6a..738926d1a 100644 --- a/src/gui/mediaplayer.cpp +++ b/src/gui/mediaplayer.cpp @@ -141,7 +141,9 @@ int CMediaPlayerMenu::initMenuMedia(CMenuWidget *m, CPersonalizeGui *p) CMenuForwarder *fw_inet = NULL; CMenuForwarder *fw_mp = NULL; CMenuForwarder *fw_pviewer = NULL; + CPictureViewerGui *pictureviewergui = NULL; #if ENABLE_UPNP + CUpnpBrowserGui *upnpbrowsergui = NULL; CMenuForwarder *fw_upnp = NULL; #endif CMenuWidget *moviePlayer = NULL; @@ -170,11 +172,13 @@ int CMediaPlayerMenu::initMenuMedia(CMenuWidget *m, CPersonalizeGui *p) fw_mp->setHint(NEUTRINO_ICON_HINT_MOVIE, LOCALE_MENU_HINT_MOVIE); //pictureviewer - fw_pviewer = new CMenuForwarder(LOCALE_MAINMENU_PICTUREVIEWER, true, NULL, new CPictureViewerGui(), NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); + pictureviewergui = new CPictureViewerGui(); + fw_pviewer = new CMenuForwarder(LOCALE_MAINMENU_PICTUREVIEWER, true, NULL, pictureviewergui, NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); fw_pviewer->setHint(NEUTRINO_ICON_HINT_PICVIEW, LOCALE_MENU_HINT_PICVIEW); #if ENABLE_UPNP //upnp browser - fw_upnp = new CMenuForwarder(LOCALE_UPNPBROWSER_HEAD, true, NULL, new CUpnpBrowserGui(), NULL, CRCInput::RC_0, NEUTRINO_ICON_BUTTON_0); + upnpbrowsergui = new CUpnpBrowserGui(); + fw_upnp = new CMenuForwarder(LOCALE_UPNPBROWSER_HEAD, true, NULL, upnpbrowsergui, NULL, CRCInput::RC_0, NEUTRINO_ICON_BUTTON_0); #endif // media->addIntroItems(NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, usage_mode == MODE_AUDIO ? CMenuWidget::BTN_TYPE_CANCEL : CMenuWidget::BTN_TYPE_BACK); } @@ -221,6 +225,10 @@ int CMediaPlayerMenu::initMenuMedia(CMenuWidget *m, CPersonalizeGui *p) res = media->exec(NULL, ""); delete media; delete personalize; + delete pictureviewergui; +#if ENABLE_UPNP + delete upnpbrowsergui; +#endif setUsageMode();//set default usage_mode } From 7783407c0cce007392b0c3fc7c3b55f6aa2b532a Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Tue, 20 Nov 2012 19:28:28 +0100 Subject: [PATCH 49/69] src/nhttpd/web/Y_VLC.js: fix vlc version parse Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/e111712fc63c914da53e3a0c5cbf9e801e67be00 Author: Jacek Jendrzej Date: 2012-11-20 (Tue, 20 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/nhttpd/web/Y_VLC.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/nhttpd/web/Y_VLC.js b/src/nhttpd/web/Y_VLC.js index 8a594459a..90f007a74 100644 --- a/src/nhttpd/web/Y_VLC.js +++ b/src/nhttpd/web/Y_VLC.js @@ -51,14 +51,15 @@ CyVLC.prototype = { return words[0]; } else - if(navigator.plugins) { - var plug = navigator.plugins['VLC multimedia plugin']; - if(typeof plug == 'undefined') - var plug = navigator.plugins['VLC Multimedia Plugin']; - if(typeof plug == 'undefined') - var plug = navigator.plugins['VLC Multimedia Plug-in']; - var ex = /^.*[vV]ersion [\"]*([^ \"]*)[\"]*.*$/; - var ve = ex.exec(plug.description); + if (navigator.plugins && (navigator.plugins.length > 0)) { + var name = "VLC"; + for(var i=0;i Date: Tue, 20 Nov 2012 21:09:46 +0100 Subject: [PATCH 50/69] icons: rework btn_*.png Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/d63800351eca4653afda707fbf8a7e5843c0ae1b Author: vanhofen Date: 2012-11-20 (Tue, 20 Nov 2012) Origin message was: ------------------ - icons: rework btn_*.png ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/icons/btn_record_active.png | Bin 818 -> 601 bytes data/icons/btn_record_inactive.png | Bin 741 -> 591 bytes data/icons/btn_stop.png | Bin 586 -> 484 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/icons/btn_record_active.png b/data/icons/btn_record_active.png index 68abcabfeb8cb6195ae96f5699d86cc293626d0c..7d4b26252eb1dc928be49368cded33d64e1e4fbb 100644 GIT binary patch delta 587 zcmV-R0<`_I2H6CV8Gi-<001BJ|6u?C00v@9M??VJ0NMcDx;+Oz00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-pq6buj&vEm(20005zNklV{+RJ2U%-@^83)Fy=<5d$_h=AJch1s-HtsINJ_F*k;)El)3 zNGsI}tM6AaBG^8R2x0{hi{0yuMXVvR5tV9%M!k^=fO8I21wi{S#`FP3@?OMXj9|pz zoC6>N@Xn(sXn&5=Uw3%8yv)VVO#nWX%e=jDllIwjM1>et!8^Y%;Ie#!5CY}z-+20Z zkrTb%!0)y7b_IBaYT}2yohSRiY1C;Mn^`7VoL}C@Are$^v+3$Ir2J1v z_+MDaVmgh(d>XIiBu0~&wRH{U4Gq;o`-MSFT*SdiClxYk+9Y+O=!fuUorr-MWn%H*VUrY4hgI+qP}nzJ2?S z9XodJ+_?*gcJ11|d-wmPOAj8{cktlBLx&EXJbCiesZ*y zzI^%W)vMR8UAuAP#{K*E-@SWx@yRqMU_9BE1o;L3rwB0gsnv)Bjp8iuh%9Dc;5!V$ zjK}j=qyPo~dAc};NJyF zSZ(Rwk29;;22S8#9`;G-Z(+8m8_B{pEa^B>MQ;u7_;=q_Fs?Z$@Bgak~k5k zCMFX7{ZFZZ%h$~Oud==>*LoV(Jkd?cjW0^y8Q8R9iRO)$tsmXyPrST)-Kpe#ON~B= z3eL32nZ06DSvtd0|8)XzLFtIx}RdPPlt#GcY6=JYD@<);T3K0RYGyr>Ot{ diff --git a/data/icons/btn_record_inactive.png b/data/icons/btn_record_inactive.png index bcb79cb8fdab09e50fbd0b0e1b7ae1ad54dd8810..54c109af792497bd24df0d1aeeb9f0a16d64bc68 100644 GIT binary patch delta 577 zcmV-H0>1s_1;y^D;S zoWXA5Ll%V#MC8J0;yy}68GZnNAR@m7QCqkpe}a$(M1X=81%FEhDM?`wfsPn%cPGUe z13^R~BRy%F_jcawJhS+A@eR-gQl3_)z;Xn1=bCeAtKE7M`|#i}?H~2K5svJtIzi~dnR6#(ZPstSOPVT>6Aj1;|y!5G1a!8r#&1mK-V zQP2X@Gt+clcYm0jodsYp81Q9xm+bPA=vj=a;GMq}aCtF72!UFy#?rebN~O}oZ?oB? zUazy>TPKVHc1m!0F~L0xiqh$H?vZb*TrSgYzvBCkZ{&GCu}}zjhk8XrpwVbNy7`w2 z3k(J)jIOS5{;t5-La_q<>-U}gJR{GqA6f_mf-1+yUw9=dPAIW#D$%I4-L zvMhT*zPPxc*Xxla3D(L(0RYv&a5!XbZH?`nZL%yQ%QCh;Z?W=Wh2d~W`l3!8$A8>G z?g$|imnOn!^oxy;8?3Iba(;e}F@_{bn4h0#W~PdW;PX2IxpSbPA)q3NwNxurlIImv z16C|i96B>qDiOt&5CY!c9@43IKCMhw{wYM>1-!eSBr*b)`$zr%jr058=F$2aL|XS@ P00000NkvXXu0mjf$i4oK literal 741 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!6%)r1HuVsG}Lt5Hz>7wE_WIQ+{-rl~xzW)CH2@@tvoH%j9#7Pq; zPXdC;lP6CBVGx))b?UTf)20K_^yxEZ%$PZI=B!z>=FFKhZ{EE5^X4sDxM0zuMT-|N zUa?}u%9SfuuU@?dh}NuGyLRomb?Y{6Sif=O#!Z_xZQi_j+qP}nw{PFEW5>>&J9h!m zu3fu#?>=~7-+==M4jw#s=+L2)Cr_R_b?Wr#(`SI_%$c)i&z?JX?&8IZmoHzwdiCnH zYu9evxN-mf{de!)Ro-g&3=DVmk|4j}|3m?X=CJ8Efm%2VJR*x382Ao@Fyrz36)8Z$ zpPnv`Arg|T2jjgD1xOrtc)$8vRQJ@RAeSq?3tg3YTAJSNdcj>1dhs~#l66jdE=sv5 zOyN9d|I%!Gag|)=mOZX|{4Y+NJeDdU*>`nv^}>8L8|lN|qNUrjb64K!5x+Qdde*dc z-?9(SZ9UZa{`&oimoxJY9uYE=-SFx~=#sl@ng5!7zV!O?PY;@JwDKP7WG2HT-5ob)t6e_mRsT!3a}&4v#{j{JFTXGD)Q-QK z#>n;H_uRL4&V7?v&~Vv6GGDFqECcJL4RbOkh23s!sAA6k^|R`s{z{$6iHf|RCvr11 dOez1*Sa&_+uAqU!PhcQ0c)I$ztaD0e0syAohCToQ diff --git a/data/icons/btn_stop.png b/data/icons/btn_stop.png index fa8ceeb6ac94663433ccfc815ace1174e1303c97..319ed8d9db680cfe939a2e520b5fa79c634e448a 100644 GIT binary patch delta 469 zcmV;`0V@8=1mpvd8Gi-<001BJ|6u?C00v@9M??Um00aO8e1Puk00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-pq6bmgV7)hGh0004TNkl!H-=O2JEQ1G%^0v8b&pS(XQszLQ4_Wawts2BA(0!1~bxc+*Ls1kaJDjF2k zKv?$@&>+MRsRkAGqAnD`%y4%AyoZSN0MV{j6+{$K!OQ@N0Lc=LgF9!Zr;J9Ue~vwy z&G>grvjaNW-^&POT7Gi z$zF^If9Ieza?Yp(rqd}`U#?iKR#-9wK)L|!@9$9-B~CF$(&HVpX5ipC6GEUYOOD?i zgUTkxB1#N_*9WhNF?O6@V3{lxM{kdIex&sUfMoP7v(@BHaEO$Nds;m%=r00000 LNkvXXu0mjfc3RA~ delta 572 zcmaFDe2Qg)WIZzj17p0F{ZSyL6W|l#3IuL$Ztm{x9v&W^o}OM_Uf$l`K0ZFazPi%?l{Gar zwY4>Mb#?Xi_5T?d#O-?}?EBfwrZX7NWCS9U8TCx2Gg(Y#u$a!|FrUG0F+G@ zLEEW9wo@gYrZhA(w6wIewzjsnw|91S_V)Jn_4W1l_fMEGVdBJzlO|1?JbChzDO09S zojPsmG$5Ehefo?UGiJ`5IcwIe*|TTQn>TO%{P~L(En2p0*@_h_R<2yRYSpT>YuBz@ zw{HFV^&2;C+*H45)0Qn;wr<_JYuBzrhYlS%a^%E`6Q@s~K701;xpU{vpFe-$!i7th zE?vHS`O1|m*REZ=b?esMyLa#1yZ7YDlmGw!&%BUq%)r1PUlQaO4CLYg3}+?F1b|98 z3p^r=85sBugD~Uq`ur6sK+&0=E{-7*muveB`3@QIxc=u+YUJWnyT9;)8uQeMfYzu- z9h*vX-qo|eagY>v#2at#zfDx&u$qCgs-~3UohN5o)Ruk{eJ;SK5%qjevFMr|OMV4s zY!BtpIHgwJ;+VGAI`@LVmC)JUAJ$)rZ7wj}@YBa}!EuW_=}F!jOlyt(jAJuHo_yu$ wj;QDU9quB!Z{6ydkK^|FuU@+8gy$C)wxdo~PtPkw0A0!8>FVdQ&MBb@07$|Zm;e9( From 5899f2dde0a671e024ff576af55aaa6eaf282e19 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Tue, 20 Nov 2012 21:18:36 +0100 Subject: [PATCH 51/69] locales: rework menu.hint_softupdate_settings Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/e454218d913e0ad35ccd941e595f3f60459eca02 Author: vanhofen Date: 2012-11-20 (Tue, 20 Nov 2012) Origin message was: ------------------ - locales: rework menu.hint_softupdate_settings ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- 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 3df57cfcf..44c56365d 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1040,7 +1040,7 @@ menu.hint_softupdate_check_local Lokal nach verfügbaren Updates suchen und inst menu.hint_softupdate_expert Einzelne Partitionen aus dem Flash lesen / in den Flash schreiben menu.hint_softupdate_expert_read Einzelne Partitionen (U-Boot, Splash, Kernel, SystemFS) aus dem Flash lesen menu.hint_softupdate_expert_write Einzelne Partitionen (Splash, Kernel, SystemFS) in den Flash schreiben -menu.hint_softupdate_settings Den Updatemodus, das lokale Verzeichnis und die Konfigurationsdatei festlegen +menu.hint_softupdate_settings Das lokale Update-Verzeichnis und die Konfigurationsdatei festlegen menu.hint_start_tostandby Aktiviert den Standby-Modus nach dem starten der Box menu.hint_streaminfo Aktuelle Sender-Informationen: PIDs, SNR-Verhältnis\nBitrate grafisch menu.hint_subchannel_pos Hier können Sie die Anzeigeposition der Untertitel auswählen diff --git a/data/locale/english.locale b/data/locale/english.locale index 36b2bcc3e..78e18ccb1 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1040,7 +1040,7 @@ menu.hint_softupdate_check_local Select and flash firmware from local file menu.hint_softupdate_expert Separate partitions from the flash read / write to the flash menu.hint_softupdate_expert_read Separate partitions (U-Boot, Splash, Kernel, SystemFS) from the flash read menu.hint_softupdate_expert_write Separate partitions (Splash, Kernel, SystemFS) write to the flash -menu.hint_softupdate_settings Update mode, the local directory and the configuration file to set +menu.hint_softupdate_settings The local update directory and the configuration file to set menu.hint_start_tostandby Enter standby mode after boot menu.hint_streaminfo Current channel info: pids, signal and noise ratio\nBitrate graphs menu.hint_subchannel_pos Select subchannels menu position From ad3e05ef67b02d2bc8b5b03ea57486ffa4973bd3 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Wed, 21 Nov 2012 13:36:56 +0100 Subject: [PATCH 52/69] src/nhttpd/web/Y_VLC.js fix for vlc windows 2.0.2 version parse Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/d113487d35fd184932574f975ad492381fc61fbc Author: Jacek Jendrzej Date: 2012-11-21 (Wed, 21 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/nhttpd/web/Y_VLC.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/nhttpd/web/Y_VLC.js b/src/nhttpd/web/Y_VLC.js index 90f007a74..b51c19e06 100644 --- a/src/nhttpd/web/Y_VLC.js +++ b/src/nhttpd/web/Y_VLC.js @@ -56,13 +56,23 @@ CyVLC.prototype = { for(var i=0;i Date: Wed, 21 Nov 2012 20:37:54 +0400 Subject: [PATCH 53/69] gui/widget/menue.cpp: fix hintbox color if theme changed; fix hint paint for page-up button Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/6ea053c2e934624e5696abde39d8bb43de276bb2 Author: [CST] Focus Date: 2012-11-21 (Wed, 21 Nov 2012) ------------------ This commit was generated by Migit --- src/gui/widget/menue.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 3b6389265..66b252d8b 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -560,6 +560,7 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &) if ((pos < (int)page_start[current_page + 1]) && (pos >= (int)page_start[current_page])) { items[selected]->paint( false ); item->paint( true ); + paintHint(pos); selected = pos; } else { selected=pos; @@ -577,6 +578,7 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &) if ((pos < (int)page_start[current_page + 1]) && (pos >= (int)page_start[current_page])) { items[selected]->paint( false ); item->paint( true ); + paintHint(pos); selected = pos; } else { selected=pos; @@ -1132,6 +1134,7 @@ void CMenuWidget::paintHint(int pos) details_line->setYPos(ypos1a); details_line->setYPosDown(ypos2a); details_line->setHMarkDown(markh); + details_line->setColor(COL_MENUCONTENT_PLUS_6, COL_MENUCONTENTDARK_PLUS_0); } details_line->paint(savescreen); @@ -1141,6 +1144,7 @@ void CMenuWidget::paintHint(int pos) info_box->setXPos(x); info_box->setYPos(ypos2); info_box->setWidth(iwidth); + info_box->setColor(COL_MENUCONTENT_PLUS_6, COL_MENUCONTENTDARK_PLUS_0, COL_MENUCONTENTDARK_PLUS_0); } /* force full paint - menu-over i.e. option chooser with pulldown can overwrite */ info_box->paint(savescreen, true); From a830e028c7bea3c0f1b79637087d881b5665042f Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Thu, 22 Nov 2012 13:27:51 +0100 Subject: [PATCH 54/69] src/system/setting_helpers.cpp: use my_system instead of system Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/89ee8f7a5efc60eb0dc4b9f452850f21edd0a5fb Author: Jacek Jendrzej Date: 2012-11-22 (Thu, 22 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/system/setting_helpers.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/system/setting_helpers.cpp b/src/system/setting_helpers.cpp index eeb013c9f..d362132c5 100644 --- a/src/system/setting_helpers.cpp +++ b/src/system/setting_helpers.cpp @@ -58,7 +58,7 @@ #include #include #include - +#include // obsolete #include #include @@ -445,7 +445,7 @@ bool CTZChangeNotifier::changeNotify(const neutrino_locale_t, void * Data) printf("Timezone: %s -> %s\n", name.c_str(), zone.c_str()); std::string cmd = "cp /usr/share/zoneinfo/" + zone + " /etc/localtime"; printf("exec %s\n", cmd.c_str()); - system(cmd.c_str()); + my_system("/bin/sh", "-c", cmd.c_str()); cmd = ":" + zone; setenv("TZ", cmd.c_str(), 1); } @@ -468,7 +468,7 @@ int CDataResetNotifier::exec(CMenuTarget* /*parent*/, const std::string& actionK return true; if(delete_all) { - system("rm -f /var/tuxbox/config/zapit/*.conf"); + my_system("/bin/sh", "-c", "rm -f /var/tuxbox/config/zapit/*.conf"); CServiceManager::getInstance()->SatelliteList().clear(); CZapit::getInstance()->LoadSettings(); CZapit::getInstance()->GetConfig(zapitCfg); @@ -488,7 +488,7 @@ int CDataResetNotifier::exec(CMenuTarget* /*parent*/, const std::string& actionK CFrameBuffer::getInstance()->Clear(); } if(delete_chan) { - system("rm -f /var/tuxbox/config/zapit/*.xml"); + my_system("/bin/sh", "-c", "rm -f /var/tuxbox/config/zapit/*.xml"); g_Zapit->reinitChannels(); } return ret; From 0002f3df03d44f7e5fe288da78d3f5cfe50e3c41 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Thu, 22 Nov 2012 20:14:22 +0100 Subject: [PATCH 55/69] src/zapit/src/zapit.cpp:ParsePatPmt after channels reinit Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/0a7022c1b71eabd556464308208f617135d21305 Author: Jacek Jendrzej Date: 2012-11-22 (Thu, 22 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/zapit/src/zapit.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index fe7fc63f6..bcb08d681 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -1055,6 +1055,7 @@ bool CZapit::ParseCommand(CBasicMessage::Header &rmsg, int connfd) PrepareChannels(); current_channel = CServiceManager::getInstance()->FindChannel(cid); + ParsePatPmt(current_channel);//reinit pids SendCmdReady(connfd); SendEvent(CZapitClient::EVT_SERVICES_CHANGED); From e08ca85e9216b2565acd33b59a058e74a7901f10 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Thu, 22 Nov 2012 21:03:07 +0100 Subject: [PATCH 56/69] src/gui/moviebrowser.cpp: use CStringInputSMS instead of CStringInput Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/69ab1968b4889ede3d094374b92ed8befd90db87 Author: Jacek Jendrzej Date: 2012-11-22 (Thu, 22 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/moviebrowser.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index 4aab7d741..92b0d4d0c 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -2821,7 +2821,7 @@ int CMovieBrowser::showMovieInfoMenu(MI_MOVIE_INFO* movie_info) /********************************************************************/ /** bookmark ******************************************************/ - CStringInput* pBookNameInput[MAX_NUMBER_OF_BOOKMARK_ITEMS]; + CStringInputSMS* pBookNameInput[MAX_NUMBER_OF_BOOKMARK_ITEMS]; CIntInput* pBookPosIntInput[MAX_NUMBER_OF_BOOKMARK_ITEMS]; CIntInput* pBookTypeIntInput[MAX_NUMBER_OF_BOOKMARK_ITEMS]; CMenuWidget* pBookItemMenu[MAX_NUMBER_OF_BOOKMARK_ITEMS]; @@ -2842,7 +2842,7 @@ int CMovieBrowser::showMovieInfoMenu(MI_MOVIE_INFO* movie_info) for(int li =0 ; li < MI_MOVIE_BOOK_USER_MAX && li < MAX_NUMBER_OF_BOOKMARK_ITEMS; li++ ) { - pBookNameInput[li] = new CStringInput (LOCALE_MOVIEBROWSER_EDIT_BOOK, &movie_info->bookmarks.user[li].name, 20, LOCALE_MOVIEBROWSER_EDIT_BOOK_NAME_INFO1, LOCALE_MOVIEBROWSER_EDIT_BOOK_NAME_INFO2, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); + pBookNameInput[li] = new CStringInputSMS (LOCALE_MOVIEBROWSER_EDIT_BOOK, &movie_info->bookmarks.user[li].name, 20, LOCALE_MOVIEBROWSER_EDIT_BOOK_NAME_INFO1, LOCALE_MOVIEBROWSER_EDIT_BOOK_NAME_INFO2, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); pBookPosIntInput[li] = new CIntInput (LOCALE_MOVIEBROWSER_EDIT_BOOK, (int&) movie_info->bookmarks.user[li].pos, 20, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO1, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO2); pBookTypeIntInput[li] = new CIntInput (LOCALE_MOVIEBROWSER_EDIT_BOOK, (int&) movie_info->bookmarks.user[li].length, 20, LOCALE_MOVIEBROWSER_EDIT_BOOK_TYPE_INFO1, LOCALE_MOVIEBROWSER_EDIT_BOOK_TYPE_INFO2); @@ -2857,7 +2857,7 @@ int CMovieBrowser::showMovieInfoMenu(MI_MOVIE_INFO* movie_info) /********************************************************************/ /** serie******************************************************/ - CStringInput serieUserInput(LOCALE_MOVIEBROWSER_EDIT_SERIE, &movie_info->serieName, 20, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); + CStringInputSMS serieUserInput(LOCALE_MOVIEBROWSER_EDIT_SERIE, &movie_info->serieName, 20, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); CMenuWidget serieMenu (LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER); serieMenu.addIntroItems(LOCALE_MOVIEBROWSER_SERIE_HEAD); @@ -2900,14 +2900,14 @@ int CMovieBrowser::showMovieInfoMenu(MI_MOVIE_INFO* movie_info) snprintf(size,BUFFER_SIZE,"%5llu",movie_info->file.Size>>20); } - CStringInput titelUserInput(LOCALE_MOVIEBROWSER_INFO_TITLE, &movie_info->epgTitle, MAX_STRING, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); + CStringInputSMS titelUserInput(LOCALE_MOVIEBROWSER_INFO_TITLE, &movie_info->epgTitle, (movie_info->epgTitle.empty() || (movie_info->epgTitle.size() < MAX_STRING)) ? MAX_STRING:movie_info->epgTitle.size(), NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); //CStringInputSMS titelUserInput(LOCALE_MOVIEBROWSER_INFO_TITLE, &movie_info->epgTitle, MAX_STRING, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); - CStringInput channelUserInput(LOCALE_MOVIEBROWSER_INFO_CHANNEL, &movie_info->epgChannel, 15, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); - CStringInput epgUserInput(LOCALE_MOVIEBROWSER_INFO_INFO1, &movie_info->epgInfo1, 20, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); + CStringInputSMS channelUserInput(LOCALE_MOVIEBROWSER_INFO_CHANNEL, &movie_info->epgChannel, MAX_STRING, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); + CStringInputSMS epgUserInput(LOCALE_MOVIEBROWSER_INFO_INFO1, &movie_info->epgInfo1, 20, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); CDateInput dateUserDateInput(LOCALE_MOVIEBROWSER_INFO_LENGTH, &movie_info->dateOfLastPlay, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); CDateInput recUserDateInput(LOCALE_MOVIEBROWSER_INFO_LENGTH, &movie_info->file.Time, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); CIntInput lengthUserIntInput(LOCALE_MOVIEBROWSER_INFO_LENGTH, (int&)movie_info->length, 3, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); - CStringInput countryUserInput(LOCALE_MOVIEBROWSER_INFO_PRODCOUNTRY, &movie_info->productionCountry, 11, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "ABCDEFGHIJKLMNOPQRSTUVWXYZ "); + CStringInputSMS countryUserInput(LOCALE_MOVIEBROWSER_INFO_PRODCOUNTRY, &movie_info->productionCountry, 11, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "ABCDEFGHIJKLMNOPQRSTUVWXYZ "); CIntInput yearUserIntInput(LOCALE_MOVIEBROWSER_INFO_PRODYEAR, (int&)movie_info->productionDate, 4, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); CMenuWidget movieInfoMenu(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER /*,m_cBoxFrame.iWidth*/); //TODO: check From de3fc8ed1cd9a5a02a07e72f69f786d2886ec1b2 Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Mon, 26 Nov 2012 11:05:20 +0100 Subject: [PATCH 57/69] Moviebrowser: Ask if the file of a running recording to be deleted. Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/fefa483469b0d21d147a513e3f7460720a5da8ae Author: Michael Liebmann Date: 2012-11-26 (Mon, 26 Nov 2012) Origin message was: ------------------ * Moviebrowser: Ask if the file of a running recording to be deleted. ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/locale/deutsch.locale | 1 + data/locale/english.locale | 1 + src/driver/record.cpp | 6 ++--- src/driver/record.h | 2 +- src/gui/moviebrowser.cpp | 46 ++++++++++++++++++++++---------------- src/gui/moviebrowser.h | 4 +--- src/system/locals.h | 1 + src/system/locals_intern.h | 1 + 8 files changed, 36 insertions(+), 26 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 44c56365d..09e2a7d51 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1171,6 +1171,7 @@ motorcontrol.store Speichere Motorposition (a) motorcontrol.timed_mode Zeitgesteuerter Schrittweitenmodus motorcontrol.user_menu Benutzermenü motorcontrol.west_limit Setze westliches (soft) Limit +moviebrowser.ask_rec_to_delete Das Löschen des Films beendet auch die laufende Aufnahme!\n[%s]\nTrotzdem fortsetzen? moviebrowser.book_add Lesezeichen setzen moviebrowser.book_clear_all Lösche alle moviebrowser.book_head Markierungen diff --git a/data/locale/english.locale b/data/locale/english.locale index 78e18ccb1..01e4502c5 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1171,6 +1171,7 @@ motorcontrol.store Store Motor Position (a) motorcontrol.timed_mode Timed Step Mode motorcontrol.user_menu User menu motorcontrol.west_limit Set West (soft) Limit +moviebrowser.ask_rec_to_delete Deletion of movie stops current recording!\n[%s]\nContinue anyway? moviebrowser.book_add Add bookmark moviebrowser.book_clear_all Clear all moviebrowser.book_head Bookmarks diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 93403f3fa..86baeec8e 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -1650,18 +1650,18 @@ void CRecordManager::RestoreNeutrino(void) g_Sectionsd->setPauseScanning(false); } -bool CRecordManager::IsFileRecord(std::string file) +CRecordInstance* CRecordManager::getRecordInstance(std::string file) { mutex.lock(); for(recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) { CRecordInstance * inst = it->second; if ((((std::string)inst->GetFileName()) + ".ts") == file) { mutex.unlock(); - return true; + return inst; } } mutex.unlock(); - return false; + return NULL; } #if 0 diff --git a/src/driver/record.h b/src/driver/record.h index ac5ebc311..b8ee4be99 100644 --- a/src/driver/record.h +++ b/src/driver/record.h @@ -218,7 +218,7 @@ class CRecordManager : public CMenuTarget /*, public CChangeObserver*/ int GetRecordCount() { return recmap.size(); }; void StartTimeshift(); int GetRecordMode(const t_channel_id channel_id=0); - bool IsFileRecord(std::string file); + CRecordInstance* getRecordInstance(std::string file); // old code #if 0 bool IsTimeshift(t_channel_id channel_id=0); diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index 92b0d4d0c..bb3cf9281 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -520,7 +520,6 @@ void CMovieBrowser::init(void) refreshBrowserList(); refreshFilterList(); g_PicViewer->getSupportedImageFormats(PicExts); - IsRecord = false; #if 0 TRACE_1("Frames\r\n\tScren:\t%3d,%3d,%3d,%3d\r\n\tMain:\t%3d,%3d,%3d,%3d\r\n\tTitle:\t%3d,%3d,%3d,%3d \r\n\tBrowsr:\t%3d,%3d,%3d,%3d \r\n\tPlay:\t%3d,%3d,%3d,%3d \r\n\tRecord:\t%3d,%3d,%3d,%3d\r\n\r\n", g_settings.screen_StartX, @@ -1229,13 +1228,6 @@ void CMovieBrowser::refreshMovieInfo(void) m_pcInfo->setText(&emptytext); } else { - // Is record? - bool tmp = CRecordManager::getInstance()->IsFileRecord(m_movieSelectionHandler->file.Name); - if (tmp != IsRecord) { - IsRecord = tmp; - refreshFoot(); - } - bool logo_ok = false; int picw = (int)(((float)16 / (float)9) * (float)m_cBoxFrameInfo.iHeight); int pich = m_cBoxFrameInfo.iHeight; @@ -1638,13 +1630,9 @@ void CMovieBrowser::refreshFoot(void) m_pcWindow->getIconSize(NEUTRINO_ICON_BUTTON_OKAY, &iw, &ih); m_pcWindow->paintIcon(NEUTRINO_ICON_BUTTON_OKAY, m_cBoxFrame.iX+xpos1+width*2, m_cBoxFrame.iY+m_cBoxFrameFootRel.iY, m_cBoxFrameFootRel.iHeight+ 6); m_pcFontFoot->RenderString(m_cBoxFrame.iX+xpos1+width*2 + 10 + iw, m_cBoxFrame.iY+m_cBoxFrameFootRel.iY + m_cBoxFrameFootRel.iHeight + 4 , width-30, ok_text.c_str(), (CFBWindow::color_t)color, 0, true); // UTF-8 - - if (IsRecord == false) { - //delete icon - m_pcWindow->getIconSize(NEUTRINO_ICON_BUTTON_MUTE_SMALL, &iw, &ih); - m_pcWindow->paintIcon(NEUTRINO_ICON_BUTTON_MUTE_SMALL, m_cBoxFrame.iX+xpos1+width*3, m_cBoxFrame.iY+m_cBoxFrameFootRel.iY, m_cBoxFrameFootRel.iHeight+ 6); - m_pcFontFoot->RenderString(m_cBoxFrame.iX+xpos1+width*3 + 10 + iw , m_cBoxFrame.iY+m_cBoxFrameFootRel.iY + m_cBoxFrameFootRel.iHeight + 4 , width-30, g_Locale->getText(LOCALE_FILEBROWSER_DELETE), (CFBWindow::color_t)color, 0, true); // UTF-8 - } + m_pcWindow->getIconSize(NEUTRINO_ICON_BUTTON_MUTE_SMALL, &iw, &ih); + m_pcWindow->paintIcon(NEUTRINO_ICON_BUTTON_MUTE_SMALL, m_cBoxFrame.iX+xpos1+width*3, m_cBoxFrame.iY+m_cBoxFrameFootRel.iY, m_cBoxFrameFootRel.iHeight+ 6); + m_pcFontFoot->RenderString(m_cBoxFrame.iX+xpos1+width*3 + 10 + iw , m_cBoxFrame.iY+m_cBoxFrameFootRel.iY + m_cBoxFrameFootRel.iHeight + 4 , width-30, g_Locale->getText(LOCALE_FILEBROWSER_DELETE), (CFBWindow::color_t)color, 0, true); // UTF-8 } @@ -1740,8 +1728,28 @@ bool CMovieBrowser::onButtonPressMainFrame(neutrino_msg_t msg) } else if (msg == CRCInput::RC_spkr) { - if ((!m_vMovieInfo.empty()) && (m_movieSelectionHandler != NULL) && (IsRecord == false)) - onDeleteFile(*m_movieSelectionHandler); + if ((!m_vMovieInfo.empty()) && (m_movieSelectionHandler != NULL)) { + bool onDelete = true; + bool skipAsk = false; + CRecordInstance* inst = CRecordManager::getInstance()->getRecordInstance(m_movieSelectionHandler->file.Name); + if (inst != NULL) { + std::string delName = m_movieSelectionHandler->epgTitle; + if (delName == "") + delName = m_movieSelectionHandler->file.getFileName(); + char buf1[1024]; + memset(buf1, '\0', sizeof(buf1)); + snprintf(buf1, sizeof(buf1)-1, g_Locale->getText(LOCALE_MOVIEBROWSER_ASK_REC_TO_DELETE), delName.c_str()); + if(ShowMsgUTF(LOCALE_RECORDINGMENU_RECORD_IS_RUNNING, buf1, + CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, false) == CMessageBox::mbrNo) + onDelete = false; + else { + g_Timerd->removeTimerEvent(inst->GetRecordingId()); + skipAsk = true; + } + } + if (onDelete) + onDeleteFile(*m_movieSelectionHandler, skipAsk); + } } else if (msg == CRCInput::RC_help || msg == CRCInput::RC_info) { @@ -2045,7 +2053,7 @@ bool CMovieBrowser::onButtonPressMovieInfoList(neutrino_msg_t msg) return (result); } -void CMovieBrowser::onDeleteFile(MI_MOVIE_INFO& movieSelectionHandler) +void CMovieBrowser::onDeleteFile(MI_MOVIE_INFO& movieSelectionHandler, bool skipAsk) { //TRACE( "[onDeleteFile] "); int test= movieSelectionHandler.file.Name.find(".ts"); @@ -2068,7 +2076,7 @@ void CMovieBrowser::onDeleteFile(MI_MOVIE_INFO& movieSelectionHandler) msg += "\r\n "; msg += g_Locale->getText(LOCALE_FILEBROWSER_DODELETE2); - if (ShowMsgUTF(LOCALE_FILEBROWSER_DELETE, msg, CMessageBox::mbrYes, CMessageBox::mbYes|CMessageBox::mbNo)==CMessageBox::mbrYes) + if ((skipAsk) || (ShowMsgUTF(LOCALE_FILEBROWSER_DELETE, msg, CMessageBox::mbrYes, CMessageBox::mbYes|CMessageBox::mbNo)==CMessageBox::mbrYes)) { delFile(movieSelectionHandler.file); diff --git a/src/gui/moviebrowser.h b/src/gui/moviebrowser.h index 1b3c89712..154b7364f 100644 --- a/src/gui/moviebrowser.h +++ b/src/gui/moviebrowser.h @@ -294,8 +294,6 @@ class CMovieBrowser : public CMenuTarget MB_SETTINGS m_settings; std::vector m_dir; - bool IsRecord; - int movieInfoUpdateAll[MB_INFO_MAX_NUMBER]; int movieInfoUpdateAllIfDestEmptyOnly; @@ -368,7 +366,7 @@ class CMovieBrowser : public CMenuTarget void onSetGUIWindow(MB_GUI gui); void onSetGUIWindowNext(void); void onSetGUIWindowPrev(void); - void onDeleteFile(MI_MOVIE_INFO& movieSelectionHandler); // P4 + void onDeleteFile(MI_MOVIE_INFO& movieSelectionHandler, bool skipAsk = false); // P4 bool onSortMovieInfoHandleList(std::vector& pv_handle_list, MB_INFO_ITEM sort_type, MB_DIRECTION direction); ///// parse Storage Directories ///////////// diff --git a/src/system/locals.h b/src/system/locals.h index 237eb94cf..5ae34e13e 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1198,6 +1198,7 @@ typedef enum LOCALE_MOTORCONTROL_TIMED_MODE, LOCALE_MOTORCONTROL_USER_MENU, LOCALE_MOTORCONTROL_WEST_LIMIT, + LOCALE_MOVIEBROWSER_ASK_REC_TO_DELETE, LOCALE_MOVIEBROWSER_BOOK_ADD, LOCALE_MOVIEBROWSER_BOOK_CLEAR_ALL, LOCALE_MOVIEBROWSER_BOOK_HEAD, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 7d307bdb7..8c58cd2a5 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1198,6 +1198,7 @@ const char * locale_real_names[] = "motorcontrol.timed_mode", "motorcontrol.user_menu", "motorcontrol.west_limit", + "moviebrowser.ask_rec_to_delete", "moviebrowser.book_add", "moviebrowser.book_clear_all", "moviebrowser.book_head", From f032bc26b26e1cdd7dbe1048ce3cba7a286d9d20 Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Mon, 26 Nov 2012 23:39:43 +0100 Subject: [PATCH 58/69] Moviebrowser: Fix delete files when recording in progress. Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/86a95b039fb6c4eea88d06ae730063a52ac0f78a Author: Michael Liebmann Date: 2012-11-26 (Mon, 26 Nov 2012) Origin message was: ------------------ * Moviebrowser: Fix delete files when recording in progress. ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/moviebrowser.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index bb3cf9281..f69e7f801 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -1743,7 +1743,11 @@ bool CMovieBrowser::onButtonPressMainFrame(neutrino_msg_t msg) CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, false) == CMessageBox::mbrNo) onDelete = false; else { - g_Timerd->removeTimerEvent(inst->GetRecordingId()); + CTimerd::RecordingStopInfo recinfo; + recinfo.channel_id = inst->GetChannelId(); + recinfo.eventID = inst->GetRecordingId(); + CRecordManager::getInstance()->Stop(&recinfo); + g_Timerd->removeTimerEvent(recinfo.eventID); skipAsk = true; } } From 4a34dfa9f91b2d01577b63d3e4dc3efcab771024 Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Mon, 26 Nov 2012 22:35:55 +0100 Subject: [PATCH 59/69] Moviebrowser: Show rec icon when recording in progress. Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/964c6f9af01c300173edb9913a945d80d89f51c9 Author: Michael Liebmann Date: 2012-11-26 (Mon, 26 Nov 2012) Origin message was: ------------------ * Moviebrowser: Show rec icon when recording in progress. ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/moviebrowser.cpp | 9 +++++++++ src/gui/widget/listframe.cpp | 32 ++++++++++++++++++++++++++++---- src/gui/widget/listframe.h | 2 ++ 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index f69e7f801..deaa9e536 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -380,6 +380,7 @@ CMovieBrowser::~CMovieBrowser() m_playListLines.lineArray[i].clear(); m_FilterLines.lineArray[i].clear(); } + m_browserListLines.Icon.clear(); } void CMovieBrowser::fileInfoStale(void) @@ -408,6 +409,7 @@ void CMovieBrowser::fileInfoStale(void) m_playListLines.lineArray[i].clear(); m_FilterLines.lineArray[i].clear(); } + m_browserListLines.Icon.clear(); }; void CMovieBrowser::init(void) @@ -937,6 +939,7 @@ int CMovieBrowser::exec(const char* path) m_recordListLines.lineArray[i].clear(); m_playListLines.lineArray[i].clear(); } + m_browserListLines.Icon.clear(); m_selectedDir = path; @@ -1508,6 +1511,7 @@ void CMovieBrowser::refreshBrowserList(void) //P1 m_browserListLines.lineArray[row].clear(); m_browserListLines.rowWidth[row] = m_settings.browserRowWidth[row]; m_browserListLines.lineHeader[row]= g_Locale->getText(m_localizedItemName[m_settings.browserRowItem[row]]); + m_browserListLines.Icon.clear(); } m_vHandleBrowserList.clear(); @@ -1545,8 +1549,13 @@ void CMovieBrowser::refreshBrowserList(void) //P1 if(m_settings.browserRowItem[row] == MB_INFO_TITLE) getMovieInfoItem(*m_vHandleBrowserList[handle], MB_INFO_FILENAME, &string_item); } + m_browserListLines.lineArray[row].push_back(string_item); } + if (CRecordManager::getInstance()->getRecordInstance(m_vHandleBrowserList[handle]->file.Name) != NULL) + m_browserListLines.Icon.push_back(NEUTRINO_ICON_REC); + else + m_browserListLines.Icon.push_back(""); } m_pcBrowser->setLines(&m_browserListLines); diff --git a/src/gui/widget/listframe.cpp b/src/gui/widget/listframe.cpp index 8a9678ede..7484f1148 100644 --- a/src/gui/widget/listframe.cpp +++ b/src/gui/widget/listframe.cpp @@ -389,6 +389,20 @@ void CListFrame::refreshScroll(void) } } +int CListFrame::paintListIcon(int x, int y, int line) +{ + int xDiff = 0; + if (m_pLines->Icon[line] != "") { + int icol_w, icol_h; + frameBuffer->getIconSize(m_pLines->Icon[line].c_str(), &icol_w, &icol_h); + if ((icol_w > 0) && (icol_h > 0)) { + frameBuffer->paintIcon(m_pLines->Icon[line], x+m_cFrame.iX, y+m_cFrame.iY-m_nFontListHeight, m_nFontListHeight); + xDiff = icol_w + TEXT_BORDER_WIDTH; + } + } + return xDiff; +} + void CListFrame::refreshList(void) { //TRACE("[CListFrame]->refreshList: %d\r\n",m_nCurrentLine); @@ -417,6 +431,9 @@ void CListFrame::refreshList(void) int width; int x = m_cFrameListRel.iX + TEXT_BORDER_WIDTH; y += m_nFontListHeight; + + int xDiff = paintListIcon(x, y, line); + int net_width = m_cFrameListRel.iWidth - ROW_BORDER_WIDTH * (m_pLines->rows - 1); for(int row = 0; row < m_pLines->rows; row++) { @@ -426,8 +443,10 @@ void CListFrame::refreshList(void) width = m_cFrameListRel.iWidth - x + m_cFrameListRel.iX - TEXT_BORDER_WIDTH; //TRACE(" normalize width to %d , x:%d \r\n",width,x); } - m_pcFontList->RenderString(x+m_cFrame.iX, y+m_cFrame.iY, - width, m_pLines->lineArray[row][line].c_str(), + if (row > 0) + xDiff = 0; + m_pcFontList->RenderString(x+m_cFrame.iX+xDiff, y+m_cFrame.iY, + width-xDiff, m_pLines->lineArray[row][line].c_str(), color, 0, true); // UTF-8 x += width + ROW_BORDER_WIDTH; } @@ -462,13 +481,18 @@ void CListFrame::refreshLine(int line) int width; int x = m_cFrameListRel.iX + TEXT_BORDER_WIDTH; y += m_nFontListHeight; + + int xDiff = paintListIcon(x, y, line); + int net_width = m_cFrameListRel.iWidth - ROW_BORDER_WIDTH * (m_pLines->rows - 1); for(int row = 0; row < m_pLines->rows; row++) { width = std::min(m_pLines->rowWidth[row] * net_width / 100, m_cFrameListRel.iWidth - x + m_cFrameListRel.iX - TEXT_BORDER_WIDTH); - m_pcFontList->RenderString(x+m_cFrame.iX, y+m_cFrame.iY, - width, m_pLines->lineArray[row][line].c_str(), + if (row > 0) + xDiff = 0; + m_pcFontList->RenderString(x+m_cFrame.iX+xDiff, y+m_cFrame.iY, + width-xDiff, m_pLines->lineArray[row][line].c_str(), color, 0, true); // UTF-8 x += width + ROW_BORDER_WIDTH; } diff --git a/src/gui/widget/listframe.h b/src/gui/widget/listframe.h index ff457c8dd..f548bfd2b 100644 --- a/src/gui/widget/listframe.h +++ b/src/gui/widget/listframe.h @@ -63,6 +63,7 @@ typedef struct std::string lineHeader[LF_MAX_ROWS]; std::vector lineArray[LF_MAX_ROWS]; int rowWidth[LF_MAX_ROWS]; + std::vector Icon; }LF_LINES; class CListFrame @@ -78,6 +79,7 @@ class CListFrame void refreshHeaderList(void); void reSizeMainFrameWidth(int maxTextWidth); void reSizeMainFrameHeight(int maxTextHeight); + int paintListIcon(int x, int y, int line); /* Variables */ LF_LINES* m_pLines; From fc32ca10c7a39ec535931acca428e8f31944a11f Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Tue, 27 Nov 2012 01:15:25 +0100 Subject: [PATCH 60/69] Timerlist: Show rec icon when recording in progress. Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/ab2412343095f7db06031e6c351b82821f7c4ed3 Author: Michael Liebmann Date: 2012-11-27 (Tue, 27 Nov 2012) Origin message was: ------------------ * Timerlist: Show rec icon when recording in progress. ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/timerlist.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/gui/timerlist.cpp b/src/gui/timerlist.cpp index 406e10ef5..c0c15595a 100644 --- a/src/gui/timerlist.cpp +++ b/src/gui/timerlist.cpp @@ -734,6 +734,21 @@ void CTimerList::paintItem(int pos) g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(x+fw*13+(real_width-fw*23)/2,ypos+fheight, (real_width-fw*13)/2-5, srepeatcount, color, fheight, true); // UTF-8 } g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(x+fw*13+(real_width-fw*13)/2,ypos+fheight, (real_width-fw*13)/2-5, convertTimerType2String(timer.eventType), color, fheight, true); // UTF-8 + + // paint rec icon when recording in progress + if ((timer.eventType == CTimerd::TIMER_RECORD) && (CRecordManager::getInstance()->RecordingStatus(timer.channel_id))) { + CTimerd::RecordingStopInfo recinfo; + recinfo.channel_id = timer.channel_id; + recinfo.eventID = timer.eventID; + if (CRecordManager::getInstance()->IsRecording(&recinfo)) { + int icol_w, icol_h; + frameBuffer->getIconSize(NEUTRINO_ICON_REC, &icol_w, &icol_h); + if ((icol_w > 0) && (icol_h > 0)) { + frameBuffer->paintIcon(NEUTRINO_ICON_REC, (x + real_width) - (icol_w + 8), ypos, 2*fheight); + } + } + } + std::string zAddData(""); switch (timer.eventType) { From 3851729573b168c6982b292555628e2cbadf00d3 Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Tue, 27 Nov 2012 12:12:59 +0100 Subject: [PATCH 61/69] Moviebrowser: Fix segfault if movie list is empty Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/8c5a09712e5d41c12260bf6dcdf86afaa81702a7 Author: Michael Liebmann Date: 2012-11-27 (Tue, 27 Nov 2012) Origin message was: ------------------ * Moviebrowser: Fix segfault if movie list is empty ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/widget/listframe.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/widget/listframe.cpp b/src/gui/widget/listframe.cpp index 7484f1148..437cdd0c9 100644 --- a/src/gui/widget/listframe.cpp +++ b/src/gui/widget/listframe.cpp @@ -392,7 +392,7 @@ void CListFrame::refreshScroll(void) int CListFrame::paintListIcon(int x, int y, int line) { int xDiff = 0; - if (m_pLines->Icon[line] != "") { + if ((!m_pLines->Icon.empty()) && (m_pLines->Icon[line] != "")) { int icol_w, icol_h; frameBuffer->getIconSize(m_pLines->Icon[line].c_str(), &icol_w, &icol_h); if ((icol_w > 0) && (icol_h > 0)) { From b7482b6bb6b1944a7d7d1e954db50db34daa9f70 Mon Sep 17 00:00:00 2001 From: Michael Liebmann Date: Tue, 27 Nov 2012 12:21:52 +0100 Subject: [PATCH 62/69] Moviebrowser: Show message when deleting files Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/3cad732b06b907c02bc2804024202ea6f20c9d12 Author: Michael Liebmann Date: 2012-11-27 (Tue, 27 Nov 2012) Origin message was: ------------------ * Moviebrowser: Show message when deleting files ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/locale/deutsch.locale | 1 + data/locale/english.locale | 1 + src/gui/moviebrowser.cpp | 5 +++++ src/system/locals.h | 1 + src/system/locals_intern.h | 1 + 5 files changed, 9 insertions(+) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 09e2a7d51..3b3930340 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1189,6 +1189,7 @@ moviebrowser.browser_row_head Spalten Einstellungen moviebrowser.browser_row_item Spalteninfo moviebrowser.browser_row_nr Anzahl Spalten moviebrowser.browser_row_width Spaltenbreite [% der Gesamtbreite] +moviebrowser.delete_info Lösche Dateien, bitte warten... moviebrowser.dir Pfad moviebrowser.dir_head Zusätzliche Verzeichnisse moviebrowser.edit_book Bookmark Ändern diff --git a/data/locale/english.locale b/data/locale/english.locale index 01e4502c5..45aa2db2f 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1189,6 +1189,7 @@ moviebrowser.browser_row_head Row settings moviebrowser.browser_row_item Row item moviebrowser.browser_row_nr Number of rows moviebrowser.browser_row_width Row width (% of screenwidth) +moviebrowser.delete_info Delete files, please wait... moviebrowser.dir Path moviebrowser.dir_head Additional paths moviebrowser.edit_book Bookmark change diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index deaa9e536..adc0e056a 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -2091,6 +2091,8 @@ void CMovieBrowser::onDeleteFile(MI_MOVIE_INFO& movieSelectionHandler, bool skip msg += g_Locale->getText(LOCALE_FILEBROWSER_DODELETE2); if ((skipAsk) || (ShowMsgUTF(LOCALE_FILEBROWSER_DELETE, msg, CMessageBox::mbrYes, CMessageBox::mbYes|CMessageBox::mbNo)==CMessageBox::mbrYes)) { + CHintBox * hintBox = new CHintBox(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_MOVIEBROWSER_DELETE_INFO)); + hintBox->paint(); delFile(movieSelectionHandler.file); #if 1 @@ -2117,6 +2119,9 @@ void CMovieBrowser::onDeleteFile(MI_MOVIE_INFO& movieSelectionHandler, bool skip //delFile(file_xml); unlink(file_xml.Name.c_str()); } + hintBox->hide(); + delete hintBox; + g_RCInput->clearRCMsg(); m_vMovieInfo.erase( (std::vector::iterator)&movieSelectionHandler); TRACE("List size: %d\n", m_vMovieInfo.size()); diff --git a/src/system/locals.h b/src/system/locals.h index 5ae34e13e..92fa4c9b3 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1216,6 +1216,7 @@ typedef enum LOCALE_MOVIEBROWSER_BROWSER_ROW_ITEM, LOCALE_MOVIEBROWSER_BROWSER_ROW_NR, LOCALE_MOVIEBROWSER_BROWSER_ROW_WIDTH, + LOCALE_MOVIEBROWSER_DELETE_INFO, LOCALE_MOVIEBROWSER_DIR, LOCALE_MOVIEBROWSER_DIR_HEAD, LOCALE_MOVIEBROWSER_EDIT_BOOK, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 8c58cd2a5..55c0a402b 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1216,6 +1216,7 @@ const char * locale_real_names[] = "moviebrowser.browser_row_item", "moviebrowser.browser_row_nr", "moviebrowser.browser_row_width", + "moviebrowser.delete_info", "moviebrowser.dir", "moviebrowser.dir_head", "moviebrowser.edit_book", From c65016492bf1c891d383369a947a34f96ab11644 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Wed, 28 Nov 2012 19:03:03 +0100 Subject: [PATCH 63/69] src/nhttpd: clean code Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/5e4a541781ac0d4969cca7ab57b98dc79b7d2fc1 Author: Jacek Jendrzej Date: 2012-11-28 (Wed, 28 Nov 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- .../tuxboxapi/coolstream/controlapi.cpp | 54 +++++++++---------- src/nhttpd/tuxboxapi/coolstream/controlapi.h | 2 +- .../tuxboxapi/coolstream/neutrinoapi.cpp | 7 ++- src/nhttpd/tuxboxapi/coolstream/neutrinoapi.h | 2 +- .../tuxboxapi/coolstream/neutrinoyparser.cpp | 14 ++--- .../tuxboxapi/coolstream/neutrinoyparser.h | 6 +-- src/nhttpd/yhttpd.cpp | 10 ++-- src/nhttpd/yhttpd_core/helper.cpp | 4 +- src/nhttpd/yhttpd_core/yconnection.cpp | 3 +- src/nhttpd/yhttpd_core/yconnection.h | 2 +- src/nhttpd/yhttpd_core/yhook.h | 4 +- src/nhttpd/yhttpd_core/ylanguage.h | 2 +- src/nhttpd/yhttpd_core/yrequest.cpp | 2 +- src/nhttpd/yhttpd_core/yresponse.cpp | 4 +- src/nhttpd/yhttpd_core/yresponse.h | 6 +-- src/nhttpd/yhttpd_core/ysocket.cpp | 5 +- src/nhttpd/yhttpd_core/ywebserver.cpp | 7 ++- src/nhttpd/yhttpd_mods/mod_auth.cpp | 6 +-- src/nhttpd/yhttpd_mods/mod_auth.h | 3 +- src/nhttpd/yhttpd_mods/mod_cache.cpp | 12 ++--- src/nhttpd/yhttpd_mods/mod_cache.h | 6 +-- src/nhttpd/yhttpd_mods/mod_sendfile.cpp | 10 ++-- src/nhttpd/yhttpd_mods/mod_sendfile.h | 6 +-- src/nhttpd/yhttpd_mods/mod_testhook.h | 2 +- src/nhttpd/yhttpd_mods/mod_weblog.cpp | 8 +-- src/nhttpd/yhttpd_mods/mod_weblog.h | 4 +- src/nhttpd/yhttpd_mods/mod_yparser.cpp | 20 ++++--- src/nhttpd/yhttpd_mods/mod_yparser.h | 8 +-- 28 files changed, 106 insertions(+), 113 deletions(-) diff --git a/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp b/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp index 036cf3809..c2c078a67 100644 --- a/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp +++ b/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp @@ -34,16 +34,16 @@ #include #include #include -#include "gui/plugins.h"//for relodplugins +#include //for relodplugins #include #include -#include "gui/rc_lock.h" +#include // yhttpd -#include "yhttpd.h" -#include "ytypes_globals.h" -#include "ylogging.h" -#include "helper.h" +#include +#include +#include +#include // nhttpd #include "neutrinoapi.h" #include "controlapi.h" @@ -220,7 +220,6 @@ const CControlAPI::TyCgiCall CControlAPI::yCgiCallList[]= void CControlAPI::Execute(CyhookHandler *hh) { int index = -1; - std::string yresult; std::string filename = hh->UrlData["filename"]; log_level_printf(4,"ControlAPI.Execute filename:(%s)\n",filename.c_str()); @@ -892,7 +891,6 @@ void CControlAPI::ChannellistCGI(CyhookHandler *hh) std::string CControlAPI::_GetBouquetActualEPGItem(CyhookHandler *hh, CZapitChannel * channel) { std::string result, firstEPG, secondEPG = ""; t_channel_id current_channel = CZapit::getInstance()->GetCurrentChannelID(); - int percentage = 100; std::string timestr; CSectionsdClient::responseGetCurrentNextInfoChannelID currentNextInfo; @@ -900,6 +898,7 @@ std::string CControlAPI::_GetBouquetActualEPGItem(CyhookHandler *hh, CZapitChann event = NeutrinoAPI->ChannelListEvents[channel->channel_id]; if (event) { + int percentage = 100; if (event->duration > 0) percentage = 100 * (time(NULL) - event->startTime) / event->duration; CEitManager::getInstance()->getCurrentNextServiceKey(channel->channel_id, currentNextInfo); @@ -1366,7 +1365,7 @@ void CControlAPI::EpgCGI(CyhookHandler *hh) { else if (hh->ParamList.empty() || hh->ParamList["1"] == "ext") { hh->SetHeader(HTTP_OK, "text/plain; charset=UTF-8"); bool isExt = (hh->ParamList["1"] == "ext"); - CChannelEvent *event; + CChannelEvent *event = NULL; NeutrinoAPI->GetChannelEvents(); int mode = NeutrinoAPI->Zapit->getMode(); @@ -1389,7 +1388,7 @@ void CControlAPI::EpgCGI(CyhookHandler *hh) { // query details for given eventid else if (hh->ParamList["eventid"] != "") { //special epg query - uint64_t epgid; + uint64_t epgid = 0; sscanf(hh->ParamList["eventid"].c_str(), "%llu", &epgid); CShortEPGData epg; if (CEitManager::getInstance()->getEPGidShort(epgid, &epg)) { @@ -1400,8 +1399,8 @@ void CControlAPI::EpgCGI(CyhookHandler *hh) { } else if (hh->ParamList["eventid2fsk"] != "") { if (hh->ParamList["starttime"] != "") { - uint64_t epgid; - time_t starttime; + uint64_t epgid = 0; + time_t starttime = 0; sscanf(hh->ParamList["fskid"].c_str(), "%llu", &epgid); sscanf(hh->ParamList["starttime"].c_str(), "%lu", &starttime); CEPGData longepg; @@ -1414,7 +1413,7 @@ void CControlAPI::EpgCGI(CyhookHandler *hh) { } // list EPG for channel id else if (!(hh->ParamList["id"].empty())) { - t_channel_id channel_id; + t_channel_id channel_id = 0; sscanf(hh->ParamList["id"].c_str(), SCANF_CHANNEL_ID_TYPE, &channel_id); CEitManager::getInstance()->getEventsServiceKey(channel_id, NeutrinoAPI->eList); CChannelEventList::iterator eventIterator; @@ -1431,7 +1430,7 @@ void CControlAPI::EpgCGI(CyhookHandler *hh) { // list EPG for channelID 64Bit else { //eventlist for a chan - t_channel_id channel_id; + t_channel_id channel_id = 0; sscanf(hh->ParamList["1"].c_str(), SCANF_CHANNEL_ID_TYPE, &channel_id); SendEventList(hh, channel_id); } @@ -2006,10 +2005,9 @@ void CControlAPI::SendTimersXML(CyhookHandler *hh) void CControlAPI::YWebCGI(CyhookHandler *hh) { bool status=true; - int para; if (hh->ParamList["video_stream_pids"] != "") { - para=0; + int para=0; sscanf( hh->ParamList["video_stream_pids"].c_str(), "%d", ¶); YWeb_SendVideoStreamingPids(hh, para); } @@ -2072,7 +2070,7 @@ std::string CControlAPI::YexecuteScript(CyhookHandler *, std::string cmd) // get file std::string fullfilename; script += ".sh"; //add script extention - char cwd[255]; + char cwd[255]={0}; getcwd(cwd, 254); for (unsigned int i=0; iParamList["alarm"] != "") @@ -2145,7 +2142,7 @@ void CControlAPI::doNewTimer(CyhookHandler *hh) // Alarm Time - Format exact! HH:MM if(hh->ParamList["alTime"] != "") strptime(hh->ParamList["alTime"].c_str(), "%H:%M", alarmTime); - alHour = alarmTime->tm_hour; + int alHour = alarmTime->tm_hour; correctTime(alarmTime); alarmTimeT = mktime(alarmTime); @@ -2389,10 +2386,8 @@ void CControlAPI::moveBouquetCGI(CyhookHandler *hh) //------------------------------------------------------------------------- void CControlAPI::deleteBouquetCGI(CyhookHandler *hh) { - int selected = -1; - if (hh->ParamList["selected"] != "") { - selected = atoi(hh->ParamList["selected"].c_str()); + int selected = atoi(hh->ParamList["selected"].c_str()); NeutrinoAPI->Zapit->deleteBouquet(selected - 1); hh->SendOk(); } @@ -2479,7 +2474,7 @@ void CControlAPI::updateBouquetCGI(CyhookHandler *hh) // host : (optional) ip of dbox void CControlAPI::build_live_url(CyhookHandler *hh) { - std::string xpids,port,yresult; + std::string xpids; int mode = NeutrinoAPI->Zapit->getMode(); if ( mode == CZapitClient::MODE_TV) @@ -2735,18 +2730,13 @@ void CControlAPI::FileCGI(CyhookHandler *hh) { if (hh->ParamList["action"] == "list") { // directory list: action=list&path= DIR *dirp; - struct dirent*entry; - struct stat statbuf; - struct passwd *pwd; - struct group *grp; - struct tm *tm; - char datestring[256]; TOutType outType = hh->outStart(); std::string path = hh->ParamList["path"]; if ((dirp = opendir(path.c_str()))) { bool isFirstLine = true; + struct dirent *entry; while ((entry = readdir(dirp))) { std::string item = ""; item += hh->outPair("name", @@ -2767,6 +2757,7 @@ void CControlAPI::FileCGI(CyhookHandler *hh) { std::string fullname = path + entry->d_name; item += hh->outPair("fullname", hh->outValue(fullname), true); + struct stat statbuf; if (stat(fullname.c_str(), &statbuf) != -1) { item += hh->outPair( @@ -2780,6 +2771,7 @@ void CControlAPI::FileCGI(CyhookHandler *hh) { string_printf("%d", statbuf.st_nlink), true); /* Print out owner's name if it is found using getpwuid(). */ + struct passwd *pwd; if ((pwd = getpwuid(statbuf.st_uid)) != NULL) { item += hh->outPair("user", pwd->pw_name, true); } @@ -2788,6 +2780,7 @@ void CControlAPI::FileCGI(CyhookHandler *hh) { string_printf("%d", statbuf.st_uid), true); } /* Print out group name if it is found using getgrgid(). */ + struct group *grp; if ((grp = getgrgid(statbuf.st_gid)) != NULL) item += hh->outPair("group", grp->gr_name, true); else { @@ -2798,7 +2791,8 @@ void CControlAPI::FileCGI(CyhookHandler *hh) { item += hh->outPair("size", string_printf("%jd", (intmax_t) statbuf.st_size), true); - tm = localtime(&statbuf.st_mtime); + struct tm *tm = localtime(&statbuf.st_mtime); + char datestring[256] = {0}; /* Get localized date string. */ strftime(datestring, sizeof(datestring), nl_langinfo(D_T_FMT), tm); diff --git a/src/nhttpd/tuxboxapi/coolstream/controlapi.h b/src/nhttpd/tuxboxapi/coolstream/controlapi.h index 052739005..db8670cd3 100644 --- a/src/nhttpd/tuxboxapi/coolstream/controlapi.h +++ b/src/nhttpd/tuxboxapi/coolstream/controlapi.h @@ -8,7 +8,7 @@ #include // yhttpd #include -#include "yhook.h" +#include // forward declaration class CNeutrinoAPI; diff --git a/src/nhttpd/tuxboxapi/coolstream/neutrinoapi.cpp b/src/nhttpd/tuxboxapi/coolstream/neutrinoapi.cpp index 2ca05cfd4..65b433331 100644 --- a/src/nhttpd/tuxboxapi/coolstream/neutrinoapi.cpp +++ b/src/nhttpd/tuxboxapi/coolstream/neutrinoapi.cpp @@ -50,7 +50,7 @@ extern CRemoteControl *g_RemoteControl; /* neutrino.cpp */ extern CZapitClient::SatelliteList satList; // yhttpd -#include "ylogging.h" +#include // nhttpd #include "neutrinoapi.h" @@ -266,7 +266,7 @@ bool CNeutrinoAPI::GetChannelEvents(void) if (eList.begin() == eList.end()) return false; - for (eventIterator = eList.begin(); eventIterator != eList.end(); eventIterator++) + for (eventIterator = eList.begin(); eventIterator != eList.end(); ++eventIterator) ChannelListEvents[(*eventIterator).get_channel_id()] = &(*eventIterator); return true; @@ -457,14 +457,13 @@ std::string CNeutrinoAPI::getAudioInfoAsString(void) { //------------------------------------------------------------------------- std::string CNeutrinoAPI::getCryptInfoAsString(void) { - unsigned short i; std::stringstream out; std::string casys[11]= {"Irdeto:","Betacrypt:","Seca:","Viaccess:","Nagra:","Conax: ","Cryptoworks:","Videoguard:","EBU:","XCrypt:","PowerVU:"}; int caids[] = { 0x600, 0x1700, 0x0100, 0x0500, 0x1800, 0xB00, 0xD00, 0x900, 0x2600, 0x4a00, 0x0E00 }; CZapitChannel * channel = CZapit::getInstance()->GetCurrentChannel(); if(channel) { - for (i = 0; i < 11; i++) { + for (unsigned short i = 0; i < 11; i++) { for(casys_map_iterator_t it = channel->camap.begin(); it != channel->camap.end(); ++it) { int caid = (*it) & 0xFF00; if(caid == caids[i]) diff --git a/src/nhttpd/tuxboxapi/coolstream/neutrinoapi.h b/src/nhttpd/tuxboxapi/coolstream/neutrinoapi.h index 892dde995..a98a7b5bf 100644 --- a/src/nhttpd/tuxboxapi/coolstream/neutrinoapi.h +++ b/src/nhttpd/tuxboxapi/coolstream/neutrinoapi.h @@ -12,7 +12,7 @@ #include // nhttpd -#include "helper.h" +#include #include "neutrinoyparser.h" #include "controlapi.h" diff --git a/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp b/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp index 4498f8064..3e988b22a 100644 --- a/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp +++ b/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp @@ -13,9 +13,9 @@ #include //ntohs #include //ntohs // yhttpd -#include "yhttpd.h" -#include "ytypes_globals.h" -#include "mod_yparser.h" +#include +#include +#include // tuxbox #include //timer list // nhttpd @@ -209,7 +209,7 @@ std::string CNeutrinoYParser::func_mount_set_values(CyhookHandler *hh, std::str //------------------------------------------------------------------------- std::string CNeutrinoYParser::func_get_bouquets_as_dropdown(CyhookHandler *, std::string para) { - std::string ynr, yresult, sel, nr_str, do_show_hidden; + std::string yresult, sel, nr_str, do_show_hidden; int nr=1; ySplitString(para," ",nr_str, do_show_hidden); @@ -268,7 +268,7 @@ std::string CNeutrinoYParser::func_get_actual_bouquet_number(CyhookHandler *, s //------------------------------------------------------------------------- std::string CNeutrinoYParser::func_get_channels_as_dropdown(CyhookHandler *, std::string para) { - std::string abouquet, achannel_id, yresult, sel, sid; + std::string abouquet, achannel_id, yresult, sel; int bnumber = 1; int mode = NeutrinoAPI->Zapit->getMode(); @@ -596,7 +596,7 @@ std::string CNeutrinoYParser::func_get_audio_pids_as_dropdown(CyhookHandler *, //------------------------------------------------------------------------- std::string CNeutrinoYParser::func_unmount_get_list(CyhookHandler *, std::string) { - std::string ysel, ymount, ylocal_dir, yfstype, ynr, yresult, mounts; + std::string ysel, ymount, ylocal_dir, yfstype, yresult, mounts; std::ifstream in; in.open("/proc/mounts", std::ifstream::in); @@ -832,7 +832,7 @@ std::string CNeutrinoYParser::func_get_timer_list(CyhookHandler *, std::string yresult += string_printf(para.c_str(), classname, zAlarmTime, zStopTime, zRep.c_str(), zRepCount.c_str(), zType.c_str(), sAddData.c_str(),timer->eventID,timer->eventID); } - classname = (i++&1)?'a':'b'; + //classname = (i++&1)?'a':'b'; return yresult; } diff --git a/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.h b/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.h index 2d8da7697..b32f99c32 100644 --- a/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.h +++ b/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.h @@ -9,9 +9,9 @@ // c++ #include // yhttpd -#include "yhttpd.h" -#include "ytypes_globals.h" -#include "mod_yparser.h" +#include +#include +#include // forward declaration class CNeutrinoAPI; diff --git a/src/nhttpd/yhttpd.cpp b/src/nhttpd/yhttpd.cpp index a7039798b..7e37a46a4 100644 --- a/src/nhttpd/yhttpd.cpp +++ b/src/nhttpd/yhttpd.cpp @@ -34,28 +34,28 @@ CStringList Cyhttpd::ConfigList; //============================================================================= #ifdef Y_CONFIG_USE_AUTHHOOK -#include "mod_auth.h" +#include static CmAuth *auth = NULL; #endif #ifdef Y_CONFIG_USE_WEBLOG -#include "mod_weblog.h" +#include static CmWebLog *weblog = NULL; #endif #ifdef Y_CONFIG_USE_SENDFILE -#include "mod_sendfile.h" +#include static CmodSendfile *mod_sendfile = NULL; #endif #ifdef Y_CONFIG_USE_CACHE -#include "mod_cache.h" +#include static CmodCache mod_cache; // static instance #endif //----------------------------------------------------------------------------- #if defined(CONFIG_SYSTEM_TUXBOX) || defined(CONFIG_SYSTEM_TUXBOX_COOLSTREAM) -#include "neutrinoapi.h" +#include static CNeutrinoAPI *NeutrinoAPI; #endif diff --git a/src/nhttpd/yhttpd_core/helper.cpp b/src/nhttpd/yhttpd_core/helper.cpp index 38b188ba2..e2449fbbd 100644 --- a/src/nhttpd/yhttpd_core/helper.cpp +++ b/src/nhttpd/yhttpd_core/helper.cpp @@ -12,7 +12,7 @@ #include // yhttpd -#include "yconfig.h" +#include #include "ytypes_globals.h" #include "helper.h" #include "ylogging.h" @@ -220,10 +220,10 @@ std::string encodeString(std::string decodedString) { unsigned int len = sizeof(char) * decodedString.length() * 5 + 1; std::string result(len, '\0'); char *newString = (char *) result.c_str(); - char *dstring = (char *) decodedString.c_str(); char one_char; if (len == result.length()) // got memory needed { + char *dstring = (char *) decodedString.c_str(); while ((one_char = *dstring++)) /* use the null character as a loop terminator */ { if (isalnum(one_char)) diff --git a/src/nhttpd/yhttpd_core/yconnection.cpp b/src/nhttpd/yhttpd_core/yconnection.cpp index 7c035c12d..ea16280b5 100644 --- a/src/nhttpd/yhttpd_core/yconnection.cpp +++ b/src/nhttpd/yhttpd_core/yconnection.cpp @@ -8,7 +8,7 @@ #include #include // yhttpd -#include "yconfig.h" +#include #include "ytypes_globals.h" #include "ywebserver.h" #include "yconnection.h" @@ -44,6 +44,7 @@ CWebserverConnection::CWebserverConnection(CWebserver *pWebserver) { //------------------------------------------------------------------------- CWebserverConnection::CWebserverConnection() { // aprintf("test CWebserverConnection::CWebserverConnection()\n"); + Method = M_UNKNOWN; sock = 0; RequestCanceled = 0; keep_alive = 0; diff --git a/src/nhttpd/yhttpd_core/yconnection.h b/src/nhttpd/yhttpd_core/yconnection.h index 50dca5580..cc8ebc6ca 100644 --- a/src/nhttpd/yhttpd_core/yconnection.h +++ b/src/nhttpd/yhttpd_core/yconnection.h @@ -14,7 +14,7 @@ // c++ #include // yhttpd -#include "yconfig.h" +#include #include "ytypes_globals.h" #include "ywebserver.h" #include "yrequest.h" diff --git a/src/nhttpd/yhttpd_core/yhook.h b/src/nhttpd/yhttpd_core/yhook.h index 9556be9f5..b313dadda 100644 --- a/src/nhttpd/yhttpd_core/yhook.h +++ b/src/nhttpd/yhttpd_core/yhook.h @@ -51,7 +51,7 @@ #include #include // yhttpd -#include "yconfig.h" +#include #include "ytypes_globals.h" #include "ylogging.h" // tuxbox @@ -141,7 +141,7 @@ public: CStringList HookVarList; // Variables in Hook-Handling passing to other Hooks THttp_Method Method; // HTTP Method (requested) // constructor & deconstructor - CyhookHandler(){ContentLength = 0; keep_alive = 0; _outIndent = 0;}; + CyhookHandler(){ContentLength = 0; keep_alive = 0; _outIndent = 0;status = HANDLED_NONE;Method = M_UNKNOWN;httpStatus = HTTP_NIL;outType = plain;}; virtual ~CyhookHandler(){}; // hook slot handler diff --git a/src/nhttpd/yhttpd_core/ylanguage.h b/src/nhttpd/yhttpd_core/ylanguage.h index 3ba368f7c..e90658fc2 100644 --- a/src/nhttpd/yhttpd_core/ylanguage.h +++ b/src/nhttpd/yhttpd_core/ylanguage.h @@ -8,7 +8,7 @@ #include #include // yhttpd -#include "yconfig.h" +#include #include "ytypes_globals.h" #include "ywebserver.h" diff --git a/src/nhttpd/yhttpd_core/yrequest.cpp b/src/nhttpd/yhttpd_core/yrequest.cpp index 94fb344bd..999903915 100644 --- a/src/nhttpd/yhttpd_core/yrequest.cpp +++ b/src/nhttpd/yhttpd_core/yrequest.cpp @@ -116,7 +116,7 @@ bool CWebserverRequest::HandleRequest(void) { // Split URL into path, filename, fileext .. UrlData[] //----------------------------------------------------------------------------- bool CWebserverRequest::ParseStartLine(std::string start_line) { - std::string method, url, http, tmp; + std::string method, url, tmp; log_level_printf(8, ": line: %s\n", start_line.c_str()); if (ySplitString(start_line, " ", method, tmp)) { diff --git a/src/nhttpd/yhttpd_core/yresponse.cpp b/src/nhttpd/yhttpd_core/yresponse.cpp index c010a0f74..96ed8f510 100644 --- a/src/nhttpd/yhttpd_core/yresponse.cpp +++ b/src/nhttpd/yhttpd_core/yresponse.cpp @@ -15,8 +15,8 @@ #include #include // yhttpd -#include "yconfig.h" -#include "yhttpd.h" +#include +#include #include "ytypes_globals.h" #include "ylogging.h" #include "ywebserver.h" diff --git a/src/nhttpd/yhttpd_core/yresponse.h b/src/nhttpd/yhttpd_core/yresponse.h index 6bdaeab1b..4eb2bf864 100644 --- a/src/nhttpd/yhttpd_core/yresponse.h +++ b/src/nhttpd/yhttpd_core/yresponse.h @@ -9,7 +9,7 @@ // c++ #include // yhttpd -#include "yconfig.h" +#include #include "ytypes_globals.h" #include "yhook.h" @@ -42,8 +42,8 @@ public: void printf(const char *fmt, ...); bool Write(char const *text); bool WriteLn(char const *text); - bool Write(const std::string text) { return Write(text.c_str()); } - bool WriteLn(const std::string text) { return WriteLn(text.c_str()); } + bool Write(const std::string &text) { return Write(text.c_str()); } + bool WriteLn(const std::string &text) { return WriteLn(text.c_str()); } // Headers void SendError(HttpResponseType responseType) {SendHeader(responseType, false, "text/html");} diff --git a/src/nhttpd/yhttpd_core/ysocket.cpp b/src/nhttpd/yhttpd_core/ysocket.cpp index d78912640..6c51d3324 100644 --- a/src/nhttpd/yhttpd_core/ysocket.cpp +++ b/src/nhttpd/yhttpd_core/ysocket.cpp @@ -17,7 +17,7 @@ #include // yhttpd -#include "yhttpd.h" +#include #include "ysocket.h" #include "ylogging.h" // system @@ -64,6 +64,7 @@ CySocket::~CySocket() { // initialize //----------------------------------------------------------------------------- void CySocket::init(void) { + BytesSend = 0; handling = false; isOpened = false; isValid = true; @@ -194,8 +195,8 @@ CySocket* CySocket::accept() { #else set_tcp_nodelay(); #endif + new_ySocket->isOpened = true; } - new_ySocket->isOpened = true; // handling = true; return new_ySocket; } diff --git a/src/nhttpd/yhttpd_core/ywebserver.cpp b/src/nhttpd/yhttpd_core/ywebserver.cpp index 601b966a3..eae380b95 100644 --- a/src/nhttpd/yhttpd_core/ywebserver.cpp +++ b/src/nhttpd/yhttpd_core/ywebserver.cpp @@ -19,7 +19,7 @@ #include // yhttpd -#include "yhttpd.h" +#include #include "ytypes_globals.h" #include "ywebserver.h" #include "ylogging.h" @@ -241,7 +241,6 @@ bool CWebserver::run(void) { int CWebserver::AcceptNewConnectionSocket() { int slot = -1; CySocket *connectionSock = NULL; - int newfd; if (!(connectionSock = listenSocket.accept())) // Blocking wait { @@ -265,7 +264,7 @@ int CWebserver::AcceptNewConnectionSocket() { SocketList[slot] = connectionSock; // put it to list fcntl(connectionSock->get_socket(), F_SETFD, O_NONBLOCK); // set non-blocking open_connections++; // count open connectins - newfd = connectionSock->get_socket(); + int newfd = connectionSock->get_socket(); if (newfd > fdmax) // keep track of the maximum fd fdmax = newfd; } @@ -377,7 +376,7 @@ bool CWebserver::CheckKeepAliveAllowedByIP(std::string client_ip) { while (it != conf_no_keep_alive_ips.end()) { if (trim(*it) == client_ip) do_keep_alive = false; - it++; + ++it; } pthread_mutex_unlock(&mutex); return do_keep_alive; diff --git a/src/nhttpd/yhttpd_mods/mod_auth.cpp b/src/nhttpd/yhttpd_mods/mod_auth.cpp index 3934dc0e4..8e747243c 100644 --- a/src/nhttpd/yhttpd_mods/mod_auth.cpp +++ b/src/nhttpd/yhttpd_mods/mod_auth.cpp @@ -6,7 +6,7 @@ #include #include #include "mod_auth.h" -#include "helper.h" +#include //----------------------------------------------------------------------------- // HOOK: response_hook @@ -65,11 +65,11 @@ bool CmAuth::CheckAuth(CyhookHandler *hh) { // decode Base64 buffer to String //----------------------------------------------------------------------------- std::string CmAuth::decodeBase64(const char *b64buffer) { - char *newString, *org_newString; //shorter then b64buffer + char *newString; //shorter then b64buffer std::string result; if ((newString = (char *) malloc(sizeof(char) * strlen(b64buffer) + 1)) != NULL) { - org_newString = newString; + char *org_newString = newString; int i = 0; unsigned long c = 0; diff --git a/src/nhttpd/yhttpd_mods/mod_auth.h b/src/nhttpd/yhttpd_mods/mod_auth.h index 6215c3fb9..4efdcd8e9 100644 --- a/src/nhttpd/yhttpd_mods/mod_auth.h +++ b/src/nhttpd/yhttpd_mods/mod_auth.h @@ -5,11 +5,12 @@ #ifndef __yhttpd_mod_auth_h__ #define __yhttpd_mod_auth_h__ -#include "yhook.h" +#include class CmAuth: public Cyhook { public: bool authenticate; CmAuth() { + authenticate = false; } ; ~CmAuth() { diff --git a/src/nhttpd/yhttpd_mods/mod_cache.cpp b/src/nhttpd/yhttpd_mods/mod_cache.cpp index 2c59edf20..2172e17e0 100644 --- a/src/nhttpd/yhttpd_mods/mod_cache.cpp +++ b/src/nhttpd/yhttpd_mods/mod_cache.cpp @@ -8,9 +8,9 @@ #include #include // yhttpd -#include "yconfig.h" -#include "ytypes_globals.h" -#include "helper.h" +#include +#include +#include #include "mod_cache.h" //============================================================================= @@ -128,7 +128,7 @@ void CmodCache::AddToCache(CyhookHandler *, std::string url, CacheList[url].mime_type = mime_type; CacheList[url].category = category; CacheList[url].created = time(NULL); - std::string test = CacheList[url].filename; +// std::string test = CacheList[url].filename; } fflush(fd); // flush and close file fclose(fd); @@ -154,7 +154,7 @@ void CmodCache::RemoveCategoryFromCache(std::string category) { do { restart = false; TCacheList::iterator i = CacheList.begin(); - for (; i != CacheList.end(); i++) { + for (; i != CacheList.end(); ++i) { TCache *item = &((*i).second); if (item->category == category) { CacheList.erase(((*i).first)); @@ -198,7 +198,7 @@ void CmodCache::yshowCacheInfo(CyhookHandler *hh) { "URLMimeFilenameCategoryCreatedRemove\n"); pthread_mutex_lock(&mutex); TCacheList::iterator i = CacheList.begin(); - for (; i != CacheList.end(); i++) { + for (; i != CacheList.end(); ++i) { TCache *item = &((*i).second); char timeStr[80]; strftime(timeStr, sizeof(timeStr), RFC1123FMT, gmtime(&(item->created))); diff --git a/src/nhttpd/yhttpd_mods/mod_cache.h b/src/nhttpd/yhttpd_mods/mod_cache.h index 149c0f8a3..d4172e6aa 100644 --- a/src/nhttpd/yhttpd_mods/mod_cache.h +++ b/src/nhttpd/yhttpd_mods/mod_cache.h @@ -11,9 +11,9 @@ // c++ #include // yhttpd -#include "yconfig.h" -#include "ytypes_globals.h" -#include "yhook.h" +#include +#include +#include //----------------------------------------------------------------------------- typedef struct { diff --git a/src/nhttpd/yhttpd_mods/mod_sendfile.cpp b/src/nhttpd/yhttpd_mods/mod_sendfile.cpp index 1e0d42b02..ce3a2551f 100644 --- a/src/nhttpd/yhttpd_mods/mod_sendfile.cpp +++ b/src/nhttpd/yhttpd_mods/mod_sendfile.cpp @@ -47,9 +47,9 @@ #include #include // yhttpd -#include "yconfig.h" -#include "ytypes_globals.h" -#include "helper.h" +#include +#include +#include #include "mod_sendfile.h" //============================================================================= @@ -64,7 +64,6 @@ CStringList CmodSendfile::sendfileTypes; THandleStatus CmodSendfile::Hook_PrepareResponse(CyhookHandler *hh) { hh->status = HANDLED_NONE; - int filed; log_level_printf(4, "mod_sendfile prepare hook start url:%s\n", hh->UrlData["fullurl"].c_str()); std::string mime = sendfileTypes[hh->UrlData["fileext"]]; if (((mime != "") || (hh->WebserverConfigList["mod_sendfile.sendAll"] == "true")) @@ -73,7 +72,7 @@ THandleStatus CmodSendfile::Hook_PrepareResponse(CyhookHandler *hh) { // build filename std::string fullfilename = GetFileName(hh, hh->UrlData["path"], hh->UrlData["filename"]); - + int filed; if ((filed = OpenFile(hh, fullfilename)) != -1) //can access file? { struct stat statbuf; @@ -180,7 +179,6 @@ std::string CmodSendfile::GetFileName(CyhookHandler *hh, std::string path, std:: //----------------------------------------------------------------------------- int CmodSendfile::OpenFile(CyhookHandler *, std::string fullfilename) { int fd = -1; - std::string tmpstring; if (fullfilename.length() > 0) { fd = open(fullfilename.c_str(), O_RDONLY | O_LARGEFILE); if (fd <= 0) { diff --git a/src/nhttpd/yhttpd_mods/mod_sendfile.h b/src/nhttpd/yhttpd_mods/mod_sendfile.h index 0bdcf157e..e4294a25f 100644 --- a/src/nhttpd/yhttpd_mods/mod_sendfile.h +++ b/src/nhttpd/yhttpd_mods/mod_sendfile.h @@ -11,9 +11,9 @@ // c++ #include // yhttpd -#include "yconfig.h" -#include "ytypes_globals.h" -#include "yhook.h" +#include +#include +#include //----------------------------------------------------------------------------- class CmodSendfile : public Cyhook diff --git a/src/nhttpd/yhttpd_mods/mod_testhook.h b/src/nhttpd/yhttpd_mods/mod_testhook.h index a92f9ed98..1f6ed9f2e 100644 --- a/src/nhttpd/yhttpd_mods/mod_testhook.h +++ b/src/nhttpd/yhttpd_mods/mod_testhook.h @@ -6,7 +6,7 @@ #define TESTHOOK_H_ -#include "yhook.h" +#include class CTesthook : public Cyhook { public: diff --git a/src/nhttpd/yhttpd_mods/mod_weblog.cpp b/src/nhttpd/yhttpd_mods/mod_weblog.cpp index 4d25f6e3f..49e88dab4 100644 --- a/src/nhttpd/yhttpd_mods/mod_weblog.cpp +++ b/src/nhttpd/yhttpd_mods/mod_weblog.cpp @@ -11,7 +11,7 @@ #include #include "mod_weblog.h" -#include "helper.h" +#include //============================================================================= // Initialization of static variables @@ -97,8 +97,8 @@ bool CmWebLog::printf(const char *fmt, ...) { if (!OpenLogFile()) return false; bool success = false; - char buffer[bufferlen]; if (WebLogFile != NULL) { + char buffer[bufferlen]={0}; pthread_mutex_lock(&WebLog_mutex); // yeah, its mine va_list arglist; va_start(arglist, fmt); @@ -130,6 +130,8 @@ bool CmWebLog::printf(const char *fmt, ...) { //----------------------------------------------------------------------------- void CmWebLog::AddLogEntry_CLF(CyhookHandler *hh) { +#if 0 +//never used std::string cs_method; switch (hh->Method) { @@ -141,6 +143,7 @@ void CmWebLog::AddLogEntry_CLF(CyhookHandler *hh) cs_method = "unknown"; break; } +#endif std::string c_ip = hh->UrlData["clientaddr"].c_str(); std::string request_startline = hh->UrlData["startline"].c_str(); int s_status = hh->httpStatus; @@ -315,7 +318,6 @@ void CmWebLog::AddLogEntry_ELF(CyhookHandler *hh) std::string c_ip = hh->UrlData["clientaddr"].c_str(); std::string request_startline = hh->UrlData["startline"].c_str(); std::string cs_uri = hh->UrlData["fullurl"]; - std::string cs_uri_stem = hh->UrlData["url"]; int sc_status = hh->httpStatus; int bytes = hh->GetContentLength(); int cached = (hh->HookVarList["CacheCategory"].empty()) ? 0 : 1; diff --git a/src/nhttpd/yhttpd_mods/mod_weblog.h b/src/nhttpd/yhttpd_mods/mod_weblog.h index f65026b55..bcdf2d96e 100644 --- a/src/nhttpd/yhttpd_mods/mod_weblog.h +++ b/src/nhttpd/yhttpd_mods/mod_weblog.h @@ -5,8 +5,8 @@ #ifndef __yhttpd_mod_weblog_h__ #define __yhttpd_mod_weblog_h__ -#include "yconfig.h" -#include "yhook.h" +#include +#include //----------------------------------------------------------------------------- // Defaults #ifndef LOG_FILE diff --git a/src/nhttpd/yhttpd_mods/mod_yparser.cpp b/src/nhttpd/yhttpd_mods/mod_yparser.cpp index 9ad6eb7e6..3fd7a1c5e 100644 --- a/src/nhttpd/yhttpd_mods/mod_yparser.cpp +++ b/src/nhttpd/yhttpd_mods/mod_yparser.cpp @@ -18,12 +18,12 @@ // tuxbox #include // yhttpd -#include "yconfig.h" -#include "ytypes_globals.h" -#include "helper.h" -#include "ylogging.h" +#include +#include +#include +#include #include "mod_yparser.h" -#include "ylanguage.h" +#include //============================================================================= // Initialization of static variables @@ -111,7 +111,7 @@ void CyParser::Execute(CyhookHandler *hh) { if (CLogging::getInstance()->getDebug()) { dprintf("Execute CGI : %s\n", filename.c_str()); for (CStringList::iterator it = hh->ParamList.begin(); it - != hh->ParamList.end(); it++) + != hh->ParamList.end(); ++it) dprintf(" Parameter %s : %s\n", it->first.c_str(), it->second.c_str()); } @@ -156,7 +156,6 @@ void CyParser::Execute(CyhookHandler *hh) { // mini cgi Engine (Entry for ycgi) //----------------------------------------------------------------------------- void CyParser::cgi(CyhookHandler *hh) { - bool ydebug = false; std::string htmlfilename, yresult, ycmd; if ( !hh->ParamList.empty() ) { @@ -164,6 +163,7 @@ void CyParser::cgi(CyhookHandler *hh) { htmlfilename = hh->ParamList["tmpl"]; else htmlfilename = hh->ParamList["1"]; + bool ydebug = false; if (hh->ParamList["debug"] != "") // switch debug on ydebug = true; @@ -171,7 +171,6 @@ void CyParser::cgi(CyhookHandler *hh) { { ycmd = hh->ParamList["execute"]; ycmd = YPARSER_ESCAPE_START + ycmd + YPARSER_ESCAPE_END; - ycmd = ycmd; yresult = cgi_cmd_parsing(hh, ycmd, ydebug); // parsing engine } // parsing given file @@ -471,7 +470,7 @@ std::string CyParser::YWeb_cgi_cmd(CyhookHandler *hh, std::string ycmd) { pthread_mutex_unlock(&yParser_mutex); } } else if (ycmd_type == "file-action") { - std::string filename, actionname, content, tmp, ydefault; + std::string filename, actionname, content, tmp; if (ySplitString(ycmd_name, ";", filename, tmp)) { ySplitString(tmp, ";", actionname, content); replace(content, "\r\n", "\n"); @@ -522,7 +521,6 @@ std::string CyParser::YWeb_cgi_get_ini(CyhookHandler *, std::string filename, //------------------------------------------------------------------------- void CyParser::YWeb_cgi_set_ini(CyhookHandler *, std::string filename, std::string varname, std::string varvalue, std::string yaccess) { - std::string result; if ((yaccess == "open") || (yaccess == "")) { yConfig->clear(); yConfig->loadConfig(filename); @@ -738,11 +736,11 @@ std::string CyParser::func_get_languages_as_dropdown(CyhookHandler *, std::string para) { std::string yresult, sel; DIR *d; - struct dirent *dir; std::string act_language = CLanguage::getInstance()->language; d = opendir((CLanguage::getInstance()->language_dir).c_str()); if (d != NULL) { + struct dirent *dir; while ((dir = readdir(d))) { if (strcmp(dir->d_name, ".") == 0 || strcmp(dir->d_name, "..") == 0) continue; diff --git a/src/nhttpd/yhttpd_mods/mod_yparser.h b/src/nhttpd/yhttpd_mods/mod_yparser.h index 628ed0a7e..ae5d49118 100644 --- a/src/nhttpd/yhttpd_mods/mod_yparser.h +++ b/src/nhttpd/yhttpd_mods/mod_yparser.h @@ -16,10 +16,10 @@ #include // yhttpd -#include "helper.h" -#include "yconfig.h" -#include "ytypes_globals.h" -#include "yhook.h" +#include +#include +#include +#include // forward declaration class CWebserverConnection; From 6c0d69a8058395db9bd351575ae90ee9ed4786b0 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Fri, 30 Nov 2012 13:55:34 +0100 Subject: [PATCH 64/69] icons: introduce new icons backward, forward, pause and play Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/91abca7d30fa1516efbaa6f6caa6da40512e9f3b Author: vanhofen Date: 2012-11-30 (Fri, 30 Nov 2012) Origin message was: ------------------ - icons: introduce new icons backward, forward, pause and play ------------------ This commit was generated by Migit --- data/icons/Makefile.am | 4 ++++ data/icons/btn_backward.png | Bin 0 -> 572 bytes data/icons/btn_forward.png | Bin 0 -> 620 bytes data/icons/btn_pause.png | Bin 0 -> 566 bytes data/icons/btn_play.png | Bin 0 -> 580 bytes src/gui/widget/icons.h | 4 ++++ 6 files changed, 8 insertions(+) create mode 100644 data/icons/btn_backward.png create mode 100644 data/icons/btn_forward.png create mode 100644 data/icons/btn_pause.png create mode 100644 data/icons/btn_play.png diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am index 4b256a96e..b8b41539d 100644 --- a/data/icons/Makefile.am +++ b/data/icons/Makefile.am @@ -46,6 +46,10 @@ install_DATA += \ 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 \ diff --git a/data/icons/btn_backward.png b/data/icons/btn_backward.png new file mode 100644 index 0000000000000000000000000000000000000000..962e71c844cad566117abca0ed551ecce160e956 GIT binary patch literal 572 zcmV-C0>k}@P)&xpfnI=6S2%}m=d=X=;#aqBwi}ftldU!={JgjH%J)fu+kxY}&0*DBz3V<$Pj9CDT z&2wuF##oFshzI}{Ad?J5L31cdy;0}*<1zEu97%=O(JQ*$F0=WJR8lg@{t!r-PvD$G zRoQ>D&%xUR0Iq&su@~)8Z!`cH$1!*FJ0!g~K_Nj=n$0GyR%>Zir_-VRuDyKU{<=j( zmJ)mb$pp<5#nEoJSKKZNi*U~2RFO27|$};pFoP{eFLq(rpst><-`eiQ{-lQYw}C{^Nqv;VA$H1Int2St>Z^@=ddb zt*wCZ<(T1@A={OwJbv_q$z;N4G@??eV2mM4?-8UTprFp-0P9(Ta=`OvFF=(b2(X^V zZgm%@8Rc?0?^zJsWRiv3JKO&}Ag@%S*xceGec&jWCjWcRpMC@MT=x#q|Kr^N0000< KMNUMnLSTY+Z34^y literal 0 HcmV?d00001 diff --git a/data/icons/btn_forward.png b/data/icons/btn_forward.png new file mode 100644 index 0000000000000000000000000000000000000000..cad43950b4e18dc11a5166a666f53ba142591738 GIT binary patch literal 620 zcmV-y0+aoTP)3loZ&8}ymQrXuO&^2BkBGZt}z8UCSQVnL9kNwpU>R!S=gt~{?$ zC=`g}pIB>eTQJrjR*UMj#@WuBFuCE8v z790-u7sKBE9xu1H61-pEPae8$!5G9zGRjGD6J=2*-w5Qbq=qpF)#dGxr*)zuHQ=P~H_X@C7fYG#J)d={-W ztyYV4I!!*8CzVPOgaP6lpFg$m0fxqafH+4OhAb^TB=7_7MG;ylO3NkuARvk&P=d7< zYeyf+2QIC#nc4fZ|6H6Xijv$6Ent(4^nvY8yYs*6{Q5T~#rw|VNFT%i0000B literal 0 HcmV?d00001 diff --git a/data/icons/btn_pause.png b/data/icons/btn_pause.png new file mode 100644 index 0000000000000000000000000000000000000000..c18fafa40af1986e5d09fc04263c41c14bcf9496 GIT binary patch literal 566 zcmV-60?GY}P))M_=Rvnk$tyz_quT((dU zLZH=Z0dV@^l*jLnr1O+UqX9s(+2q^91L-WqWg7}s76i$!`RAB)KF`gbo_>&~>Dqz? zaNZ$a5JK*AmSqs~q`$Ka9|F$1T?-;xSqX%lAt180U{@9b0Yq)%LBbYR2qO6uoO4K! zb(EVF;co&6y95jNK)>GypwsDKjRoL#a0|e7_nLyWC{%ulK68W+(8@3v47mAx!}G6a zN~IFTf@Sz+NUzspGMP{=M_6m|n>)yy0|5yEV+@r_g>tD(VXufW7Gn&DhgA+L2kgBm zVy#_ZmIPz(e6;^||DVTWtzGx41c0#xE|O95zvq1Q0+Jf==ZYee<^TWy07*qoM6N<$ Ef)jK36aWAK literal 0 HcmV?d00001 diff --git a/data/icons/btn_play.png b/data/icons/btn_play.png new file mode 100644 index 0000000000000000000000000000000000000000..e1baa70cab5893783650108ea7d482272dffbc9f GIT binary patch literal 580 zcmV-K0=xZ*P)}w<}2qLm>Bp0Nxuq9-r;w5+haFAaI#|1G@;mTDC za6#+B4XtTnL*d<-6xViwtOSvjMth{$Ju~Nw#+-gRZ30~&;%(;vI17R9?*48RSK~MR zz8~I4U99aP89I6U{F2WeI z2rxFm)*6hl7;A9O0bl{V^C$|cd_Fp&)oKxcig|u|PI96kimIX{w|D+Gftx2ChzPY> z4S@P_op!rTrBY$`G{bqHbSa98;^u#Ju#}+anpurTgUhd%d^|j4I-B8r^7e%U=N;-5 z75S^{$MrfF=jTiwADKIc^KM;&>g(gX8xEOHf38aq1o;O;=Ua!9<_RncEhU624@6P3 zPH@$^qIc6HpUZRb;egW44%uvGod7^p==b|Hn@u{M4%gqW$>nnF@9j}6M&$E(vY8Cl z+Lr`=?hp~I2^b6p^lo}gCKJl#GKE5ct^5|7=` Date: Fri, 30 Nov 2012 22:06:27 +0100 Subject: [PATCH 65/69] add keys to control the audioplayer from pictureviewer decode and view pictures in a seperate thread. Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/031db7bae19e6d5f7384c23a49f9e8cf7bf9da63 Author: defans Date: 2012-11-30 (Fri, 30 Nov 2012) Origin message was: ------------------ - add keys to control the audioplayer from pictureviewer decode and view pictures in a seperate thread. ------------------ This commit was generated by Migit --- data/locale/deutsch.locale | 6 +++ data/locale/english.locale | 6 +++ src/gui/audioplayer.h | 11 ++-- src/gui/pictureviewer.cpp | 100 ++++++++++++++++++++++++++++++++++--- src/gui/pictureviewer.h | 8 +++ src/system/locals.h | 6 +++ src/system/locals_intern.h | 6 +++ 7 files changed, 131 insertions(+), 12 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 3b3930340..068d6e85f 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1452,6 +1452,12 @@ pictureviewer.help20 Sortierung andern pictureviewer.help21 Bild unskaliert einlesen pictureviewer.help22 Modus verlassen pictureviewer.help3 Sortierung andern +pictureviewer.help30 Audioplayer-Modus +pictureviewer.help31 Startet die Wiedergabe +pictureviewer.help32 Pausiert die Wiedergabe +pictureviewer.help33 Stoppt die Wiedergabe +pictureviewer.help34 nächster Titel +pictureviewer.help35 vorheriger Titel pictureviewer.help4 Bild unskaliert einlesen pictureviewer.help5 Diashow-Modus pictureviewer.help6 vorheriges Bild diff --git a/data/locale/english.locale b/data/locale/english.locale index 45aa2db2f..dea61a864 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1452,6 +1452,12 @@ pictureviewer.help20 change sort order pictureviewer.help21 reread image (no scaling) pictureviewer.help22 exit pictureviewer.help3 change sort order +pictureviewer.help30 audioplayer mode +pictureviewer.help31 starts the playback +pictureviewer.help32 pauses the playback +pictureviewer.help33 stops the playback +pictureviewer.help34 next title +pictureviewer.help35 previous title pictureviewer.help4 do not scale picture pictureviewer.help5 diashow mode pictureviewer.help6 previous image diff --git a/src/gui/audioplayer.h b/src/gui/audioplayer.h index 6a73378e3..daba3d8a9 100644 --- a/src/gui/audioplayer.h +++ b/src/gui/audioplayer.h @@ -159,9 +159,6 @@ class CAudioPlayerGui : public CMenuTarget CFileFilter audiofilefilter; void paintItemID3DetailsLine (int pos); void clearItemID3DetailsLine (); - void play(unsigned int pos); - void stop(); - void pause(); void ff(unsigned int seconds=0); void rev(unsigned int seconds=0); int getNext(); @@ -248,8 +245,6 @@ class CAudioPlayerGui : public CMenuTarget bool openSCbrowser(void); bool clearPlaylist(void); bool shufflePlaylist(void); - bool playNext(bool allow_rotate = false); - bool playPrev(bool allow_rotate = false); bool pictureviewer; @@ -260,6 +255,12 @@ class CAudioPlayerGui : public CMenuTarget int exec(CMenuTarget* parent, const std::string & actionKey); void wantNextPlay(); + void pause(); + void play(unsigned int pos); + void stop(); + bool playNext(bool allow_rotate = false); + bool playPrev(bool allow_rotate = false); + int getAdioPayerM_currend() {return m_current;} }; diff --git a/src/gui/pictureviewer.cpp b/src/gui/pictureviewer.cpp index 3165df49b..866f2813a 100644 --- a/src/gui/pictureviewer.cpp +++ b/src/gui/pictureviewer.cpp @@ -101,6 +101,9 @@ CPictureViewerGui::CPictureViewerGui() picture_filter.addFilter("jpeg"); picture_filter.addFilter("gif"); picture_filter.addFilter("crw"); + + decodeT = 0; + decodeTflag = false; } //------------------------------------------------------------------------ @@ -109,6 +112,12 @@ CPictureViewerGui::~CPictureViewerGui() { playlist.clear(); delete m_viewer; + + if (decodeT) + { + pthread_cancel(decodeT); + decodeT = 0; + } } //------------------------------------------------------------------------ @@ -225,6 +234,9 @@ int CPictureViewerGui::show() bool loop=true; bool update=true; + if (audioplayer) + m_currentTitle = m_audioPlayer->getAdioPayerM_currend(); + while (loop) { if (update) @@ -544,6 +556,35 @@ int CPictureViewerGui::show() CVFD::getInstance()->setMode(CVFD::MODE_MENU_UTF8, g_Locale->getText(LOCALE_PICTUREVIEWER_HEAD)); } } + else if (((msg==CRCInput::RC_plus) || (msg==CRCInput::RC_minus)) && decodeTflag) + { + // FIXME: do not accept volume-keys while decoding + } + // control keys for audioplayer + else if (audioplayer && msg==CRCInput::RC_pause) + { + m_currentTitle = m_audioPlayer->getAdioPayerM_currend(); + m_audioPlayer->pause(); + } + else if (audioplayer && msg==CRCInput::RC_stop) + { + m_currentTitle = m_audioPlayer->getAdioPayerM_currend(); + m_audioPlayer->stop(); + } + else if (audioplayer && msg==CRCInput::RC_play) + { + m_currentTitle = m_audioPlayer->getAdioPayerM_currend(); + if (m_currentTitle > -1) + m_audioPlayer->play((unsigned int)m_currentTitle); + } + else if (audioplayer && msg==CRCInput::RC_forward) + { + m_audioPlayer->playNext(); + } + else if (audioplayer && msg==CRCInput::RC_rewind) + { + m_audioPlayer->playPrev(); + } else if (msg == NeutrinoMessages::CHANGEMODE) { if ((data & NeutrinoMessages::mode_mask) !=NeutrinoMessages::mode_pic) @@ -726,6 +767,10 @@ void CPictureViewerGui::paint() void CPictureViewerGui::view(unsigned int index, bool unscaled) { + if (decodeTflag) + return; + + m_unscaled = unscaled; selected=index; CVFD::getInstance()->showMenuText(0, playlist[index].Name.c_str()); @@ -733,26 +778,59 @@ void CPictureViewerGui::view(unsigned int index, bool unscaled) strftime(timestring, 18, "%d-%m-%Y %H:%M", gmtime(&playlist[index].Date)); //CVFD::getInstance()->showMenuText(1, timestring); //FIXME - if (unscaled) - m_viewer->DecodeImage(playlist[index].Filename, true, unscaled); - m_viewer->ShowImage(playlist[index].Filename, unscaled); + if (m_state==MENU) + m_state=VIEW; + //decode and view in a seperate thread + if (!decodeTflag) { + decodeTflag=true; + pthread_create(&decodeT, NULL, decodeThread, (void*) this); + pthread_detach(decodeT); + } +} + +void* CPictureViewerGui::decodeThread(void *arg) +{ + CPictureViewerGui *PictureViewerGui = (CPictureViewerGui*) arg; + + pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, NULL); + pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, NULL); + + PictureViewerGui->thrView(); + + PictureViewerGui->decodeTflag=false; + pthread_exit(NULL); +} + +void CPictureViewerGui::thrView() +{ + if (m_unscaled) + m_viewer->DecodeImage(playlist[selected].Filename, true, m_unscaled); + + m_viewer->ShowImage(playlist[selected].Filename, m_unscaled); + +#if 0 //Decode next unsigned int next=selected+1; if (next > playlist.size()-1) next=0; - if (m_state==MENU) - m_state=VIEW; if (m_state==VIEW) m_viewer->DecodeImage(playlist[next].Filename,true); else m_viewer->DecodeImage(playlist[next].Filename,false); +#endif } void CPictureViewerGui::endView() { if (m_state != MENU) m_state=MENU; + + if (decodeTflag) + { + decodeTflag=false; + pthread_cancel(decodeT); + } } void CPictureViewerGui::deletePicFile(unsigned int index, bool mode) @@ -798,8 +876,16 @@ void CPictureViewerGui::showHelp() helpbox.addLine(NEUTRINO_ICON_BUTTON_5, g_Locale->getText(LOCALE_PICTUREVIEWER_HELP20)); helpbox.addLine(NEUTRINO_ICON_BUTTON_0, g_Locale->getText(LOCALE_PICTUREVIEWER_HELP21)); helpbox.addLine(NEUTRINO_ICON_BUTTON_HOME, g_Locale->getText(LOCALE_PICTUREVIEWER_HELP22)); - - helpbox.addLine("Version: $Revision: 1.57 $"); + if(audioplayer) + { + helpbox.addPagebreak(); + helpbox.addLine(g_Locale->getText(LOCALE_PICTUREVIEWER_HELP30)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_PLAY, g_Locale->getText(LOCALE_PICTUREVIEWER_HELP31)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_PAUSE, g_Locale->getText(LOCALE_PICTUREVIEWER_HELP32)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_STOP, g_Locale->getText(LOCALE_PICTUREVIEWER_HELP33)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_FORWARD, g_Locale->getText(LOCALE_PICTUREVIEWER_HELP34)); + helpbox.addLine(NEUTRINO_ICON_BUTTON_BACKWARD, g_Locale->getText(LOCALE_PICTUREVIEWER_HELP35)); + } hide(); helpbox.show(LOCALE_MESSAGEBOX_INFO); } diff --git a/src/gui/pictureviewer.h b/src/gui/pictureviewer.h index 0909d6ef4..4e98071ae 100644 --- a/src/gui/pictureviewer.h +++ b/src/gui/pictureviewer.h @@ -111,6 +111,14 @@ class CPictureViewerGui : public CMenuTarget void deletePicFile(unsigned int index, bool mode); bool audioplayer; + int m_currentTitle; + + pthread_t decodeT; + static void* decodeThread(void *arg); + bool decodeTflag; + + void thrView(); + bool m_unscaled; public: CPictureViewerGui(); diff --git a/src/system/locals.h b/src/system/locals.h index 92fa4c9b3..eb94a4ceb 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1479,6 +1479,12 @@ typedef enum LOCALE_PICTUREVIEWER_HELP21, LOCALE_PICTUREVIEWER_HELP22, LOCALE_PICTUREVIEWER_HELP3, + LOCALE_PICTUREVIEWER_HELP30, + LOCALE_PICTUREVIEWER_HELP31, + LOCALE_PICTUREVIEWER_HELP32, + LOCALE_PICTUREVIEWER_HELP33, + LOCALE_PICTUREVIEWER_HELP34, + LOCALE_PICTUREVIEWER_HELP35, LOCALE_PICTUREVIEWER_HELP4, LOCALE_PICTUREVIEWER_HELP5, LOCALE_PICTUREVIEWER_HELP6, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 55c0a402b..b4431b571 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1479,6 +1479,12 @@ const char * locale_real_names[] = "pictureviewer.help21", "pictureviewer.help22", "pictureviewer.help3", + "pictureviewer.help30", + "pictureviewer.help31", + "pictureviewer.help32", + "pictureviewer.help33", + "pictureviewer.help34", + "pictureviewer.help35", "pictureviewer.help4", "pictureviewer.help5", "pictureviewer.help6", From 8fcd70001b621b882802b5ffc79bf58b0dd1ae72 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 4 Dec 2012 13:50:11 +0400 Subject: [PATCH 66/69] gui/movieplayer.cpp: dont auto-stop, if duration or position invalid Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/b252de089662efcdb5932851c78cbbb98bb7fe48 Author: [CST] Focus Date: 2012-12-04 (Tue, 04 Dec 2012) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/movieplayer.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index d7e02a6ef..391c51897 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -500,7 +500,9 @@ void CMoviePlayerGui::PlayFile(void) #ifdef DEBUG printf("CMoviePlayerGui::PlayFile: speed %d position %d duration %d (%d, %d%%)\n", speed, position, duration, duration-position, file_prozent); #endif - if (duration - position < 1000 && !timeshift) + /* in case ffmpeg report incorrect values */ + int posdiff = duration - position; + if ((posdiff > 0) && (posdiff < 1000) && !timeshift) { /* 10 seconds after end-of-file, stop */ if (++eof > 10) From 21018da47981cfc92db41fee24a8863a7bf50e77 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 4 Dec 2012 13:58:41 +0400 Subject: [PATCH 67/69] neutrino.cpp: revert mount at startup to system - fs can be not only ext3 but different Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/c77138f2607e8584c1a4559d93fc7b40d9175240 Author: [CST] Focus Date: 2012-12-04 (Tue, 04 Dec 2012) ------------------ This commit was generated by Migit --- src/neutrino.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 8323ec90a..8039d0142 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -1858,12 +1858,10 @@ TIMER_START(); g_CamHandler->init(); #ifndef ASSUME_MDEV - const char hddsda1[] = "/media/sda1"; - const char hddsdb1[] = "/media/sdb1"; - mkdir(hddsda1, 0755); - mount("/dev/sda1", hddsda1, "ext3", 0, NULL); - mkdir(hddsdb1,0755); - mount("/dev/sdb1", hddsdb1, "ext3", 0, NULL); + mkdir("/media/sda1", 0755); + mkdir("/media/sdb1", 0755); + my_system("mount", "/dev/sda1", "/media/sda1"); + my_system("mount", "/dev/sdb1", "/media/sdb1"); #endif CFSMounter::automount(); From 7532a717e4bf4fe350e0a77df1013e70404832e2 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 4 Dec 2012 14:52:03 +0400 Subject: [PATCH 68/69] neutrino.cpp: fix subchannel up/down processing: if key_subchannel_up/down is set to different than left/right keys, and mode_left_right_key_tv == SNeutrinoSettings::VOLUME, CVolume::setVolume called, but not process other keys, and post msg again -> loop forever. - process mode_left_right_key_tv modes only if subchannel up/down == left/right Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/d5cd463e17502cf41096560c33f1da929ee37dd4 Author: [CST] Focus Date: 2012-12-04 (Tue, 04 Dec 2012) ------------------ This commit was generated by Migit --- src/neutrino.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 8039d0142..45e780792 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2050,13 +2050,16 @@ void CNeutrinoApp::RealRun(CMenuWidget &mainMenu) g_RemoteControl->subChannelDown(); g_InfoViewer->showSubchan(); } - else if (g_settings.mode_left_right_key_tv == SNeutrinoSettings::VOLUME) { - g_volume->setVolume(msg, true); - } - else if((g_settings.mode_left_right_key_tv == SNeutrinoSettings::VZAP) || (g_settings.mode_left_right_key_tv == SNeutrinoSettings::INFOBAR)) { - if(channelList->getSize()) { - showInfo(); - } + else if ( msg == CRCInput::RC_left || msg == CRCInput::RC_right) { + if (g_settings.mode_left_right_key_tv == SNeutrinoSettings::VOLUME) { + g_volume->setVolume(msg, true); + } + else if((g_settings.mode_left_right_key_tv == SNeutrinoSettings::VZAP) + || (g_settings.mode_left_right_key_tv == SNeutrinoSettings::INFOBAR)) { + if(channelList->getSize()) { + showInfo(); + } + } } else quickZap( msg ); From e65c2fa30313618c7029527f43ac2c3c4fb4abc2 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 4 Dec 2012 17:25:58 +0400 Subject: [PATCH 69/69] zapit/src/fastscan.cpp: fix duplicate channels in favorite bouquet, try to fix possible possible duplicates from different frequency Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/5fc0d256f487ad0e1a4b7fae937ebb6efc1a77bd Author: [CST] Focus Date: 2012-12-04 (Tue, 04 Dec 2012) ------------------ This commit was generated by Migit --- src/zapit/src/fastscan.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/zapit/src/fastscan.cpp b/src/zapit/src/fastscan.cpp index 8fb2b8324..9c2cefde4 100644 --- a/src/zapit/src/fastscan.cpp +++ b/src/zapit/src/fastscan.cpp @@ -288,7 +288,7 @@ bool CServiceScan::ParseFst(unsigned short pid, fast_scan_operator_t * op) std::string providerName = convertDVBUTF8((const char*)&(dbuf[4]), service_provider_name_length, 1, 1); std::string serviceName = convertDVBUTF8((const char*)&(dbuf[4 + service_provider_name_length + 1]), service_name_length, 1, 1); - + #ifdef SCAN_DEBUG printf("[FST] #%04d at %04d: net %04x tp %04x sid %04x v %04x a %04x pcr %04x frq %05d type %d prov [%s] name [%s]\n", num, satellitePosition, original_network_id, transport_stream_id, service_id, video_pid, audio_pid, pcr_pid, freq, service_type, providerName.c_str(), serviceName.c_str()); #endif @@ -297,8 +297,20 @@ bool CServiceScan::ParseFst(unsigned short pid, fast_scan_operator_t * op) channel_id = CREATE_CHANNEL_ID64; CZapitChannel * newchannel; - +#if 0 newchannel = CServiceManager::getInstance()->FindChannel(channel_id); +#else + + int flist[5] = { freq, freq-1, freq+1, freq-2, freq+2 }; + for(int i = 0; i < 5; i++) { + freq_id_t freq_id = flist[i]; + t_channel_id newid = CZapitChannel::makeChannelId(satellitePosition, + freq_id, transport_stream_id, original_network_id, service_id); + newchannel = CServiceManager::getInstance()->FindChannel(newid); + if(newchannel) + break; + } +#endif if(newchannel == NULL) { newchannel = new CZapitChannel ( serviceName, @@ -338,10 +350,13 @@ bool CServiceScan::ParseFst(unsigned short pid, fast_scan_operator_t * op) bouquetId = g_bouquetManager->existsUBouquet(op->name); if (bouquetId == -1) { bouquet = g_bouquetManager->addBouquet(std::string(op->name), true); + bouquetId = g_bouquetManager->existsUBouquet(op->name); } else bouquet = g_bouquetManager->Bouquets[bouquetId]; - bouquet->addService(newchannel); + + if (!(g_bouquetManager->existsChannelInBouquet(bouquetId, newchannel->getChannelID()))) + bouquet->addService(newchannel); } break; default: