diff options
-rw-r--r-- | epg_events.cpp | 1 | ||||
-rw-r--r-- | epg_events.h | 8 | ||||
-rw-r--r-- | epgsearch.cpp | 20 | ||||
-rw-r--r-- | epgsearch.h | 3 | ||||
-rw-r--r-- | filecache.h | 1 | ||||
-rw-r--r-- | pages/whats_on.ecpp | 157 | ||||
-rw-r--r-- | po/ca_ES.po | 3 | ||||
-rw-r--r-- | po/cs_CZ.po | 3 | ||||
-rw-r--r-- | po/da_DK.po | 3 | ||||
-rw-r--r-- | po/de_DE.po | 12 | ||||
-rw-r--r-- | po/el_GR.po | 3 | ||||
-rw-r--r-- | po/es_ES.po | 3 | ||||
-rw-r--r-- | po/et_EE.po | 3 | ||||
-rw-r--r-- | po/fi_FI.po | 10 | ||||
-rw-r--r-- | po/fr_FR.po | 10 | ||||
-rw-r--r-- | po/hr_HR.po | 3 | ||||
-rw-r--r-- | po/hu_HU.po | 3 | ||||
-rw-r--r-- | po/it_IT.po | 10 | ||||
-rw-r--r-- | po/nl_NL.po | 6 | ||||
-rw-r--r-- | po/nn_NO.po | 3 | ||||
-rw-r--r-- | po/pl_PL.po | 3 | ||||
-rw-r--r-- | po/pt_PT.po | 3 | ||||
-rw-r--r-- | po/ro_RO.po | 3 | ||||
-rw-r--r-- | po/ru_RU.po | 3 | ||||
-rw-r--r-- | po/sl_SI.po | 3 | ||||
-rw-r--r-- | po/sv_SE.po | 3 | ||||
-rw-r--r-- | po/tr_TR.po | 3 | ||||
-rw-r--r-- | recman.cpp | 1 | ||||
-rw-r--r-- | setup.h | 1 |
29 files changed, 209 insertions, 79 deletions
diff --git a/epg_events.cpp b/epg_events.cpp index 2302827..7d22cdf 100644 --- a/epg_events.cpp +++ b/epg_events.cpp @@ -1,5 +1,6 @@ #include <time.h> #include <glob.h> +#include <algorithm> #include "tools.h" #include "recman.h" diff --git a/epg_events.h b/epg_events.h index 15e4b36..8678eef 100644 --- a/epg_events.h +++ b/epg_events.h @@ -35,6 +35,8 @@ namespace vdrlive virtual std::string const LongDescr() const = 0; + virtual cChannel const * Channel() const { return 0; } + virtual std::string const Archived() const { return ""; } virtual std::string const StartTime(const char* format) const; @@ -95,7 +97,7 @@ namespace vdrlive protected: EpgEvent(std::string const &id, cEvent const *event, - char const *channelName = ""); + char const *channelName); public: virtual ~EpgEvent(); @@ -110,8 +112,10 @@ namespace vdrlive virtual time_t GetEndTime() const { return m_event->EndTime(); } + virtual cChannel const * Channel() const { return Channels.GetByChannelID(m_event->ChannelID());} + private: - const cEvent* m_event; + cEvent const * m_event; }; // ------------------------------------------------------------------------- diff --git a/epgsearch.cpp b/epgsearch.cpp index e905bd9..622ef21 100644 --- a/epgsearch.cpp +++ b/epgsearch.cpp @@ -557,10 +557,10 @@ Blacklists::Blacklists() SearchResult::SearchResult( string const& data ) { - vector< string > parts = StringSplit( data, ':' ); - try { - vector< string >::const_iterator part = parts.begin(); - for ( int i = 0; part != parts.end(); ++i, ++part ) { + vector< string > parts = StringSplit( data, ':' ); + try { + vector< string >::const_iterator part = parts.begin(); + for ( int i = 0; part != parts.end(); ++i, ++part ) { switch ( i ) { case 0: m_searchId = lexical_cast< int >( *part ); break; case 1: m_eventId = lexical_cast< u_int32_t >( *part ); break; @@ -580,6 +580,18 @@ SearchResult::SearchResult( string const& data ) } } +const cEvent* SearchResult::GetEvent() +{ + cSchedulesLock schedulesLock; + const cSchedules* Schedules = cSchedules::Schedules(schedulesLock); + if (!Schedules) return NULL; + const cChannel *Channel = GetChannel(); + if (!Channel) return NULL; + const cSchedule *Schedule = Schedules->GetSchedule(Channel); + if (!Schedule) return NULL; + return Schedule->GetEvent(m_eventId); +} + std::set<std::string> SearchResults::querySet; void SearchResults::GetByID(int id) diff --git a/epgsearch.h b/epgsearch.h index 4519490..b63f109 100644 --- a/epgsearch.h +++ b/epgsearch.h @@ -339,6 +339,8 @@ public: time_t TimerStopTime() const { return m_timerstop; } int TimerMode() const { return m_timerMode; } bool operator<( SearchResult const& other ) const { return m_starttime < other.m_starttime; } + const cEvent* GetEvent(); + const cChannel* GetChannel() { return Channels.GetByChannelID(m_channel); } private: int m_searchId; @@ -375,6 +377,7 @@ public: iterator end() { return m_list.end(); } const_iterator end() const { return m_list.end(); } + void merge(SearchResults& r) {m_list.merge(r.m_list); m_list.sort();} static std::string AddQuery(std::string const& query); static std::string PopQuery(std::string const& md5); private: diff --git a/filecache.h b/filecache.h index eaf9739..6833193 100644 --- a/filecache.h +++ b/filecache.h @@ -1,6 +1,7 @@ #ifndef VDR_LIVE_FILECACHE_H #define VDR_LIVE_FILECACHE_H +#include <limits> #include <numeric> #include <string> #include <vector> diff --git a/pages/whats_on.ecpp b/pages/whats_on.ecpp index 7331adc..7744b4d 100644 --- a/pages/whats_on.ecpp +++ b/pages/whats_on.ecpp @@ -8,6 +8,7 @@ #include "setup.h" #include "tools.h" #include "epg_events.h" +#include "epgsearch.h" using namespace std; using namespace vdrlive; @@ -69,6 +70,8 @@ if (type == "now") { if (seektime - time(0) + 3600 < 0) // if wanted time is past more then 1h, then use tomorrow seektime += SECSINDAY; head = tr("What's running at") + string(" ") + FormatDateTime(tr("%I:%M %p"), seektime) +string(" (") +FormatDateTime(tr("%a, %b %d"), seektime) + string(")"); +} else if (type == "favs") { + head = tr("Favorites"); } </%cpp> @@ -103,89 +106,121 @@ if (type == "now") { % } <%cpp> EpgEvents epgEvents; + std::list<EpgInfoPtr> eventList; - ReadLock channelsLock( Channels ); - if (channelsLock) { - // int evntNr = 0; - for (cChannel *Channel = Channels.First(); Channel && Channel->Number() <= LiveSetup().GetLastChannel(); Channel = Channels.Next(Channel)) { - if (Channel->GroupSep()) { - continue; - } - const cSchedule *Schedule = Schedules->GetSchedule(Channel); - if (!Schedule) { - continue; - } - const cEvent *Event = NULL; - if (type == "now") - Event = Schedule->GetPresentEvent(); - else if (type == "next") - Event = Schedule->GetFollowingEvent(); - else if (type == "at") - Event = Schedule->GetEventAround(seektime); - if (!Event) { - continue; + // collect the broadcasts + if (type != "favs") + { + ReadLock channelsLock( Channels ); + if (channelsLock) { + // int evntNr = 0; + for (cChannel *Channel = Channels.First(); Channel && Channel->Number() <= LiveSetup().GetLastChannel(); Channel = Channels.Next(Channel)) { + if (Channel->GroupSep()) { + continue; + } + const cSchedule *Schedule = Schedules->GetSchedule(Channel); + if (!Schedule) { + continue; + } + const cEvent *Event = NULL; + if (type == "now") + Event = Schedule->GetPresentEvent(); + else if (type == "next") + Event = Schedule->GetFollowingEvent(); + else if (type == "at") + Event = Schedule->GetEventAround(seektime); + if (!Event) { + continue; + } + + EpgInfoPtr epgEvent = EpgEvents::CreateEpgInfo(Channel, Event); + eventList.push_back(epgEvent); } + } + } + else // get favorite broadcasts from epgsearch + { + SearchResults results; + SearchTimers timers; + for (SearchTimers::iterator timer = timers.begin(); timer != timers.end(); ++timer) { + if (!timer->UseInFavorites()) continue; + SearchResults curresults; + curresults.GetByID(timer->Id()); + results.merge(curresults); + } + time_t now = time(NULL); + for (SearchResults::iterator result = results.begin(); result != results.end(); ++result) { + long diff = result->StartTime() - now; + if (labs(diff) >= 24*60*60) continue; // skip broadcasts more than a day away + EpgInfoPtr epgEvent = EpgEvents::CreateEpgInfo(result->GetChannel(), result->GetEvent()); + eventList.push_back(epgEvent); + } + } - EpgInfoPtr epgEvent = EpgEvents::CreateEpgInfo(Channel, Event); + // display broadcasts + for(std::list<EpgInfoPtr>::iterator i = eventList.begin(); i != eventList.end(); ++i ) { + EpgInfoPtr epgEvent = *i; - bool truncated = false; - string truncDescription = StringWordTruncate(epgEvent->LongDescr(), maximumTooltipHintLength, truncated); - string longDescription = StringEscapeAndBreak(StringWordTruncate(epgEvent->LongDescr(), maximumDescriptionLength)) - + "<br/><br/>" + tr("Click to view details."); - bool lastCurrentChanel = true; + bool truncated = false; + string truncDescription = StringWordTruncate(epgEvent->LongDescr(), maximumTooltipHintLength, truncated); + string longDescription = StringEscapeAndBreak(StringWordTruncate(epgEvent->LongDescr(), maximumDescriptionLength)) + + "<br/><br/>" + tr("Click to view details."); + bool lastCurrentChanel = true; + const cChannel* Channel = epgEvent->Channel(); + if (!Channel) continue; + int chNumber = Channel->Number(); - if (mode == "detail") { + if (mode == "detail") { </%cpp> <div class="event"> <div class="station"> - <div><div><div><a href="schedule.html?channel=<$ Channel->Number() $>" <& tooltip.hint text=(tr("View the schedule of this channel")) &>><$ (epgEvent->Caption()) $></a></div></div></div> + <div><div><div><a href="schedule.html?channel=<$ chNumber $>" <& tooltip.hint text=(tr("View the schedule of this channel")) &>><$ (epgEvent->Caption()) $></a></div></div></div> </div> <div class="content"> <div class="tools"> <& pageelems.epg_tool_box detail=(1) epgid=(epgEvent->Id()) title=(epgEvent->Title()) startTime=(epgEvent->GetStartTime()) endTime=(epgEvent->GetEndTime()) &> </div> - <div> + <div> <div class="info"><$ (epgEvent->StartTime(tr("%I:%M %p"))) $> - <$ (epgEvent->EndTime(tr("%I:%M %p"))) $></div> -% if (epgEvent->Elapsed() >= 0) { - <div class="progress"><div><& pageelems.progressbar progress=(epgEvent->Elapsed()) &></div></div> -% } +% if (epgEvent->Elapsed() >= 0) { + <div class="progress"><div><& pageelems.progressbar progress=(epgEvent->Elapsed()) &></div></div> +% } <div class="title withmargin"><$ (epgEvent->Title()) $></div> <div class="short withmargin"><$ (epgEvent->ShortDescr()) $></div> <div class="description withmargin"><$ truncDescription $></div> -% if (truncated) { - <div class="more withmargin"><a <& tooltip.hint text=(longDescription) &><& tooltip.display domId=(epgEvent->Id()) &>><$ tr("more") $> ...</a></div> -% } - </div> +% if (truncated) { + <div class="more withmargin"><a <& tooltip.hint text=(longDescription) &><& tooltip.display domId=(epgEvent->Id()) &>><$ tr("more") $> ...</a></div> +% } + </div> </div> </div> <%cpp> - } - else { // mode == "list" - lastCurrentChanel = ((Channel->Number() == LiveSetup().GetLastChannel()) - || (!Channels.Next(Channel))); + } else { // mode == "list" + lastCurrentChanel = ((chNumber == LiveSetup().GetLastChannel()) || (!Channels.Next(Channel))); </%cpp> - <tr> - <& pageelems.epg_tool_box detail=(0) epgid=(epgEvent->Id()) title=(epgEvent->Title()) startTime=(epgEvent->GetStartTime()) endTime=(epgEvent->GetEndTime()) lastCurrentChanel=(lastCurrentChanel ? 1 : 0) &> - <td class="topaligned <? lastCurrentChanel ? "bottomrow"?>"> - <div class="withmargin"> - <div class="nomargin"><$ (epgEvent->StartTime(tr("%I:%M %p"))) $> - <$ (epgEvent->EndTime(tr("%I:%M %p"))) $></div> -% if (epgEvent->Elapsed() >= 0) { + <tr> + <& pageelems.epg_tool_box detail=(0) epgid=(epgEvent->Id()) title=(epgEvent->Title()) startTime=(epgEvent->GetStartTime()) endTime=(epgEvent->GetEndTime()) lastCurrentChanel=(lastCurrentChanel ? 1 : 0) &> + <td class="topaligned <? lastCurrentChanel ? "bottomrow"?>"> + <div class="withmargin"> + <div class="nomargin"><$ (epgEvent->StartTime(tr("%I:%M %p"))) $> - <$ (epgEvent->EndTime(tr("%I:%M %p"))) $></div> +% if (epgEvent->Elapsed() >= 0) { <div class="progress"><div><& pageelems.progressbar progress=(epgEvent->Elapsed()) &></div></div> -% } - </div> - </td> - <td class="topaligned <? lastCurrentChanel ? "bottomrow"?>"> - <div class="more withmargin"><a -% if (!longDescription.empty()) { +% } + </div> + </td> + <td class="topaligned <? lastCurrentChanel ? "bottomrow"?>"> + <div class="more withmargin"><a +% if (!longDescription.empty()) { <& tooltip.hint text=(longDescription) &><& tooltip.display domId=(epgEvent->Id()) &> -% } - ><span class="title"><$ (epgEvent->Title()) $></span><br /><span class="short"><$ (epgEvent->ShortDescr()) $></span></a></div> - </td> - <td class="topaligned rightcol <? lastCurrentChanel ? "bottomrow"?>"><div class="station withmargin"><a href="schedule.html?channel=<$ Channel->Number() $>" <& tooltip.hint text=(tr("View the schedule of this channel")) &>><$ (epgEvent->Caption()) $></a></div></td> - </tr> -% } +% } + ><span class="title"><$ (epgEvent->Title()) $></span><br /><span class="short"><$ (epgEvent->ShortDescr()) $></span></a> + </div> + </td> + <td class="topaligned rightcol <? lastCurrentChanel ? "bottomrow"?>"><div class="station withmargin"><a href="schedule.html?channel=<$ chNumber $>" <& tooltip.hint text=(tr("View the schedule of this channel")) &>><$ (epgEvent->Caption()) $></a></div> + </td> + </tr> +% } <%cpp> - } } </%cpp> % if (mode == "list") { @@ -220,6 +255,10 @@ if (type == "now") { <span class="<? current_type == "at" && current_fixtime == "" ? "active" ?>"><$ tr("at") $></span> <input type="text" size="6" name="spectime" id="spectime" value = "<? current_attime != "" ? current_displaytime ?>" onchange="showspectime(this)"/> <span class="sep">|</span> +% if ( LiveFeatures< features::epgsearch >().Recent() ) { +<a class="<? current_type == "favs" ? "active" ?>" href="whats_on.html?type=favs&mode=<$ current_mode $>"><$ tr("Favorites") $></a> +<span class="sep">|</span> +% } % if ( current_mode == "list" ) { <a href="whats_on.html?mode=detail&type=<$ current_type $>&attime=<$ current_attime $>&fixtime=<$ current_fixtime $>"><$ tr("Details view") $></a> % } else { diff --git a/po/ca_ES.po b/po/ca_ES.po index 0550b9b..14ce49c 100644 --- a/po/ca_ES.po +++ b/po/ca_ES.po @@ -727,6 +727,9 @@ msgstr "" msgid "%a, %b %d" msgstr "" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "" diff --git a/po/cs_CZ.po b/po/cs_CZ.po index eac3ec5..03f55f9 100644 --- a/po/cs_CZ.po +++ b/po/cs_CZ.po @@ -725,6 +725,9 @@ msgstr "" msgid "%a, %b %d" msgstr "" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "" diff --git a/po/da_DK.po b/po/da_DK.po index 493269c..4e49989 100644 --- a/po/da_DK.po +++ b/po/da_DK.po @@ -725,6 +725,9 @@ msgstr "" msgid "%a, %b %d" msgstr "" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "" diff --git a/po/de_DE.po b/po/de_DE.po index 027c1f9..aca8929 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -109,8 +109,9 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" +#, fuzzy msgid "channels" -msgstr "Kanäle" +msgstr "Kanal" msgid "Couldn't aquire access to channels, please try again later." msgstr "" @@ -566,7 +567,7 @@ msgid "If you encounter any bugs or would like to suggest new features, please u msgstr "Für Fehler oder Verbesserungsvorschläge steht unser Bugtracker bereit" msgid "RecDate" -msgstr "Aufnahmedatum" +msgstr "" msgid "List of recordings" msgstr "Liste der Aufnahmen" @@ -727,6 +728,9 @@ msgstr "Was läuft als nächstes?" msgid "%a, %b %d" msgstr "%a, %d.%m." +msgid "Favorites" +msgstr "Favoriten" + msgid "View the schedule of this channel" msgstr "Zeige Programm dieses Kanals" @@ -750,7 +754,3 @@ msgstr "Ausführliche Ansicht" msgid "List view" msgstr "Listenansicht" - -#, fuzzy -#~ msgid "Watch channel" -#~ msgstr "bis Kanal" diff --git a/po/el_GR.po b/po/el_GR.po index bdd434b..ad18553 100644 --- a/po/el_GR.po +++ b/po/el_GR.po @@ -725,6 +725,9 @@ msgstr "" msgid "%a, %b %d" msgstr "" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "" diff --git a/po/es_ES.po b/po/es_ES.po index 8c5b283..626c3b2 100644 --- a/po/es_ES.po +++ b/po/es_ES.po @@ -725,6 +725,9 @@ msgstr "" msgid "%a, %b %d" msgstr "" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "" diff --git a/po/et_EE.po b/po/et_EE.po index f397711..53b2f6e 100644 --- a/po/et_EE.po +++ b/po/et_EE.po @@ -725,6 +725,9 @@ msgstr "" msgid "%a, %b %d" msgstr "" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "" diff --git a/po/fi_FI.po b/po/fi_FI.po index af98e7d..664b2e0 100644 --- a/po/fi_FI.po +++ b/po/fi_FI.po @@ -107,8 +107,9 @@ msgstr "Ensisijaisen DVB-sovittimen käyttäminen epäonnistui!" msgid "Couldn't grab image from primary device" msgstr "Kuvan kaappaus ensisijaiselta DVB-sovittimelta epäonnistui!" +#, fuzzy msgid "channels" -msgstr "kanavat" +msgstr "Kanava" msgid "Couldn't aquire access to channels, please try again later." msgstr "Kanavien käyttäminen epäonnistui! Yritä myöhemmin uudelleen." @@ -725,6 +726,9 @@ msgstr "Tulossa seuraavaksi?" msgid "%a, %b %d" msgstr "%a, %d.%m." +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "Näytä ohjelmisto kanavalta" @@ -750,5 +754,5 @@ msgid "List view" msgstr "Listanäkymä" #, fuzzy -#~ msgid "Watch channel" -#~ msgstr "Katso kanavaa" +#~ msgid "hours" +#~ msgstr "Tekijät" diff --git a/po/fr_FR.po b/po/fr_FR.po index 50c41c8..878eb36 100644 --- a/po/fr_FR.po +++ b/po/fr_FR.po @@ -111,8 +111,9 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" +#, fuzzy msgid "channels" -msgstr "" +msgstr "à la chaîne" msgid "Couldn't aquire access to channels, please try again later." msgstr "" @@ -730,6 +731,9 @@ msgstr "" msgid "%a, %b %d" msgstr "%a, %d.%m." +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "Regarder le programme de cette chaîne" @@ -755,5 +759,9 @@ msgid "List view" msgstr "Vue en liste" #, fuzzy +#~ msgid "hours" +#~ msgstr "Auteur" + +#, fuzzy #~ msgid "Watch channel" #~ msgstr "à la chaîne" diff --git a/po/hr_HR.po b/po/hr_HR.po index 5747739..cd7c9a7 100644 --- a/po/hr_HR.po +++ b/po/hr_HR.po @@ -726,6 +726,9 @@ msgstr "" msgid "%a, %b %d" msgstr "" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "" diff --git a/po/hu_HU.po b/po/hu_HU.po index 88095e4..b184d56 100644 --- a/po/hu_HU.po +++ b/po/hu_HU.po @@ -726,6 +726,9 @@ msgstr "" msgid "%a, %b %d" msgstr "" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "" diff --git a/po/it_IT.po b/po/it_IT.po index 9a2ef99..b8cab02 100644 --- a/po/it_IT.po +++ b/po/it_IT.po @@ -110,8 +110,9 @@ msgstr "Impossibile identificare scheda primaria" msgid "Couldn't grab image from primary device" msgstr "Impossibile ottenere immagine da scheda primaria" +#, fuzzy msgid "channels" -msgstr "canali" +msgstr "Canale" msgid "Couldn't aquire access to channels, please try again later." msgstr "Impossibile avere accesso ai canali, per favore riprova più tardi." @@ -728,6 +729,9 @@ msgstr "Cosa c'è dopo?" msgid "%a, %b %d" msgstr "%a, %b %d" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "Visualizza scheda programmi del canale" @@ -753,5 +757,5 @@ msgid "List view" msgstr "Vedi come elenco" #, fuzzy -#~ msgid "Watch channel" -#~ msgstr "a canale" +#~ msgid "hours" +#~ msgstr "Autori" diff --git a/po/nl_NL.po b/po/nl_NL.po index 971c65d..b20f4c7 100644 --- a/po/nl_NL.po +++ b/po/nl_NL.po @@ -110,8 +110,9 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" +#, fuzzy msgid "channels" -msgstr "" +msgstr "tot kanaal" msgid "Couldn't aquire access to channels, please try again later." msgstr "" @@ -729,6 +730,9 @@ msgstr "" msgid "%a, %b %d" msgstr "" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "" diff --git a/po/nn_NO.po b/po/nn_NO.po index 49e8364..011a4d9 100644 --- a/po/nn_NO.po +++ b/po/nn_NO.po @@ -726,6 +726,9 @@ msgstr "" msgid "%a, %b %d" msgstr "" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "" diff --git a/po/pl_PL.po b/po/pl_PL.po index 35b36e6..032af70 100644 --- a/po/pl_PL.po +++ b/po/pl_PL.po @@ -725,6 +725,9 @@ msgstr "" msgid "%a, %b %d" msgstr "" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "" diff --git a/po/pt_PT.po b/po/pt_PT.po index ad1849e..05c1fd3 100644 --- a/po/pt_PT.po +++ b/po/pt_PT.po @@ -725,6 +725,9 @@ msgstr "" msgid "%a, %b %d" msgstr "" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "" diff --git a/po/ro_RO.po b/po/ro_RO.po index 613f83b..3344a02 100644 --- a/po/ro_RO.po +++ b/po/ro_RO.po @@ -726,6 +726,9 @@ msgstr "" msgid "%a, %b %d" msgstr "" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "" diff --git a/po/ru_RU.po b/po/ru_RU.po index 38bf7e6..be5b7f5 100644 --- a/po/ru_RU.po +++ b/po/ru_RU.po @@ -725,6 +725,9 @@ msgstr "" msgid "%a, %b %d" msgstr "" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "" diff --git a/po/sl_SI.po b/po/sl_SI.po index b098bf9..201075d 100644 --- a/po/sl_SI.po +++ b/po/sl_SI.po @@ -726,6 +726,9 @@ msgstr "" msgid "%a, %b %d" msgstr "" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "" diff --git a/po/sv_SE.po b/po/sv_SE.po index 261fe07..5e4e142 100644 --- a/po/sv_SE.po +++ b/po/sv_SE.po @@ -726,6 +726,9 @@ msgstr "" msgid "%a, %b %d" msgstr "" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "" diff --git a/po/tr_TR.po b/po/tr_TR.po index a9fd8eb..7f55001 100644 --- a/po/tr_TR.po +++ b/po/tr_TR.po @@ -725,6 +725,9 @@ msgstr "" msgid "%a, %b %d" msgstr "" +msgid "Favorites" +msgstr "" + msgid "View the schedule of this channel" msgstr "" @@ -4,6 +4,7 @@ #include <sstream> #include <fstream> #include <stack> +#include <algorithm> #include "stdext.h" #include "tools.h" @@ -2,6 +2,7 @@ #define VDR_LIVE_SETUP_H #include <list> +#include <limits> #include <numeric> #include <string> #include "live.h" |