From ce813dcaae031b18e204c7c8e41d5d804cf1994b Mon Sep 17 00:00:00 2001 From: gixxpunk Date: Mon, 20 Feb 2012 09:52:00 +0000 Subject: [PATCH 01/20] rework locals for new screenshot menue git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2116 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/30fba89a9d84cfaf10621c6d9b45bf35a2be539e Author: gixxpunk Date: 2012-02-20 (Mon, 20 Feb 2012) Origin message was: ------------------ - rework locals for new screenshot menue git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2116 e54a6e83-5905-42d5-8d5c-058d10e6a962 ------------------ This commit was generated by Migit --- data/locale/deutsch.locale | 7 ++++--- data/locale/english.locale | 11 ++++++----- src/gui/osd_setup.cpp | 2 +- src/system/locals.h | 1 + src/system/locals_intern.h | 1 + 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 2bc9bdebf..63018ccbe 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1190,13 +1190,14 @@ scrambled_channel Verschlüsselung aktiv screensetup.lowerright grün = Bildrand unten, rechts screensetup.upperleft rot = Bildrand oben, links screenshot.count Screenshot Anzahl -screenshot.cover Film Cover -screenshot.defdir Screenshot Dir. +screenshot.cover Erzeuge Filmcover für Moviebrowser +screenshot.defdir Screenshot Verzeichnis screenshot.format Screenshot Format screenshot.info Screenshot Taste ist nicht belegt screenshot.menu Screenshot screenshot.osd OSD Auflösung -screenshot.scale Scale +screenshot.res Screenshot Auflösung +screenshot.scale Screenshot Skalierung screenshot.tv TV Auflösung screenshot.video Screenshot mit Video Hintergrund servicemenu.getplugins Plugins neu laden diff --git a/data/locale/english.locale b/data/locale/english.locale index 215eba11a..24ed26fab 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1190,15 +1190,16 @@ scrambled_channel Scrambled channel screensetup.lowerright green = setup lower right screensetup.upperleft red = setup upper left screenshot.count Screenshot count -screenshot.cover Movie Cover -screenshot.defdir Screenshot dir. +screenshot.cover Create Moviecover for Moviebrowser +screenshot.defdir Screenshot directory screenshot.format Screenshot format -screenshot.info Screenshot Key is not used +screenshot.info Screenshot key is unused screenshot.menu Screenshot screenshot.osd OSD resolution -screenshot.scale Scale +screenshot.res Screenshot resolution +screenshot.scale Screenshot scale screenshot.tv TV resolution -screenshot.video Screenshot with Video background +screenshot.video Screenshot with video background servicemenu.getplugins Reload plugins servicemenu.getplugins_hint Reloading plugins,\nplease be patient. servicemenu.head Service diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index 376a9248c..7a6209ea1 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -731,7 +731,7 @@ void COsdSetup::showOsdScreenshottSetup(CMenuWidget *menu_screenshot) menu_screenshot->addItem(new CMenuOptionNumberChooser(LOCALE_SCREENSHOT_COUNT, &g_settings.screenshot_count, true, 1, 5, NULL)); menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_FORMAT, &g_settings.screenshot_format, SCREENSHOT_FMT_OPTIONS, SCREENSHOT_FMT_OPTION_COUNT, true)); menu_screenshot->addItem(new CMenuForwarder(LOCALE_SCREENSHOT_DEFDIR, true, g_settings.screenshot_dir, this, "screenshot_dir")); - menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_MENU, &g_settings.screenshot_mode, SCREENSHOT_OPTIONS, SCREENSHOT_OPTION_COUNT, true)); + menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_RES, &g_settings.screenshot_mode, SCREENSHOT_OPTIONS, SCREENSHOT_OPTION_COUNT, true)); menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_VIDEO, &g_settings.screenshot_video, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); // menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_SCALE, &g_settings.screenshot_scale, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_COVER, &g_settings.screenshot_cover, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); diff --git a/src/system/locals.h b/src/system/locals.h index 8c50f9127..924de1e0a 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1223,6 +1223,7 @@ typedef enum LOCALE_SCREENSHOT_INFO, LOCALE_SCREENSHOT_MENU, LOCALE_SCREENSHOT_OSD, + LOCALE_SCREENSHOT_RES, LOCALE_SCREENSHOT_SCALE, LOCALE_SCREENSHOT_TV, LOCALE_SCREENSHOT_VIDEO, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index ed6474323..2d1390437 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1223,6 +1223,7 @@ const char * locale_real_names[] = "screenshot.info", "screenshot.menu", "screenshot.osd", + "screenshot.res", "screenshot.scale", "screenshot.tv", "screenshot.video", From 472c1cb941f8ecc5627b1937bc411532e3c12542 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Mon, 20 Feb 2012 14:04:59 +0000 Subject: [PATCH 02/20] screenshot: enable scale menu git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2117 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/f7529a47a9a716df69087091f46584ac4924783c Author: Jacek Jendrzej Date: 2012-02-20 (Mon, 20 Feb 2012) ------------------ This commit was generated by Migit --- src/gui/osd_setup.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index 7a6209ea1..a9cd3e515 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -733,7 +733,7 @@ void COsdSetup::showOsdScreenshottSetup(CMenuWidget *menu_screenshot) menu_screenshot->addItem(new CMenuForwarder(LOCALE_SCREENSHOT_DEFDIR, true, g_settings.screenshot_dir, this, "screenshot_dir")); menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_RES, &g_settings.screenshot_mode, SCREENSHOT_OPTIONS, SCREENSHOT_OPTION_COUNT, true)); menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_VIDEO, &g_settings.screenshot_video, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); -// menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_SCALE, &g_settings.screenshot_scale, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); + menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_SCALE, &g_settings.screenshot_scale, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_COVER, &g_settings.screenshot_cover, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); From c64e413d977d47bba3a3d6d2e260723307d9ed14 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Wed, 22 Feb 2012 15:23:41 +0000 Subject: [PATCH 03/20] screenshot: -fix if no video git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2118 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/5235d99b31a65794b650660c63a0be6b2343b1bd Author: Jacek Jendrzej Date: 2012-02-22 (Wed, 22 Feb 2012) ------------------ This commit was generated by Migit --- src/driver/screenshot.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/driver/screenshot.cpp b/src/driver/screenshot.cpp index 46e912a68..11c5e5100 100644 --- a/src/driver/screenshot.cpp +++ b/src/driver/screenshot.cpp @@ -78,7 +78,8 @@ bool CScreenShot::GetData() #ifdef USE_NEVIS_GXA CFrameBuffer::getInstance()->setActive(false); #endif - + if (videoDecoder->getBlank()) + get_video = false; #if 1 // to enable after libcs/drivers update res = videoDecoder->GetScreenImage(pixel_data, xres, yres, get_video, get_osd, scale_to_video); #endif From 4716f6743217f1ec7577e5313c4e456a0625536a Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 23 Feb 2012 10:45:22 +0000 Subject: [PATCH 04/20] neutrino user-menu: remove color button from clock git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2119 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/bdb0c6f63cdfb123db11e7f0b8ac2a6e1acaebc2 Author: Thilo Graf Date: 2012-02-23 (Thu, 23 Feb 2012) Origin message was: ------------------ *neutrino user-menu: remove color button from clock git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2119 e54a6e83-5905-42d5-8d5c-058d10e6a962 ------------------ This commit was generated by Migit --- src/gui/user_menue.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/user_menue.cpp b/src/gui/user_menue.cpp index 21b801604..945a1ebfc 100644 --- a/src/gui/user_menue.cpp +++ b/src/gui/user_menue.cpp @@ -366,7 +366,7 @@ bool CUserMenu::showUserMenu(int button) { menu_items++; menu_prev = SNeutrinoSettings::ITEM_CLOCK; - keyhelper.get(&key,&icon, CRCInput::RC_green); + keyhelper.get(&key,&icon); neutrino = CNeutrinoApp::getInstance(); menu_item = new CMenuForwarder(!g_settings.mode_clock ? LOCALE_CLOCK_SWITCH_ON:LOCALE_CLOCK_SWITCH_OFF, true, NULL, neutrino, "clock_switch", key, icon); menu->addItem(menu_item, false); From 38dc4ea455652f63f01d9b19469cc9fba1d53db8 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 23 Feb 2012 10:45:25 +0000 Subject: [PATCH 05/20] neutrino user-menu: remove timerlist as default item from features menu Timerlist now default in main menu git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2120 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/e48d50efe3d1f9175d50ac7113fafe8b0776d6b2 Author: Thilo Graf Date: 2012-02-23 (Thu, 23 Feb 2012) Origin message was: ------------------ *neutrino user-menu: remove timerlist as default item from features menu Timerlist now default in main menu git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2120 e54a6e83-5905-42d5-8d5c-058d10e6a962 ------------------ This commit was generated by Migit --- src/neutrino.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index aa5d424d6..d6d51e4c3 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -702,7 +702,7 @@ int CNeutrinoApp::loadSetup(const char * fname) "2,3,4,13", // RED "6", // GREEN "7", // YELLOW - "12,10,11,20,21,19,14,15" // BLUE + "12,11,20,21,19,14,15" // BLUE }; char txt1[81]; std::string txt2; From 94eda3b351fc0c8e0fddf7c479c58b0cee46fc8f Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Fri, 24 Feb 2012 20:59:51 +0000 Subject: [PATCH 06/20] settings_manager & locale rework , thx svenhoefer git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2121 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/1b0114e5230efa33fc45ca9aadaa331b3895e37e Author: Jacek Jendrzej Date: 2012-02-24 (Fri, 24 Feb 2012) ------------------ This commit was generated by Migit --- data/locale/deutsch.locale | 8 ++++---- data/locale/english.locale | 8 ++++---- data/scripts/backup.sh | 5 +++-- src/gui/settings_manager.cpp | 4 ++-- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 63018ccbe..f264ea447 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -341,7 +341,7 @@ extra.key_timeshift Timeshift extra.key_unlock Entsperrtaste extra.ladirection Breitengrad-Ausrichtung extra.latitude Breitengrad -extra.loadconfig Lade Einstellungen von +extra.loadconfig Neutrino-Einstellungen: Laden von extra.loadkeys Lade Tastenbelegung von extra.lodirection Längengrad-Ausrichtung extra.logo Logonummer @@ -353,7 +353,7 @@ extra.rotor_swap Rotor dreht Ost/West extra.rounded_corners Eckendarstellung extra.rounded_corners_off eckig extra.rounded_corners_on abgerundet -extra.saveconfig Speichere Einstellungen als +extra.saveconfig Neutrino-Einstellungen: Sichern als extra.savekeys Speichere Tastenbelegung als extra.scan_fast Schnell extra.scan_full Total @@ -1211,7 +1211,7 @@ servicemenu.restart_hint Neutrino wird neu gestartet... servicemenu.restart_refused_recording Aufnahme läuft. Neustart nicht möglich. servicemenu.scants Kanalsuche servicemenu.update Software-Aktualisierung -settings.backup Alle Settings sichern +settings.backup Image-Einstellungen: Sichern settings.backup_failed Sicherung fehlgeschlagen! settings.help Hilfe settings.menu_pos Menüposition @@ -1223,7 +1223,7 @@ settings.pos_default_center oben Mitte settings.pos_higher_center unten Mitte settings.pos_top_left oben links settings.pos_top_right oben rechts -settings.restore Wiederherstellen aller Settings +settings.restore Image-Einstellungen: Wiederherstellen settings.restore_warn Alle Settings werden ersetzt.\nDie Box wird neu gestartet.\nWeiter? shutdown.recoding_query Aufnahme läuft. Trotzdem beenden? shutdowntimer.announce Die Box wird in 1 Min. heruntergefahren.\nShutdown abbrechen? diff --git a/data/locale/english.locale b/data/locale/english.locale index 24ed26fab..f4c233967 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -341,7 +341,7 @@ extra.key_timeshift Timeshift extra.key_unlock Unlock key extra.ladirection LaDirection extra.latitude Latitude -extra.loadconfig Load settings from +extra.loadconfig Neutrino-Settings: Load from extra.loadkeys Load keys from extra.lodirection LoDirection extra.logo Logo number @@ -353,7 +353,7 @@ extra.rotor_swap Swap rotor east/west extra.rounded_corners Shape of corners extra.rounded_corners_off angular extra.rounded_corners_on rounded -extra.saveconfig Save settings as +extra.saveconfig Neutrino-Settings: Save as extra.savekeys Save keys as extra.scan_fast Fast extra.scan_full Full @@ -1211,7 +1211,7 @@ servicemenu.restart_hint Restarting, please wait servicemenu.restart_refused_recording Cant restart, recording in progress servicemenu.scants Servicescan servicemenu.update Software Update -settings.backup Backup all settings +settings.backup Image-Settings: Backup settings.backup_failed Backup failed! settings.help Help settings.menu_pos Menu position @@ -1223,7 +1223,7 @@ settings.pos_default_center top center settings.pos_higher_center higher center settings.pos_top_left top left settings.pos_top_right top right -settings.restore Restore all settings +settings.restore Image-Settings: Restore settings.restore_warn This will replace all settings and reboot\nContinue ? shutdown.recoding_query You really want to to stop record ? shutdowntimer.announce Box will shutdown in 1 min.\nCancel Shutdown ? diff --git a/data/scripts/backup.sh b/data/scripts/backup.sh index 5bc2ae37d..d9998007e 100755 --- a/data/scripts/backup.sh +++ b/data/scripts/backup.sh @@ -5,9 +5,10 @@ USRF="/var/tuxbox/config/tobackup.conf" if [ -e "${USRF}" ]; then # read user-files from $USRF + TOBACKUP="${USRF}" while read i - do [ "${i:0:1}" = "#" ] || TOBACKUP="$TOBACKUP ${i%%#*}" - done < $USRF + do [ "${i:0:1}" = "#" ] || TOBACKUP="$TOBACKUP ${i%%#*}" + done < $USRF else TOBACKUP="/var/tuxbox/config/" diff --git a/src/gui/settings_manager.cpp b/src/gui/settings_manager.cpp index eecfedcd5..1b7c4cf94 100644 --- a/src/gui/settings_manager.cpp +++ b/src/gui/settings_manager.cpp @@ -152,8 +152,8 @@ int CSettingsManager::showMenu() mset->addItem(new CMenuForwarder(LOCALE_RESET_SETTINGS, true, NULL, resetNotifier, "settings", CRCInput::RC_recall));// FIXME: RC-button RECALL is broken mset->addItem(GenericMenuSeparatorLine); - mset->addItem(new CMenuForwarder(LOCALE_EXTRA_LOADCONFIG, true, NULL, this, "loadconfig", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); - mset->addItem(new CMenuForwarder(LOCALE_EXTRA_SAVECONFIG, true, NULL, this, "saveconfig", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + mset->addItem(new CMenuForwarder(LOCALE_EXTRA_SAVECONFIG, true, NULL, this, "saveconfig", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); + mset->addItem(new CMenuForwarder(LOCALE_EXTRA_LOADCONFIG, true, NULL, this, "loadconfig", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); mset->addItem(GenericMenuSeparatorLine); mset->addItem(new CMenuForwarder(LOCALE_SETTINGS_BACKUP, true, NULL, this, "backup", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); mset->addItem(new CMenuForwarder(LOCALE_SETTINGS_RESTORE, true, NULL, this, "restore", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE)); From 71e542ceaaf1649dd1f9761064dbd41a3022dc6c Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Sat, 25 Feb 2012 18:11:19 +0000 Subject: [PATCH 07/20] sectionsd: -fix possible buf overflow & skip read EPG cache if index.tmp available git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2122 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/a397eaef582e52f3fde1348452130951bde78481 Author: Jacek Jendrzej Date: 2012-02-25 (Sat, 25 Feb 2012) ------------------ This commit was generated by Migit --- src/sectionsd/sectionsd.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/sectionsd/sectionsd.cpp b/src/sectionsd/sectionsd.cpp index 4b6992e41..475d8e8d6 100644 --- a/src/sectionsd/sectionsd.cpp +++ b/src/sectionsd/sectionsd.cpp @@ -4582,13 +4582,21 @@ static void *insertEventsfromFile(void *) t_original_network_id onid = 0; t_transport_stream_id tsid = 0; t_service_id sid = 0; - char cclass[20]; - char cuser[20]; + char cclass[20]={0}; + char cuser[20]={0};; std::string indexname; std::string filename; std::string epgname; int ev_count = 0; + struct stat buf; + indexname = epg_dir + "index.tmp"; + //skip read EPG cache if index.tmp available + if (stat(indexname.c_str(), &buf) == 0){ + reader_ready = true; + pthread_exit(NULL); + } + indexname = epg_dir + "index.xml"; xmlDocPtr index_parser = parseXmlFile(indexname.c_str()); @@ -4672,12 +4680,14 @@ static void *insertEventsfromFile(void *) node = node->xmlNextNode; } - int count = 0; + unsigned int count = 0; while (xmlGetNextOccurence(node, "content") != NULL) { cclass[count] = xmlGetNumericAttribute(node, "class", 16); cuser[count] = xmlGetNumericAttribute(node, "user", 16); node = node->xmlNextNode; count++; + if(count > sizeof(cclass)-1) + break; } e.contentClassification = std::string(cclass, count); e.userClassification = std::string(cuser, count); From f9a2d11b5dc0f20afa4ab0671b127295d34908e8 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Sat, 25 Feb 2012 18:56:50 +0000 Subject: [PATCH 08/20] sectionsd: -fix possible buf overflow & skip read EPG cache if index.tmp available git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2123 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/1378d78557f880960138209a29953e548cf242b3 Author: Jacek Jendrzej Date: 2012-02-25 (Sat, 25 Feb 2012) ------------------ This commit was generated by Migit --- src/sectionsd/sectionsd.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sectionsd/sectionsd.cpp b/src/sectionsd/sectionsd.cpp index 475d8e8d6..804012a38 100644 --- a/src/sectionsd/sectionsd.cpp +++ b/src/sectionsd/sectionsd.cpp @@ -4595,6 +4595,7 @@ static void *insertEventsfromFile(void *) if (stat(indexname.c_str(), &buf) == 0){ reader_ready = true; pthread_exit(NULL); + return; } indexname = epg_dir + "index.xml"; From db7d78a677bd7d184e80a1c31600e7a319aebac8 Mon Sep 17 00:00:00 2001 From: gixxpunk Date: Sat, 25 Feb 2012 18:59:48 +0000 Subject: [PATCH 09/20] speedup standby handling by setting standby cpu-frequenzy later git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2124 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/85927dbddf4ecdd52c5f4e35bc5e63908e7a18dd Author: gixxpunk Date: 2012-02-25 (Sat, 25 Feb 2012) Origin message was: ------------------ - speedup standby handling by setting standby cpu-frequenzy later git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2124 e54a6e83-5905-42d5-8d5c-058d10e6a962 ------------------ This commit was generated by Migit --- src/neutrino.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index d6d51e4c3..e90ce8119 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3343,7 +3343,6 @@ void CNeutrinoApp::standbyMode( bool bOnOff ) if(!CRecordManager::getInstance()->RecordingStatus()) { g_Zapit->setStandby(true); - cpuFreq->SetCpuFreq(g_settings.standby_cpufreq * 1000 * 1000); } else { g_Zapit->stopPlayBack(); } @@ -3371,6 +3370,9 @@ void CNeutrinoApp::standbyMode( bool bOnOff ) if (system(NEUTRINO_ENTER_STANDBY_SCRIPT) != 0) perror(NEUTRINO_ENTER_STANDBY_SCRIPT " failed"); + if(!CRecordManager::getInstance()->RecordingStatus()) + cpuFreq->SetCpuFreq(g_settings.standby_cpufreq * 1000 * 1000); + lastMode = mode; mode = mode_standby; //fan speed From 8b021fbbcd06f0c7b566cd81531dec7a0a108507 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Sat, 25 Feb 2012 19:15:01 +0000 Subject: [PATCH 10/20] sectionsd: -fix compil git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2125 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/2872c69efdd3e819d2b2ce5aa206aa13e77850a8 Author: Jacek Jendrzej Date: 2012-02-25 (Sat, 25 Feb 2012) ------------------ This commit was generated by Migit --- src/sectionsd/sectionsd.cpp | 271 ++++++++++++++++++------------------ 1 file changed, 134 insertions(+), 137 deletions(-) diff --git a/src/sectionsd/sectionsd.cpp b/src/sectionsd/sectionsd.cpp index 804012a38..efca3dbf9 100644 --- a/src/sectionsd/sectionsd.cpp +++ b/src/sectionsd/sectionsd.cpp @@ -4592,152 +4592,149 @@ static void *insertEventsfromFile(void *) struct stat buf; indexname = epg_dir + "index.tmp"; //skip read EPG cache if index.tmp available - if (stat(indexname.c_str(), &buf) == 0){ - reader_ready = true; - pthread_exit(NULL); - return; - } + if (!(stat(indexname.c_str(), &buf) == 0)){ - indexname = epg_dir + "index.xml"; + indexname = epg_dir + "index.xml"; - xmlDocPtr index_parser = parseXmlFile(indexname.c_str()); + xmlDocPtr index_parser = parseXmlFile(indexname.c_str()); - if (index_parser != NULL) { - time_t now = time_monotonic_ms(); - printdate_ms(stdout); - printf("[sectionsd] Reading Information from file %s:\n", indexname.c_str()); + if (index_parser != NULL) { + time_t now = time_monotonic_ms(); + printdate_ms(stdout); + printf("[sectionsd] Reading Information from file %s:\n", indexname.c_str()); - eventfile = xmlDocGetRootElement(index_parser)->xmlChildrenNode; + eventfile = xmlDocGetRootElement(index_parser)->xmlChildrenNode; - while (eventfile) { - filename = xmlGetAttribute(eventfile, "name"); - epgname = epg_dir + filename; - if (!(event_parser = parseXmlFile(epgname.c_str()))) { - dprintf("unable to open %s for reading\n", epgname.c_str()); - } - else { - service = xmlDocGetRootElement(event_parser)->xmlChildrenNode; - - while (service) { - onid = xmlGetNumericAttribute(service, "original_network_id", 16); - tsid = xmlGetNumericAttribute(service, "transport_stream_id", 16); - sid = xmlGetNumericAttribute(service, "service_id", 16); - - event = service->xmlChildrenNode; - - while (event) { - - SIevent e(onid,tsid,sid,xmlGetNumericAttribute(event, "id", 16)); - - node = event->xmlChildrenNode; - - while (xmlGetNextOccurence(node, "name") != NULL) { - e.setName( std::string(UTF8_to_Latin1(xmlGetAttribute(node, "lang"))), - std::string(xmlGetAttribute(node, "string"))); - node = node->xmlNextNode; - } - while (xmlGetNextOccurence(node, "text") != NULL) { - e.setText( std::string(UTF8_to_Latin1(xmlGetAttribute(node, "lang"))), - std::string(xmlGetAttribute(node, "string"))); - node = node->xmlNextNode; - } - while (xmlGetNextOccurence(node, "item") != NULL) { - e.item = std::string(xmlGetAttribute(node, "string")); - node = node->xmlNextNode; - } - while (xmlGetNextOccurence(node, "item_description") != NULL) { - e.itemDescription = std::string(xmlGetAttribute(node, "string")); - node = node->xmlNextNode; - } - while (xmlGetNextOccurence(node, "extended_text") != NULL) { - e.appendExtendedText( std::string(UTF8_to_Latin1(xmlGetAttribute(node, "lang"))), - std::string(xmlGetAttribute(node, "string"))); - node = node->xmlNextNode; - } - /* - if (xmlGetNextOccurence(node, "description") != NULL) { - if (xmlGetAttribute(node, "name") != NULL) { - e.langName = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "name"))); - } - //printf("Name: %s\n", e->name); - if (xmlGetAttribute(node, "text") != NULL) { - e.langText = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "text"))); - } - if (xmlGetAttribute(node, "item") != NULL) { - e.item = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "item"))); - } - if (xmlGetAttribute(node, "item_description") != NULL) { - e.itemDescription = std::string(UTF8_to_Latin1(xmlGetAttribute(node,"item_description"))); - } - if (xmlGetAttribute(node, "extended_text") != NULL) { - e.langExtendedText = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "extended_text"))); - } - node = node->xmlNextNode; - } - */ - while (xmlGetNextOccurence(node, "time") != NULL) { - e.times.insert(SItime(xmlGetNumericAttribute(node, "start_time", 10), - xmlGetNumericAttribute(node, "duration", 10))); - node = node->xmlNextNode; - } - - unsigned int count = 0; - while (xmlGetNextOccurence(node, "content") != NULL) { - cclass[count] = xmlGetNumericAttribute(node, "class", 16); - cuser[count] = xmlGetNumericAttribute(node, "user", 16); - node = node->xmlNextNode; - count++; - if(count > sizeof(cclass)-1) - break; - } - e.contentClassification = std::string(cclass, count); - e.userClassification = std::string(cuser, count); - - while (xmlGetNextOccurence(node, "component") != NULL) { - SIcomponent c; - c.streamContent = xmlGetNumericAttribute(node, "stream_content", 16); - c.componentType = xmlGetNumericAttribute(node, "type", 16); - c.componentTag = xmlGetNumericAttribute(node, "tag", 16); - c.component = std::string(xmlGetAttribute(node, "text")); - e.components.insert(c); - node = node->xmlNextNode; - } - while (xmlGetNextOccurence(node, "parental_rating") != NULL) { - e.ratings.insert(SIparentalRating(std::string(UTF8_to_Latin1(xmlGetAttribute(node, "country"))), (unsigned char) xmlGetNumericAttribute(node, "rating", 10))); - node = node->xmlNextNode; - } - while (xmlGetNextOccurence(node, "linkage") != NULL) { - SIlinkage l; - l.linkageType = xmlGetNumericAttribute(node, "type", 16); - l.transportStreamId = xmlGetNumericAttribute(node, "transport_stream_id", 16); - l.originalNetworkId = xmlGetNumericAttribute(node, "original_network_id", 16); - l.serviceId = xmlGetNumericAttribute(node, "service_id", 16); - l.name = std::string(xmlGetAttribute(node, "linkage_descriptor")); - e.linkage_descs.insert(e.linkage_descs.end(), l); - - node = node->xmlNextNode; - } - //lockEvents(); - //writeLockEvents(); - addEvent(e, 0); - ev_count++; - //unlockEvents(); - - event = event->xmlNextNode; - } - - service = service->xmlNextNode; + while (eventfile) { + filename = xmlGetAttribute(eventfile, "name"); + epgname = epg_dir + filename; + if (!(event_parser = parseXmlFile(epgname.c_str()))) { + dprintf("unable to open %s for reading\n", epgname.c_str()); } - xmlFreeDoc(event_parser); + else { + service = xmlDocGetRootElement(event_parser)->xmlChildrenNode; + + while (service) { + onid = xmlGetNumericAttribute(service, "original_network_id", 16); + tsid = xmlGetNumericAttribute(service, "transport_stream_id", 16); + sid = xmlGetNumericAttribute(service, "service_id", 16); + + event = service->xmlChildrenNode; + + while (event) { + + SIevent e(onid,tsid,sid,xmlGetNumericAttribute(event, "id", 16)); + + node = event->xmlChildrenNode; + + while (xmlGetNextOccurence(node, "name") != NULL) { + e.setName( std::string(UTF8_to_Latin1(xmlGetAttribute(node, "lang"))), + std::string(xmlGetAttribute(node, "string"))); + node = node->xmlNextNode; + } + while (xmlGetNextOccurence(node, "text") != NULL) { + e.setText( std::string(UTF8_to_Latin1(xmlGetAttribute(node, "lang"))), + std::string(xmlGetAttribute(node, "string"))); + node = node->xmlNextNode; + } + while (xmlGetNextOccurence(node, "item") != NULL) { + e.item = std::string(xmlGetAttribute(node, "string")); + node = node->xmlNextNode; + } + while (xmlGetNextOccurence(node, "item_description") != NULL) { + e.itemDescription = std::string(xmlGetAttribute(node, "string")); + node = node->xmlNextNode; + } + while (xmlGetNextOccurence(node, "extended_text") != NULL) { + e.appendExtendedText( std::string(UTF8_to_Latin1(xmlGetAttribute(node, "lang"))), + std::string(xmlGetAttribute(node, "string"))); + node = node->xmlNextNode; + } + /* + if (xmlGetNextOccurence(node, "description") != NULL) { + if (xmlGetAttribute(node, "name") != NULL) { + e.langName = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "name"))); + } + //printf("Name: %s\n", e->name); + if (xmlGetAttribute(node, "text") != NULL) { + e.langText = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "text"))); + } + if (xmlGetAttribute(node, "item") != NULL) { + e.item = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "item"))); + } + if (xmlGetAttribute(node, "item_description") != NULL) { + e.itemDescription = std::string(UTF8_to_Latin1(xmlGetAttribute(node,"item_description"))); + } + if (xmlGetAttribute(node, "extended_text") != NULL) { + e.langExtendedText = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "extended_text"))); + } + node = node->xmlNextNode; + } + */ + while (xmlGetNextOccurence(node, "time") != NULL) { + e.times.insert(SItime(xmlGetNumericAttribute(node, "start_time", 10), + xmlGetNumericAttribute(node, "duration", 10))); + node = node->xmlNextNode; + } + + unsigned int count = 0; + while (xmlGetNextOccurence(node, "content") != NULL) { + cclass[count] = xmlGetNumericAttribute(node, "class", 16); + cuser[count] = xmlGetNumericAttribute(node, "user", 16); + node = node->xmlNextNode; + count++; + if(count > sizeof(cclass)-1) + break; + } + e.contentClassification = std::string(cclass, count); + e.userClassification = std::string(cuser, count); + + while (xmlGetNextOccurence(node, "component") != NULL) { + SIcomponent c; + c.streamContent = xmlGetNumericAttribute(node, "stream_content", 16); + c.componentType = xmlGetNumericAttribute(node, "type", 16); + c.componentTag = xmlGetNumericAttribute(node, "tag", 16); + c.component = std::string(xmlGetAttribute(node, "text")); + e.components.insert(c); + node = node->xmlNextNode; + } + while (xmlGetNextOccurence(node, "parental_rating") != NULL) { + e.ratings.insert(SIparentalRating(std::string(UTF8_to_Latin1(xmlGetAttribute(node, "country"))), (unsigned char) xmlGetNumericAttribute(node, "rating", 10))); + node = node->xmlNextNode; + } + while (xmlGetNextOccurence(node, "linkage") != NULL) { + SIlinkage l; + l.linkageType = xmlGetNumericAttribute(node, "type", 16); + l.transportStreamId = xmlGetNumericAttribute(node, "transport_stream_id", 16); + l.originalNetworkId = xmlGetNumericAttribute(node, "original_network_id", 16); + l.serviceId = xmlGetNumericAttribute(node, "service_id", 16); + l.name = std::string(xmlGetAttribute(node, "linkage_descriptor")); + e.linkage_descs.insert(e.linkage_descs.end(), l); + + node = node->xmlNextNode; + } + //lockEvents(); + //writeLockEvents(); + addEvent(e, 0); + ev_count++; + //unlockEvents(); + + event = event->xmlNextNode; + } + + service = service->xmlNextNode; + } + xmlFreeDoc(event_parser); + } + + eventfile = eventfile->xmlNextNode; } - eventfile = eventfile->xmlNextNode; + xmlFreeDoc(index_parser); + printdate_ms(stdout); + printf("[sectionsd] Reading Information finished after %ld miliseconds (%d events)\n", + time_monotonic_ms()-now, ev_count); } - - xmlFreeDoc(index_parser); - printdate_ms(stdout); - printf("[sectionsd] Reading Information finished after %ld miliseconds (%d events)\n", - time_monotonic_ms()-now, ev_count); } reader_ready = true; From 5b5210c47346f0c419601c022ddb45de51854d5c Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Sun, 26 Feb 2012 19:49:16 +0000 Subject: [PATCH 11/20] key_current_transponder default MS/games git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2126 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/1b345209dd0eee13f8172737da4b4d43b682b4b8 Author: Jacek Jendrzej Date: 2012-02-26 (Sun, 26 Feb 2012) ------------------ This commit was generated by Migit --- src/neutrino.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index e90ce8119..98b05a173 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3794,7 +3794,7 @@ void CNeutrinoApp::loadKeys(const char * fname) g_settings.key_plugin = configfile.getInt32( "key_plugin", CRCInput::RC_nokey ); g_settings.key_unlock = configfile.getInt32( "key_unlock", CRCInput::RC_setup ); g_settings.key_screenshot = configfile.getInt32( "key_screenshot", CRCInput::RC_nokey ); - g_settings.key_current_transponder = configfile.getInt32( "key_current_transponder", CRCInput::RC_nokey ); + g_settings.key_current_transponder = configfile.getInt32( "key_current_transponder", CRCInput::RC_games ); g_settings.key_quickzap_up = tconfig.getInt32( "key_quickzap_up", CRCInput::RC_up ); g_settings.key_quickzap_down = tconfig.getInt32( "key_quickzap_down", CRCInput::RC_down ); From a4711292449bcef2fb482c1829971473c51131f1 Mon Sep 17 00:00:00 2001 From: gixxpunk Date: Mon, 27 Feb 2012 18:50:55 +0000 Subject: [PATCH 12/20] [PATCH] neutrino: properly delete frambuffer object on SIGINT From: Stefan Seyfried Date: Sun, 12 Feb 2012 22:17:26 +0100 git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2127 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/055c7eeecf3c51a0e10c958d15728850cf1e8118 Author: gixxpunk Date: 2012-02-27 (Mon, 27 Feb 2012) ------------------ This commit was generated by Migit --- src/neutrino.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 98b05a173..e13e241fd 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3741,6 +3741,7 @@ void sighandler (int signum) case SIGINT: delete CRecordManager::getInstance(); stop_daemons(); + delete CFrameBuffer::getInstance(); _exit(0); default: break; From ace743baf79edefecc142a615fc04db46016ae6b Mon Sep 17 00:00:00 2001 From: gixxpunk Date: Mon, 27 Feb 2012 18:52:09 +0000 Subject: [PATCH 13/20] [PATCH] sectionsd: make commandPauseScanning really stop demuxers From: Stefan Seyfried Date: Sun, 19 Feb 2012 18:49:56 +0100 git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2128 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/c3305aeaee01dedd6d7ebb245834fbe0d2e05a81 Author: gixxpunk Date: 2012-02-27 (Mon, 27 Feb 2012) ------------------ This commit was generated by Migit --- src/sectionsd/sectionsd.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/sectionsd/sectionsd.cpp b/src/sectionsd/sectionsd.cpp index efca3dbf9..c4ed5693b 100644 --- a/src/sectionsd/sectionsd.cpp +++ b/src/sectionsd/sectionsd.cpp @@ -2318,10 +2318,14 @@ static void commandPauseScanning(int connfd, char *data, const unsigned dataLeng if (scanning && pause) { + scanning = 0; dmxCN.request_pause(); + pthread_cond_broadcast(&dmxCN.change_cond); dmxEIT.request_pause(); + pthread_cond_broadcast(&dmxEIT.change_cond); #ifdef ENABLE_FREESATEPG dmxFSEIT.request_pause(); + pthread_cond_broadcast(&dmxFSEIT.change_cond); #endif #ifdef UPDATE_NETWORKS dmxNIT.request_pause(); @@ -2330,7 +2334,6 @@ static void commandPauseScanning(int connfd, char *data, const unsigned dataLeng #ifdef ENABLE_PPT dmxPPT.request_pause(); #endif - scanning = 0; } else if (!pause && !scanning) { From 799b12f32a09a5065ca66af3f67f9f8b8e7c99a2 Mon Sep 17 00:00:00 2001 From: gixxpunk Date: Mon, 27 Feb 2012 18:53:08 +0000 Subject: [PATCH 14/20] [PATCH] streamts: speed up shutdown From: Stefan Seyfried Date: Sun, 12 Feb 2012 22:16:29 +0100 git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2129 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/bbb1ec8e3cfd3292d88549de34f463cbfb7d9786 Author: gixxpunk Date: 2012-02-27 (Mon, 27 Feb 2012) ------------------ This commit was generated by Migit --- src/driver/streamts.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/driver/streamts.cpp b/src/driver/streamts.cpp index dfd70d8bf..6794358b3 100644 --- a/src/driver/streamts.cpp +++ b/src/driver/streamts.cpp @@ -247,6 +247,7 @@ void streamts_main_thread(void * /*data*/) if(st != 0) { printf("Stopping stream thread\n"); exit_flag = 1; + pthread_cancel(st); pthread_join(st, NULL); close(connfd); } From 7a37cbefe83f63654bf74578326c44a9bb70992e Mon Sep 17 00:00:00 2001 From: gixxpunk Date: Mon, 27 Feb 2012 18:54:07 +0000 Subject: [PATCH 15/20] [PATCH] tuxtxt: fix spurious segfault on repeated start From: Stefan Seyfried Date: Thu, 12 Jan 2012 19:12:08 +0100 git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2130 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/13b874148de27326db2061686b2556baacaddfd9 Author: gixxpunk Date: 2012-02-27 (Mon, 27 Feb 2012) ------------------ This commit was generated by Migit --- lib/libtuxtxt/tuxtxt.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/libtuxtxt/tuxtxt.cpp b/lib/libtuxtxt/tuxtxt.cpp index e36df5b2d..2e254f7af 100644 --- a/lib/libtuxtxt/tuxtxt.cpp +++ b/lib/libtuxtxt/tuxtxt.cpp @@ -1934,6 +1934,8 @@ int Init(int source) TTFShiftX = 0; TTFShiftY = -2; + pageinfo = NULL; + /* load config */ if ((conf = fopen(TUXTXTCONF, "rt")) == 0) { From f9f535e20814891151309d2767a15e50fa70902f Mon Sep 17 00:00:00 2001 From: gixxpunk Date: Mon, 27 Feb 2012 18:56:12 +0000 Subject: [PATCH 16/20] [PATCH] zapit: make setStandby(false) block this avoids many nasty race conditions when leaving standby From: Stefan Seyfried Date: Sat, 25 Feb 2012 22:34:58 +0100 git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2131 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/ac3707eccb1ad1ea610796320baeea07c98c28a0 Author: gixxpunk Date: 2012-02-27 (Mon, 27 Feb 2012) ------------------ This commit was generated by Migit --- src/zapit/lib/zapitclient.cpp | 6 ++---- src/zapit/src/zapit.cpp | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/zapit/lib/zapitclient.cpp b/src/zapit/lib/zapitclient.cpp index 588249d55..2af969c2f 100644 --- a/src/zapit/lib/zapitclient.cpp +++ b/src/zapit/lib/zapitclient.cpp @@ -921,10 +921,8 @@ void CZapitClient::setStandby(const bool enable) CZapitMessages::commandBoolean msg; msg.truefalse = enable; send(CZapitMessages::CMD_SET_STANDBY, (char*)&msg, sizeof(msg)); - if(enable) { - CZapitMessages::responseCmd response; - CBasicClient::receive_data((char* )&response, sizeof(response)); - } + CZapitMessages::responseCmd response; + CBasicClient::receive_data((char* )&response, sizeof(response)); close_connection(); } diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index c2764aef5..da501aafe 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -1520,10 +1520,10 @@ printf("[zapit] TP_id %d freq %d rate %d fec %d pol %d\n", TP.TP_id, TP.feparams if (msgBoolean.truefalse) { // if(currentMode & RECORD_MODE) videoDecoder->freeze(); enterStandby(); - response.cmd = CZapitMessages::CMD_READY; - CBasicServer::send_data(connfd, &response, sizeof(response)); } else leaveStandby(); + response.cmd = CZapitMessages::CMD_READY; + CBasicServer::send_data(connfd, &response, sizeof(response)); break; } From ca834e53fe47105285fd7986f02fee51ceea8a34 Mon Sep 17 00:00:00 2001 From: gixxpunk Date: Tue, 28 Feb 2012 08:08:36 +0000 Subject: [PATCH 17/20] revert to svn 2126 to stop some people crying git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2132 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/dc25ebc257b0fc8b7c009f85307fc7d976c71eb6 Author: gixxpunk Date: 2012-02-28 (Tue, 28 Feb 2012) Origin message was: ------------------ - revert to svn 2126 to stop some people crying git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2132 e54a6e83-5905-42d5-8d5c-058d10e6a962 ------------------ This commit was generated by Migit --- lib/libtuxtxt/tuxtxt.cpp | 2 -- src/driver/streamts.cpp | 1 - src/neutrino.cpp | 1 - src/sectionsd/sectionsd.cpp | 5 +---- src/zapit/lib/zapitclient.cpp | 6 ++++-- src/zapit/src/zapit.cpp | 4 ++-- 6 files changed, 7 insertions(+), 12 deletions(-) diff --git a/lib/libtuxtxt/tuxtxt.cpp b/lib/libtuxtxt/tuxtxt.cpp index 2e254f7af..e36df5b2d 100644 --- a/lib/libtuxtxt/tuxtxt.cpp +++ b/lib/libtuxtxt/tuxtxt.cpp @@ -1934,8 +1934,6 @@ int Init(int source) TTFShiftX = 0; TTFShiftY = -2; - pageinfo = NULL; - /* load config */ if ((conf = fopen(TUXTXTCONF, "rt")) == 0) { diff --git a/src/driver/streamts.cpp b/src/driver/streamts.cpp index 6794358b3..dfd70d8bf 100644 --- a/src/driver/streamts.cpp +++ b/src/driver/streamts.cpp @@ -247,7 +247,6 @@ void streamts_main_thread(void * /*data*/) if(st != 0) { printf("Stopping stream thread\n"); exit_flag = 1; - pthread_cancel(st); pthread_join(st, NULL); close(connfd); } diff --git a/src/neutrino.cpp b/src/neutrino.cpp index e13e241fd..98b05a173 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3741,7 +3741,6 @@ void sighandler (int signum) case SIGINT: delete CRecordManager::getInstance(); stop_daemons(); - delete CFrameBuffer::getInstance(); _exit(0); default: break; diff --git a/src/sectionsd/sectionsd.cpp b/src/sectionsd/sectionsd.cpp index c4ed5693b..efca3dbf9 100644 --- a/src/sectionsd/sectionsd.cpp +++ b/src/sectionsd/sectionsd.cpp @@ -2318,14 +2318,10 @@ static void commandPauseScanning(int connfd, char *data, const unsigned dataLeng if (scanning && pause) { - scanning = 0; dmxCN.request_pause(); - pthread_cond_broadcast(&dmxCN.change_cond); dmxEIT.request_pause(); - pthread_cond_broadcast(&dmxEIT.change_cond); #ifdef ENABLE_FREESATEPG dmxFSEIT.request_pause(); - pthread_cond_broadcast(&dmxFSEIT.change_cond); #endif #ifdef UPDATE_NETWORKS dmxNIT.request_pause(); @@ -2334,6 +2330,7 @@ static void commandPauseScanning(int connfd, char *data, const unsigned dataLeng #ifdef ENABLE_PPT dmxPPT.request_pause(); #endif + scanning = 0; } else if (!pause && !scanning) { diff --git a/src/zapit/lib/zapitclient.cpp b/src/zapit/lib/zapitclient.cpp index 2af969c2f..588249d55 100644 --- a/src/zapit/lib/zapitclient.cpp +++ b/src/zapit/lib/zapitclient.cpp @@ -921,8 +921,10 @@ void CZapitClient::setStandby(const bool enable) CZapitMessages::commandBoolean msg; msg.truefalse = enable; send(CZapitMessages::CMD_SET_STANDBY, (char*)&msg, sizeof(msg)); - CZapitMessages::responseCmd response; - CBasicClient::receive_data((char* )&response, sizeof(response)); + if(enable) { + CZapitMessages::responseCmd response; + CBasicClient::receive_data((char* )&response, sizeof(response)); + } close_connection(); } diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index da501aafe..c2764aef5 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -1520,10 +1520,10 @@ printf("[zapit] TP_id %d freq %d rate %d fec %d pol %d\n", TP.TP_id, TP.feparams if (msgBoolean.truefalse) { // if(currentMode & RECORD_MODE) videoDecoder->freeze(); enterStandby(); + response.cmd = CZapitMessages::CMD_READY; + CBasicServer::send_data(connfd, &response, sizeof(response)); } else leaveStandby(); - response.cmd = CZapitMessages::CMD_READY; - CBasicServer::send_data(connfd, &response, sizeof(response)); break; } From 56cd0922c80fb6c14dc299f16301da744456e7d1 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Wed, 29 Feb 2012 13:20:23 +0000 Subject: [PATCH 18/20] infoviewer: extension infobar timeout for motor rotation git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2133 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/987d592da5bd323fb7ddeb800391bcaabd592f63 Author: Jacek Jendrzej Date: 2012-02-29 (Wed, 29 Feb 2012) ------------------ This commit was generated by Migit --- src/gui/infoviewer.cpp | 50 +++++++++++++++++++++++------------------- src/gui/infoviewer.h | 2 ++ 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/src/gui/infoviewer.cpp b/src/gui/infoviewer.cpp index 07cb3598e..384b03eea 100644 --- a/src/gui/infoviewer.cpp +++ b/src/gui/infoviewer.cpp @@ -815,32 +815,34 @@ void CInfoViewer::showTitle (const int ChanNum, const std::string & Channel, con aspectRatio = 0; fileplay = 0; } - +void CInfoViewer::setInfobarTimeout(int timeout_ext) +{ + int mode = CNeutrinoApp::getInstance()->getMode(); + //define timeouts + switch (mode) + { + case NeutrinoMessages::mode_tv: + timeoutEnd = CRCInput::calcTimeoutEnd (g_settings.timing[SNeutrinoSettings::TIMING_INFOBAR] == 0 ? 0xFFFF : g_settings.timing[SNeutrinoSettings::TIMING_INFOBAR] + timeout_ext); + break; + case NeutrinoMessages::mode_radio: + timeoutEnd = CRCInput::calcTimeoutEnd (g_settings.timing[SNeutrinoSettings::TIMING_INFOBAR_RADIO] == 0 ? 0xFFFF : g_settings.timing[SNeutrinoSettings::TIMING_INFOBAR_RADIO] + timeout_ext); + break; + case NeutrinoMessages::mode_ts: + timeoutEnd = CRCInput::calcTimeoutEnd (g_settings.timing[SNeutrinoSettings::TIMING_INFOBAR_MOVIE] == 0 ? 0xFFFF : g_settings.timing[SNeutrinoSettings::TIMING_INFOBAR_MOVIE] + timeout_ext); + break; + default: + timeoutEnd = CRCInput::calcTimeoutEnd(6 + timeout_ext); + break; + } +} void CInfoViewer::loop(bool show_dot) { bool hideIt = true; virtual_zap_mode = false; //bool fadeOut = false; - uint64_t timeoutEnd; - int mode = CNeutrinoApp::getInstance()->getMode(); - - //define timeouts - switch (mode) - { - case NeutrinoMessages::mode_tv: - timeoutEnd = CRCInput::calcTimeoutEnd (g_settings.timing[SNeutrinoSettings::TIMING_INFOBAR] == 0 ? 0xFFFF : g_settings.timing[SNeutrinoSettings::TIMING_INFOBAR]); - break; - case NeutrinoMessages::mode_radio: - timeoutEnd = CRCInput::calcTimeoutEnd (g_settings.timing[SNeutrinoSettings::TIMING_INFOBAR_RADIO] == 0 ? 0xFFFF : g_settings.timing[SNeutrinoSettings::TIMING_INFOBAR_RADIO]); - break; - case NeutrinoMessages::mode_ts: - timeoutEnd = CRCInput::calcTimeoutEnd (g_settings.timing[SNeutrinoSettings::TIMING_INFOBAR_MOVIE] == 0 ? 0xFFFF : g_settings.timing[SNeutrinoSettings::TIMING_INFOBAR_MOVIE]); - break; - default: - timeoutEnd = CRCInput::calcTimeoutEnd(6); - break; - } - + timeoutEnd=0;; + setInfobarTimeout(); + int res = messages_return::none; neutrino_msg_t msg; neutrino_msg_data_t data; @@ -1033,14 +1035,14 @@ void CInfoViewer::showSubchan () } else g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_INFO]->RenderString (x + 10, y + dy - 2, dx - 20, text, COL_MENUCONTENT, 0, true); - uint64_t timeoutEnd = CRCInput::calcTimeoutEnd (2); + uint64_t timeoutEnd_tmp = CRCInput::calcTimeoutEnd (2); int res = messages_return::none; neutrino_msg_t msg; neutrino_msg_data_t data; while (!(res & (messages_return::cancel_info | messages_return::cancel_all))) { - g_RCInput->getMsgAbsoluteTimeout (&msg, &data, &timeoutEnd); + g_RCInput->getMsgAbsoluteTimeout (&msg, &data, &timeoutEnd_tmp); if (msg == CRCInput::RC_timeout) { res = messages_return::cancel_info; @@ -1204,6 +1206,8 @@ void CInfoViewer::showFailure () void CInfoViewer::showMotorMoving (int duration) { + setInfobarTimeout(duration + 1); + char text[256]; snprintf(text, sizeof(text), "%s (%ds)", g_Locale->getText (LOCALE_INFOVIEWER_MOTOR_MOVING), duration); ShowHintUTF (LOCALE_MESSAGEBOX_INFO, text, g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getRenderWidth (text, true) + 10, duration); // UTF-8 diff --git a/src/gui/infoviewer.h b/src/gui/infoviewer.h index a3490a47c..9e4adb5a6 100644 --- a/src/gui/infoviewer.h +++ b/src/gui/infoviewer.h @@ -111,6 +111,8 @@ class CInfoViewer char old_timestr[10]; static const short bar_width = 72; static event_id_t last_curr_id, last_next_id; + uint64_t timeoutEnd; + void setInfobarTimeout(int timeout_ext = 0); CChannelEventList evtlist; CChannelEventList::iterator eli; From e1f5a8dbec6bbc5cde6223089f22600e06b93697 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 2 Mar 2012 14:39:51 +0000 Subject: [PATCH 19/20] audio: change change DD over hdmi options to: off, auto (old ON, if supported by device) and force git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2135 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/84afbc9a663e8b29250de05204bd7a409ec00c43 Author: [CST] Focus Date: 2012-03-02 (Fri, 02 Mar 2012) ------------------ This commit was generated by Migit --- data/locale/english.locale | 2 ++ lib/libcoolstream/audio_cs.h | 37 ++++++++++++++++++++++++++++++++-- src/gui/audio_setup.cpp | 10 ++++++++- src/neutrino.cpp | 4 ++-- src/system/locals.h | 2 ++ src/system/locals_intern.h | 2 ++ src/system/setting_helpers.cpp | 2 +- 7 files changed, 53 insertions(+), 6 deletions(-) diff --git a/data/locale/english.locale b/data/locale/english.locale index f4c233967..b08906d77 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -114,6 +114,8 @@ audiomenu.avsync_am Audio master audiomenu.clockrec audiomenu.dolbydigital Prefer Dolby Digital audiomenu.hdmi_dd Encoded DD on HDMI +audiomenu.hdmi_dd_auto auto +audiomenu.hdmi_dd_force force audiomenu.monoleft mono left audiomenu.monoright mono right audiomenu.pref_lang Prefered language diff --git a/lib/libcoolstream/audio_cs.h b/lib/libcoolstream/audio_cs.h index 34bd06340..049407260 100644 --- a/lib/libcoolstream/audio_cs.h +++ b/lib/libcoolstream/audio_cs.h @@ -5,6 +5,7 @@ /* */ /* (C) 2008 CoolStream International */ /* */ +/* $Id:: $ */ /*******************************************************************************/ #ifndef __AUDIO_CS_H_ #define __AUDIO_CS_H_ @@ -37,6 +38,36 @@ typedef enum { AUDIO_FMT_ADVANCED = AUDIO_FMT_MLP } AUDIO_FORMAT; +typedef enum { + HDMI_ENCODED_OFF, + HDMI_ENCODED_AUTO, + HDMI_ENCODED_FORCED +} HDMI_ENCODED_MODE; + +typedef enum +{ + HDMI_AUDIO_FMT_LPCM = 0x1, + HDMI_AUDIO_FMT_AC3 , + HDMI_AUDIO_FMT_MPEG1 , + HDMI_AUDIO_FMT_MP3 , + HDMI_AUDIO_FMT_MPEG2 , + HDMI_AUDIO_FMT_AAC , + HDMI_AUDIO_FMT_DTS , + HDMI_AUDIO_FMT_ATRAC +} HDMI_AUDIO_FORMAT; + +#define CS_MAX_AUDIO_FORMATS 10 + +typedef struct cs_audio_format { + HDMI_AUDIO_FORMAT format; + unsigned int max_channels; +} cs_audio_format_t; + +typedef struct cs_audio_caps { + unsigned char count; + cs_audio_format_t formats[CS_MAX_AUDIO_FORMATS]; +} cs_audio_caps_t; + class cAudio { private: CS_AUDIO_PDATA *privateData; @@ -57,7 +88,7 @@ private: int volume; bool clip_started; - bool hdmiDD; + HDMI_ENCODED_MODE hdmiDD; bool spdifDD; bool hasMuteScheduled; bool analogOut; @@ -110,10 +141,12 @@ public: void getAudioInfo(int &Type, int &Layer, int &Freq, int &Bitrate, int &Mode); void SetSRS(int iq_enable, int nmgr_enable, int iq_mode, int iq_level); bool IsHdmiDDSupported(void); - void SetHdmiDD(bool Enable); + void SetHdmiDD(HDMI_ENCODED_MODE type); void SetSpdifDD(bool Enable); void ScheduleMute(bool On); void EnableAnalogOut(bool Enable); + bool GetHdmiAudioCaps(cs_audio_caps_t &caps); + bool IsHdmiAudioFormatSupported(HDMI_AUDIO_FORMAT format); }; #endif //__AUDIO_CS_H_ diff --git a/src/gui/audio_setup.cpp b/src/gui/audio_setup.cpp index 27f290c40..b6483b232 100644 --- a/src/gui/audio_setup.cpp +++ b/src/gui/audio_setup.cpp @@ -103,6 +103,14 @@ const CMenuOptionChooser::keyval AUDIOMENU_AVSYNC_OPTIONS[AUDIOMENU_AVSYNC_OPTIO { 2, LOCALE_AUDIOMENU_AVSYNC_AM } }; +#define AUDIOMENU_HDMI_DD_OPTION_COUNT 3 +const CMenuOptionChooser::keyval AUDIOMENU_HDMI_DD_OPTIONS[AUDIOMENU_HDMI_DD_OPTION_COUNT] = +{ + { HDMI_ENCODED_OFF, LOCALE_OPTIONS_OFF }, + { HDMI_ENCODED_AUTO, LOCALE_AUDIOMENU_HDMI_DD_AUTO }, + { HDMI_ENCODED_FORCED, LOCALE_AUDIOMENU_HDMI_DD_FORCE } +}; + // #define AUDIOMENU_CLOCKREC_OPTION_COUNT 2 // const CMenuOptionChooser::keyval AUDIOMENU_CLOCKREC_OPTIONS[AUDIOMENU_CLOCKREC_OPTION_COUNT] = // { @@ -125,7 +133,7 @@ int CAudioSetup::showAudioSetup() CMenuOptionChooser * as_oj_ddsubchn = new CMenuOptionChooser(LOCALE_AUDIOMENU_DOLBYDIGITAL, &g_settings.audio_DolbyDigital, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, audioSetupNotifier); //dd via hdmi - CMenuOptionChooser * as_oj_dd_hdmi = new CMenuOptionChooser(LOCALE_AUDIOMENU_HDMI_DD, &g_settings.hdmi_dd, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, audioSetupNotifier); + CMenuOptionChooser * as_oj_dd_hdmi = new CMenuOptionChooser(LOCALE_AUDIOMENU_HDMI_DD, &g_settings.hdmi_dd, AUDIOMENU_HDMI_DD_OPTIONS, AUDIOMENU_HDMI_DD_OPTION_COUNT, true, audioSetupNotifier); //dd via spdif CMenuOptionChooser * as_oj_dd_spdif = new CMenuOptionChooser(LOCALE_AUDIOMENU_SPDIF_DD, &g_settings.spdif_dd, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, audioSetupNotifier); diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 98b05a173..91071a59c 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -1661,7 +1661,7 @@ int CNeutrinoApp::run(int argc, char **argv) audioDecoder->SetSRS(g_settings.srs_enable, g_settings.srs_nmgr_enable, g_settings.srs_algo, g_settings.srs_ref_volume); audioDecoder->setVolume(g_settings.current_volume, g_settings.current_volume); - audioDecoder->SetHdmiDD(g_settings.hdmi_dd ? true : false); + audioDecoder->SetHdmiDD((HDMI_ENCODED_MODE)g_settings.hdmi_dd); audioDecoder->SetSpdifDD(g_settings.spdif_dd ? true : false); audioDecoder->EnableAnalogOut(g_settings.analog_out ? true : false); @@ -3964,4 +3964,4 @@ void CNeutrinoApp::SDT_ReloadChannels() g_RCInput->postMsg(CRCInput::RC_ok, 0); } -} \ No newline at end of file +} diff --git a/src/system/locals.h b/src/system/locals.h index 924de1e0a..aac979f95 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -141,6 +141,8 @@ typedef enum LOCALE_AUDIOMENU_CLOCKREC, LOCALE_AUDIOMENU_DOLBYDIGITAL, LOCALE_AUDIOMENU_HDMI_DD, + LOCALE_AUDIOMENU_HDMI_DD_AUTO, + LOCALE_AUDIOMENU_HDMI_DD_FORCE, LOCALE_AUDIOMENU_MONOLEFT, LOCALE_AUDIOMENU_MONORIGHT, LOCALE_AUDIOMENU_PREF_LANG, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 2d1390437..a642f9ea1 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -141,6 +141,8 @@ const char * locale_real_names[] = "audiomenu.clockrec", "audiomenu.dolbydigital", "audiomenu.hdmi_dd", + "audiomenu.hdmi_dd_auto", + "audiomenu.hdmi_dd_force", "audiomenu.monoleft", "audiomenu.monoright", "audiomenu.pref_lang", diff --git a/src/system/setting_helpers.cpp b/src/system/setting_helpers.cpp index cdac93341..e2392fa74 100644 --- a/src/system/setting_helpers.cpp +++ b/src/system/setting_helpers.cpp @@ -419,7 +419,7 @@ bool CAudioSetupNotifier::changeNotify(const neutrino_locale_t OptionName, void } else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_AUDIOMENU_ANALOG_OUT)) { audioDecoder->EnableAnalogOut(g_settings.analog_out ? true : false); } else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_AUDIOMENU_HDMI_DD)) { - audioDecoder->SetHdmiDD(g_settings.hdmi_dd ? true : false); + audioDecoder->SetHdmiDD((HDMI_ENCODED_MODE) g_settings.hdmi_dd); } else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_AUDIOMENU_SPDIF_DD)) { audioDecoder->SetSpdifDD(g_settings.spdif_dd ? true : false); } else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_AUDIOMENU_AVSYNC)) { From baf2ab1b5c408adecdc650feb463d6981744eac5 Mon Sep 17 00:00:00 2001 From: gixxpunk Date: Fri, 2 Mar 2012 14:50:20 +0000 Subject: [PATCH 20/20] update deutsch.locale git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2136 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/04149c083b1ca8b03f786e391bef4e619acceb65 Author: gixxpunk Date: 2012-03-02 (Fri, 02 Mar 2012) Origin message was: ------------------ - update deutsch.locale git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2136 e54a6e83-5905-42d5-8d5c-058d10e6a962 ------------------ This commit was generated by Migit --- data/locale/deutsch.locale | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index f264ea447..5e9d13d8d 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -114,6 +114,8 @@ audiomenu.avsync_am Audio master audiomenu.clockrec audiomenu.dolbydigital DD-Unterkanal automatisch audiomenu.hdmi_dd DolbyDigital über HDMI +audiomenu.hdmi_dd_auto automatisch +audiomenu.hdmi_dd_force erzwingen audiomenu.monoleft mono links audiomenu.monoright mono rechts audiomenu.pref_lang Sprache