From 187825be19e19eeb20f377f6a68eac62bd362ae4 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sun, 11 Nov 2012 00:17:12 +0100 Subject: [PATCH 01/46] - infoviewer_bb.cpp: fix resolution 1080 --- 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 cddf86725d2d76037504c7fe78ce906ab46d33c9 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Sun, 11 Nov 2012 07:53:57 +0100 Subject: [PATCH 02/46] * Software Update with apply the settings (Part10) - Blacklist added to exclude files - Files are marked by a prefixed '-' in the settingsupdate.conf --- 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 967f9f8ef43d60133df269320707d3ededeaf7eb Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Sun, 11 Nov 2012 02:41:51 +0100 Subject: [PATCH 03/46] - infoviewer/streaminfo2: fix resolution 1080 --- 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 7d570537fdf18cc6ed530e8508169a98de27c0ca Mon Sep 17 00:00:00 2001 From: satbaby Date: Mon, 12 Nov 2012 12:23:23 +0100 Subject: [PATCH 04/46] src/driver/rcinput.cpp: use standby_rc in repeat mode only if need --- 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 c37a25172e99c3fec4446e2b067304cb0ac0eb16 Mon Sep 17 00:00:00 2001 From: striper Date: Tue, 13 Nov 2012 19:35:43 +0100 Subject: [PATCH 05/46] - cables.xml: update um and kms --- 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 b47821214039d924f1fbe42e01fe3212c0120684 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 15 Nov 2012 19:12:13 +0400 Subject: [PATCH 06/46] 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 --- 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 1f65f1bc80d77111bb89c63db910a805c57f3f99 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 15 Nov 2012 19:13:13 +0400 Subject: [PATCH 07/46] eitd/xmlutil.cpp: fix crash, if epg data saved with older image - item/item_description can be present and break parsing --- 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 00e188b37d632800761805b08de4617678187583 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 15 Nov 2012 19:16:10 +0400 Subject: [PATCH 08/46] driver/streamts.cpp: fix debug msg --- 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 f2f763391f51e467b88ebb1f62783673cb74f272 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 15 Nov 2012 19:17:19 +0400 Subject: [PATCH 09/46] zapit/src/frontend.cpp: add 50ms delay after reset and before diseqc cmd --- 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 d9cf5197f4f4628fc57a32ee4dd8f0b0510704b9 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Thu, 15 Nov 2012 05:21:10 +0100 Subject: [PATCH 10/46] * infoviewer_bb.cpp: Optimize display of simple resolution in the info bar --- 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 1ca7ced674c1658fbb65197af7f762e45615eaa0 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Mon, 12 Nov 2012 16:13:11 +0100 Subject: [PATCH 11/46] * 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() --- 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 f02a95e04d1a665aee5641a371f3e753ba2707c4 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 15:36:59 +0400 Subject: [PATCH 12/46] gui/filebrowser.cpp: save return status to check if all gui must be closed --- 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 36fa514bedfd6e10b9abdb621cfa8d9daa34a837 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 15:37:38 +0400 Subject: [PATCH 13/46] gui/moviebrowser.cpp: save return status to check if all gui must be closed --- 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 ff478108417560003f77a35f53b57c4031f13589 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 15:38:43 +0400 Subject: [PATCH 14/46] gui/movieplayer.cpp: get return status from filebrowser/moviebrowser --- 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 6d7f1efd0662bb9480158c396373f4d546041635 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 15:45:39 +0400 Subject: [PATCH 15/46] gui/audioplayer.cpp: return menu_return::RETURN_EXIT_ALL on standby/shutdown, thanks satbaby for patch --- 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 a4df1e2939e7f809d63e692e49b59656aa1c9339 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 15:52:02 +0400 Subject: [PATCH 16/46] gui/mediaplayer.cpp: return result from audio/movie players, thanks satbaby for patch --- 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 0f8c9bbef19abe362bd8e11ff186a1bc09adf138 Mon Sep 17 00:00:00 2001 From: satbaby Date: Fri, 16 Nov 2012 13:36:12 +0100 Subject: [PATCH 17/46] src/neutrino.cpp: add cancel message to RC_standby_on and RC_power_off (THX Gaucho316) --- 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 76947173c0ac2dca9e329c06568b3ee0077fe75c Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 16:49:58 +0400 Subject: [PATCH 18/46] gui/update.cpp: return result from file browser or image select menu --- 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 b2e3f2a19b7195a0b4657d7433c7cd59932a19c5 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 19:46:37 +0400 Subject: [PATCH 19/46] locals: add extra hint for local sw update menu point --- 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 2ac735d0ec439c011d154938794fad2ec94f8a27 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 19:47:25 +0400 Subject: [PATCH 20/46] gui/update.cpp: add local variable for update mode --- 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 cce9ced9f3c75965b77205b07b2365c0fe09a5d8 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 19:49:25 +0400 Subject: [PATCH 21/46] gui/update_settings.cpp: always enable both url and local dir option: local dir also used as target to download image from inet --- 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 b627c4767bceb6a43d955fee48447568e43b9c6e Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 16 Nov 2012 19:52:22 +0400 Subject: [PATCH 22/46] 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 --- 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 4af0eed1c59a99fb6621adb9cb11678252fb5ed1 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Fri, 16 Nov 2012 18:37:48 +0100 Subject: [PATCH 23/46] - deutsch.locale: update --- 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 07639c848868daadcbfddab0eac6b645fc08da13 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Fri, 16 Nov 2012 21:39:02 +0100 Subject: [PATCH 24/46] * Software Update: Added more files for network settings in settingsupdate.conf --- 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 1fc054758840dda89e90fc549511e81d662678eb Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Sat, 17 Nov 2012 00:37:08 +0100 Subject: [PATCH 25/46] * src/gui/update_menue.cpp: Fix assignment color buttons --- 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 a4e480a124a28670bf565ff924703078e40f4b7e Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sat, 17 Nov 2012 09:09:35 +0100 Subject: [PATCH 26/46] - icons: new mounted.png, not_mounted.png --- 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 27/46] - icons: add hint_mb.png --- 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 6a1aac4c2dc5f64aea5b420759a5befd5c8a7711 Mon Sep 17 00:00:00 2001 From: OneOfNine Date: Sat, 17 Nov 2012 10:35:06 +0100 Subject: [PATCH 28/46] - icons: improve border_lr.png, border_ul.png --- 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 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 From 51b6928d03e486a0f51b886cc93f8c785e5f46e0 Mon Sep 17 00:00:00 2001 From: OneOfNine Date: Sat, 17 Nov 2012 10:42:01 +0100 Subject: [PATCH 29/46] - icons: improve numericpad.png --- 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 8183e41d331c5165ea3c5d6033e8d3536f48e82a Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sat, 17 Nov 2012 11:33:46 +0100 Subject: [PATCH 30/46] - icons: install hint_mb.png --- 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 04e71239f2b4a68ab11205f02d9f9702dd232003 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Mon, 19 Nov 2012 02:32:06 +0100 Subject: [PATCH 31/46] * Software Update: /var/etc/update.urls is excluded from saving - Message 'Setting takeover successfully...' removed --- 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 af7b6d7a986f612f5009781b1192abbd2b60c0fd Mon Sep 17 00:00:00 2001 From: satbaby Date: Mon, 19 Nov 2012 17:58:24 +0100 Subject: [PATCH 32/46] src/driver/streamts.cpp fix segfault --- 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 fc2c89c664965691bfffaae551ca15b6d0bc3927 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Mon, 19 Nov 2012 18:13:35 +0100 Subject: [PATCH 33/46] - src/driver/streamts.cpp: fix linefeed --- 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 8131a25af15413755755bc86b7db551440c583f3 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Mon, 19 Nov 2012 22:33:50 +0100 Subject: [PATCH 34/46] - yweb: fix remotecontrol; remove dependency from MAC --- .../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 ed8734e2b9034ae4ad072db9f68dc8a80daee13b Mon Sep 17 00:00:00 2001 From: satbaby Date: Tue, 20 Nov 2012 13:21:33 +0100 Subject: [PATCH 35/46] src/gui/mediaplayer.cpp: fix memleaks when using CMenuForwarder --- 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 e111712fc63c914da53e3a0c5cbf9e801e67be00 Mon Sep 17 00:00:00 2001 From: satbaby Date: Tue, 20 Nov 2012 19:28:28 +0100 Subject: [PATCH 36/46] src/nhttpd/web/Y_VLC.js: fix vlc version parse --- 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 37/46] - icons: rework btn_*.png --- 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 e454218d913e0ad35ccd941e595f3f60459eca02 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Tue, 20 Nov 2012 21:18:36 +0100 Subject: [PATCH 38/46] - locales: rework menu.hint_softupdate_settings --- 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 d113487d35fd184932574f975ad492381fc61fbc Mon Sep 17 00:00:00 2001 From: satbaby Date: Wed, 21 Nov 2012 13:36:56 +0100 Subject: [PATCH 39/46] src/nhttpd/web/Y_VLC.js fix for vlc windows 2.0.2 version parse --- 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: Thu, 22 Nov 2012 13:27:51 +0100 Subject: [PATCH 40/46] src/system/setting_helpers.cpp: use my_system instead of system --- 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 0a7022c1b71eabd556464308208f617135d21305 Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 22 Nov 2012 20:14:22 +0100 Subject: [PATCH 41/46] src/zapit/src/zapit.cpp:ParsePatPmt after channels reinit --- 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 69ab1968b4889ede3d094374b92ed8befd90db87 Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 22 Nov 2012 21:03:07 +0100 Subject: [PATCH 42/46] src/gui/moviebrowser.cpp: use CStringInputSMS instead of CStringInput --- 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 b48209241cb06eddef7a6fb62126b0a312255c8b Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Thu, 22 Nov 2012 22:37:19 +0100 Subject: [PATCH 43/46] Revert "* infoviewer_bb.cpp: Optimize display of simple resolution in the info bar" This reverts commit d9cf5197f4f4628fc57a32ee4dd8f0b0510704b9. already have a different version of this --- src/gui/infoviewer_bb.cpp | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/gui/infoviewer_bb.cpp b/src/gui/infoviewer_bb.cpp index 62c3bca74..58edd77a7 100644 --- a/src/gui/infoviewer_bb.cpp +++ b/src/gui/infoviewer_bb.cpp @@ -542,12 +542,29 @@ void CInfoViewerBB::showIcon_Resolution() } if (g_settings.infobar_show_res == 1) {//show simple resolution icon on infobar videoDecoder->getPictureInfo(xres, yres, framerate); - if (yres > 704) + switch (yres) { + case 1920: + case 1440: + case 1280: + case 1080: + case 1088: + case 720: icon_name = NEUTRINO_ICON_RESOLUTION_HD; - else if (yres >= 288) + break; + case 704: + case 576: + case 544: + case 528: + case 480: + case 382: + case 352: + case 288: icon_name = NEUTRINO_ICON_RESOLUTION_SD; - else + break; + default: icon_name = NEUTRINO_ICON_RESOLUTION_000; + break; + } } } showBBIcons(CInfoViewerBB::ICON_RES, icon_name); From 57113fdfbce435b5fdcb77a041a4cccc1b913ffd Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Thu, 22 Nov 2012 22:38:39 +0100 Subject: [PATCH 44/46] Revert "eitd/xmlutil.cpp: fix crash, if epg data saved with older image -" This reverts commit 1f65f1bc80d77111bb89c63db910a805c57f3f99. already have a more general solution --- src/eitd/xmlutil.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/eitd/xmlutil.cpp b/src/eitd/xmlutil.cpp index b700011f3..c57cfa023 100644 --- a/src/eitd/xmlutil.cpp +++ b/src/eitd/xmlutil.cpp @@ -334,18 +334,16 @@ void *insertEventsfromFile(void * data) std::string(xmlGetAttribute(node, "string"))); node = node->xmlNextNode; } - while (xmlGetNextOccurence(node, "item") != NULL) { #ifdef USE_ITEM_DESCRIPTION + while (xmlGetNextOccurence(node, "item") != NULL) { 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 969f41dfef7e2a0170db54ec747d28551741bdc7 Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Thu, 22 Nov 2012 22:43:16 +0100 Subject: [PATCH 45/46] Revert "- infoviewer/streaminfo2: fix resolution 1080" This reverts commit 967f9f8ef43d60133df269320707d3ededeaf7eb. already have a different version of this --- src/gui/infoviewer_bb.cpp | 2 -- src/gui/streaminfo2.cpp | 2 -- 2 files changed, 4 deletions(-) diff --git a/src/gui/infoviewer_bb.cpp b/src/gui/infoviewer_bb.cpp index 58edd77a7..efba7b31f 100644 --- a/src/gui/infoviewer_bb.cpp +++ b/src/gui/infoviewer_bb.cpp @@ -499,7 +499,6 @@ void CInfoViewerBB::showIcon_Resolution() icon_name = NEUTRINO_ICON_RESOLUTION_1920; break; case 1080: - case 1088: icon_name = NEUTRINO_ICON_RESOLUTION_1080; break; case 1440: @@ -547,7 +546,6 @@ 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 b9b01188f..94357d8b6 100644 --- a/src/gui/streaminfo2.cpp +++ b/src/gui/streaminfo2.cpp @@ -473,8 +473,6 @@ 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 3d72e262149565d6f20fedfe7e6d16c4fceba805 Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Thu, 22 Nov 2012 22:43:29 +0100 Subject: [PATCH 46/46] Revert "- infoviewer_bb.cpp: fix resolution 1080" This reverts commit 187825be19e19eeb20f377f6a68eac62bd362ae4. already have a different version of this --- 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 efba7b31f..cf033a766 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 1080: + case 1088: icon_name = NEUTRINO_ICON_RESOLUTION_1080; break; case 1440: @@ -545,7 +545,7 @@ void CInfoViewerBB::showIcon_Resolution() case 1920: case 1440: case 1280: - case 1080: + case 1088: case 720: icon_name = NEUTRINO_ICON_RESOLUTION_HD; break;