diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index b955037f5..f6eb340fd 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -305,6 +305,7 @@ channellist.new_zap_mode_off aus channellist.nonefound Es wurden keine Kanäle gefunden!\nFühren Sie bitte eine Kanalsuche durch\n(MENU-Taste -> Service) channellist.numeric_adjust Bei numerischem Zap Kanalliste nachführen channellist.provs Anbieter +channellist.recordable_channels Aufnehmbare Sender channellist.recording_not_possible Aufnahme nicht möglich! channellist.remember Zuletzt verwendete channellist.reset_all Entferne Markierung "Neu" für alle Kanäle diff --git a/data/locale/english.locale b/data/locale/english.locale index e7bf20d6e..9aba90585 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -305,6 +305,7 @@ channellist.new_zap_mode_off off channellist.nonefound No channels were found!\nPlease execute a scan\n(MENU-key -> service) channellist.numeric_adjust Numeric zap adjust channellist.provs Providers +channellist.recordable_channels Recordable channels channellist.recording_not_possible Recording not possible! channellist.remember Last used channellist.reset_all Reset 'new' flag for all channels diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 52df47691..1ba715ec4 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -1248,8 +1248,8 @@ int CChannelList::showLiveBouquet(int key) { if (this->lastChList.size() > 1) { - CChannelList * channelList = new CChannelList(g_Locale->getText(LOCALE_CHANNELLIST_HISTORY), true, true); - channelList->setLiveBouquet(); + CChannelList * liveList = new CChannelList(g_Locale->getText(LOCALE_CHANNELLIST_HISTORY), true, true); + liveList->setLiveBouquet(); for (unsigned int i = 1; i < this->lastChList.size(); ++i) { @@ -1258,16 +1258,16 @@ int CChannelList::showLiveBouquet(int key) { CZapitChannel* channel = getChannel(channel_id); if (channel) - channelList->addChannel(channel); + liveList->addChannel(channel); } } - if (!channelList->isEmpty()) + if (!liveList->isEmpty()) { this->frameBuffer->paintBackground(); - res = channelList->exec(); + res = liveList->exec(); CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO); } - delete channelList; + delete liveList; } else ShowHint(LOCALE_MESSAGEBOX_INFO, LOCALE_CHANNELLIST_HISTORY_EMPTY); @@ -1278,24 +1278,36 @@ int CChannelList::showLiveBouquet(int key) // current transponder bouquet if (key == g_settings.key_current_transponder) { - CChannelList * orgList = CNeutrinoApp::getInstance()->channelList; - CChannelList * channelList = new CChannelList(g_Locale->getText(LOCALE_CHANNELLIST_CURRENT_TP), false, true); - channelList->setLiveBouquet(); - t_channel_id recid = (*chanlist)[selected]->getChannelID() >> 16; + bool isRecord = (!autoshift && CNeutrinoApp::getInstance()->recordingstatus); + CChannelList * origList = CNeutrinoApp::getInstance()->channelList; + CChannelList * liveList = new CChannelList(isRecord ? g_Locale->getText(LOCALE_CHANNELLIST_RECORDABLE_CHANNELS) : g_Locale->getText(LOCALE_CHANNELLIST_CURRENT_TP), false, true); + liveList->setLiveBouquet(); - for (unsigned int i = 0; i < (*orgList->chanlist).size(); i++) + if (isRecord) { - if (((*orgList->chanlist)[i]->getChannelID() >> 16) == recid) - channelList->addChannel((*orgList->chanlist)[i]); + for (unsigned int i = 0 ; i < (*origList->chanlist).size(); i++) + { + if (SameTP((*origList->chanlist)[i])) + liveList->addChannel((*origList->chanlist)[i]); + } } - if (!channelList->isEmpty()) + else { - channelList->adjustToChannelID(orgList->getActiveChannel_ChannelID()); + t_channel_id recid = (*chanlist)[selected]->getChannelID() >> 16; + for (unsigned int i = 0; i < (*origList->chanlist).size(); i++) + { + if (((*origList->chanlist)[i]->getChannelID() >> 16) == recid) + liveList->addChannel((*origList->chanlist)[i]); + } + } + if (!liveList->isEmpty()) + { + liveList->adjustToChannelID(origList->getActiveChannel_ChannelID()); this->frameBuffer->paintBackground(); - res = channelList->exec(); + res = liveList->exec(); CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO); } - delete channelList; + delete liveList; return res; } diff --git a/src/system/locals.h b/src/system/locals.h index d29e4fcd4..b7a0d2585 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -332,6 +332,7 @@ typedef enum LOCALE_CHANNELLIST_NONEFOUND, LOCALE_CHANNELLIST_NUMERIC_ADJUST, LOCALE_CHANNELLIST_PROVS, + LOCALE_CHANNELLIST_RECORDABLE_CHANNELS, LOCALE_CHANNELLIST_RECORDING_NOT_POSSIBLE, LOCALE_CHANNELLIST_REMEMBER, LOCALE_CHANNELLIST_RESET_ALL, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 795f71ba8..ddd6dc1e6 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -332,6 +332,7 @@ const char * locale_real_names[] = "channellist.nonefound", "channellist.numeric_adjust", "channellist.provs", + "channellist.recordable_channels", "channellist.recording_not_possible", "channellist.remember", "channellist.reset_all",