Improved favorites menu with whats on now / next and up to four user defined times

This commit is contained in:
louis 2014-01-19 13:52:05 +01:00
parent 475964a781
commit fcb664da93
17 changed files with 670 additions and 45 deletions

View File

@ -109,3 +109,5 @@ Version 1.1.0
- Display baseline for current time - Display baseline for current time
- Added possibility to create timer from favorites results - Added possibility to create timer from favorites results
- left / right scroll page up / down in recmenu result lists - left / right scroll page up / down in recmenu result lists
- Improved favorites menu with whats on now / next and up to four user
defined times

View File

@ -45,6 +45,23 @@ cTvguideConfig::cTvguideConfig() {
epgImageWidthLarge = 525; epgImageWidthLarge = 525;
epgImageHeightLarge = 400; epgImageHeightLarge = 400;
recMenuAskFolder = 0; recMenuAskFolder = 0;
favWhatsOnNow = 1;
favWhatsOnNext = 1;
favUseTime1 = 0;
favUseTime2 = 0;
favUseTime3 = 0;
favUseTime4 = 0;
favTime1 = 0;
favTime2 = 0;
favTime3 = 0;
favTime4 = 0;
descUser1 = "";
descUser2 = "";
descUser3 = "";
descUser4 = "";
favLimitChannels = 0;
favStartChannel = 0;
favStopChannel = 0;
fontIndex = 0; fontIndex = 0;
fontNameDefault = "VDRSymbols Sans:Book"; fontNameDefault = "VDRSymbols Sans:Book";
FontButtonDelta = 0; FontButtonDelta = 0;
@ -252,6 +269,23 @@ bool cTvguideConfig::SetupParse(const char *Name, const char *Value) {
else if (strcmp(Name, "channelHeaderHeightPercent") == 0) channelHeaderHeightPercent = atoi(Value); else if (strcmp(Name, "channelHeaderHeightPercent") == 0) channelHeaderHeightPercent = atoi(Value);
else if (strcmp(Name, "footerHeightPercent") == 0) footerHeightPercent = atoi(Value); else if (strcmp(Name, "footerHeightPercent") == 0) footerHeightPercent = atoi(Value);
else if (strcmp(Name, "recMenuAskFolder") == 0) recMenuAskFolder = atoi(Value); else if (strcmp(Name, "recMenuAskFolder") == 0) recMenuAskFolder = atoi(Value);
else if (strcmp(Name, "favWhatsOnNow") == 0) favWhatsOnNow = atoi(Value);
else if (strcmp(Name, "favWhatsOnNext") == 0) favWhatsOnNext = atoi(Value);
else if (strcmp(Name, "favUseTime1") == 0) favUseTime1 = atoi(Value);
else if (strcmp(Name, "favUseTime2") == 0) favUseTime2 = atoi(Value);
else if (strcmp(Name, "favUseTime3") == 0) favUseTime3 = atoi(Value);
else if (strcmp(Name, "favUseTime4") == 0) favUseTime4 = atoi(Value);
else if (strcmp(Name, "favTime1") == 0) favTime1 = atoi(Value);
else if (strcmp(Name, "favTime2") == 0) favTime2 = atoi(Value);
else if (strcmp(Name, "favTime3") == 0) favTime3 = atoi(Value);
else if (strcmp(Name, "favTime4") == 0) favTime4 = atoi(Value);
else if (strcmp(Name, "descUser1") == 0) descUser1 = Value;
else if (strcmp(Name, "descUser2") == 0) descUser2 = Value;
else if (strcmp(Name, "descUser3") == 0) descUser3 = Value;
else if (strcmp(Name, "descUser4") == 0) descUser4 = Value;
else if (strcmp(Name, "favLimitChannels") == 0) favLimitChannels = atoi(Value);
else if (strcmp(Name, "favStartChannel") == 0) favStartChannel = atoi(Value);
else if (strcmp(Name, "favStopChannel") == 0) favStopChannel = atoi(Value);
else if (strcmp(Name, "fontIndex") == 0) fontIndex = atoi(Value); else if (strcmp(Name, "fontIndex") == 0) fontIndex = atoi(Value);
else if (strcmp(Name, "FontButtonDelta") == 0) FontButtonDelta = atoi(Value); else if (strcmp(Name, "FontButtonDelta") == 0) FontButtonDelta = atoi(Value);
else if (strcmp(Name, "FontDetailViewDelta") == 0) FontDetailViewDelta = atoi(Value); else if (strcmp(Name, "FontDetailViewDelta") == 0) FontDetailViewDelta = atoi(Value);

View File

@ -90,6 +90,23 @@ class cTvguideConfig {
cString epgImagePath; cString epgImagePath;
cString iconPath; cString iconPath;
int recMenuAskFolder; int recMenuAskFolder;
int favWhatsOnNow;
int favWhatsOnNext;
int favUseTime1;
int favUseTime2;
int favUseTime3;
int favUseTime4;
int favTime1;
int favTime2;
int favTime3;
int favTime4;
std::string descUser1;
std::string descUser2;
std::string descUser3;
std::string descUser4;
int favLimitChannels;
int favStartChannel;
int favStopChannel;
int fontIndex; int fontIndex;
const char *fontNameDefault; const char *fontNameDefault;
int FontButtonDelta; int FontButtonDelta;

View File

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-tvguide 0.0.1\n" "Project-Id-Version: vdr-tvguide 0.0.1\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2014-01-15 18:19+0100\n" "POT-Creation-Date: 2014-01-19 12:51+0100\n"
"PO-Revision-Date: 2013-09-21 17:49+0200\n" "PO-Revision-Date: 2013-09-21 17:49+0200\n"
"Last-Translator: My friend <Sampep> Thanks David <Gabychan> <gbonich@gmail.com>\n" "Last-Translator: My friend <Sampep> Thanks David <Gabychan> <gbonich@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@ -96,6 +96,12 @@ msgstr ""
msgid "recordings done" msgid "recordings done"
msgstr "" msgstr ""
msgid "What's on now"
msgstr ""
msgid "What's on next"
msgstr ""
msgid "Instant Record" msgid "Instant Record"
msgstr "Enregistra a l'instant" msgstr "Enregistra a l'instant"
@ -405,6 +411,12 @@ msgstr "cerca resultats per temporitzador"
msgid "search result for Search Timer" msgid "search result for Search Timer"
msgstr "cerca resultat per temporitzador" msgstr "cerca resultat per temporitzador"
msgid "search results for Favorite"
msgstr ""
msgid "search result for Favorite"
msgstr ""
msgid "Nothing found for Search String" msgid "Nothing found for Search String"
msgstr "No s'ha trobat la cadena de text" msgstr "No s'ha trobat la cadena de text"
@ -510,6 +522,9 @@ msgstr "Presentació de pantalla"
msgid "Fonts and Fontsizes" msgid "Fonts and Fontsizes"
msgstr "Tipus i mida de lletra" msgstr "Tipus i mida de lletra"
msgid "Recording Menus and Favorites"
msgstr ""
msgid "Image Loading and Caching" msgid "Image Loading and Caching"
msgstr "" msgstr ""
@ -585,12 +600,6 @@ msgstr "Salt (Botons 4 / 6) en hores"
msgid "Time Format (12h/24h)" msgid "Time Format (12h/24h)"
msgstr "Format de temps (12h/24h)" msgstr "Format de temps (12h/24h)"
msgid "Use folders for instant records"
msgstr "Utilitza carpetes per gravacions a l'instant"
msgid "Use Remotetimers"
msgstr "Utilitza temporitzadors remots"
msgid "Display Reruns in detailed EPG View" msgid "Display Reruns in detailed EPG View"
msgstr "Mostre reemissions a l'EPG detallat" msgstr "Mostre reemissions a l'EPG detallat"
@ -744,6 +753,39 @@ msgstr "Mida de la Font petita - Menú Cerca & Enregistra"
msgid "Search & Recording Menu Header Font Size" msgid "Search & Recording Menu Header Font Size"
msgstr "" msgstr ""
msgid "Use folders for instant records"
msgstr "Utilitza carpetes per gravacions a l'instant"
msgid "Use Remotetimers"
msgstr "Utilitza temporitzadors remots"
msgid "Use \"What's on now\" in favorites"
msgstr ""
msgid "Use \"What's on next\" in favorites"
msgstr ""
msgid "Use user defined time 1 in favorites"
msgstr ""
msgid "Description"
msgstr ""
msgid "Time"
msgstr ""
msgid "Use user defined time 2 in favorites"
msgstr ""
msgid "Use user defined time 3 in favorites"
msgstr ""
msgid "Use user defined time 4 in favorites"
msgstr ""
msgid "Limit channels in favorites"
msgstr ""
msgid "Create Log Messages for image loading" msgid "Create Log Messages for image loading"
msgstr "" msgstr ""

View File

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-tvguide 0.0.1\n" "Project-Id-Version: vdr-tvguide 0.0.1\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2014-01-15 18:19+0100\n" "POT-Creation-Date: 2014-01-19 12:51+0100\n"
"PO-Revision-Date: 2012-08-25 17:49+0200\n" "PO-Revision-Date: 2012-08-25 17:49+0200\n"
"Last-Translator: Horst\n" "Last-Translator: Horst\n"
"Language-Team: \n" "Language-Team: \n"
@ -93,6 +93,12 @@ msgstr "aktive Timer"
msgid "recordings done" msgid "recordings done"
msgstr "erledigte Aufnahmen" msgstr "erledigte Aufnahmen"
msgid "What's on now"
msgstr "Was läuft jetzt?"
msgid "What's on next"
msgstr "Was läuft als nächstes?"
msgid "Instant Record" msgid "Instant Record"
msgstr "Aufnahme" msgstr "Aufnahme"
@ -402,6 +408,12 @@ msgstr "Treffer für Suchtimer"
msgid "search result for Search Timer" msgid "search result for Search Timer"
msgstr "Treffer für Suchtimer" msgstr "Treffer für Suchtimer"
msgid "search results for Favorite"
msgstr "Suchergebnisse für Favorit"
msgid "search result for Favorite"
msgstr "Suchergebnis für Favorit"
msgid "Nothing found for Search String" msgid "Nothing found for Search String"
msgstr "Keine Treffer für Suchbegriff" msgstr "Keine Treffer für Suchbegriff"
@ -507,6 +519,9 @@ msgstr "Anzeigeoptionen"
msgid "Fonts and Fontsizes" msgid "Fonts and Fontsizes"
msgstr "Schriften und Schriftgrößen" msgstr "Schriften und Schriftgrößen"
msgid "Recording Menus and Favorites"
msgstr "Aufzeichnungsmenü und Favoriten"
msgid "Image Loading and Caching" msgid "Image Loading and Caching"
msgstr "Image Loading und Caching" msgstr "Image Loading und Caching"
@ -582,12 +597,6 @@ msgstr "Sehr großer Sprung (Tasten 4 / 6) in Stunden"
msgid "Time Format (12h/24h)" msgid "Time Format (12h/24h)"
msgstr "Zeitformat (12h/24h)" msgstr "Zeitformat (12h/24h)"
msgid "Use folders for instant records"
msgstr "Bei Sofortaufnahmen Verzeichnisse benutzen"
msgid "Use Remotetimers"
msgstr "RemoteTimers benutzen"
msgid "Display Reruns in detailed EPG View" msgid "Display Reruns in detailed EPG View"
msgstr "Wiederholungen in der detailierten EPG Ansicht anzeigen" msgstr "Wiederholungen in der detailierten EPG Ansicht anzeigen"
@ -741,6 +750,39 @@ msgstr "Suchen & Aufnehmen Menu kleine Schriftgröße"
msgid "Search & Recording Menu Header Font Size" msgid "Search & Recording Menu Header Font Size"
msgstr "Suchen & Aufnehmen Menu Header Schriftgröße" msgstr "Suchen & Aufnehmen Menu Header Schriftgröße"
msgid "Use folders for instant records"
msgstr "Bei Sofortaufnahmen Verzeichnisse benutzen"
msgid "Use Remotetimers"
msgstr "RemoteTimers benutzen"
msgid "Use \"What's on now\" in favorites"
msgstr "\"Was läuft jetzt\" in Favoriten benutzen"
msgid "Use \"What's on next\" in favorites"
msgstr "\"Was läuft als nächstes\" in Favoriten benutzen"
msgid "Use user defined time 1 in favorites"
msgstr "Benutzerdef. Zeit 1 in Favoriten benutzen"
msgid "Description"
msgstr "Beschreibung"
msgid "Time"
msgstr "Zeit"
msgid "Use user defined time 2 in favorites"
msgstr "Benutzerdef. Zeit 2 in Favoriten benutzen"
msgid "Use user defined time 3 in favorites"
msgstr "Benutzerdef. Zeit 3 in Favoriten benutzen"
msgid "Use user defined time 4 in favorites"
msgstr "Benutzerdef. Zeit 4 in Favoriten benutzen"
msgid "Limit channels in favorites"
msgstr "Kanäle in Favoriten beschränken"
msgid "Create Log Messages for image loading" msgid "Create Log Messages for image loading"
msgstr "Log Nachrichten für das Laden der Bilder erzeugen" msgstr "Log Nachrichten für das Laden der Bilder erzeugen"

View File

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-tvguide 1.0.0\n" "Project-Id-Version: vdr-tvguide 1.0.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2014-01-15 18:19+0100\n" "POT-Creation-Date: 2014-01-19 12:51+0100\n"
"PO-Revision-Date: 2013-09-25 17:49+0400\n" "PO-Revision-Date: 2013-09-25 17:49+0400\n"
"Last-Translator: AmiD, ilya\n" "Last-Translator: AmiD, ilya\n"
"Language-Team: Russia-Cherepovets(wm.amid@gmail.com)\n" "Language-Team: Russia-Cherepovets(wm.amid@gmail.com)\n"
@ -93,6 +93,12 @@ msgstr ""
msgid "recordings done" msgid "recordings done"
msgstr "" msgstr ""
msgid "What's on now"
msgstr ""
msgid "What's on next"
msgstr ""
msgid "Instant Record" msgid "Instant Record"
msgstr "Записать" msgstr "Записать"
@ -402,6 +408,12 @@ msgstr "Совпадений найдено"
msgid "search result for Search Timer" msgid "search result for Search Timer"
msgstr "Совпадение найдено" msgstr "Совпадение найдено"
msgid "search results for Favorite"
msgstr ""
msgid "search result for Favorite"
msgstr ""
msgid "Nothing found for Search String" msgid "Nothing found for Search String"
msgstr "Совпадений НЕ найдено" msgstr "Совпадений НЕ найдено"
@ -507,6 +519,9 @@ msgstr "Графические настройки"
msgid "Fonts and Fontsizes" msgid "Fonts and Fontsizes"
msgstr "Шрифты и размер шрифтов" msgstr "Шрифты и размер шрифтов"
msgid "Recording Menus and Favorites"
msgstr ""
msgid "Image Loading and Caching" msgid "Image Loading and Caching"
msgstr "" msgstr ""
@ -582,12 +597,6 @@ msgstr "Большой прыжок (Кнопки 4 / 6) в часах"
msgid "Time Format (12h/24h)" msgid "Time Format (12h/24h)"
msgstr "Формат времени (12h/24h)" msgstr "Формат времени (12h/24h)"
msgid "Use folders for instant records"
msgstr "Использовать директории для быстрой записи"
msgid "Use Remotetimers"
msgstr "RemoteTimers benutzen"
msgid "Display Reruns in detailed EPG View" msgid "Display Reruns in detailed EPG View"
msgstr "Показывать повторы в подробном EPG" msgstr "Показывать повторы в подробном EPG"
@ -741,6 +750,39 @@ msgstr "Размер маленького шрифта меню Поиск & З
msgid "Search & Recording Menu Header Font Size" msgid "Search & Recording Menu Header Font Size"
msgstr "" msgstr ""
msgid "Use folders for instant records"
msgstr "Использовать директории для быстрой записи"
msgid "Use Remotetimers"
msgstr "RemoteTimers benutzen"
msgid "Use \"What's on now\" in favorites"
msgstr ""
msgid "Use \"What's on next\" in favorites"
msgstr ""
msgid "Use user defined time 1 in favorites"
msgstr ""
msgid "Description"
msgstr ""
msgid "Time"
msgstr ""
msgid "Use user defined time 2 in favorites"
msgstr ""
msgid "Use user defined time 3 in favorites"
msgstr ""
msgid "Use user defined time 4 in favorites"
msgstr ""
msgid "Limit channels in favorites"
msgstr ""
msgid "Create Log Messages for image loading" msgid "Create Log Messages for image loading"
msgstr "" msgstr ""

View File

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-tvguide 1.1.0\n" "Project-Id-Version: vdr-tvguide 1.1.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2014-01-15 18:19+0100\n" "POT-Creation-Date: 2014-01-19 12:51+0100\n"
"PO-Revision-Date: 2013-09-15 00:12+0100\n" "PO-Revision-Date: 2013-09-15 00:12+0100\n"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n" "Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@ -93,6 +93,12 @@ msgstr ""
msgid "recordings done" msgid "recordings done"
msgstr "" msgstr ""
msgid "What's on now"
msgstr ""
msgid "What's on next"
msgstr ""
msgid "Instant Record" msgid "Instant Record"
msgstr "Okam¾ite nahra»" msgstr "Okam¾ite nahra»"
@ -402,6 +408,12 @@ msgstr "n
msgid "search result for Search Timer" msgid "search result for Search Timer"
msgstr "nájdený výsledok vyhµadávania plánu" msgstr "nájdený výsledok vyhµadávania plánu"
msgid "search results for Favorite"
msgstr ""
msgid "search result for Favorite"
msgstr ""
msgid "Nothing found for Search String" msgid "Nothing found for Search String"
msgstr "Hµadaný výraz sa nena¹iel" msgstr "Hµadaný výraz sa nena¹iel"
@ -507,6 +519,9 @@ msgstr "Mo
msgid "Fonts and Fontsizes" msgid "Fonts and Fontsizes"
msgstr "Písma a veµkosti písma" msgstr "Písma a veµkosti písma"
msgid "Recording Menus and Favorites"
msgstr ""
msgid "Image Loading and Caching" msgid "Image Loading and Caching"
msgstr "" msgstr ""
@ -582,12 +597,6 @@ msgstr "Ve
msgid "Time Format (12h/24h)" msgid "Time Format (12h/24h)"
msgstr "Formát èasu (12h/24h)" msgstr "Formát èasu (12h/24h)"
msgid "Use folders for instant records"
msgstr "Pou¾i» adresáre pre okam¾ité nahrávky"
msgid "Use Remotetimers"
msgstr "Pou¾i» vzdialený plánovaè"
msgid "Display Reruns in detailed EPG View" msgid "Display Reruns in detailed EPG View"
msgstr "Reprízy v podrobnom zobrazení relácie EPG" msgstr "Reprízy v podrobnom zobrazení relácie EPG"
@ -741,6 +750,39 @@ msgstr "H
msgid "Search & Recording Menu Header Font Size" msgid "Search & Recording Menu Header Font Size"
msgstr "" msgstr ""
msgid "Use folders for instant records"
msgstr "Pou¾i» adresáre pre okam¾ité nahrávky"
msgid "Use Remotetimers"
msgstr "Pou¾i» vzdialený plánovaè"
msgid "Use \"What's on now\" in favorites"
msgstr ""
msgid "Use \"What's on next\" in favorites"
msgstr ""
msgid "Use user defined time 1 in favorites"
msgstr ""
msgid "Description"
msgstr ""
msgid "Time"
msgstr ""
msgid "Use user defined time 2 in favorites"
msgstr ""
msgid "Use user defined time 3 in favorites"
msgstr ""
msgid "Use user defined time 4 in favorites"
msgstr ""
msgid "Limit channels in favorites"
msgstr ""
msgid "Create Log Messages for image loading" msgid "Create Log Messages for image loading"
msgstr "" msgstr ""

View File

@ -594,3 +594,99 @@ void cRecManager::GetFavorites(std::vector<cTVGuideSearchTimer> *favorites) {
} }
} }
const cEvent **cRecManager::WhatsOnNow(bool nowOrNext, int &numResults) {
std::vector<const cEvent*> tmpResults;
cSchedulesLock schedulesLock;
const cSchedules *schedules = cSchedules::Schedules(schedulesLock);
const cChannel *startChannel = NULL, *stopChannel = NULL;
if (tvguideConfig.favLimitChannels) {
startChannel = Channels.GetByNumber(tvguideConfig.favStartChannel);
stopChannel = Channels.GetByNumber(tvguideConfig.favStopChannel);
}
if (!startChannel)
startChannel = Channels.First();
for (const cChannel *channel = startChannel; channel; channel = Channels.Next(channel)) {
if (channel->GroupSep()) continue;
const cSchedule *Schedule = schedules->GetSchedule(channel);
if (!Schedule) continue;
const cEvent *event = NULL;
if (nowOrNext)
event = Schedule->GetPresentEvent();
else
event = Schedule->GetFollowingEvent();
if (event) {
tmpResults.push_back(event);
}
if (stopChannel && (stopChannel->Number() <= channel->Number()))
break;
}
numResults = tmpResults.size();
const cEvent **results = new const cEvent *[numResults];
for (int i=0; i<numResults; i++) {
results[i] = tmpResults[i];
}
return results;
}
const cEvent **cRecManager::UserDefinedTime(int userTime, int &numResults) {
std::vector<const cEvent*> tmpResults;
int favTime = 0;
if (userTime == 1) {
favTime = tvguideConfig.favTime1;
} else if (userTime == 2) {
favTime = tvguideConfig.favTime2;
} else if (userTime == 3) {
favTime = tvguideConfig.favTime3;
} else if (userTime == 4) {
favTime = tvguideConfig.favTime4;
}
time_t now = time(0);
tm *midn = localtime(&now);
midn->tm_sec = 0;
midn->tm_min = 0;
midn->tm_hour = 0;
time_t midnight = mktime(midn);
int hours = favTime/100;
int mins = favTime - hours * 100;
time_t searchTime = midnight + hours*60*60 + mins*60;
if (searchTime < now)
searchTime += 24*60*60;
cSchedulesLock schedulesLock;
const cSchedules *schedules = cSchedules::Schedules(schedulesLock);
const cChannel *startChannel = NULL, *stopChannel = NULL;
if (tvguideConfig.favLimitChannels) {
startChannel = Channels.GetByNumber(tvguideConfig.favStartChannel);
stopChannel = Channels.GetByNumber(tvguideConfig.favStopChannel);
}
if (!startChannel)
startChannel = Channels.First();
for (const cChannel *channel = startChannel; channel; channel = Channels.Next(channel)) {
if (channel->GroupSep()) continue;
const cSchedule *Schedule = schedules->GetSchedule(channel);
if (!Schedule) continue;
const cEvent *event = Schedule->GetEventAround(searchTime);
if (!event) continue;
//if event is more or less over (only 15mns left), take next
if ((event->EndTime() - searchTime) < 15*60) {
event = Schedule->Events()->Next(event);
}
if (event)
tmpResults.push_back(event);
if (stopChannel && (stopChannel->Number() <= channel->Number()))
break;
}
numResults = tmpResults.size();
const cEvent **results = new const cEvent *[numResults];
for (int i=0; i<numResults; i++) {
results[i] = tmpResults[i];
}
return results;
}

View File

@ -55,6 +55,8 @@ public:
cRecording **SearchForRecordings(std::string searchString, int &numResults); cRecording **SearchForRecordings(std::string searchString, int &numResults);
const cEvent **LoadReruns(const cEvent *event, int &numResults); const cEvent **LoadReruns(const cEvent *event, int &numResults);
void GetFavorites(std::vector<cTVGuideSearchTimer> *favorites); void GetFavorites(std::vector<cTVGuideSearchTimer> *favorites);
const cEvent **WhatsOnNow(bool nowOrNext, int &numResults);
const cEvent **UserDefinedTime(int userTime, int &numResults);
virtual ~cRecManager (void); virtual ~cRecManager (void);
}; };

View File

@ -2731,4 +2731,78 @@ eRecMenuState cRecMenuItemFavorite::ProcessKey(eKeys Key) {
break; break;
} }
return rmsNotConsumed; return rmsNotConsumed;
}
// --- cRecMenuItemFavoriteStatic -------------------------------------------------------
cRecMenuItemFavoriteStatic::cRecMenuItemFavoriteStatic(std::string text, eRecMenuState action, bool active) {
this->text = text;
this->action = action;
pixmapText = NULL;
pixmapIcons = NULL;
selectable = true;
this->active = active;
height = 2 * font->Height();;
}
cRecMenuItemFavoriteStatic::~cRecMenuItemFavoriteStatic(void) {
if (pixmapText)
osdManager.releasePixmap(pixmapText);
if (pixmapIcons)
osdManager.releasePixmap(pixmapIcons);
}
void cRecMenuItemFavoriteStatic::SetPixmaps(void) {
if (!pixmap) {
pixmap = osdManager.requestPixmap(4, cRect(x, y, width, height));
pixmapText = osdManager.requestPixmap(5, cRect(x, y, width, height));
pixmapIcons = osdManager.requestPixmap(6, cRect(x, y, width, height));
} else {
pixmap->SetViewPort(cRect(x, y, width, height));
pixmapText->SetViewPort(cRect(x, y, width, height));
pixmapIcons->SetViewPort(cRect(x, y, width, height));
}
}
void cRecMenuItemFavoriteStatic::Draw(void) {
int textX = DrawIcons();
pixmapText->Fill(clrTransparent);
textX += 20;
pixmapText->DrawText(cPoint(textX, (height - fontLarge->Height())/2), text.c_str(), colorText, clrTransparent, fontLarge);
}
void cRecMenuItemFavoriteStatic::Hide(void) {
if (pixmap) pixmap->SetLayer(-1);
if (pixmapText) pixmapText->SetLayer(-1);
if (pixmapIcons) pixmapIcons->SetLayer(-1);
}
void cRecMenuItemFavoriteStatic::Show(void) {
if (pixmap) pixmap->SetLayer(4);
if (pixmapText) pixmapText->SetLayer(5);
if (pixmapIcons) pixmapIcons->SetLayer(6);
}
int cRecMenuItemFavoriteStatic::DrawIcons(void) {
pixmapIcons->Fill(clrTransparent);
int iconsX = 10;
int iconSize = height / 2;
int iconY = (height - iconSize) / 2;
std::string iconSearch;
iconSearch = active ? "search_active" : "search_inactive" ;
cImage *imgSearch = imgCache.GetIcon(iconSearch, iconSize, iconSize);
if (imgSearch) {
pixmapIcons->DrawImage(cPoint(iconsX, iconY), *imgSearch);
iconsX += iconSize + 10;
}
return iconsX;
}
eRecMenuState cRecMenuItemFavoriteStatic::ProcessKey(eKeys Key) {
switch (Key & ~k_Repeat) {
case kOk:
return action;
default:
break;
}
return rmsNotConsumed;
} }

View File

@ -73,6 +73,12 @@ enum eRecMenuState {
//FAVORITES //FAVORITES
rmsFavoritesRecord, rmsFavoritesRecord,
rmsFavoritesRecordConfirm, rmsFavoritesRecordConfirm,
rmsFavoritesNow,
rmsFavoritesNext,
rmsFavoritesUser1,
rmsFavoritesUser2,
rmsFavoritesUser3,
rmsFavoritesUser4,
}; };
enum eDependend { enum eDependend {
@ -629,4 +635,21 @@ public:
eRecMenuState ProcessKey(eKeys Key); eRecMenuState ProcessKey(eKeys Key);
}; };
// --- cRecMenuItemFavoriteStatic -------------------------------------------------------
class cRecMenuItemFavoriteStatic : public cRecMenuItem {
private:
std::string text;
cPixmap *pixmapText;
cPixmap *pixmapIcons;
int DrawIcons(void);
public:
cRecMenuItemFavoriteStatic(std::string text, eRecMenuState action, bool active);
virtual ~cRecMenuItemFavoriteStatic(void);
void SetPixmaps(void);
void Hide(void);
void Show(void);
void Draw(void);
eRecMenuState ProcessKey(eKeys Key);
};
#endif //__TVGUIDE_RECMENUITEM_H #endif //__TVGUIDE_RECMENUITEM_H

View File

@ -720,6 +720,41 @@ eOSState cRecMenuManager::StateMachine(eRecMenuState nextState) {
activeMenuBuffer2 = NULL; activeMenuBuffer2 = NULL;
activeMenu->Show(); activeMenu->Show();
break; break;
case rmsFavoritesNow:
case rmsFavoritesNext: {
int numResults = 0;
bool nowOrNext;
std::string header;
if (nextState == rmsFavoritesNow) {
nowOrNext = true;
header = tr("What's on now");
} else {
nowOrNext = false;
header = tr("What's on next");
}
const cEvent **result = recManager->WhatsOnNow(nowOrNext, numResults);
DisplayFavoriteResults(header, result, numResults);
break; }
case rmsFavoritesUser1: {
int numResults = 0;
const cEvent **result = recManager->UserDefinedTime(1, numResults);
DisplayFavoriteResults(tvguideConfig.descUser1, result, numResults);
break; }
case rmsFavoritesUser2: {
int numResults = 0;
const cEvent **result = recManager->UserDefinedTime(2, numResults);
DisplayFavoriteResults(tvguideConfig.descUser2, result, numResults);
break; }
case rmsFavoritesUser3: {
int numResults = 0;
const cEvent **result = recManager->UserDefinedTime(3, numResults);
DisplayFavoriteResults(tvguideConfig.descUser3, result, numResults);
break; }
case rmsFavoritesUser4: {
int numResults = 0;
const cEvent **result = recManager->UserDefinedTime(4, numResults);
DisplayFavoriteResults(tvguideConfig.descUser4, result, numResults);
break; }
/********************************************************************************************** /**********************************************************************************************
* COMMON * COMMON
@ -742,6 +777,20 @@ eOSState cRecMenuManager::StateMachine(eRecMenuState nextState) {
return state; return state;
} }
void cRecMenuManager::DisplayFavoriteResults(std::string header, const cEvent **result, int numResults) {
if (numResults) {
activeMenuBuffer = activeMenu;
activeMenuBuffer->Hide();
activeMenu = new cRecMenuSearchTimerResults(header, result, numResults, "", rmsFavoritesRecord);
activeMenu->Display();
} else {
activeMenuBuffer = activeMenu;
activeMenuBuffer->Hide();
activeMenu = new cRecMenuSearchTimerNothingFound(header);
activeMenu->Display();
}
}
void cRecMenuManager::DisplaySearchTimerList(void) { void cRecMenuManager::DisplaySearchTimerList(void) {
delete activeMenu; delete activeMenu;
std::vector<cTVGuideSearchTimer> searchTimers; std::vector<cTVGuideSearchTimer> searchTimers;

View File

@ -26,6 +26,7 @@ private:
bool DisplayTimerConflict(cTimer *timer); bool DisplayTimerConflict(cTimer *timer);
bool DisplayTimerConflict(int timerID); bool DisplayTimerConflict(int timerID);
void DisplayDetailedView(const cEvent *ev); void DisplayDetailedView(const cEvent *ev);
void DisplayFavoriteResults(std::string header, const cEvent **result, int numResults);
public: public:
cRecMenuManager(void); cRecMenuManager(void);
virtual ~cRecMenuManager(void); virtual ~cRecMenuManager(void);

View File

@ -961,12 +961,17 @@ cRecMenuSearchTimerTemplatesCreate::cRecMenuSearchTimerTemplatesCreate(TVGuideEP
cRecMenuSearchTimerResults::cRecMenuSearchTimerResults(std::string searchString, const cEvent **searchResults, int numResults, std::string templateName, eRecMenuState action2) { cRecMenuSearchTimerResults::cRecMenuSearchTimerResults(std::string searchString, const cEvent **searchResults, int numResults, std::string templateName, eRecMenuState action2) {
this->searchResults = searchResults; this->searchResults = searchResults;
this->action2 = action2; this->action2 = action2;
SetWidthPercent(70);
cString message1 = tr("search results for Search Timer");
cString message2 = tr("search result for Search Timer");
this->numResults = numResults; this->numResults = numResults;
cString message3 = tr("Using Template"); SetWidthPercent(70);
cString infoText; cString message1 = "", message2 = "", message3 = "", infoText = "";
if (action2 == rmsDisabled) {
message1 = tr("search results for Search Timer");
message2 = tr("search result for Search Timer");
message3 = tr("Using Template");
} else if (action2 == rmsFavoritesRecord) {
message1 = tr("search results for Favorite");
message2 = tr("search result for Favorite");
}
if (templateName.size() > 0) { if (templateName.size() > 0) {
infoText = cString::sprintf("%d %s:\n\"%s\"\n%s \"%s\"", numResults, (numResults>1)?(*message1):(*message2), searchString.c_str(), *message3, templateName.c_str()); infoText = cString::sprintf("%d %s:\n\"%s\"\n%s \"%s\"", numResults, (numResults>1)?(*message1):(*message2), searchString.c_str(), *message3, templateName.c_str());
} else { } else {
@ -1452,8 +1457,10 @@ eRecMenuState cRecMenuTimeline::ProcessKey(eKeys Key) {
// --- cRecMenuFavorites --------------------------------------------------------- // --- cRecMenuFavorites ---------------------------------------------------------
cRecMenuFavorites::cRecMenuFavorites(std::vector<cTVGuideSearchTimer> favorites) { cRecMenuFavorites::cRecMenuFavorites(std::vector<cTVGuideSearchTimer> favorites) {
deleteMenuItems = false;
this->favorites = favorites; this->favorites = favorites;
numFavorites = favorites.size(); CreateFavoritesMenuItems();
numFavorites = myMenuItems.size();
SetWidthPercent(70); SetWidthPercent(70);
cString header; cString header;
if (numFavorites > 0) { if (numFavorites > 0) {
@ -1465,23 +1472,68 @@ cRecMenuFavorites::cRecMenuFavorites(std::vector<cTVGuideSearchTimer> favorites)
headerItem->CalculateHeight(width - 2 * border); headerItem->CalculateHeight(width - 2 * border);
SetHeader(headerItem); SetHeader(headerItem);
for (int i = 0; i < numFavorites; i++) {
AddMenuItemInitial(new cRecMenuItemFavorite(favorites[i], rmsSearchTimerTest, (i==0)?true:false));
}
cRecMenuItem *button = new cRecMenuItemButton(tr("Close"), rmsClose, (numFavorites==0)?true:false); cRecMenuItem *button = new cRecMenuItemButton(tr("Close"), rmsClose, (numFavorites==0)?true:false);
SetFooter(button); SetFooter(button);
for (int i=0; i<numFavorites; i++) {
if (i==0)
myMenuItems[i]->setActive();
if (!AddMenuItemInitial(myMenuItems[i]))
break;
}
CalculateHeight(); CalculateHeight();
CreatePixmap(); CreatePixmap();
Arrange(); Arrange();
} }
cRecMenuFavorites::~cRecMenuFavorites(void) { cRecMenuFavorites::~cRecMenuFavorites(void) {
for (std::vector<cRecMenuItem*>::iterator it = myMenuItems.begin(); it != myMenuItems.end(); it++) {
delete *it;
}
myMenuItems.clear();
}
void cRecMenuFavorites::CreateFavoritesMenuItems(void) {
if (tvguideConfig.favWhatsOnNow) {
myMenuItems.push_back(new cRecMenuItemFavoriteStatic(tr("What's on now"), rmsFavoritesNow, false));
}
if (tvguideConfig.favWhatsOnNext) {
myMenuItems.push_back(new cRecMenuItemFavoriteStatic(tr("What's on next"), rmsFavoritesNext, false));
}
if (tvguideConfig.favUseTime1) {
std::string desc = *cString::sprintf("%s (%s)", tvguideConfig.descUser1.c_str(), NiceTime(tvguideConfig.favTime1).c_str());
myMenuItems.push_back(new cRecMenuItemFavoriteStatic(desc, rmsFavoritesUser1, false));
}
if (tvguideConfig.favUseTime2) {
std::string desc = *cString::sprintf("%s (%s)", tvguideConfig.descUser2.c_str(), NiceTime(tvguideConfig.favTime2).c_str());
myMenuItems.push_back(new cRecMenuItemFavoriteStatic(desc, rmsFavoritesUser2, false));
}
if (tvguideConfig.favUseTime3) {
std::string desc = *cString::sprintf("%s (%s)", tvguideConfig.descUser3.c_str(), NiceTime(tvguideConfig.favTime3).c_str());
myMenuItems.push_back(new cRecMenuItemFavoriteStatic(desc, rmsFavoritesUser3, false));
}
if (tvguideConfig.favUseTime4) {
std::string desc = *cString::sprintf("%s (%s)", tvguideConfig.descUser4.c_str(), NiceTime(tvguideConfig.favTime4).c_str());
myMenuItems.push_back(new cRecMenuItemFavoriteStatic(desc, rmsFavoritesUser4, false));
}
int numAdditionalFavs = favorites.size();
for (int i = 0; i < numAdditionalFavs; i++) {
myMenuItems.push_back(new cRecMenuItemFavorite(favorites[i], rmsSearchTimerTest, false));
}
}
std::string cRecMenuFavorites::NiceTime(int favTime) {
int hours = favTime/100;
int mins = favTime - hours * 100;
return *cString::sprintf("%02d:%02d", hours, mins);
} }
cRecMenuItem *cRecMenuFavorites::GetMenuItem(int number) { cRecMenuItem *cRecMenuFavorites::GetMenuItem(int number) {
if (number > -1 && number < numFavorites) if (number > -1 && number < numFavorites)
return new cRecMenuItemFavorite(favorites[number], rmsSearchTimerTest, false); return myMenuItems[number];
return NULL; return NULL;
} }

View File

@ -468,7 +468,10 @@ public:
class cRecMenuFavorites: public cRecMenu { class cRecMenuFavorites: public cRecMenu {
private: private:
std::vector<cTVGuideSearchTimer> favorites; std::vector<cTVGuideSearchTimer> favorites;
std::vector<cRecMenuItem*> myMenuItems;
int numFavorites; int numFavorites;
void CreateFavoritesMenuItems(void);
std::string NiceTime(int favTime);
public: public:
cRecMenuFavorites(std::vector<cTVGuideSearchTimer> favorites); cRecMenuFavorites(std::vector<cTVGuideSearchTimer> favorites);
cRecMenuItem *GetMenuItem(int number); cRecMenuItem *GetMenuItem(int number);

104
setup.c
View File

@ -23,6 +23,7 @@ void cTvguideSetup::Setup(void) {
Add(new cOsdItem(tr("General Settings"))); Add(new cOsdItem(tr("General Settings")));
Add(new cOsdItem(tr("Screen Presentation"))); Add(new cOsdItem(tr("Screen Presentation")));
Add(new cOsdItem(tr("Fonts and Fontsizes"))); Add(new cOsdItem(tr("Fonts and Fontsizes")));
Add(new cOsdItem(tr("Recording Menus and Favorites")));
Add(new cOsdItem(tr("Image Loading and Caching"))); Add(new cOsdItem(tr("Image Loading and Caching")));
SetCurrent(Get(currentItem)); SetCurrent(Get(currentItem));
@ -44,6 +45,8 @@ eOSState cTvguideSetup::ProcessKey(eKeys Key) {
state = AddSubMenu(new cMenuSetupScreenLayout(&tmpTvguideConfig)); state = AddSubMenu(new cMenuSetupScreenLayout(&tmpTvguideConfig));
if (strcmp(ItemText, tr("Fonts and Fontsizes")) == 0) if (strcmp(ItemText, tr("Fonts and Fontsizes")) == 0)
state = AddSubMenu(new cMenuSetupFont(&tmpTvguideConfig)); state = AddSubMenu(new cMenuSetupFont(&tmpTvguideConfig));
if (strcmp(ItemText, tr("Recording Menus and Favorites")) == 0)
state = AddSubMenu(new cMenuSetupFavorites(&tmpTvguideConfig));
if (strcmp(ItemText, tr("Image Loading and Caching")) == 0) if (strcmp(ItemText, tr("Image Loading and Caching")) == 0)
state = AddSubMenu(new cMenuSetupImageCache(&tmpTvguideConfig)); state = AddSubMenu(new cMenuSetupImageCache(&tmpTvguideConfig));
} }
@ -99,6 +102,23 @@ void cTvguideSetup::Store(void) {
SetupStore("channelHeaderHeightPercent", tvguideConfig.channelHeaderHeightPercent); SetupStore("channelHeaderHeightPercent", tvguideConfig.channelHeaderHeightPercent);
SetupStore("footerHeightPercent", tvguideConfig.footerHeightPercent); SetupStore("footerHeightPercent", tvguideConfig.footerHeightPercent);
SetupStore("recMenuAskFolder", tvguideConfig.recMenuAskFolder); SetupStore("recMenuAskFolder", tvguideConfig.recMenuAskFolder);
SetupStore("favWhatsOnNow", tvguideConfig.favWhatsOnNow);
SetupStore("favWhatsOnNext", tvguideConfig.favWhatsOnNext);
SetupStore("favUseTime1", tvguideConfig.favUseTime1);
SetupStore("favUseTime2", tvguideConfig.favUseTime2);
SetupStore("favUseTime3", tvguideConfig.favUseTime3);
SetupStore("favUseTime4", tvguideConfig.favUseTime4);
SetupStore("favTime1", tvguideConfig.favTime1);
SetupStore("favTime2", tvguideConfig.favTime2);
SetupStore("favTime3", tvguideConfig.favTime3);
SetupStore("favTime4", tvguideConfig.favTime4);
SetupStore("descUser1", tvguideConfig.descUser1.c_str());
SetupStore("descUser2", tvguideConfig.descUser2.c_str());
SetupStore("descUser3", tvguideConfig.descUser3.c_str());
SetupStore("descUser4", tvguideConfig.descUser4.c_str());
SetupStore("favLimitChannels", tvguideConfig.favLimitChannels);
SetupStore("favStartChannel", tvguideConfig.favStartChannel);
SetupStore("favStopChannel", tvguideConfig.favStopChannel);
SetupStore("fontIndex", tvguideConfig.fontIndex); SetupStore("fontIndex", tvguideConfig.fontIndex);
SetupStore("FontButtonDelta", tvguideConfig.FontButtonDelta); SetupStore("FontButtonDelta", tvguideConfig.FontButtonDelta);
SetupStore("FontDetailViewDelta", tvguideConfig.FontDetailViewDelta); SetupStore("FontDetailViewDelta", tvguideConfig.FontDetailViewDelta);
@ -156,7 +176,7 @@ eOSState cMenuSetupSubMenu::ProcessKey(eKeys Key) {
return state; return state;
} }
//------------------------------------------------------------------------------------------------------------------ //----- General Settings -------------------------------------------------------------------------------------------------------------
cMenuSetupGeneral::cMenuSetupGeneral(cTvguideConfig* data) : cMenuSetupSubMenu(tr("General Settings"), data) { cMenuSetupGeneral::cMenuSetupGeneral(cTvguideConfig* data) : cMenuSetupSubMenu(tr("General Settings"), data) {
themes.Load(*cString("tvguide")); themes.Load(*cString("tvguide"));
@ -196,9 +216,6 @@ void cMenuSetupGeneral::Set(void) {
Add(new cMenuEditIntItem(tr("Big Step (Keys 1 / 3) in hours"), &tmpTvguideConfig->bigStepHours, 1, 12)); Add(new cMenuEditIntItem(tr("Big Step (Keys 1 / 3) in hours"), &tmpTvguideConfig->bigStepHours, 1, 12));
Add(new cMenuEditIntItem(tr("Huge Step (Keys 4 / 6) in hours"), &tmpTvguideConfig->hugeStepHours, 13, 48)); Add(new cMenuEditIntItem(tr("Huge Step (Keys 4 / 6) in hours"), &tmpTvguideConfig->hugeStepHours, 13, 48));
Add(new cMenuEditStraItem(tr("Time Format (12h/24h)"), &tmpTvguideConfig->timeFormat, 2, timeFormatItems)); Add(new cMenuEditStraItem(tr("Time Format (12h/24h)"), &tmpTvguideConfig->timeFormat, 2, timeFormatItems));
Add(new cMenuEditBoolItem(tr("Use folders for instant records"), &tmpTvguideConfig->recMenuAskFolder));
if (pRemoteTimers)
Add(new cMenuEditBoolItem(tr("Use Remotetimers"), &tmpTvguideConfig->useRemoteTimers));
Add(new cMenuEditBoolItem(tr("Display Reruns in detailed EPG View"), &tmpTvguideConfig->displayRerunsDetailEPGView)); Add(new cMenuEditBoolItem(tr("Display Reruns in detailed EPG View"), &tmpTvguideConfig->displayRerunsDetailEPGView));
if (tmpTvguideConfig->displayRerunsDetailEPGView) { if (tmpTvguideConfig->displayRerunsDetailEPGView) {
Add(new cMenuEditIntItem(cString::sprintf("%s%s", *indent, tr("Number of reruns to display")), &tmpTvguideConfig->numReruns, 1, 10)); Add(new cMenuEditIntItem(cString::sprintf("%s%s", *indent, tr("Number of reruns to display")), &tmpTvguideConfig->numReruns, 1, 10));
@ -218,7 +235,7 @@ eOSState cMenuSetupGeneral::ProcessKey(eKeys Key) {
return state; return state;
} }
//------------------------------------------------------------------------------------------------------------------ //----- Screen Presentation -------------------------------------------------------------------------------------------------------------
cMenuSetupScreenLayout::cMenuSetupScreenLayout(cTvguideConfig* data) : cMenuSetupSubMenu(tr("Screen Presentation"), data) { cMenuSetupScreenLayout::cMenuSetupScreenLayout(cTvguideConfig* data) : cMenuSetupSubMenu(tr("Screen Presentation"), data) {
displayModeItems[0] = "vertical"; displayModeItems[0] = "vertical";
@ -299,7 +316,7 @@ eOSState cMenuSetupScreenLayout::ProcessKey(eKeys Key) {
return state; return state;
} }
//------------------------------------------------------------------------------------------------------------------ //-----Fonts and Fontsizes -------------------------------------------------------------------------------------------------------
cMenuSetupFont::cMenuSetupFont(cTvguideConfig* data) : cMenuSetupSubMenu(tr("Fonts and Fontsizes"), data) { cMenuSetupFont::cMenuSetupFont(cTvguideConfig* data) : cMenuSetupSubMenu(tr("Fonts and Fontsizes"), data) {
cFont::GetAvailableFontNames(&fontNames); cFont::GetAvailableFontNames(&fontNames);
@ -347,6 +364,81 @@ void cMenuSetupFont::Set(void) {
Display(); Display();
} }
//----- Recording Menus and Favorites -------------------------------------------------------------------------------------------------------
cMenuSetupFavorites::cMenuSetupFavorites(cTvguideConfig* data) : cMenuSetupSubMenu(tr("Recording Menus and Favorites"), data) {
strn0cpy(description1, data->descUser1.c_str(), sizeof(description1));
strn0cpy(description2, data->descUser2.c_str(), sizeof(description2));
strn0cpy(description3, data->descUser3.c_str(), sizeof(description3));
strn0cpy(description4, data->descUser4.c_str(), sizeof(description4));
Set();
}
void cMenuSetupFavorites::Set(void) {
int currentItem = Current();
Clear();
Add(new cMenuEditBoolItem(tr("Use folders for instant records"), &tmpTvguideConfig->recMenuAskFolder));
if (pRemoteTimers)
Add(new cMenuEditBoolItem(tr("Use Remotetimers"), &tmpTvguideConfig->useRemoteTimers));
Add(new cMenuEditBoolItem(tr("Use \"What's on now\" in favorites"), &tmpTvguideConfig->favWhatsOnNow));
Add(new cMenuEditBoolItem(tr("Use \"What's on next\" in favorites"), &tmpTvguideConfig->favWhatsOnNext));
Add(new cMenuEditBoolItem(tr("Use user defined time 1 in favorites"), &tmpTvguideConfig->favUseTime1));
if (tmpTvguideConfig->favUseTime1) {
Add(new cMenuEditStrItem(cString::sprintf("%s%s", *indent, tr("Description")), description1, sizeof(description1), trVDR(FileNameChars)));
Add(new cMenuEditTimeItem(cString::sprintf("%s%s", *indent, tr("Time")), &tmpTvguideConfig->favTime1));
}
Add(new cMenuEditBoolItem(tr("Use user defined time 2 in favorites"), &tmpTvguideConfig->favUseTime2));
if (tmpTvguideConfig->favUseTime2) {
Add(new cMenuEditStrItem(cString::sprintf("%s%s", *indent, tr("Description")), description2, sizeof(description2), trVDR(FileNameChars)));
Add(new cMenuEditTimeItem(cString::sprintf("%s%s", *indent, tr("Time")), &tmpTvguideConfig->favTime2));
}
Add(new cMenuEditBoolItem(tr("Use user defined time 3 in favorites"), &tmpTvguideConfig->favUseTime3));
if (tmpTvguideConfig->favUseTime3) {
Add(new cMenuEditStrItem(cString::sprintf("%s%s", *indent, tr("Description")), description3, sizeof(description3), trVDR(FileNameChars)));
Add(new cMenuEditTimeItem(cString::sprintf("%s%s", *indent, tr("Time")), &tmpTvguideConfig->favTime3));
}
Add(new cMenuEditBoolItem(tr("Use user defined time 4 in favorites"), &tmpTvguideConfig->favUseTime4));
if (tmpTvguideConfig->favUseTime4) {
Add(new cMenuEditStrItem(cString::sprintf("%s%s", *indent, tr("Description")), description4, sizeof(description4), trVDR(FileNameChars)));
Add(new cMenuEditTimeItem(cString::sprintf("%s%s", *indent, tr("Time")), &tmpTvguideConfig->favTime4));
}
Add(new cMenuEditBoolItem(tr("Limit channels in favorites"), &tmpTvguideConfig->favLimitChannels));
if (tmpTvguideConfig->favLimitChannels) {
Add(new cMenuEditChanItem(tr("Start Channel"), &tmpTvguideConfig->favStartChannel));
Add(new cMenuEditChanItem(tr("Stop Channel"), &tmpTvguideConfig->favStopChannel));
}
SetCurrent(Get(currentItem));
Display();
}
eOSState cMenuSetupFavorites::ProcessKey(eKeys Key) {
int tmpFavUseTime1 = tmpTvguideConfig->favUseTime1;
int tmpFavUseTime2 = tmpTvguideConfig->favUseTime2;
int tmpFavUseTime3 = tmpTvguideConfig->favUseTime3;
int tmpFavUseTime4 = tmpTvguideConfig->favUseTime4;
int tmpFavLimitChannels = tmpTvguideConfig->favLimitChannels;
eOSState state = cOsdMenu::ProcessKey(Key);
if (Key == kOk) {
tmpTvguideConfig->descUser1 = description1;
tmpTvguideConfig->descUser2 = description2;
tmpTvguideConfig->descUser3 = description3;
tmpTvguideConfig->descUser4 = description4;
} else if ((Key == kLeft)||(Key == kRight)) {
if ((tmpFavUseTime1 != tmpTvguideConfig->favUseTime1) ||
(tmpFavUseTime2 != tmpTvguideConfig->favUseTime2) ||
(tmpFavUseTime3 != tmpTvguideConfig->favUseTime3) ||
(tmpFavUseTime4 != tmpTvguideConfig->favUseTime4) ||
(tmpFavLimitChannels != tmpTvguideConfig->favLimitChannels) )
Set();
}
return state;
}
//-----Image Caching------------------------------------------------------------------------------------------------------------- //-----Image Caching-------------------------------------------------------------------------------------------------------------
cMenuSetupImageCache::cMenuSetupImageCache(cTvguideConfig* data) : cMenuSetupSubMenu(tr("Image Loading and Caching"), data) { cMenuSetupImageCache::cMenuSetupImageCache(cTvguideConfig* data) : cMenuSetupSubMenu(tr("Image Loading and Caching"), data) {
Set(); Set();

12
setup.h
View File

@ -61,6 +61,18 @@ class cMenuSetupFont : public cMenuSetupSubMenu {
cMenuSetupFont(cTvguideConfig *data); cMenuSetupFont(cTvguideConfig *data);
}; };
class cMenuSetupFavorites : public cMenuSetupSubMenu {
protected:
char description1[256];
char description2[256];
char description3[256];
char description4[256];
void Set(void);
virtual eOSState ProcessKey(eKeys Key);
public:
cMenuSetupFavorites(cTvguideConfig *data);
};
class cMenuSetupImageCache : public cMenuSetupSubMenu { class cMenuSetupImageCache : public cMenuSetupSubMenu {
protected: protected:
void Set(void); void Set(void);