diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 17a6fe78e..149f57531 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -269,6 +269,9 @@ channellist.additional_on ein channellist.additional_on_minitv ein (mit MiniTV) channellist.current_tp Aktueller Transponder channellist.edit Bearbeiten +channellist.enablesdt_off aus +channellist.enablesdt_on ein +channellist.enablesdt_on_extended ein (mit PMT) channellist.epgtext_align_left links channellist.epgtext_align_right rechts channellist.extended Sendungsfortschritt anzeigen diff --git a/data/locale/english.locale b/data/locale/english.locale index 4ac8091bd..4a9cc795a 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -269,6 +269,9 @@ channellist.additional_on on channellist.additional_on_minitv on (with MiniTV) channellist.current_tp Current transponder channellist.edit Edit +channellist.enablesdt_off off +channellist.enablesdt_on on +channellist.enablesdt_on_extended on (with PMT) channellist.epgtext_align_left left channellist.epgtext_align_right right channellist.extended Show event progress diff --git a/src/gui/miscsettings_menu.cpp b/src/gui/miscsettings_menu.cpp index 80ff938e7..f64ce2911 100644 --- a/src/gui/miscsettings_menu.cpp +++ b/src/gui/miscsettings_menu.cpp @@ -207,6 +207,15 @@ const CMenuOptionChooser::keyval CHANNELLIST_NEW_ZAP_MODE_OPTIONS[CHANNELLIST_NE { 2, LOCALE_CHANNELLIST_NEW_ZAP_MODE_ACTIVE } }; +#define CHANNELLIST_ENABLESDT_OPTION_COUNT 3 +const CMenuOptionChooser::keyval CHANNELLIST_ENABLESDT_OPTIONS[CHANNELLIST_ENABLESDT_OPTION_COUNT] = +{ + { 0, LOCALE_CHANNELLIST_ENABLESDT_OFF }, + { 1, LOCALE_CHANNELLIST_ENABLESDT_ON }, + { 2, LOCALE_CHANNELLIST_ENABLESDT_ON_EXTENDED } +}; + + #define CPU_FREQ_OPTION_COUNT 13 const CMenuOptionChooser::keyval_ext CPU_FREQ_OPTIONS[CPU_FREQ_OPTION_COUNT] = { @@ -603,7 +612,7 @@ int CMiscMenue::showMiscSettingsMenuChanlist() mc->setHint("", LOCALE_MENU_HINT_CHANNELLIST_SHOW_EMPTY_FAVS); ms_chanlist->addItem(mc); - mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_CHANNELLIST_ENABLESDT, &g_settings.enable_sdt, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this); + mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_CHANNELLIST_ENABLESDT, &g_settings.enable_sdt, CHANNELLIST_ENABLESDT_OPTIONS, CHANNELLIST_ENABLESDT_OPTION_COUNT, true, this); mc->setHint("", LOCALE_MENU_HINT_CHANNELLIST_ENABLESDT); ms_chanlist->addItem(mc); diff --git a/src/system/locals.h b/src/system/locals.h index 1b9dacd12..c04ffbf63 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -296,6 +296,9 @@ typedef enum LOCALE_CHANNELLIST_ADDITIONAL_ON_MINITV, LOCALE_CHANNELLIST_CURRENT_TP, LOCALE_CHANNELLIST_EDIT, + LOCALE_CHANNELLIST_ENABLESDT_OFF, + LOCALE_CHANNELLIST_ENABLESDT_ON, + LOCALE_CHANNELLIST_ENABLESDT_ON_EXTENDED, LOCALE_CHANNELLIST_EPGTEXT_ALIGN_LEFT, LOCALE_CHANNELLIST_EPGTEXT_ALIGN_RIGHT, LOCALE_CHANNELLIST_EXTENDED, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index e6367708d..a4133247e 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -296,6 +296,9 @@ const char * locale_real_names[] = "channellist.additional_on_minitv", "channellist.current_tp", "channellist.edit", + "channellist.enablesdt_off", + "channellist.enablesdt_on", + "channellist.enablesdt_on_extended", "channellist.epgtext_align_left", "channellist.epgtext_align_right", "channellist.extended", diff --git a/src/zapit/include/zapit/zapit.h b/src/zapit/include/zapit/zapit.h index c65d5de12..b67cdb7ae 100644 --- a/src/zapit/include/zapit/zapit.h +++ b/src/zapit/include/zapit/zapit.h @@ -255,7 +255,7 @@ class CZapit : public OpenThreads::Thread void Abort() { abort_zapit = 1; }; bool Recording() { return currentMode & RECORD_MODE; }; bool makeRemainingChannelsBouquet() { return config.makeRemainingChannelsBouquet; }; - bool GetScanSDT() { return config.scanSDT; }; + int GetScanSDT() { return config.scanSDT; }; void SetScanSDT(int _scanSDT) { config.scanSDT = _scanSDT; }; bool scanPids() { return config.scanPids; }; void scanPids(bool enable) { config.scanPids = enable; }; diff --git a/src/zapit/src/scansdt.cpp b/src/zapit/src/scansdt.cpp index 324cbeab9..45d965a49 100644 --- a/src/zapit/src/scansdt.cpp +++ b/src/zapit/src/scansdt.cpp @@ -215,8 +215,8 @@ bool CSdt::Parse(t_transport_stream_id &tsid, t_original_network_id &onid) sidpmt = pat.getSids(); //Update form PAT if SDT is empty - bool ScanSDT = CZapit::getInstance()->GetScanSDT();//check for normal scan withot ScanSDT - if(ScanSDT && !sdt_read && !sidpmt.empty() && (pat_tsid == transport_stream_id || (transport_stream_id == 0 && pat_tsid > 1 ))){ + int ScanSDT = CZapit::getInstance()->GetScanSDT();//check for normal scan without ScanSDT-PMT + if(ScanSDT == 2 && !sdt_read && !sidpmt.empty() && (pat_tsid == transport_stream_id || (transport_stream_id == 0 && pat_tsid > 1 ))){ bool ret = false; for (std::map::iterator patit=sidpmt.begin(); patit!=sidpmt.end(); ++patit){ if(patit->first != 0 && patit->second != 0){ @@ -322,7 +322,7 @@ bool CSdt::Parse(t_transport_stream_id &tsid, t_original_network_id &onid) } } } - if(ScanSDT && pat_tsid == transport_stream_id){ + if(ScanSDT == 2 && pat_tsid == transport_stream_id){ for (std::map::iterator patit=sidpmt.begin(); patit!=sidpmt.end(); ++patit){ if(current && current_tp_id != CFEManager::getInstance()->getLiveFE()->getTsidOnid()){ failed = true; diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index acff48e64..af8c2c993 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -3007,7 +3007,7 @@ void CZapitSdtMonitor::run() bool updated = CServiceManager::getInstance()->SaveCurrentServices(tpid); CServiceManager::getInstance()->CopyCurrentServices(tpid); - if(updated && (CZapit::getInstance()->GetScanSDT() == 1)) + if(updated && (CZapit::getInstance()->GetScanSDT())) CZapit::getInstance()->SendEvent(CZapitClient::EVT_SDT_CHANGED); if(!updated) printf("[sdt monitor] no changes.\n");