26 Commits

Author SHA1 Message Date
kamel5
69711400fa Version 1.2.9 2019-07-05 15:09:33 +02:00
kamel5
463b6369d2 Fixed dayOfWeek error in RecMenuSearchTimerEdit 2019-07-05 14:51:21 +02:00
kamel5
0b37464dd0 Change SetStartChannel() and SetStopChannel() 2019-07-04 13:16:13 +02:00
kamel5
cf171d8732 Cosmetic Changes 2019-07-04 12:38:47 +02:00
kamel5
d666b8701e Change locking in cTVGuideSearchTimer::cTVGuideSearchTimer 2019-07-03 12:54:57 +02:00
kamel5
6139016102 Change some default values for searchtimer 2019-07-03 12:39:58 +02:00
kamel5
1c99501776 Correct plugin options in README and CommandLineHelp 2019-06-20 15:40:53 +02:00
kamel5
b484f6cfc1 Version 1.2.8 2019-06-20 13:45:13 +02:00
kamel5
c04ca30792 Remove some debugging 2019-06-19 13:28:22 +02:00
kamel5
ba9c04a4bc Delete rmsSearchTimerEditAdvanced 2019-06-19 13:24:27 +02:00
kamel5
cb2c604d71 Update i18n 2019-06-17 16:17:11 +02:00
kamel5
b8b95f61ed Add more options to cRecMenuSearchTimerEdit 2019-06-17 16:11:09 +02:00
kamel5
507ecc60f6 Eliminate all currentMenuItems 2019-06-17 14:39:11 +02:00
kamel5
ef4ff3d115 Some refatoring to searchTimer 2019-06-17 14:38:17 +02:00
kamel5
1c591b5408 Eliminate InitMenuItems in cRecMenuSearchTimerEdit 2019-06-17 14:38:09 +02:00
kamel5
5b1e174316 Move some inits to cRecMenuSearchTimerEdit::cRecMenuSearchTimerEdit 2019-06-17 14:36:03 +02:00
kamel5
1a2da2da0a Eliminate AddSubMenu in cRecMenuSearchTimerEdit 2019-06-17 14:36:03 +02:00
kamel5
b83ad6df81 Add some parameter to cTVGuideSearchTimer 2019-06-17 14:36:03 +02:00
kamel5
0a931b97dc Cosmetic changes 2019-06-17 14:36:03 +02:00
kamel5
3cce1d2ead Delete advancedOptions in cRecMenuSearchTimerEdit 2019-06-17 14:35:53 +02:00
kamel5
f6a7ae497c Some changes to RecMenuItems 2019-06-16 14:50:15 +02:00
kamel5
803b28aad9 Cosmetic changes in searchtimer.c 2019-06-16 14:49:59 +02:00
kamel5
d5f46dacc6 Add some Modes to searchtimer.* 2019-06-16 14:23:44 +02:00
kamel5
763f9d4e52 Changes in recmenu.c 2019-06-16 14:01:22 +02:00
kamel5
82e404a74e Add cRecManager::GetSearchExtCats and cRecManager::GetBlacklists 2019-06-16 13:45:47 +02:00
kamel5
872a0618f8 Cosmetic changes 2019-06-16 13:36:05 +02:00
18 changed files with 1278 additions and 655 deletions

16
HISTORY
View File

@@ -187,3 +187,19 @@ Version 1.2.7
- Eliminate a "invalid lock sequence report" in tvguideosd.c
- Optical changes in favorites and searchtimer menu
- Changes in README
Version 1.2.8
- Some refactoring
- Update i18n
- Add almost all search timer options to cRecMenuSearchTimerEdit,
only one is missing: "Use content descriptor"
(Create and modify of channelgroups and blacklists isn't possible,
because the epgsearch service interface doesn't support that,
should be done in epgsearch)
Version 1.2.9
- Correct plugin options in README and CommandLineHelp
- Change locking in cTVGuideSearchTimer::cTVGuideSearchTimer
- Fixed a dayOfWeek error in RecMenuSearchTimerEdit

4
README
View File

@@ -44,13 +44,13 @@ After "normal" Plugin installation you have to care about the paths for the
used Icons, the channel logos and epg images. The following paths can be set
at startup:
-l path, --logodir=path
-l path, --logopath=path
Path to the logos (Default: <ResourceDirectory>/plugins/tvguide/channellogos/).
-e path, --epgimages=path
Path to the epgimages (Default: <CacheDirectory>/plugins/tvguide/epgimages/).
-i path, --icons=path
-i path, --iconpath=path
Path to the icons directory (Default: <ResourceDirectory>/plugins/tvguide/epgimages/).
<ResourceDirectory> and <CacheDirectory> is taken from your VDR configuration

View File

@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr-tvguide 0.0.1\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2019-04-12 14:35+0200\n"
"POT-Creation-Date: 2019-04-22 14:34+0200\n"
"PO-Revision-Date: 2013-09-21 17:49+0200\n"
"Last-Translator: My friend <Sampep> Thanks David <Gabychan> <gbonich@gmail.com>\n"
"Language-Team: \n"
@@ -303,82 +303,106 @@ msgstr ""
msgid "Save Search Timer"
msgstr ""
msgid "Search String"
msgid "Search term"
msgstr ""
msgid "Active"
msgstr ""
msgid "Search Mode"
msgstr "Mode de cerca"
msgid "Search mode"
msgstr ""
msgid "Use Title"
msgid "Tolerance"
msgstr ""
msgid "Match case"
msgstr ""
msgid "Use title"
msgstr "Utilitza títol"
msgid "Use Subtitle"
msgid "Use subtitle"
msgstr "Utilitza subtítol"
msgid "Use Description"
msgid "Use description"
msgstr "Utilitza descripció"
msgid "Limit Channels"
msgid "Use channel"
msgstr "Canals restringits"
msgid "Use Time"
msgstr "Utilitza temps"
msgid "Display advanced Options"
msgstr ""
msgid "Limit Days of the Week"
msgstr ""
msgid "Time margin for start in minutes"
msgstr ""
msgid "Time margin for stop in minutes"
msgstr ""
msgid "Series Recording"
msgstr ""
msgid "Folder"
msgstr ""
msgid "Use VPS"
msgstr ""
msgid "Avoid Repeats"
msgstr ""
msgid "Use in Favorites"
msgstr ""
msgid "Hide advanced Options"
msgstr ""
msgid "Display Results for Search Timer"
msgstr "Mostra resultats de la cerca"
msgid "Start Channel"
msgid "from channel"
msgstr "Inicia canal"
msgid "Stop Channel"
msgid "to channel"
msgstr "Atura canal"
msgid "Channel Group"
msgid "Channel group"
msgstr ""
msgid "Use time"
msgstr "Utilitza temps"
msgid "Start after"
msgstr "Comença després"
msgid "Start before"
msgstr "Comença abans"
msgid "Select Days"
msgid "Use duration"
msgstr "Utilitza Durada"
msgid "Min. duration"
msgstr ""
msgid "Number of allowed repeats"
msgid "Max. duration"
msgstr ""
msgid "Use day of week"
msgstr ""
msgid "Day of week"
msgstr ""
msgid "Use in Favorites"
msgstr ""
msgid "Use as search timer"
msgstr ""
msgid "Action"
msgstr ""
msgid "Switch ... minutes before start"
msgstr ""
msgid "Unmute sound"
msgstr ""
msgid "Ask ... minutes before start"
msgstr ""
msgid "Series Recording"
msgstr ""
msgid "Directory"
msgstr ""
msgid "Delete recordings after ... days"
msgstr ""
msgid "Keep ... recordings"
msgstr ""
msgid "Pause when ... recordings exist"
msgstr ""
msgid "Avoid Repeats"
msgstr ""
msgid "Allowed repeats"
msgstr ""
msgid "Only repeats within ... days"
msgstr ""
msgid "Compare Title"
@@ -390,6 +414,33 @@ msgstr ""
msgid "Compare Description"
msgstr ""
msgid "Min. match in %"
msgstr ""
msgid "Compare date"
msgstr ""
msgid "Time margin for start in minutes"
msgstr ""
msgid "Time margin for stop in minutes"
msgstr ""
msgid "Use VPS"
msgstr ""
msgid "Auto delete"
msgstr ""
msgid "after ... recordings"
msgstr ""
msgid "after ... days after first rec."
msgstr ""
msgid "Display Results for Search Timer"
msgstr "Mostra resultats de la cerca"
msgid "Really delete Search Timer"
msgstr ""
@@ -465,6 +516,9 @@ msgstr "No s'ha creat el canvi de temporitzador"
msgid "Switch Timer deleted"
msgstr "Canvi de temporitzador esborrat"
msgid "Search Mode"
msgstr "Mode de cerca"
msgid "Channel to Search"
msgstr "Canal a cercar"
@@ -528,12 +582,54 @@ msgstr "coincidència exacta"
msgid "regular expression"
msgstr "expressió regular"
msgid "fuzzy"
msgstr ""
msgid "Interval"
msgstr ""
msgid "Channel Group"
msgstr ""
msgid "only FTA"
msgstr ""
msgid "same day"
msgstr ""
msgid "same week"
msgstr ""
msgid "same month"
msgstr ""
msgid "Record"
msgstr ""
msgid "Announce by OSD"
msgstr ""
msgid "Switch only"
msgstr ""
msgid "Announce and switch"
msgstr ""
msgid "Announce by mail"
msgstr ""
msgid "Inactive record"
msgstr ""
msgid "no"
msgstr ""
msgid "count recordings"
msgstr ""
msgid "count days"
msgstr ""
msgid "General Settings"
msgstr "Preferències"
@@ -789,12 +885,21 @@ msgstr ""
msgid "Folder for instant Recordings"
msgstr ""
msgid "Folder"
msgstr ""
msgid "Use Remotetimers"
msgstr "Utilitza temporitzadors remots"
msgid "Limit channels in favorites"
msgstr ""
msgid "Start Channel"
msgstr "Inicia canal"
msgid "Stop Channel"
msgstr "Atura canal"
msgid "Use \"What's on now\" in favorites"
msgstr ""
@@ -930,9 +1035,6 @@ msgstr ""
msgid "yes"
msgstr ""
msgid "no"
msgstr ""
msgid "Adult"
msgstr ""

View File

@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr-tvguide 0.0.1\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2019-04-12 14:35+0200\n"
"POT-Creation-Date: 2019-04-22 14:34+0200\n"
"PO-Revision-Date: 2012-08-25 17:49+0200\n"
"Last-Translator: Horst\n"
"Language-Team: \n"
@@ -300,92 +300,143 @@ msgstr "Suchtimer konfigurieren"
msgid "Save Search Timer"
msgstr "Suchtimer speichern"
msgid "Search String"
msgid "Search term"
msgstr "Suchbegriff"
msgid "Active"
msgstr "Aktiv"
msgid "Search Mode"
msgid "Search mode"
msgstr "Suchmodus"
msgid "Use Title"
msgstr "Titel benutzen"
msgid "Tolerance"
msgstr "Toleranz"
msgid "Use Subtitle"
msgstr "Untertitel benutzen"
msgid "Match case"
msgstr "Groß/klein"
msgid "Use Description"
msgstr "Beschreibung benutzen"
msgid "Use title"
msgstr "Verwende Titel"
msgid "Limit Channels"
msgstr "Kanäle einschränken"
msgid "Use subtitle"
msgstr "Verwende Untertitel"
msgid "Use Time"
msgstr "Zeit benutzen"
msgid "Use description"
msgstr "Verwende Beschreibung"
msgid "Display advanced Options"
msgstr "Erweiterte Optionen anzeigen"
msgid "Use channel"
msgstr "Verwende Kanal"
msgid "Limit Days of the Week"
msgstr "Wochentage beschränken"
msgid "from channel"
msgstr "von Kanal"
msgid "Time margin for start in minutes"
msgstr "Zeit vor Start in Minuten"
msgid "to channel"
msgstr "bis Kanal"
msgid "Time margin for stop in minutes"
msgstr "Zeit nach Ende in Minuten"
msgid "Series Recording"
msgstr "Serienaufnahme"
msgid "Folder"
msgstr "Verzeichnis"
msgid "Use VPS"
msgstr "VPS benutzen"
msgid "Avoid Repeats"
msgstr "Wiederholungen vermeiden"
msgid "Use in Favorites"
msgstr "Als Favorit benutzen"
msgid "Hide advanced Options"
msgstr "Erweiterte Optionen ausblenden"
msgid "Display Results for Search Timer"
msgstr "Ergebnisse für Suchtimer anzeigen"
msgid "Start Channel"
msgstr "Startkanal"
msgid "Stop Channel"
msgstr "Stopkanal"
msgid "Channel Group"
msgid "Channel group"
msgstr "Kanalgruppe"
msgid "Use time"
msgstr "Verwende Uhrzeit"
msgid "Start after"
msgstr "Beginn nach"
msgid "Start before"
msgstr "Beginn vor"
msgid "Select Days"
msgstr "Tage bestimmen"
msgid "Use duration"
msgstr "Verwende Dauer"
msgid "Number of allowed repeats"
msgstr "Anzahl erlaubter Wiederholungen"
msgid "Min. duration"
msgstr "Min. Dauer"
msgid "Max. duration"
msgstr "Max. Dauer"
msgid "Use day of week"
msgstr "Verwende Wochentag"
msgid "Day of week"
msgstr "Wochentag"
msgid "Use in Favorites"
msgstr "Als Favorit benutzen"
msgid "Use as search timer"
msgstr "Als Suchtimer verwenden"
msgid "Action"
msgstr "Aktion"
msgid "Switch ... minutes before start"
msgstr "Umschalten ... Minuten vor Start"
msgid "Unmute sound"
msgstr "Ton anschalten"
msgid "Ask ... minutes before start"
msgstr "Nachfrage ... Minuten vor Start"
msgid "Series Recording"
msgstr "Serienaufnahme"
msgid "Directory"
msgstr "Verzeichnis"
msgid "Delete recordings after ... days"
msgstr "Aufn. nach ... Tagen löschen"
msgid "Keep ... recordings"
msgstr "Behalte ... Aufnahmen"
msgid "Pause when ... recordings exist"
msgstr "Pause, wenn ... Aufnahmen exist."
msgid "Avoid Repeats"
msgstr "Vermeide Wiederholung"
msgid "Allowed repeats"
msgstr "Erlaubte Wiederholungen"
msgid "Only repeats within ... days"
msgstr "Nur Wiederh. innerhalb von ... Tagen"
msgid "Compare Title"
msgstr "Titel vergleichen"
msgstr "Vergleiche Titel"
msgid "Compare Subtitle"
msgstr "Untertitel vergleichen"
msgstr "Vergleiche Untertitel"
msgid "Compare Description"
msgstr "Beschreibung vergleichen"
msgstr "Vergleiche Beschreibung"
msgid "Min. match in %"
msgstr "Min. Übereinstimmung in %"
msgid "Compare date"
msgstr "Vergleiche Zeitpunkt"
msgid "Time margin for start in minutes"
msgstr "Vorlauf zum Timer-Beginn (min)"
msgid "Time margin for stop in minutes"
msgstr "Nachlauf zum Timer-Ende (min)"
msgid "Use VPS"
msgstr "Verwende VPS"
msgid "Auto delete"
msgstr "automatisch löschen"
msgid "after ... recordings"
msgstr "nach ... Aufnahmen"
msgid "after ... days after first rec."
msgstr "nach ... Tagen nach erster Aufn."
msgid "Display Results for Search Timer"
msgstr "Ergebnisse für Suchtimer anzeigen"
msgid "Really delete Search Timer"
msgstr "Suchtimer wirklich löschen"
@@ -462,6 +513,9 @@ msgstr "Umschalttimer NICHT erfolgreich angelegt"
msgid "Switch Timer deleted"
msgstr "Umschalttimer gelöscht"
msgid "Search Mode"
msgstr "Suchmodus"
msgid "Channel to Search"
msgstr "Suche auf Kanal"
@@ -525,12 +579,54 @@ msgstr "exakt"
msgid "regular expression"
msgstr "Regulärer Ausdruck"
msgid "fuzzy"
msgstr "unscharf"
msgid "Interval"
msgstr "Bereich"
msgid "Channel Group"
msgstr "Kanalgruppe"
msgid "only FTA"
msgstr "ohne PayTV"
msgid "same day"
msgstr "gleicher Tag"
msgid "same week"
msgstr "gleiche Woche"
msgid "same month"
msgstr "gleicher Monat"
msgid "Record"
msgstr "Aufnehmen"
msgid "Announce by OSD"
msgstr "per OSD ankündigen"
msgid "Switch only"
msgstr "Nur umschalten"
msgid "Announce and switch"
msgstr "Ankündigen und Umschalten"
msgid "Announce by mail"
msgstr "per Mail ankündigen"
msgid "Inactive record"
msgstr "inaktive Aufnahme"
msgid "no"
msgstr "Nein"
msgid "count recordings"
msgstr "Anzahl Aufnahmen"
msgid "count days"
msgstr "Anzahl Tage"
msgid "General Settings"
msgstr "Allgemeine Einstellungen"
@@ -786,12 +882,21 @@ msgstr "Festes Verzeichnis benutzen"
msgid "Folder for instant Recordings"
msgstr "Verzeichnis für Sofortaufnahmen"
msgid "Folder"
msgstr "Verzeichnis"
msgid "Use Remotetimers"
msgstr "RemoteTimers benutzen"
msgid "Limit channels in favorites"
msgstr "Kanäle in Favoriten beschränken"
msgid "Start Channel"
msgstr "von Kanal"
msgid "Stop Channel"
msgstr "bis Kanal"
msgid "Use \"What's on now\" in favorites"
msgstr "\"Was läuft jetzt\" in Favoriten benutzen"
@@ -927,9 +1032,6 @@ msgstr "Überblick"
msgid "yes"
msgstr "Ja"
msgid "no"
msgstr "Nein"
msgid "Adult"
msgstr "Nur für Erwachsene"
@@ -959,3 +1061,9 @@ msgstr "TheMovieDB Popularität"
msgid "TheMovieDB Vote Average"
msgstr "TheMovieDB durchschnittliche Bewertung"
#~ msgid "Display advanced Options"
#~ msgstr "Erweiterte Optionen anzeigen"
#~ msgid "Hide advanced Options"
#~ msgstr "Erweiterte Optionen ausblenden"

View File

@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr-tvguide 0.0.1\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2019-04-12 14:35+0200\n"
"POT-Creation-Date: 2019-04-22 14:34+0200\n"
"PO-Revision-Date: 2012-08-25 17:49+0200\n"
"Last-Translator: fiveten_59\n"
"Language-Team: \n"
@@ -300,83 +300,107 @@ msgstr "Configura le opzione del Search Timer"
msgid "Save Search Timer"
msgstr "Salva il Search Timer"
msgid "Search String"
msgstr "Suchbegriff"
msgid "Search term"
msgstr ""
msgid "Active"
msgstr "Attivo"
msgid "Search Mode"
msgid "Search mode"
msgstr "Modalità di ricerca"
msgid "Use Title"
msgid "Tolerance"
msgstr ""
msgid "Match case"
msgstr ""
msgid "Use title"
msgstr "Usa Titolo"
msgid "Use Subtitle"
msgid "Use subtitle"
msgstr "Usa Sottotitolo"
msgid "Use Description"
msgid "Use description"
msgstr "Usa Descrizione"
msgid "Limit Channels"
msgid "Use channel"
msgstr "Limite Canale"
msgid "Use Time"
msgstr "Utilizza Time"
msgid "Display advanced Options"
msgstr "Mostra Opzioni avanzate"
msgid "Limit Days of the Week"
msgstr "Limite dei giorni della settimana"
msgid "Time margin for start in minutes"
msgstr "Margine di tempo per l'avvio in minuti"
msgid "Time margin for stop in minutes"
msgstr "Margine di tempo per lo stop in minuti"
msgid "Series Recording"
msgstr "Serie di registrazioni"
msgid "Folder"
msgstr "Cartella"
msgid "Use VPS"
msgstr "Utilizza VPS"
msgid "Avoid Repeats"
msgstr "Evita ripetizioni"
msgid "Use in Favorites"
msgstr "Utilizza nei favoriti"
msgid "Hide advanced Options"
msgstr "Nascondi Opzioni avanzate"
msgid "Display Results for Search Timer"
msgstr "Mostra risultati per il Search Timer"
msgid "Start Channel"
msgid "from channel"
msgstr "Avvia il Canale"
msgid "Stop Channel"
msgid "to channel"
msgstr "Ferma il Canale"
msgid "Channel Group"
msgid "Channel group"
msgstr ""
msgid "Use time"
msgstr "Utilizza Time"
msgid "Start after"
msgstr "Avvia dopo"
msgid "Start before"
msgstr "Avvia prima"
msgid "Select Days"
msgid "Use duration"
msgstr ""
msgid "Min. duration"
msgstr ""
msgid "Max. duration"
msgstr ""
msgid "Use day of week"
msgstr "Usa giorno feriale"
msgid "Day of week"
msgstr "Seleziona i giorni"
msgid "Number of allowed repeats"
msgstr "Numero di ripetizioni permesse"
msgid "Use in Favorites"
msgstr "Utilizza nei favoriti"
msgid "Use as search timer"
msgstr ""
msgid "Action"
msgstr ""
msgid "Switch ... minutes before start"
msgstr ""
msgid "Unmute sound"
msgstr ""
msgid "Ask ... minutes before start"
msgstr ""
msgid "Series Recording"
msgstr "Serie di registrazioni"
msgid "Directory"
msgstr ""
msgid "Delete recordings after ... days"
msgstr ""
msgid "Keep ... recordings"
msgstr ""
msgid "Pause when ... recordings exist"
msgstr ""
msgid "Avoid Repeats"
msgstr "Evita ripetizioni"
msgid "Allowed repeats"
msgstr ""
msgid "Only repeats within ... days"
msgstr ""
msgid "Compare Title"
msgstr "Confonta Titolo"
@@ -387,6 +411,33 @@ msgstr "Confonta Sottotitolo"
msgid "Compare Description"
msgstr "Confonta Descrizione"
msgid "Min. match in %"
msgstr ""
msgid "Compare date"
msgstr ""
msgid "Time margin for start in minutes"
msgstr "Margine di tempo per l'avvio in minuti"
msgid "Time margin for stop in minutes"
msgstr "Margine di tempo per lo stop in minuti"
msgid "Use VPS"
msgstr "Utilizza VPS"
msgid "Auto delete"
msgstr ""
msgid "after ... recordings"
msgstr ""
msgid "after ... days after first rec."
msgstr ""
msgid "Display Results for Search Timer"
msgstr "Mostra risultati per il Search Timer"
msgid "Really delete Search Timer"
msgstr "Veramente eliminare il Search Timer"
@@ -462,6 +513,9 @@ msgstr "Switch Timer NON creato"
msgid "Switch Timer deleted"
msgstr "Switch Timer eliminato"
msgid "Search Mode"
msgstr "Modalità di ricerca"
msgid "Channel to Search"
msgstr "Canale da cercare"
@@ -525,12 +579,54 @@ msgstr "exakt"
msgid "regular expression"
msgstr "Regulärer Ausdruck"
msgid "fuzzy"
msgstr ""
msgid "Interval"
msgstr ""
msgid "Channel Group"
msgstr ""
msgid "only FTA"
msgstr ""
msgid "same day"
msgstr ""
msgid "same week"
msgstr ""
msgid "same month"
msgstr ""
msgid "Record"
msgstr ""
msgid "Announce by OSD"
msgstr ""
msgid "Switch only"
msgstr ""
msgid "Announce and switch"
msgstr ""
msgid "Announce by mail"
msgstr ""
msgid "Inactive record"
msgstr ""
msgid "no"
msgstr "No"
msgid "count recordings"
msgstr ""
msgid "count days"
msgstr ""
msgid "General Settings"
msgstr "Allgemeine Einstellungen"
@@ -786,12 +882,21 @@ msgstr "Usa cartella fissa"
msgid "Folder for instant Recordings"
msgstr "Cartella per la registrazione immediata"
msgid "Folder"
msgstr "Cartella"
msgid "Use Remotetimers"
msgstr "Usa Remotetimers"
msgid "Limit channels in favorites"
msgstr "Limite dei canali nei favoriti"
msgid "Start Channel"
msgstr "Avvia il Canale"
msgid "Stop Channel"
msgstr "Ferma il Canale"
msgid "Use \"What's on now\" in favorites"
msgstr "Usa \"In programma ora\" nei favoriti"
@@ -927,9 +1032,6 @@ msgstr "Überblick"
msgid "yes"
msgstr "Si"
msgid "no"
msgstr "No"
msgid "Adult"
msgstr "Per adulti"
@@ -959,3 +1061,12 @@ msgstr "TheMovieDB Popularità"
msgid "TheMovieDB Vote Average"
msgstr "Voto medio di TheMovieDB"
#~ msgid "Number of allowed repeats"
#~ msgstr "Numero di ripetizioni permesse"
#~ msgid "Display advanced Options"
#~ msgstr "Mostra Opzioni avanzate"
#~ msgid "Hide advanced Options"
#~ msgstr "Nascondi Opzioni avanzate"

View File

@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr-tvguide 1.0.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2019-04-12 14:35+0200\n"
"POT-Creation-Date: 2019-04-22 14:34+0200\n"
"PO-Revision-Date: 2013-09-25 17:49+0400\n"
"Last-Translator: AmiD, ilya\n"
"Language-Team: Russia-Cherepovets(wm.amid@gmail.com)\n"
@@ -300,82 +300,106 @@ msgstr ""
msgid "Save Search Timer"
msgstr ""
msgid "Search String"
msgid "Search term"
msgstr ""
msgid "Active"
msgstr ""
msgid "Search Mode"
msgstr "Режим поиска"
msgid "Search mode"
msgstr ""
msgid "Use Title"
msgid "Tolerance"
msgstr ""
msgid "Match case"
msgstr ""
msgid "Use title"
msgstr "Искать в названиях"
msgid "Use Subtitle"
msgid "Use subtitle"
msgstr "Искать в эпизодах"
msgid "Use Description"
msgid "Use description"
msgstr "Искать в описаниях"
msgid "Limit Channels"
msgid "Use channel"
msgstr "Ограничить список каналов"
msgid "Use Time"
msgid "from channel"
msgstr ""
msgid "to channel"
msgstr ""
msgid "Channel group"
msgstr ""
msgid "Use time"
msgstr "Время"
msgid "Display advanced Options"
msgstr ""
msgid "Limit Days of the Week"
msgstr ""
msgid "Time margin for start in minutes"
msgstr ""
msgid "Time margin for stop in minutes"
msgstr ""
msgid "Series Recording"
msgstr ""
msgid "Folder"
msgstr ""
msgid "Use VPS"
msgstr ""
msgid "Avoid Repeats"
msgstr ""
msgid "Use in Favorites"
msgstr ""
msgid "Hide advanced Options"
msgstr ""
msgid "Display Results for Search Timer"
msgstr "Тест"
msgid "Start Channel"
msgstr "С канала"
msgid "Stop Channel"
msgstr "По канал"
msgid "Channel Group"
msgstr ""
msgid "Start after"
msgstr "С"
msgid "Start before"
msgstr "До"
msgid "Select Days"
msgid "Use duration"
msgstr ""
msgid "Number of allowed repeats"
msgid "Min. duration"
msgstr ""
msgid "Max. duration"
msgstr ""
msgid "Use day of week"
msgstr ""
msgid "Day of week"
msgstr ""
msgid "Use in Favorites"
msgstr ""
msgid "Use as search timer"
msgstr ""
msgid "Action"
msgstr ""
msgid "Switch ... minutes before start"
msgstr ""
msgid "Unmute sound"
msgstr ""
msgid "Ask ... minutes before start"
msgstr ""
msgid "Series Recording"
msgstr ""
msgid "Directory"
msgstr ""
msgid "Delete recordings after ... days"
msgstr ""
msgid "Keep ... recordings"
msgstr ""
msgid "Pause when ... recordings exist"
msgstr ""
msgid "Avoid Repeats"
msgstr ""
msgid "Allowed repeats"
msgstr ""
msgid "Only repeats within ... days"
msgstr ""
msgid "Compare Title"
@@ -387,6 +411,33 @@ msgstr ""
msgid "Compare Description"
msgstr ""
msgid "Min. match in %"
msgstr ""
msgid "Compare date"
msgstr ""
msgid "Time margin for start in minutes"
msgstr ""
msgid "Time margin for stop in minutes"
msgstr ""
msgid "Use VPS"
msgstr ""
msgid "Auto delete"
msgstr ""
msgid "after ... recordings"
msgstr ""
msgid "after ... days after first rec."
msgstr ""
msgid "Display Results for Search Timer"
msgstr "Тест"
msgid "Really delete Search Timer"
msgstr ""
@@ -462,6 +513,9 @@ msgstr "Таймер переключения НЕ был создан!"
msgid "Switch Timer deleted"
msgstr "Таймер переключения удален"
msgid "Search Mode"
msgstr "Режим поиска"
msgid "Channel to Search"
msgstr "Канал для поиска"
@@ -525,12 +579,54 @@ msgstr "точное совпадение"
msgid "regular expression"
msgstr "регулярные выражения"
msgid "fuzzy"
msgstr ""
msgid "Interval"
msgstr ""
msgid "Channel Group"
msgstr ""
msgid "only FTA"
msgstr ""
msgid "same day"
msgstr ""
msgid "same week"
msgstr ""
msgid "same month"
msgstr ""
msgid "Record"
msgstr ""
msgid "Announce by OSD"
msgstr ""
msgid "Switch only"
msgstr ""
msgid "Announce and switch"
msgstr ""
msgid "Announce by mail"
msgstr ""
msgid "Inactive record"
msgstr ""
msgid "no"
msgstr ""
msgid "count recordings"
msgstr ""
msgid "count days"
msgstr ""
msgid "General Settings"
msgstr "Основные настройки"
@@ -786,12 +882,21 @@ msgstr ""
msgid "Folder for instant Recordings"
msgstr ""
msgid "Folder"
msgstr ""
msgid "Use Remotetimers"
msgstr "RemoteTimers benutzen"
msgid "Limit channels in favorites"
msgstr ""
msgid "Start Channel"
msgstr "С канала"
msgid "Stop Channel"
msgstr "По канал"
msgid "Use \"What's on now\" in favorites"
msgstr ""
@@ -927,9 +1032,6 @@ msgstr ""
msgid "yes"
msgstr ""
msgid "no"
msgstr ""
msgid "Adult"
msgstr ""

View File

@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr-tvguide 1.1.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2019-04-12 14:35+0200\n"
"POT-Creation-Date: 2019-04-22 14:34+0200\n"
"PO-Revision-Date: 2013-09-15 00:12+0100\n"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: \n"
@@ -300,82 +300,106 @@ msgstr ""
msgid "Save Search Timer"
msgstr ""
msgid "Search String"
msgid "Search term"
msgstr ""
msgid "Active"
msgstr ""
msgid "Search Mode"
msgstr "Re<EFBFBD>im vyh<79>ad<61>vania"
msgid "Search mode"
msgstr ""
msgid "Use Title"
msgid "Tolerance"
msgstr ""
msgid "Match case"
msgstr ""
msgid "Use title"
msgstr "Pou<6F>i<EFBFBD> n<>zov"
msgid "Use Subtitle"
msgid "Use subtitle"
msgstr "Pou<6F>i<EFBFBD> titulky"
msgid "Use Description"
msgid "Use description"
msgstr "Pou<6F>i<EFBFBD> popis"
msgid "Limit Channels"
msgid "Use channel"
msgstr "Obmedzi<7A> kan<61>ly"
msgid "Use Time"
msgid "from channel"
msgstr ""
msgid "to channel"
msgstr ""
msgid "Channel group"
msgstr ""
msgid "Use time"
msgstr "Pou<6F>i<EFBFBD> <20>as"
msgid "Display advanced Options"
msgstr ""
msgid "Limit Days of the Week"
msgstr ""
msgid "Time margin for start in minutes"
msgstr ""
msgid "Time margin for stop in minutes"
msgstr ""
msgid "Series Recording"
msgstr ""
msgid "Folder"
msgstr ""
msgid "Use VPS"
msgstr ""
msgid "Avoid Repeats"
msgstr ""
msgid "Use in Favorites"
msgstr ""
msgid "Hide advanced Options"
msgstr ""
msgid "Display Results for Search Timer"
msgstr "Pozrie<69> v<>sledky pre vyh<79>ad<61>vanie pl<70>nov"
msgid "Start Channel"
msgstr "Od kan<61>lu"
msgid "Stop Channel"
msgstr "Po kan<61>l"
msgid "Channel Group"
msgstr ""
msgid "Start after"
msgstr "Za<5A>iatok po"
msgid "Start before"
msgstr "Za<5A>iatok pred"
msgid "Select Days"
msgid "Use duration"
msgstr ""
msgid "Number of allowed repeats"
msgid "Min. duration"
msgstr ""
msgid "Max. duration"
msgstr ""
msgid "Use day of week"
msgstr ""
msgid "Day of week"
msgstr ""
msgid "Use in Favorites"
msgstr ""
msgid "Use as search timer"
msgstr ""
msgid "Action"
msgstr ""
msgid "Switch ... minutes before start"
msgstr ""
msgid "Unmute sound"
msgstr ""
msgid "Ask ... minutes before start"
msgstr ""
msgid "Series Recording"
msgstr ""
msgid "Directory"
msgstr ""
msgid "Delete recordings after ... days"
msgstr ""
msgid "Keep ... recordings"
msgstr ""
msgid "Pause when ... recordings exist"
msgstr ""
msgid "Avoid Repeats"
msgstr ""
msgid "Allowed repeats"
msgstr ""
msgid "Only repeats within ... days"
msgstr ""
msgid "Compare Title"
@@ -387,6 +411,33 @@ msgstr ""
msgid "Compare Description"
msgstr ""
msgid "Min. match in %"
msgstr ""
msgid "Compare date"
msgstr ""
msgid "Time margin for start in minutes"
msgstr ""
msgid "Time margin for stop in minutes"
msgstr ""
msgid "Use VPS"
msgstr ""
msgid "Auto delete"
msgstr ""
msgid "after ... recordings"
msgstr ""
msgid "after ... days after first rec."
msgstr ""
msgid "Display Results for Search Timer"
msgstr "Pozrie<69> v<>sledky pre vyh<79>ad<61>vanie pl<70>nov"
msgid "Really delete Search Timer"
msgstr ""
@@ -462,6 +513,9 @@ msgstr "Pl
msgid "Switch Timer deleted"
msgstr "Pl<50>n prepnutia vymazan<61>"
msgid "Search Mode"
msgstr "Re<52>im vyh<79>ad<61>vania"
msgid "Channel to Search"
msgstr "H<>ada<64> na kan<61>le"
@@ -525,12 +579,54 @@ msgstr "presn
msgid "regular expression"
msgstr "regul<75>rny v<>raz"
msgid "fuzzy"
msgstr ""
msgid "Interval"
msgstr ""
msgid "Channel Group"
msgstr ""
msgid "only FTA"
msgstr ""
msgid "same day"
msgstr ""
msgid "same week"
msgstr ""
msgid "same month"
msgstr ""
msgid "Record"
msgstr ""
msgid "Announce by OSD"
msgstr ""
msgid "Switch only"
msgstr ""
msgid "Announce and switch"
msgstr ""
msgid "Announce by mail"
msgstr ""
msgid "Inactive record"
msgstr ""
msgid "no"
msgstr ""
msgid "count recordings"
msgstr ""
msgid "count days"
msgstr ""
msgid "General Settings"
msgstr "V<>eobecn<63> nastavenia"
@@ -786,12 +882,21 @@ msgstr ""
msgid "Folder for instant Recordings"
msgstr ""
msgid "Folder"
msgstr ""
msgid "Use Remotetimers"
msgstr "Pou<6F>i<EFBFBD> vzdialen<65> pl<70>nova<76>"
msgid "Limit channels in favorites"
msgstr ""
msgid "Start Channel"
msgstr "Od kan<61>lu"
msgid "Stop Channel"
msgstr "Po kan<61>l"
msgid "Use \"What's on now\" in favorites"
msgstr ""
@@ -927,9 +1032,6 @@ msgstr ""
msgid "yes"
msgstr ""
msgid "no"
msgstr ""
msgid "Adult"
msgstr ""

View File

@@ -495,22 +495,52 @@ void cRecManager::GetSearchTimers(std::vector<cTVGuideSearchTimer> *searchTimer)
std::sort(searchTimer->begin(), searchTimer->end());
}
void cRecManager::GetSearchExtCats(std::vector<std::string> *searchExtCats) {
if (!epgSearchAvailable) {
return;
}
Epgsearch_services_v1_1 *epgSearch = new Epgsearch_services_v1_1;
if (epgSearchPlugin->Service("Epgsearch-services-v1.1", epgSearch)) {
std::list<std::string> list;
list = epgSearch->handler->ExtEPGInfoList();
for (std::list<std::string>::iterator it = list.begin(); it != list.end(); it++) {
searchExtCats->push_back(*it);
}
}
}
void cRecManager::GetChannelGroups(std::vector<std::string> *channelGroups) {
if (!epgSearchAvailable) {
return;
}
Epgsearch_services_v1_1 *epgSearch = new Epgsearch_services_v1_1;
if (epgSearchPlugin->Service("Epgsearch-services-v1.1", epgSearch)) {
std::list<std::string> channelGroupList;
channelGroupList = epgSearch->handler->ChanGrpList();
std::list<std::string> list;
list = epgSearch->handler->ChanGrpList();
for (std::list<std::string>::iterator it = channelGroupList.begin(); it != channelGroupList.end(); it++) {
for (std::list<std::string>::iterator it = list.begin(); it != list.end(); it++) {
channelGroups->push_back(*it);
}
}
std::sort(channelGroups->begin(), channelGroups->end());
}
void cRecManager::GetBlacklists(std::vector<std::string> *blacklists) {
if (!epgSearchAvailable) {
return;
}
Epgsearch_services_v1_1 *epgSearch = new Epgsearch_services_v1_1;
if (epgSearchPlugin->Service("Epgsearch-services-v1.1", epgSearch)) {
std::list<std::string> list;
list = epgSearch->handler->BlackList();
for (std::list<std::string>::iterator it = list.begin(); it != list.end(); it++) {
blacklists->push_back(*it);
}
}
}
int cRecManager::CreateSearchTimer(std::string epgSearchString) {
int timerID = -1;
if (!epgSearchAvailable)
@@ -591,9 +621,9 @@ void cRecManager::DeleteSearchTimer(cTVGuideSearchTimer *searchTimer, bool delTi
if (epgSearchPlugin->Service("Epgsearch-services-v1.1", epgSearch)) {
bool success = epgSearch->handler->DelSearchTimer(searchTimerID);
if (success) {
esyslog("tvguide: search timer \"%s\" sucessfully deleted", searchTimer->SearchString().c_str());
esyslog("tvguide: search timer \"%s\" sucessfully deleted", searchTimer->GetSearchString().c_str());
} else {
esyslog("tvguide: error deleting search timer \"%s\"", searchTimer->SearchString().c_str());
esyslog("tvguide: error deleting search timer \"%s\"", searchTimer->GetSearchString().c_str());
}
}
}

View File

@@ -46,7 +46,9 @@ public:
const cEvent **PerformSearch(Epgsearch_searchresults_v1_0 data, int &numResults);
void ReadEPGSearchTemplates(std::vector<TVGuideEPGSearchTemplate> *epgTemplates);
void GetSearchTimers(std::vector<cTVGuideSearchTimer> *timers);
void GetSearchExtCats(std::vector<std::string> *searchExtCats);
void GetChannelGroups(std::vector<std::string> *channelGroups);
void GetBlacklists(std::vector<std::string> *blacklists);
int CreateSearchTimer(std::string epgSearchString);
bool SaveSearchTimer(cTVGuideSearchTimer *searchTimer);
void DeleteSearchTimer(cTVGuideSearchTimer *searchTimer, bool delTimers);

View File

@@ -5,7 +5,7 @@
cRecMenu::cRecMenu(void) {
border = geoManager.borderRecMenus;
height = 2*border;
height = 2 * border;
headerHeight = 0;
footerHeight = 0;
currentHeight = 0;
@@ -54,25 +54,29 @@ int cRecMenu::CalculateOptimalWidth(void) {
}
bool cRecMenu::CalculateHeight(bool reDraw) {
int newHeight = 2*border;
if (header)
int newHeight = 2 * border;
bool returnvalue = false;
if (header) {
newHeight += headerHeight;
for (std::list<cRecMenuItem*>::iterator item = menuItems.begin(); item != menuItems.end(); item++) {
newHeight += (*item)->GetHeight();
}
if (footer)
for (std::list<cRecMenuItem*>::iterator item = menuItems.begin(); item != menuItems.end(); item++) {
newHeight += (*item)->GetHeight();
}
if (footer) {
newHeight += footerHeight;
}
y = (geoManager.osdHeight - newHeight) / 2;
if (newHeight != height) {
height = newHeight;
if (scrollable && !reDraw) {
width += scrollbarWidth + border;
}
return true;
returnvalue = true;
}
return false;
if (scrollable && !reDraw) {
width += scrollbarWidth + border;
returnvalue = true;
}
return returnvalue;
}
void cRecMenu::CreatePixmap(void) {
@@ -141,7 +145,6 @@ void cRecMenu::InitMenu(bool complete) {
}
void cRecMenu::AddMenuItem(cRecMenuItem *item, bool inFront) {
item->Show();
if (!inFront)
@@ -153,7 +156,7 @@ void cRecMenu::AddMenuItem(cRecMenuItem *item, bool inFront) {
bool cRecMenu::AddMenuItemInitial(cRecMenuItem *item, bool inFront) {
currentHeight += item->GetHeight();
int totalHeight = headerHeight + footerHeight + currentHeight + 2*border;
if (totalHeight >= geoManager.osdHeight - 10) {
if (totalHeight >= geoManager.osdHeight - 80) {
scrollable = true;
currentHeight -= item->GetHeight();
if (deleteMenuItems) {
@@ -434,14 +437,16 @@ void cRecMenu::JumpBegin(void) {
if (currentItem >= numItems)
break;
}
Arrange(true);
if (CalculateHeight(true))
CreatePixmap();
Arrange(false);
startIndex = 0;
stopIndex = numItems-1;
stopIndex = numItems - 1;
cRecMenuItem *first = menuItems.front();
first->setActive();
first->setBackground();
first->Draw();
Display(true);
Display(false);
}
}
@@ -470,7 +475,7 @@ void cRecMenu::JumpEnd(void) {
activeItem->setBackground();
ClearMenuItems();
int totalNumItems = GetTotalNumMenuItems();
int currentItem = totalNumItems-1;
int currentItem = totalNumItems - 1;
int itemsAdded = 0;
cRecMenuItem *newItem = NULL;
while (newItem = GetMenuItem(currentItem)) {
@@ -480,7 +485,9 @@ void cRecMenu::JumpEnd(void) {
if (itemsAdded >= numItems)
break;
}
Arrange(true);
if (CalculateHeight(true))
CreatePixmap();
Arrange(false);
stopIndex = totalNumItems;
startIndex = stopIndex - numItems;
if (footer) {
@@ -493,7 +500,7 @@ void cRecMenu::JumpEnd(void) {
last->setBackground();
last->Draw();
}
Display(true);
Display(false);
}
}
@@ -692,4 +699,4 @@ cImage *cRecMenu::createScrollbar(int width, int height, tColor clrBgr, tColor c
}
}
return image;
}
}

View File

@@ -275,7 +275,7 @@ cRecMenuItemInfo::~cRecMenuItemInfo(void) {
void cRecMenuItemInfo::CalculateHeight(int textWidth) {
wrapper.Set(*text, fontInfo, textWidth);
height = fontInfo->Height() * wrapper.Lines() + 2*border;
height = fontInfo->Height() * wrapper.Lines() + 2 * border;
}
void cRecMenuItemInfo::setBackground(void) {
@@ -300,15 +300,19 @@ cRecMenuItemInt::cRecMenuItemInt(cString text,
int initialVal,
int minVal,
int maxVal,
// bool refresh;
bool active,
int *callback,
eRecMenuState action) {
eRecMenuState action,
int indent) {
selectable = true;
this->text = text;
this->currentVal = initialVal;
this->minVal = minVal;
this->maxVal = maxVal;
// this->refresh = refresh;
this->active = active;
this->indent = indent;
this->callback = callback;
this->action = action;
height = 3 * font->Height() / 2;
@@ -348,7 +352,7 @@ void cRecMenuItemInt::setBackground() {
void cRecMenuItemInt::Draw(void) {
int textY = (height - font->Height()) / 2;
pixmap->DrawText(cPoint(10, textY), *text, colorText, colorTextBack, font);
pixmap->DrawText(cPoint(10 + indent * 30, textY), *text, colorText, colorTextBack, font);
DrawValue();
}
@@ -371,7 +375,7 @@ eRecMenuState cRecMenuItemInt::ProcessKey(eKeys Key) {
*callback = currentVal;
DrawValue();
}
return rmsConsumed;
return (currentVal == 0) ? rmsRefresh : rmsConsumed;
break;
case kRight:
fresh = true;
@@ -381,7 +385,7 @@ eRecMenuState cRecMenuItemInt::ProcessKey(eKeys Key) {
*callback = currentVal;
DrawValue();
}
return rmsConsumed;
return (currentVal == 1) ? rmsRefresh : rmsConsumed;
break;
case k0 ... k9:
if (fresh) {
@@ -410,13 +414,34 @@ cRecMenuItemBool::cRecMenuItemBool(cString text,
bool refresh,
bool active,
bool *callback,
eRecMenuState action) {
eRecMenuState action,
int indent) {
selectable = true;
this->text = text;
this->yes = initialVal;
this->refresh = refresh;
this->active = active;
this->callback = callback;
this->indent = indent;
this->action = action;
height = 3 * font->Height() / 2;
pixmapVal = NULL;
}
cRecMenuItemBool::cRecMenuItemBool(cString text,
bool initialVal,
bool refresh,
bool active,
int *callback,
eRecMenuState action,
int indent) {
selectable = true;
this->text = text;
this->yes = initialVal;
this->refresh = refresh;
this->active = active;
this->callback = (bool*)callback;
this->indent = indent;
this->action = action;
height = 3 * font->Height() / 2;
pixmapVal = NULL;
@@ -449,7 +474,7 @@ void cRecMenuItemBool::Show(void) {
void cRecMenuItemBool::Draw(void) {
int textY = (height - font->Height()) / 2;
pixmap->DrawText(cPoint(10, textY), *text, colorText, colorTextBack, font);
pixmap->DrawText(cPoint(10 + indent * 30, textY), *text, colorText, colorTextBack, font);
DrawValue();
}
@@ -494,7 +519,8 @@ cRecMenuItemSelect::cRecMenuItemSelect(cString text,
bool active,
int *callback,
eRecMenuState action,
bool refresh) {
bool refresh,
int indent) {
selectable = true;
this->text = text;
strings = Strings;
@@ -506,6 +532,7 @@ cRecMenuItemSelect::cRecMenuItemSelect(cString text,
this->active = active;
this->callback = callback;
this->refresh = refresh;
this->indent = indent;
this->action = action;
height = 3 * font->Height() / 2;
pixmapVal = NULL;
@@ -538,7 +565,7 @@ void cRecMenuItemSelect::Show(void) {
void cRecMenuItemSelect::Draw(void) {
int textY = (height - font->Height()) / 2;
pixmap->DrawText(cPoint(10, textY), *text, colorText, colorTextBack, font);
pixmap->DrawText(cPoint(10 + indent * 30, textY), *text, colorText, colorTextBack, font);
DrawValue();
}
@@ -602,12 +629,14 @@ cRecMenuItemSelectDirectory::cRecMenuItemSelectDirectory(cString text,
bool active,
char *callback,
eRecMenuState action,
bool isSearchTimer) {
bool isSearchTimer,
int indent) {
selectable = true;
this->text = text;
this->originalFolder = originalFolder;
this->active = active;
this->callback = callback;
this->indent = indent;
this->action = action;
height = 3 * font->Height() / 2;
pixmapVal = NULL;
@@ -646,7 +675,7 @@ void cRecMenuItemSelectDirectory::Show(void) {
void cRecMenuItemSelectDirectory::Draw(void) {
int textY = (height - font->Height()) / 2;
pixmap->DrawText(cPoint(10, textY), *text, colorText, colorTextBack, font);
pixmap->DrawText(cPoint(10 + indent * 30, textY), *text, colorText, colorTextBack, font);
DrawValue();
}
@@ -1297,7 +1326,8 @@ cRecMenuItemTime::cRecMenuItemTime(cString text,
int initialVal,
bool active,
int *callback,
eRecMenuState action) {
eRecMenuState action,
int indent) {
selectable = true;
this->text = text;
this->value = initialVal;
@@ -1307,6 +1337,7 @@ cRecMenuItemTime::cRecMenuItemTime(cString text,
fresh = true;
this->active = active;
this->callback = callback;
this->indent = indent;
this->action = action;
height = 3 * font->Height() / 2;
pixmapVal = NULL;
@@ -1339,7 +1370,7 @@ void cRecMenuItemTime::Show(void) {
void cRecMenuItemTime::Draw(void) {
int textY = (height - font->Height()) / 2;
pixmap->DrawText(cPoint(10, textY), *text, colorText, colorTextBack, font);
pixmap->DrawText(cPoint(10 + indent * 30, textY), *text, colorText, colorTextBack, font);
DrawValue();
}
@@ -1721,7 +1752,7 @@ cRecMenuItemTimerConflictHeader::cRecMenuItemTimerConflictHeader(time_t conflict
this->conflictStop = conflictStop;
this->overlapStart = overlapStart;
this->overlapStop = overlapStop;
height = 3*font->Height()/2;
height = 3 * font->Height() / 2;
pixmapStatus = NULL;
}
@@ -1795,7 +1826,7 @@ cRecMenuItemEvent::cRecMenuItemEvent(const cEvent *event,
this->action2 = action2;
iconActive = 0;
this->active = active;
height = font->Height() + 2*fontSmall->Height() + 10;
height = font->Height() + 2 * fontSmall->Height() + 10;
pixmapText = NULL;
pixmapIcons = NULL;
}
@@ -1929,7 +1960,8 @@ cRecMenuItemChannelChooser::cRecMenuItemChannelChooser(cString text,
const cChannel *initialChannel,
bool active,
int *callback,
eRecMenuState action) {
eRecMenuState action,
int indent) {
selectable = true;
this->text = text;
this->channel = initialChannel;
@@ -1941,8 +1973,10 @@ cRecMenuItemChannelChooser::cRecMenuItemChannelChooser(cString text,
fresh = true;
this->active = active;
this->callback = callback;
this->indent = indent;
this->action = action;
height = 2 * font->Height();
height = 3 * font->Height() / 2;
// height = 2 * font->Height();
pixmapChannel = NULL;
}
@@ -1973,7 +2007,7 @@ void cRecMenuItemChannelChooser::Show(void) {
void cRecMenuItemChannelChooser::Draw(void) {
int textY = (height - font->Height()) / 2;
pixmap->DrawText(cPoint(10, textY), *text, colorText, colorTextBack, font);
pixmap->DrawText(cPoint(10 + indent * 30, textY), *text, colorText, colorTextBack, font);
DrawValue();
}
@@ -2103,7 +2137,8 @@ eRecMenuState cRecMenuItemChannelChooser::ProcessKey(eKeys Key) {
cRecMenuItemDayChooser::cRecMenuItemDayChooser(cString text,
int weekdays,
bool active,
int *callback) {
int *callback,
int indent) {
selectable = true;
this->text = text;
if (weekdays < 1)
@@ -2111,7 +2146,8 @@ cRecMenuItemDayChooser::cRecMenuItemDayChooser(cString text,
this->weekdays = weekdays;
this->active = active;
this->callback = callback;
height = 2 * font->Height();
this->indent = indent;
height = 3 * font->Height() / 2;
selectedDay = 0;
pixmapWeekdays = NULL;
pixmapWeekdaysSelect = NULL;
@@ -2152,13 +2188,13 @@ void cRecMenuItemDayChooser::Show(void) {
void cRecMenuItemDayChooser::SetSizes(void) {
days = trVDR("MTWTFSS");
int maxWidth = 0;
for (unsigned i=0; i<days.length(); ++i) {
for (unsigned i = 0; i < days.length(); ++i) {
int charWidth = font->Width(days.at(i));
if (charWidth > maxWidth)
maxWidth = charWidth;
}
daysSize = min(maxWidth + 15, height-4);
daysX = width - 10 - 7*daysSize;
daysSize = min(maxWidth + 15, height - 4);
daysX = width - 10 - 7 * daysSize;
daysY = (height - daysSize) / 2;
}
@@ -2173,20 +2209,20 @@ void cRecMenuItemDayChooser::setBackground() {
void cRecMenuItemDayChooser::Draw(void) {
int textY = (height - font->Height()) / 2;
pixmap->DrawText(cPoint(10, textY), *text, colorText, colorTextBack, font);
pixmap->DrawText(cPoint(10 + indent * 30, textY), *text, colorText, colorTextBack, font);
DrawDays();
}
void cRecMenuItemDayChooser::DrawDays(void) {
pixmapWeekdays->Fill(clrTransparent);
int textY = (height - font->Height()) / 2;
pixmapWeekdays->DrawRectangle(cRect(daysX, daysY, 7*daysSize, daysSize), theme.Color(clrBorder));
pixmapWeekdays->DrawRectangle(cRect(daysX, daysY, 7 * daysSize, daysSize), theme.Color(clrBorder));
int currentX = daysX;
for (unsigned day=0; day<days.length(); ++day) {
for (unsigned day = 0; day < days.length(); ++day) {
cString strDay = cString::sprintf("%c", days.at(day));
pixmapWeekdays->DrawRectangle(cRect(currentX+2, daysY+2, daysSize-4, daysSize-4), theme.Color(clrBackground));
tColor colorDay = WeekDaySet(day)?theme.Color(clrRecMenuDayActive)
:theme.Color(clrRecMenuDayInactive);
pixmapWeekdays->DrawRectangle(cRect(currentX + 2, daysY + 2, daysSize - 4, daysSize - 4), theme.Color(clrBackground));
tColor colorDay = WeekDaySet(day) ? theme.Color(clrRecMenuDayActive)
: theme.Color(clrRecMenuDayInactive);
int textX = currentX + (daysSize - font->Width(*strDay)) / 2;
pixmapWeekdays->DrawText(cPoint(textX, textY), *strDay, colorDay, clrTransparent, font);
currentX += daysSize;
@@ -2196,7 +2232,7 @@ void cRecMenuItemDayChooser::DrawDays(void) {
void cRecMenuItemDayChooser::DrawHighlight(int day) {
pixmapWeekdaysSelect->Fill(clrTransparent);
if (day > -1) {
int currentX = daysX + day*daysSize;
int currentX = daysX + day * daysSize;
pixmapWeekdaysSelect->DrawRectangle(cRect(currentX, daysY, daysSize, daysSize), theme.Color(clrRecMenuDayHighlight));
}
}
@@ -2222,13 +2258,13 @@ eRecMenuState cRecMenuItemDayChooser::ProcessKey(eKeys Key) {
switch (Key & ~k_Repeat) {
case kLeft: {
selectedDay--;
if (selectedDay<0)
if (selectedDay < 0)
selectedDay += 7;
DrawHighlight(selectedDay);
return rmsConsumed;
break; }
case kRight: {
selectedDay = (selectedDay+1)%7;
selectedDay = (selectedDay + 1) % 7;
DrawHighlight(selectedDay);
return rmsConsumed;
break; }
@@ -2248,7 +2284,7 @@ cRecMenuItemRecording::cRecMenuItemRecording(const cRecording *recording, bool a
selectable = true;
this->recording = recording;
this->active = active;
height = font->Height() + 2*fontSmall->Height() + 10;
height = font->Height() + 2 * fontSmall->Height() + 10;
pixmapText = NULL;
}
@@ -2693,10 +2729,10 @@ void cRecMenuItemSearchTimer::SetPixmaps(void) {
void cRecMenuItemSearchTimer::Draw(void) {
int textX = DrawIcons();
bool timerIsActive = timer.Active();
bool timerIsActive = timer.IsActive();
pixmapText->Fill(clrTransparent);
textX += 20;
cString label = cString::sprintf("\"%s\"", timer.SearchString().c_str());
cString label = cString::sprintf("\"%s\"", timer.GetSearchString().c_str());
cString inactive = cString::sprintf("(%s)", tr("inactive"));
int numTimersActive = timer.GetNumTimers();
int numRecordings = timer.GetNumRecordings();
@@ -2822,7 +2858,7 @@ void cRecMenuItemFavorite::Draw(void) {
int textX = DrawIcons();
pixmapText->Fill(clrTransparent);
textX += 20;
cString label = cString::sprintf("\"%s\"", favorite.SearchString().c_str());
cString label = cString::sprintf("\"%s\"", favorite.GetSearchString().c_str());
pixmapText->DrawText(cPoint(textX, (height - fontLarge->Height())/2), *label, colorText, clrTransparent, fontLarge);
}

View File

@@ -46,7 +46,6 @@ enum eRecMenuState {
rmsSearchTimerOptions,
rmsSearchTimers,
rmsSearchTimerEdit,
rmsSearchTimerEditAdvanced,
rmsSearchTimerTest,
rmsSearchTimerSave,
rmsSearchTimerCreateWithTemplate,
@@ -195,6 +194,8 @@ private:
int *callback;
int minVal;
int maxVal;
// bool refresh;
int indent;
cPixmap *pixmapVal;
bool fresh;
void DrawValue(void);
@@ -203,9 +204,11 @@ public:
int initialVal,
int minVal,
int maxVal,
// bool refresh = false,
bool active = false,
int *callback = NULL,
eRecMenuState action = rmsNotConsumed);
eRecMenuState action = rmsNotConsumed,
int indent = 0);
virtual ~cRecMenuItemInt(void);
void SetPixmaps(void);
void Hide(void);
@@ -221,6 +224,7 @@ class cRecMenuItemBool : public cRecMenuItem {
private:
cString text;
bool yes;
int indent;
bool *callback;
cPixmap *pixmapVal;
bool refresh;
@@ -231,7 +235,15 @@ public:
bool refresh = false,
bool active = false,
bool *callback = NULL,
eRecMenuState action = rmsNotConsumed);
eRecMenuState action = rmsNotConsumed,
int indent = 0);
cRecMenuItemBool(cString text,
bool initialVal,
bool refresh = false,
bool active = false,
int *callback = NULL,
eRecMenuState action = rmsNotConsumed,
int indent = 0);
virtual ~cRecMenuItemBool(void);
void SetPixmaps(void);
void Hide(void);
@@ -248,6 +260,7 @@ private:
int currentVal;
int *callback;
bool refresh;
int indent;
std::vector<std::string> strings;
int numValues;
cPixmap *pixmapVal;
@@ -259,7 +272,8 @@ public:
bool active = false,
int *callback = NULL,
eRecMenuState action = rmsNotConsumed,
bool refresh = false);
bool refresh = false,
int indent = 0);
virtual ~cRecMenuItemSelect(void);
void SetPixmaps(void);
void Hide(void);
@@ -278,6 +292,7 @@ private:
std::vector<std::string> folders;
int currentVal;
char *callback;
int indent;
int numValues;
cPixmap *pixmapVal;
void DrawValue(void);
@@ -289,7 +304,8 @@ public:
bool active = false,
char *callback = NULL,
eRecMenuState action = rmsNotConsumed,
bool isSearchTimer = false);
bool isSearchTimer = false,
int indent = 0);
virtual ~cRecMenuItemSelectDirectory(void);
void SetPixmaps(void);
void Hide(void);
@@ -363,6 +379,7 @@ private:
cString text;
int value;
int *callback;
int indent;
int mm;
int hh;
int pos;
@@ -374,7 +391,8 @@ public:
int initialVal,
bool active = false,
int *callback = NULL,
eRecMenuState action = rmsNotConsumed);
eRecMenuState action = rmsNotConsumed,
int indent = 0);
virtual ~cRecMenuItemTime(void);
void SetPixmaps(void);
void Hide(void);
@@ -494,6 +512,7 @@ private:
const cChannel *channel;
int channelNumber;
int *callback;
int indent;
bool initialChannelSet;
bool fresh;
cPixmap *pixmapChannel;
@@ -503,7 +522,8 @@ public:
const cChannel *initialChannel,
bool active = false,
int *callback = NULL,
eRecMenuState action = rmsNotConsumed);
eRecMenuState action = rmsNotConsumed,
int indent = 0);
virtual ~cRecMenuItemChannelChooser(void);
void SetPixmaps(void);
void Hide(void);
@@ -519,6 +539,7 @@ private:
cString text;
int weekdays;
int *callback;
int indent;
bool epgsearchMode;
std::string days;
int daysX;
@@ -536,7 +557,8 @@ public:
cRecMenuItemDayChooser (cString text,
int weekdays,
bool active = false,
int *callback = NULL);
int *callback = NULL,
int indent = 0);
virtual ~cRecMenuItemDayChooser(void);
void SetPixmaps(void);
void Hide(void);

View File

@@ -141,7 +141,6 @@ eOSState cRecMenuManager::StateMachine(eRecMenuState nextState) {
case rmsDeleteTimerConflictMenu: {
//caller: cRecMenuTimerConflict
//delete timer out of current timer conflict
dsyslog ("%s %s %d\n", __FILE__, __func__, __LINE__);
int timerIndex;
if (cRecMenuTimerConflict *menu = dynamic_cast<cRecMenuTimerConflict*>(activeMenu)) {
timerIndex = menu->GetTimerConflictIndex();
@@ -193,7 +192,6 @@ eOSState cRecMenuManager::StateMachine(eRecMenuState nextState) {
case rmsDeleteTimer:
//caller: main menu
//delete timer for active event
dsyslog ("%s %s %d\n", __FILE__, __func__, __LINE__);
delete activeMenu;
if (recManager->IsRecorded(event)) {
activeMenu = new cRecMenuAskDeleteTimer(event);
@@ -313,7 +311,7 @@ eOSState cRecMenuManager::StateMachine(eRecMenuState nextState) {
} else {
std::vector<std::string> channelGroups;
recManager->GetChannelGroups(&channelGroups);
activeMenu = new cRecMenuSearchTimerEdit(searchTimer, false, channelGroups);
activeMenu = new cRecMenuSearchTimerEdit(searchTimer, channelGroups);
}
}
activeMenu->Display();
@@ -322,23 +320,20 @@ eOSState cRecMenuManager::StateMachine(eRecMenuState nextState) {
//caller: main menu
DisplaySearchTimerList();
break; }
case rmsSearchTimerEdit:
case rmsSearchTimerEditAdvanced: {
case rmsSearchTimerEdit: {
//caller: cRecMenuSearchTimers, cRecMenuSearchTimerEdit, cRecMenuSearchTimerTemplates
cTVGuideSearchTimer searchTimer;
bool advancedOptions = false;
if (cRecMenuSearchTimers *menu = dynamic_cast<cRecMenuSearchTimers*>(activeMenu)) {
searchTimer = menu->GetSearchTimer();
} else if (cRecMenuSearchTimerEdit *menu = dynamic_cast<cRecMenuSearchTimerEdit*>(activeMenu)) {
searchTimer = menu->GetSearchTimer();
advancedOptions = (nextState == rmsSearchTimerEditAdvanced) ? true : false;
} else if (cRecMenuSearchTimerTemplates *menu = dynamic_cast<cRecMenuSearchTimerTemplates*>(activeMenu)) {
searchTimer = menu->GetSearchTimer();
} else break;
delete activeMenu;
std::vector<std::string> channelGroups;
recManager->GetChannelGroups(&channelGroups);
activeMenu = new cRecMenuSearchTimerEdit(searchTimer, advancedOptions, channelGroups);
activeMenu = new cRecMenuSearchTimerEdit(searchTimer, channelGroups);
activeMenu->Display();
break; }
case rmsSearchTimerTest: {
@@ -367,12 +362,12 @@ eOSState cRecMenuManager::StateMachine(eRecMenuState nextState) {
if (numSearchResults) {
activeMenuBuffer = activeMenu;
activeMenuBuffer->Hide();
activeMenu = new cRecMenuSearchTimerResults(searchTimer.SearchString(), searchResult, numSearchResults, "", recState);
activeMenu = new cRecMenuSearchTimerResults(searchTimer.GetSearchString(), searchResult, numSearchResults, "", recState);
activeMenu->Display();
} else {
activeMenuBuffer = activeMenu;
activeMenuBuffer->Hide();
activeMenu = new cRecMenuSearchTimerNothingFound(searchTimer.SearchString());
activeMenu = new cRecMenuSearchTimerNothingFound(searchTimer.GetSearchString());
activeMenu->Display();
}
break; }

View File

@@ -6,13 +6,11 @@
// --- cRecMenuMain ---------------------------------------------------------
cRecMenuMain::cRecMenuMain(bool epgSearchAvailable, bool timerActive, bool switchTimerActive) {
eRecMenuState action = rmsInstantRecord;
dsyslog ("%s %s %d\n", __FILE__, __func__, __LINE__);
if (!timerActive) {
if (tvguideConfig.instRecFolderMode == eFolderSelect)
action = rmsInstantRecordFolder;
AddMenuItem(new cRecMenuItemButton(tr("Instant Record"), action, true, false, false, true));
} else {
dsyslog ("%s %s %d\n", __FILE__, __func__, __LINE__);
AddMenuItem(new cRecMenuItemButton(tr("Delete Timer"), rmsDeleteTimer, true, false, false, true));
AddMenuItem(new cRecMenuItemButton(tr("Edit Timer"), rmsEditTimer, false, false, false, true));
}
@@ -149,7 +147,6 @@ cRecMenuConfirmTimer::cRecMenuConfirmTimer(const cEvent *event) {
// --- cRecMenuConfirmDeleteTimer ---------------------------------------------------------
cRecMenuConfirmDeleteTimer::cRecMenuConfirmDeleteTimer(const cEvent *event) {
dsyslog ("%s %s %d\n", __FILE__, __func__, __LINE__);
SetWidthPercent(50);
#if VDRVERSNUM >= 20301
LOCK_CHANNELS_READ;
@@ -177,7 +174,6 @@ cRecMenuConfirmDeleteTimer::cRecMenuConfirmDeleteTimer(const cEvent *event) {
// --- cRecMenuAskDeleteTimer ---------------------------------------------------------
cRecMenuAskDeleteTimer::cRecMenuAskDeleteTimer(const cEvent *event) {
dsyslog ("%s %s %d\n", __FILE__, __func__, __LINE__);
SetWidthPercent(50);
#if VDRVERSNUM >= 20301
LOCK_CHANNELS_READ;
@@ -632,7 +628,7 @@ cRecMenuSearchTimerTemplates::cRecMenuSearchTimerTemplates(cTVGuideSearchTimer s
this->templates = templates;
SetWidthPercent(70);
cString message = tr("Configure Search Timer for Search String");
cString infoText = cString::sprintf("%s:\n%s", *message, searchTimer.SearchString().c_str());
cString infoText = cString::sprintf("%s:\n%s", *message, searchTimer.GetSearchString().c_str());
cRecMenuItemInfo *infoItem = new cRecMenuItemInfo(*infoText, true);
infoItem->CalculateHeight(width - 2 * border);
SetHeader(infoItem);
@@ -722,45 +718,28 @@ int cRecMenuSearchTimers::GetTotalNumMenuItems(void) {
}
// --- cRecMenuSearchTimerEdit ---------------------------------------------------------
cRecMenuSearchTimerEdit::cRecMenuSearchTimerEdit(cTVGuideSearchTimer searchTimer, bool advancedOptions, std::vector<std::string> channelGroups) {
cRecMenuSearchTimerEdit::cRecMenuSearchTimerEdit(cTVGuideSearchTimer searchTimer, std::vector<std::string> channelGroups) {
init = true;
deleteMenuItems = false;
this->advancedOptions = advancedOptions;
this->searchTimer = searchTimer;
this->sT = searchTimer;
this->channelGroups = channelGroups;
strncpy(searchString, searchTimer.SearchString().c_str(), TEXTINPUTLENGTH);
timerActive = searchTimer.Active();
mode = searchTimer.SearchMode();
useTitle = searchTimer.UseTitle();
useSubtitle = searchTimer.UseSubtitle();
useDescription = searchTimer.UseDescription();
useChannel = searchTimer.UseChannel();
startChannel = searchTimer.StartChannel();
stopChannel = searchTimer.StopChannel();
channelGroup = searchTimer.ChannelGroup();
strncpy(searchString, sT.searchString.c_str(), TEXTINPUTLENGTH);
channelgroupIndex = -1;
useTime = searchTimer.UseTime();
startTime = searchTimer.StartTime();
stopTime = searchTimer.StopTime();
useDayOfWeek = searchTimer.UseDayOfWeek();
dayOfWeek = searchTimer.DayOfWeek();
priority = searchTimer.Priority();
lifetime = searchTimer.Lifetime();
useEpisode = searchTimer.UseEpisode();
std::string dir = searchTimer.Directory();
std::string dir = sT.directory;
strncpy(directory, dir.c_str(), TEXTINPUTLENGTH);
marginStart = searchTimer.MarginStart();
marginStop = searchTimer.MarginStop();
useVPS = searchTimer.UseVPS();
avoidRepeats = searchTimer.AvoidRepeats();
allowedRepeats = searchTimer.AllowedRepeats();
compareTitle = searchTimer.CompareTitle();
compareSubtitle = searchTimer.CompareSubtitle();
compareSummary = searchTimer.CompareSummary();
useInFavorites = searchTimer.UseInFavorites();
dayOfWeek = sT.DayOfWeek();
sT.GetSearchModes(&searchModes);
sT.GetUseChannelModes(&useChannelModes);
sT.GetCompareDateModes(&compareDateModes);
sT.GetSearchTimerModes(&searchTimerModes);
sT.GetDelModes(&delModes);
channelgroupIndex = SplitChannelGroups(&channelGroups, &channelgroups);
SetWidthPercent(70);
cString infoText;
if (searchTimer.GetID() > -1) {
if (sT.GetID() > -1) {
infoText = tr("Configure Search Timer Options");
} else {
infoText = tr("Create Search Timer");
@@ -768,9 +747,8 @@ cRecMenuSearchTimerEdit::cRecMenuSearchTimerEdit(cTVGuideSearchTimer searchTimer
cRecMenuItemInfo *infoItem = new cRecMenuItemInfo(*infoText, true);
infoItem->CalculateHeight(width - 2 * border);
SetHeader(infoItem);
cRecMenuItemButtonYesNo *footerButton = new cRecMenuItemButtonYesNo(tr("Save Search Timer"), tr("Cancel"), rmsSearchTimerSave, rmsSearchTimers, (advancedOptions)?false:true);
cRecMenuItemButtonYesNo *footerButton = new cRecMenuItemButtonYesNo(tr("Save Search Timer"), tr("Cancel"), rmsSearchTimerSave, rmsSearchTimers, false);
SetFooter(footerButton);
InitMenuItems();
CreateMenuItems();
}
@@ -779,27 +757,6 @@ cRecMenuSearchTimerEdit::~cRecMenuSearchTimerEdit(void) {
delete *it;
}
mainMenuItems.clear();
for (std::vector<cRecMenuItem*>::iterator it = useChannelSubMenu.begin(); it != useChannelSubMenu.end(); it++) {
delete *it;
}
useChannelSubMenu.clear();
for (std::vector<cRecMenuItem*>::iterator it = useGroupSubMenu.begin(); it != useGroupSubMenu.end(); it++) {
delete *it;
}
useGroupSubMenu.clear();
for (std::vector<cRecMenuItem*>::iterator it = useTimeSubMenu.begin(); it != useTimeSubMenu.end(); it++) {
delete *it;
}
useTimeSubMenu.clear();
for (std::vector<cRecMenuItem*>::iterator it = useDayOfWeekSubMenu.begin(); it != useDayOfWeekSubMenu.end(); it++) {
delete *it;
}
useDayOfWeekSubMenu.clear();
for (std::vector<cRecMenuItem*>::iterator it = avoidRepeatSubMenu.begin(); it != avoidRepeatSubMenu.end(); it++) {
delete *it;
}
avoidRepeatSubMenu.clear();
currentMenuItems.clear();
}
int cRecMenuSearchTimerEdit::SplitChannelGroups(std::vector<std::string> *channelGroups, std::vector<std::string> *channelgroups) {
@@ -809,179 +766,226 @@ int cRecMenuSearchTimerEdit::SplitChannelGroups(std::vector<std::string> *channe
std::string a = *it;
splitstring s(a.c_str());
std::vector<std::string> value = s.split('|', 0);
dsyslog ("%s %s %d %s\n", __FILE__, __func__, __LINE__, s.c_str());
std::vector<std::string>::iterator ito = value.begin();
channelgroups->push_back(*ito);
std::string b = *ito;
if (b.compare(channelGroup) == 0)
std::string b = *ito;
if (b.compare(sT.channelGroup) == 0)
j = i;
i++;
}
return j;
}
void cRecMenuSearchTimerEdit::InitMenuItems(void) {
dsyslog ("%s %s %d\n", __FILE__, __func__, __LINE__);
void cRecMenuSearchTimerEdit::CreateMenuItems(void) {
useChannelPos = 6;
useTimePos = 7;
useDayOfWeekPos = 8;
avoidRepeatsPos = 14;
int activeMenuItem = 0;
std::vector<std::string> searchModes;
searchTimer.GetSearchModes(&searchModes);
std::vector<std::string> useChannelModes;
searchTimer.GetUseChannelModes(&useChannelModes);
channelgroupIndex = SplitChannelGroups(&channelGroups, &channelgroups);
if (mainMenuItems.size() > 0) {
for (long unsigned int index = 0; index < mainMenuItems.size(); index++) {
if (mainMenuItems[index]->isActive()) {
activeMenuItem = index;
break;
}
}
mainMenuItems.clear();
}
mainMenuItems.push_back(new cRecMenuItemText(tr("Search String"), searchString, TEXTINPUTLENGTH, false, searchString));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Active"), timerActive, false, false, &timerActive, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemSelect(tr("Search Mode"), searchModes, mode, false, &mode, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Use Title"), useTitle, false, false, &useTitle, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Use Subtitle"), useSubtitle, false, false, &useSubtitle, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Use Description"), useDescription, false, false, &useDescription, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemSelect(tr("Limit Channels"), useChannelModes, useChannel, false, &useChannel, rmsSearchTimerSave, true));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Use Time"), useTime, true, false, &useTime, rmsSearchTimerSave));
if (!advancedOptions) {
mainMenuItems.push_back(new cRecMenuItemButton(tr("Display advanced Options"), rmsSearchTimerEditAdvanced, false));
} else {
mainMenuItems.push_back(new cRecMenuItemBool(tr("Limit Days of the Week"), useDayOfWeek, true, false, &useDayOfWeek, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemInt(tr("Priority"), priority, 0, 99, false, &priority, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemInt(tr("Lifetime"), lifetime, 0, 99, false, &lifetime, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemInt(tr("Time margin for start in minutes"), marginStart, 0, 30, false, &marginStart, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemInt(tr("Time margin for stop in minutes"), marginStop, 0, 30, false, &marginStop, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Series Recording"), useEpisode, false, false, &useEpisode, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemSelectDirectory(tr("Folder"), std::string(directory), false, directory, rmsSearchTimerSave, true));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Use VPS"), useVPS, false, false, &useVPS, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Avoid Repeats"), avoidRepeats, true, false, &avoidRepeats, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Use in Favorites"), useInFavorites, false, false, &useInFavorites, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemButton(tr("Hide advanced Options"), rmsSearchTimerEdit, false));
mainMenuItems.push_back(new cRecMenuItemText(tr("Search term"), searchString, TEXTINPUTLENGTH, init, searchString));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Active"), sT.useAsSearchTimer, true, false, &sT.useAsSearchTimer, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemSelect(tr("Search mode"), searchModes, sT.mode, false, &sT.mode, rmsSearchTimerSave, true));
if (sT.mode == 5) {
mainMenuItems.push_back(new cRecMenuItemInt(tr("Tolerance"), sT.fuzzyTolerance, 1, 9, false, &sT.fuzzyTolerance, rmsSearchTimerSave, 1));
}
mainMenuItems.push_back(new cRecMenuItemBool(tr("Match case"), sT.useCase, false, false, &sT.useCase, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Use title"), sT.useTitle, false, false, &sT.useTitle, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Use subtitle"), sT.useSubtitle, false, false, &sT.useSubtitle, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Use description"), sT.useDescription, false, false, &sT.useDescription, rmsSearchTimerSave));
// mainMenuItems.push_back(new cRecMenuItemBool(tr("Use content descriptor"), sT.useContentDescriptors, false, false, &sT.useContentDescriptors, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemSelect(tr("Use channel"), useChannelModes, sT.useChannel, false, &sT.useChannel, rmsSearchTimerSave, true));
if (sT.useChannel == 1) {
startChannel = (sT.channelMin) ? sT.channelMin->Number() : 0;
stopChannel = (sT.channelMax) ? sT.channelMax->Number() : 0;
if (startChannel == 0) startChannel = 1;
if (stopChannel == 0) stopChannel = 1;
#if VDRVERSNUM >= 20301
{
LOCK_CHANNELS_READ;
mainMenuItems.push_back(new cRecMenuItemChannelChooser(tr("from channel"), Channels->GetByNumber(startChannel), false, &startChannel, rmsSearchTimerSave, 1));
mainMenuItems.push_back(new cRecMenuItemChannelChooser(tr("to channel"), Channels->GetByNumber(stopChannel), false, &stopChannel, rmsSearchTimerSave, 1));
}
#else
mainMenuItems.push_back(new cRecMenuItemChannelChooser(tr("from channel"), Channels.GetByNumber(startChannel), false, &startChannel, rmsSearchTimerSave, 1));
mainMenuItems.push_back(new cRecMenuItemChannelChooser(tr("to channel"), Channels.GetByNumber(stopChannel), false, &stopChannel, rmsSearchTimerSave, 1));
#endif
}
else if ((sT.useChannel == 2) && (channelgroups.size() > 0)) {
mainMenuItems.push_back(new cRecMenuItemSelect(tr("Channel group"), channelgroups, channelgroupIndex, false, &channelgroupIndex, rmsSearchTimerSave, false, 1));
}
mainMenuItems.push_back(new cRecMenuItemBool(tr("Use time"), sT.useTime, true, false, &sT.useTime, rmsSearchTimerSave));
if (sT.useTime) {
mainMenuItems.push_back(new cRecMenuItemTime(tr("Start after"), sT.startTime, false, &sT.startTime, rmsSearchTimerSave, 1));
mainMenuItems.push_back(new cRecMenuItemTime(tr("Start before"), sT.stopTime, false, &sT.stopTime, rmsSearchTimerSave, 1));
}
mainMenuItems.push_back(new cRecMenuItemBool(tr("Use duration"), sT.useDuration, true, false, &sT.useDuration, rmsSearchTimerSave));
if (sT.useDuration) {
mainMenuItems.push_back(new cRecMenuItemTime(tr("Min. duration"), sT.minDuration, false, &sT.minDuration, rmsSearchTimerSave, 1));
mainMenuItems.push_back(new cRecMenuItemTime(tr("Max. duration"), sT.maxDuration, false, &sT.maxDuration, rmsSearchTimerSave, 1));
}
mainMenuItems.push_back(new cRecMenuItemBool(tr("Use day of week"), sT.useDayOfWeek, true, false, &sT.useDayOfWeek, rmsSearchTimerSave));
if (sT.useDayOfWeek)
mainMenuItems.push_back(new cRecMenuItemDayChooser(tr("Day of week"), dayOfWeek, false, &dayOfWeek, 1));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Use in Favorites"), sT.useInFavorites, false, false, &sT.useInFavorites, rmsSearchTimerSave));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Use as search timer"), sT.useAsSearchTimer, true, false, &sT.useAsSearchTimer, rmsSearchTimerSave));
if (sT.useAsSearchTimer) {
mainMenuItems.push_back(new cRecMenuItemSelect(tr("Action"), searchTimerModes, sT.action, false, &sT.action, rmsSearchTimerSave, true, 1));
if (sT.action == searchTimerActionSwitchOnly) {
mainMenuItems.push_back(new cRecMenuItemInt(tr("Switch ... minutes before start"), sT.switchMinsBefore, 0, 99, false, &sT.switchMinsBefore, rmsSearchTimerSave, 2));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Unmute sound"), sT.unmuteSoundOnSwitch, false, false, &sT.unmuteSoundOnSwitch, rmsSearchTimerSave, 2));
}
if (sT.action == searchTimerActionAnnounceAndSwitch) {
mainMenuItems.push_back(new cRecMenuItemInt(tr("Ask ... minutes before start"), sT.switchMinsBefore, 0, 99, false, &sT.switchMinsBefore, rmsSearchTimerSave, 2));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Unmute sound"), sT.unmuteSoundOnSwitch, false, false, &sT.unmuteSoundOnSwitch, rmsSearchTimerSave, 2));
}
if ((sT.action == searchTimerActionRecord) || (sT.action == searchTimerActionInactiveRecord)) {
mainMenuItems.push_back(new cRecMenuItemBool(tr("Series Recording"), sT.useEpisode, false, false, &sT.useEpisode, rmsSearchTimerSave, 2));
mainMenuItems.push_back(new cRecMenuItemSelectDirectory(tr("Directory"), std::string(directory), false, directory, rmsSearchTimerSave, true, 2));
mainMenuItems.push_back(new cRecMenuItemInt(tr("Delete recordings after ... days"), sT.delAfterDays, 0, 999, false, &sT.delAfterDays, rmsSearchTimerSave, 2));
if (sT.delAfterDays > 0) {
mainMenuItems.push_back(new cRecMenuItemInt(tr("Keep ... recordings"), sT.recordingsKeep, 0, 999, false, &sT.recordingsKeep, rmsSearchTimerSave, 3));
}
mainMenuItems.push_back(new cRecMenuItemInt(tr("Pause when ... recordings exist"), sT.pauseOnNrRecordings, 0, 999, false, &sT.pauseOnNrRecordings, rmsSearchTimerSave, 2));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Avoid Repeats"), sT.avoidRepeats, true, false, &sT.avoidRepeats, rmsSearchTimerSave, 2));
if (sT.avoidRepeats) {
mainMenuItems.push_back(new cRecMenuItemInt(tr("Allowed repeats"), sT.allowedRepeats, 0, 99, false, &sT.allowedRepeats, rmsSearchTimerSave, 3));
if (sT.allowedRepeats > 0) {
mainMenuItems.push_back(new cRecMenuItemInt(tr("Only repeats within ... days"), sT.repeatsWithinDays, 0, 999, false, &sT.repeatsWithinDays, rmsSearchTimerSave, 4));
}
mainMenuItems.push_back(new cRecMenuItemBool(tr("Compare Title"), sT.compareTitle, false, false, &sT.compareTitle, rmsSearchTimerSave, 3));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Compare Subtitle"), sT.compareSubtitle, false, false, &sT.compareSubtitle, rmsSearchTimerSave, 3));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Compare Description"), sT.compareSummary, true, false, &sT.compareSummary, rmsSearchTimerSave, 3));
if (sT.compareSummary) {
mainMenuItems.push_back(new cRecMenuItemInt(tr("Min. match in %"), sT.compareSummaryMatchInPercent, 1, 100, false, &sT.compareSummaryMatchInPercent, rmsSearchTimerSave, 4));
}
mainMenuItems.push_back(new cRecMenuItemSelect(tr("Compare date"), compareDateModes, sT.compareDate, false, &sT.compareDate, rmsSearchTimerSave, false, 3));
}
mainMenuItems.push_back(new cRecMenuItemInt(tr("Priority"), sT.priority, 0, 99, false, &sT.priority, rmsSearchTimerSave, 2));
mainMenuItems.push_back(new cRecMenuItemInt(tr("Lifetime"), sT.lifetime, 0, 99, false, &sT.lifetime, rmsSearchTimerSave, 2));
mainMenuItems.push_back(new cRecMenuItemInt(tr("Time margin for start in minutes"), sT.marginStart, 0, 30, false, &sT.marginStart, rmsSearchTimerSave, 2));
mainMenuItems.push_back(new cRecMenuItemInt(tr("Time margin for stop in minutes"), sT.marginStop, 0, 30, false, &sT.marginStop, rmsSearchTimerSave, 2));
mainMenuItems.push_back(new cRecMenuItemBool(tr("Use VPS"), sT.useVPS, false, false, &sT.useVPS, rmsSearchTimerSave, 2));
mainMenuItems.push_back(new cRecMenuItemSelect(tr("Auto delete"), delModes, sT.delMode, false, &sT.delMode, rmsSearchTimerSave, true, 2));
if (sT.delMode == 1)
mainMenuItems.push_back(new cRecMenuItemInt(tr("after ... recordings"), sT.delAfterCountRecs, 0, 999, false, &sT.delAfterCountRecs, rmsSearchTimerSave, 3));
else if (sT.delMode == 2)
mainMenuItems.push_back(new cRecMenuItemInt(tr("after ... days after first rec."), sT.delAfterDaysOfFirstRec, 0, 999, false, &sT.delAfterDaysOfFirstRec, rmsSearchTimerSave, 3));
}
}
mainMenuItems.push_back(new cRecMenuItemButton(tr("Display Results for Search Timer"), rmsSearchTimerTest, false));
if (startChannel == 0)
startChannel = 1;
if (stopChannel == 0)
stopChannel = 1;
#if VDRVERSNUM >= 20301
LOCK_CHANNELS_READ;
useChannelSubMenu.push_back(new cRecMenuItemChannelChooser(tr("Start Channel"), Channels->GetByNumber(startChannel), false, &startChannel, rmsSearchTimerSave));
useChannelSubMenu.push_back(new cRecMenuItemChannelChooser(tr("Stop Channel"), Channels->GetByNumber(stopChannel), false, &stopChannel, rmsSearchTimerSave));
#else
useChannelSubMenu.push_back(new cRecMenuItemChannelChooser(tr("Start Channel"), Channels.GetByNumber(startChannel), false, &startChannel, rmsSearchTimerSave));
useChannelSubMenu.push_back(new cRecMenuItemChannelChooser(tr("Stop Channel"), Channels.GetByNumber(stopChannel), false, &stopChannel, rmsSearchTimerSave));
#endif
useGroupSubMenu.push_back(new cRecMenuItemSelect(tr("Channel Group"), channelgroups, channelgroupIndex, false, &channelgroupIndex, rmsSearchTimerSave));
useTimeSubMenu.push_back(new cRecMenuItemTime(tr("Start after"), startTime, false, &startTime, rmsSearchTimerSave));
useTimeSubMenu.push_back(new cRecMenuItemTime(tr("Start before"), stopTime, false, &stopTime, rmsSearchTimerSave));
if (advancedOptions) {
useDayOfWeekSubMenu.push_back(new cRecMenuItemDayChooser(tr("Select Days"), dayOfWeek, false, &dayOfWeek));
avoidRepeatSubMenu.push_back(new cRecMenuItemInt(tr("Number of allowed repeats"), allowedRepeats, 0, 30, false, &allowedRepeats, rmsSearchTimerSave));
avoidRepeatSubMenu.push_back(new cRecMenuItemBool(tr("Compare Title"), compareTitle, false, false, &compareTitle, rmsSearchTimerSave));
avoidRepeatSubMenu.push_back(new cRecMenuItemBool(tr("Compare Subtitle"), compareSubtitle, false, false, &compareSubtitle, rmsSearchTimerSave));
avoidRepeatSubMenu.push_back(new cRecMenuItemBool(tr("Compare Description"), compareSummary, false, false, &compareSummary, rmsSearchTimerSave));
}
}
void cRecMenuSearchTimerEdit::CreateMenuItems(void) {
dsyslog ("%s %s %d\n", __FILE__, __func__, __LINE__);
bool reDraw = false;
if (GetCurrentNumMenuItems() > 0) {
InitMenu(false);
currentMenuItems.clear();
reDraw = true;
}
int numMainMenuItems = mainMenuItems.size();
for (int i = 0; i < numMainMenuItems; i++) {
currentMenuItems.push_back(mainMenuItems[i]);
if ((i == useChannelPos) && (useChannel == 1))
AddSubMenu(&useChannelSubMenu);
else if ((i == useChannelPos) && (useChannel == 2) && (channelgroups.size() > 0))
AddSubMenu(&useGroupSubMenu);
else if ((i == useTimePos) && useTime)
AddSubMenu(&useTimeSubMenu);
else if (advancedOptions && (i == useDayOfWeekPos) && useDayOfWeek)
AddSubMenu(&useDayOfWeekSubMenu);
else if (advancedOptions && (i == avoidRepeatsPos) && avoidRepeats)
AddSubMenu(&avoidRepeatSubMenu);
}
numMenuItems = mainMenuItems.size();
int numMenuItemsAll = currentMenuItems.size();
int start = GetStartIndex();
for (int i = start; i < numMenuItemsAll; i++) {
if ((i == start) && !reDraw && advancedOptions) {
currentMenuItems[i]->setActive();
}
if (!AddMenuItemInitial(currentMenuItems[i])) {
for (int i = start; i < numMenuItems; i++) {
if (!AddMenuItemInitial(mainMenuItems[i])) {
break;
}
}
numMenuItems = currentMenuItems.size();
CalculateHeight();
if (reDraw)
mainMenuItems[activeMenuItem]->setActive();
if (init) {
init = !init;
}
CalculateHeight(!reDraw);
CreatePixmap();
Arrange();
}
void cRecMenuSearchTimerEdit::AddSubMenu(std::vector<cRecMenuItem*> *subMenu) {
for (std::vector<cRecMenuItem*>::iterator it = subMenu->begin(); it < subMenu->end(); it++) {
currentMenuItems.push_back(*it);
}
}
cTVGuideSearchTimer cRecMenuSearchTimerEdit::GetSearchTimer(void) {
dsyslog ("%s %s %d\n", __FILE__, __func__, __LINE__);
searchTimer.SetSearchString(searchString);
searchTimer.SetActive(timerActive);
searchTimer.SetSearchMode(mode);
searchTimer.SetUseTitle(useTitle);
searchTimer.SetUseSubtitle(useSubtitle);
searchTimer.SetUseDesription(useDescription);
if (useChannel == 1) {
searchTimer.SetStartChannel(startChannel);
searchTimer.SetStopChannel(stopChannel);
searchTimer.SetSearchMode(sT.mode);
searchTimer.SetFuzzyTolerance(sT.fuzzyTolerance);
searchTimer.SetUseCase(sT.useCase);
searchTimer.SetUseTitle(sT.useTitle);
searchTimer.SetUseSubtitle(sT.useSubtitle);
searchTimer.SetUseDesription(sT.useDescription);
if (sT.useChannel == 1) {
#if VDRVERSNUM >= 20301
{
LOCK_CHANNELS_READ;
sT.channelMin = Channels->GetByNumber(startChannel);
sT.channelMax = Channels->GetByNumber(stopChannel);
}
#else
sT.channelMin = Channels.GetByNumber(startChannel);
sT.channelMax = Channels.GetByNumber(stopChannel);
#endif
searchTimer.SetStartChannel(sT.channelMin);
searchTimer.SetStopChannel(sT.channelMax);
}
if (useChannel == 2) {
if (sT.useChannel == 2) {
if (channelgroups.size() > 0) {
std::string & channelGroup = channelgroups[channelgroupIndex];
searchTimer.SetChannelGroup(channelGroup);
} else {
useChannel = 0;
sT.useChannel = 0;
}
}
searchTimer.SetUseChannel(useChannel);
searchTimer.SetUseTime(useTime);
if (useTime) {
searchTimer.SetStartTime(startTime);
searchTimer.SetStopTime(stopTime);
searchTimer.SetUseChannel(sT.useChannel);
searchTimer.SetUseTime(sT.useTime);
if (sT.useTime) {
searchTimer.SetStartTime(sT.startTime);
searchTimer.SetStopTime(sT.stopTime);
}
searchTimer.SetUseDayOfWeek(useDayOfWeek);
if (useDayOfWeek) {
searchTimer.SetUseDuration(sT.useDuration);
if (sT.useDuration) {
searchTimer.SetMinDuration(sT.minDuration);
searchTimer.SetMaxDuration(sT.maxDuration);
}
searchTimer.SetUseDayOfWeek(sT.useDayOfWeek);
if (sT.useDayOfWeek) {
searchTimer.SetDayOfWeek(dayOfWeek);
}
searchTimer.SetPriority(priority);
searchTimer.SetLifetime(lifetime);
searchTimer.SetUseEpisode(useEpisode);
searchTimer.SetUseAsSearchTimer(sT.useAsSearchTimer);
searchTimer.SetAction(sT.action);
searchTimer.SetSwitchMinsBefore(sT.switchMinsBefore);
searchTimer.SetUnmuteSoundOnSwitch(sT.unmuteSoundOnSwitch);
searchTimer.SetPriority(sT.priority);
searchTimer.SetLifetime(sT.lifetime);
searchTimer.SetUseEpisode(sT.useEpisode);
std::string dir(directory);
std::replace(dir.begin(), dir.end(), '/', '~');
searchTimer.SetDirectory(dir);
searchTimer.SetMarginStart(marginStart);
searchTimer.SetMarginStop(marginStop);
searchTimer.SetUseVPS(useVPS);
searchTimer.SetAvoidRepeats(avoidRepeats);
if (avoidRepeats) {
searchTimer.SetAllowedRepeats(allowedRepeats);
searchTimer.SetCompareTitle(compareTitle);
searchTimer.SetCompareSubtitle(compareSubtitle);
searchTimer.SetCompareSummary(compareSummary);
searchTimer.SetDelAfterDays(sT.delAfterDays);
searchTimer.SetRecordingsKeep(sT.recordingsKeep);
searchTimer.SetPauseOnNrRecordings(sT.pauseOnNrRecordings);
searchTimer.SetMarginStart(sT.marginStart);
searchTimer.SetMarginStop(sT.marginStop);
searchTimer.SetUseVPS(sT.useVPS);
searchTimer.SetAvoidRepeats(sT.avoidRepeats);
if (sT.avoidRepeats) {
searchTimer.SetAllowedRepeats(sT.allowedRepeats);
if (sT.repeatsWithinDays > 0) {
searchTimer.SetRepeatsWithinDays(sT.repeatsWithinDays);
}
searchTimer.SetCompareTitle(sT.compareTitle);
searchTimer.SetCompareSubtitle(sT.compareSubtitle);
searchTimer.SetCompareSummary(sT.compareSummary);
if (sT.compareSummary) {
searchTimer.SetCompareSummaryMatchInPercent(sT.compareSummaryMatchInPercent);
}
searchTimer.SetCompareDate(sT.compareDate);
}
searchTimer.SetUseInFavorites(useInFavorites);
searchTimer.SetUseInFavorites(sT.useInFavorites);
searchTimer.SetDelMode(sT.delMode);
searchTimer.SetDelAfterCountRecs(sT.delAfterCountRecs);
searchTimer.SetDelAfterDaysOfFirstRec(sT.delAfterDaysOfFirstRec);
return searchTimer;
}
@@ -991,7 +995,7 @@ int cRecMenuSearchTimerEdit::GetTotalNumMenuItems(void) {
cRecMenuItem *cRecMenuSearchTimerEdit::GetMenuItem(int number) {
if ((number > -1) && (number < numMenuItems)) {
return currentMenuItems[number];
return mainMenuItems[number];
}
return NULL;
}
@@ -1001,7 +1005,7 @@ cRecMenuSearchTimerDeleteConfirm::cRecMenuSearchTimerDeleteConfirm(cTVGuideSearc
this->searchTimer = searchTimer;
SetWidthPercent(70);
cString message = tr("Really delete Search Timer");
cString infoText = cString::sprintf("%s \"%s\"?", *message, searchTimer.SearchString().c_str());
cString infoText = cString::sprintf("%s \"%s\"?", *message, searchTimer.GetSearchString().c_str());
cRecMenuItemInfo *infoItem = new cRecMenuItemInfo(*infoText, true);
infoItem->CalculateHeight(width - 2 * border);
SetHeader(infoItem);
@@ -1051,7 +1055,7 @@ cRecMenuSearchTimerTemplatesCreate::cRecMenuSearchTimerTemplatesCreate(TVGuideEP
cString message2 = tr("Search Term");
cString message3 = tr("Using Template");
cString infoText = cString::sprintf("%s\n%s: \"%s\"\n%s \"%s\"", *message1, *message2, searchTimer.SearchString().c_str(), *message3, templ.name.c_str());
cString infoText = cString::sprintf("%s\n%s: \"%s\"\n%s \"%s\"", *message1, *message2, searchTimer.GetSearchString().c_str(), *message3, templ.name.c_str());
cRecMenuItemInfo *infoItem = new cRecMenuItemInfo(*infoText);
infoItem->CalculateHeight(width - 2 * border);
AddMenuItem(infoItem);

View File

@@ -10,6 +10,15 @@
#include "switchtimer.h"
#include "recmanager.h"
typedef enum {
searchTimerActionRecord = 0,
searchTimerActionAnnounceViaOSD,
searchTimerActionSwitchOnly,
searchTimerActionAnnounceAndSwitch,
searchTimerActionAnnounceViaMail,
searchTimerActionInactiveRecord
} searchTimerAction;
// --- cRecMenuMain ---------------------------------------------------------
class cRecMenuMain : public cRecMenu {
public:
@@ -207,16 +216,17 @@ public:
// --- cRecMenuSearchTimerEdit ---------------------------------------------------------
class cRecMenuSearchTimerEdit: public cRecMenu {
private:
bool advancedOptions;
cTVGuideSearchTimer searchTimer;
cTVGuideSearchTimer sT;
std::vector<std::string> searchModes;
std::vector<std::string> useChannelModes;
std::vector<std::string> channelGroups;
std::vector<std::string> compareDateModes;
std::vector<std::string> searchTimerModes;
std::vector<std::string> delModes;
std::vector<std::string> channelgroups;
std::vector<cRecMenuItem*> mainMenuItems;
std::vector<cRecMenuItem*> useChannelSubMenu;
std::vector<cRecMenuItem*> useGroupSubMenu;
std::vector<cRecMenuItem*> useTimeSubMenu;
std::vector<cRecMenuItem*> useDayOfWeekSubMenu;
std::vector<cRecMenuItem*> avoidRepeatSubMenu;
std::vector<cRecMenuItem*> currentMenuItems;
bool init;
int numMenuItems;
int useChannelPos;
int useTimePos;
@@ -224,39 +234,14 @@ private:
int avoidRepeatsPos;
char searchString[TEXTINPUTLENGTH];
bool timerActive;
int mode;
bool useTitle;
bool useSubtitle;
bool useDescription;
int useChannel;
int startChannel;
int stopChannel;
std::string channelGroup;
std::vector<std::string> channelgroups;
int channelgroupIndex;
bool useTime;
int startTime;
int stopTime;
bool useDayOfWeek;
int dayOfWeek;
int priority;
int lifetime;
bool useEpisode;
char directory[TEXTINPUTLENGTH];
int marginStart;
int marginStop;
bool useVPS;
bool avoidRepeats;
int allowedRepeats;
bool compareTitle;
bool compareSubtitle;
bool compareSummary;
bool useInFavorites;
void InitMenuItems(void);
void AddSubMenu(std::vector<cRecMenuItem*> *subMenu);
int SplitChannelGroups(std::vector<std::string> *channelGroups, std::vector<std::string> *channelgroups);
public:
cRecMenuSearchTimerEdit(cTVGuideSearchTimer searchTimer, bool advancedOptions, std::vector<std::string> channelGroups);
cRecMenuSearchTimerEdit(cTVGuideSearchTimer searchTimer, std::vector<std::string> channelGroups);
void CreateMenuItems(void);
virtual ~cRecMenuSearchTimerEdit(void);
cTVGuideSearchTimer GetSearchTimer(void);

View File

@@ -17,9 +17,11 @@ cTVGuideSearchTimer::cTVGuideSearchTimer(void) {
stopTime = 2359;
useChannel = false;
#if VDRVERSNUM >= 20301
{
LOCK_CHANNELS_READ;
channelMin = Channels->GetByNumber(cDevice::CurrentChannel());
channelMax = Channels->GetByNumber(cDevice::CurrentChannel());
}
#else
channelMin = Channels.GetByNumber(cDevice::CurrentChannel());
channelMax = Channels.GetByNumber(cDevice::CurrentChannel());
@@ -38,7 +40,7 @@ cTVGuideSearchTimer::cTVGuideSearchTimer(void) {
dayOfWeek = 0;
directory = "";
useEpisode = 0;
priority = 99;
priority = 50;
lifetime = 99;
marginStart = 5;
marginStop = 5;
@@ -47,19 +49,21 @@ cTVGuideSearchTimer::cTVGuideSearchTimer(void) {
useExtEPGInfo = 0;
extEPGInfoValues = "";
avoidRepeats = 1;
allowedRepeats = 1;
compareTitle = 1;
compareSubtitle = 2;
compareSubtitle = 1;
compareSummary = 1;
compareSummaryMatchInPercent = 90;
compareDate = 0;
allowedRepeats = 1;
catvaluesAvoidRepeat = 0;
repeatsWithinDays = 0;
delAfterDays = 0;
recordingsKeep = 0;
switchMinsBefore = 0;
switchMinsBefore = 1;
pauseOnNrRecordings = 0;
blacklistMode = 0;
blacklists = "";
fuzzyTolerance = 0;
fuzzyTolerance = 1;
useInFavorites = 0;
menuTemplate = 0;
delMode = 0;
@@ -69,16 +73,14 @@ cTVGuideSearchTimer::cTVGuideSearchTimer(void) {
useAsSearchTimerTil = 0;
ignoreMissingEPGCats = 0;
unmuteSoundOnSwitch = 0;
compareSummaryMatchInPercent = 0;
contentsFilter = "";
compareDate = 0;
}
cTVGuideSearchTimer::~cTVGuideSearchTimer(void) {
}
bool cTVGuideSearchTimer::operator < (const cTVGuideSearchTimer& other) const {
std::string searchStringOther = other.SearchString();
std::string searchStringOther = other.GetSearchString();
searchStringOther = StrToLowerCase(searchStringOther);
std::string thisSearchString = StrToLowerCase(searchString);
int comp = thisSearchString.compare(searchStringOther);
@@ -520,13 +522,12 @@ std::string cTVGuideSearchTimer::BuildSearchString(void) {
return strTimer;
}
bool cTVGuideSearchTimer::Active(void) {
bool cTVGuideSearchTimer::IsActive(void) {
if (useAsSearchTimer)
return true;
return false;
}
int cTVGuideSearchTimer::GetNumTimers(void) {
int numTimers = 0;
if (ID < 0)
@@ -575,6 +576,36 @@ void cTVGuideSearchTimer::GetSearchModes(std::vector<std::string> *searchModes)
searchModes->push_back(tr("one term must exist"));
searchModes->push_back(tr("exact match"));
searchModes->push_back(tr("regular expression"));
searchModes->push_back(tr("fuzzy"));
}
void cTVGuideSearchTimer::GetUseChannelModes(std::vector<std::string> *useChannelModes) {
useChannelModes->push_back(tr("No"));
useChannelModes->push_back(tr("Interval"));
useChannelModes->push_back(tr("Channel Group"));
useChannelModes->push_back(tr("only FTA"));
}
void cTVGuideSearchTimer::GetCompareDateModes(std::vector<std::string> *compareDateModes) {
compareDateModes->push_back(tr("No"));
compareDateModes->push_back(tr("same day"));
compareDateModes->push_back(tr("same week"));
compareDateModes->push_back(tr("same month"));
}
void cTVGuideSearchTimer::GetSearchTimerModes(std::vector<std::string> *searchTimerModes) {
searchTimerModes->push_back(tr("Record"));
searchTimerModes->push_back(tr("Announce by OSD"));
searchTimerModes->push_back(tr("Switch only"));
searchTimerModes->push_back(tr("Announce and switch"));
searchTimerModes->push_back(tr("Announce by mail"));
searchTimerModes->push_back(tr("Inactive record"));
}
void cTVGuideSearchTimer::GetDelModes(std::vector<std::string> *delModes) {
delModes->push_back(tr("no"));
delModes->push_back(tr("count recordings"));
delModes->push_back(tr("count days"));
}
void cTVGuideSearchTimer::Dump(void) {
@@ -586,9 +617,9 @@ void cTVGuideSearchTimer::Dump(void) {
esyslog("tvguide searchtimer: stopTime: %d", stopTime);
esyslog("tvguide searchtimer: useChannel: %d", useChannel);
if (channelMin)
esyslog("tvguide searchtimer: channelMin: %s", channelMin->Name());
esyslog("tvguide searchtimer: channelMin: %s", channelMin->Name());
if (channelMax)
esyslog("tvguide searchtimer: channelMax: %s", channelMax->Name());
esyslog("tvguide searchtimer: channelMax: %s", channelMax->Name());
esyslog("tvguide searchtimer: channelGroup: %s", channelGroup.c_str());
esyslog("tvguide searchtimer: useCase: %d", useCase);
esyslog("tvguide searchtimer: mode: %d", mode);
@@ -596,30 +627,3 @@ void cTVGuideSearchTimer::Dump(void) {
esyslog("tvguide searchtimer: useSubtitle: %d", useSubtitle);
esyslog("tvguide searchtimer: useDescription: %d", useDescription);
}
void cTVGuideSearchTimer::SetStartChannel(int startChannel)
{
#if VDRVERSNUM >= 20301
LOCK_CHANNELS_READ;
channelMin = Channels->GetByNumber(startChannel);
#else
channelMin = Channels.GetByNumber(startChannel);
#endif
};
void cTVGuideSearchTimer::SetStopChannel(int stopChannel)
{
#if VDRVERSNUM >= 20301
LOCK_CHANNELS_READ;
channelMax = Channels->GetByNumber(stopChannel);
#else
channelMax = Channels.GetByNumber(stopChannel);
#endif
};
void cTVGuideSearchTimer::GetUseChannelModes(std::vector<std::string> *useChannelModes) {
useChannelModes->push_back(tr("No"));
useChannelModes->push_back(tr("Interval"));
useChannelModes->push_back(tr("Channel Group"));
useChannelModes->push_back(tr("only FTA"));
}

View File

@@ -3,7 +3,8 @@
class cTVGuideSearchTimer {
private:
friend class cRecMenuSearchTimerEdit;
protected:
std::string strTimer;
int ID;
std::string searchString;
@@ -76,52 +77,35 @@ public:
std::string BuildSearchString(void);
int GetID(void) { return ID; };
//GETTER
std::string SearchString(void) const { return searchString; };
bool Active(void);
bool UseTitle(void) { return useTitle; };
bool UseSubtitle(void) { return useSubtitle; };
bool UseDescription(void) { return useDescription; };
int SearchMode(void) { return mode; };
int UseChannel(void) { return useChannel; };
int StartChannel(void) { return (channelMin)?channelMin->Number():0; };
int StopChannel(void) { return (channelMax)?channelMax->Number():0; };
std::string ChannelGroup(void) { return channelGroup; };
bool UseTime(void) { return useTime; };
int StartTime(void) { return startTime; };
int StopTime(void) { return stopTime; };
bool UseDayOfWeek(void) { return useDayOfWeek; };
std::string GetSearchString(void) const { return searchString; };
bool IsActive(void);
int DayOfWeek(void);
int UseEpisode(void) { return useEpisode; };
std::string Directory(void) { return directory; };
int Priority(void) { return priority; };
int Lifetime(void) { return lifetime; };
int MarginStart(void) { return marginStart; };
int MarginStop(void) { return marginStop; };
bool UseVPS(void) { return useVPS; };
bool AvoidRepeats(void) { return avoidRepeats; };
int AllowedRepeats(void) { return allowedRepeats; };
bool CompareTitle(void) { return compareTitle; };
bool CompareSubtitle(void) { return compareSubtitle; };
bool CompareSummary(void) { return compareSummary; };
bool UseInFavorites(void) { return useInFavorites; };
//SETTER
void SetSearchString(std::string searchString) { this->searchString = searchString; };
void SetActive(bool active) { useAsSearchTimer = active; };
void SetSearchMode(int searchMode) { mode = searchMode; };
void SetSearchMode(int mode) { this->mode = mode; };
void SetFuzzyTolerance(int fuzzyTolerance) { this->fuzzyTolerance = fuzzyTolerance; };
void SetUseCase(bool useCase) { this->useCase = useCase; };
void SetUseTitle(bool useTitle) { this->useTitle = useTitle; };
void SetUseSubtitle(bool useSubtitle) { this->useSubtitle = useSubtitle; };
void SetUseDesription(bool useDescription) { this->useDescription = useDescription; };
void SetUseChannel(int useChannel) { this->useChannel = useChannel; };
void SetStartChannel(int startChannel);
void SetStopChannel(int stopChannel);
void SetStartChannel(const cChannel *channelMin) { this->channelMin = channelMin; };
void SetStopChannel(const cChannel *channelMax) { this->channelMax = channelMax; };
void SetChannelGroup(std::string channelGroup) { this->channelGroup = channelGroup; };
void SetUseTime(bool useTime) { this->useTime = useTime; };
void SetStartTime(int startTime) { this->startTime = startTime; };
void SetStopTime(int stopTime) { this->stopTime = stopTime; };
void SetUseDayOfWeek(bool useDayOfWeek) { this->useDayOfWeek = useDayOfWeek; };
void SetDayOfWeek(int VDRDayOfWeek);
void SetUseDuration(bool useDuration) { this->useDuration = useDuration; };
void SetMinDuration(int minDuration) { this->minDuration = minDuration; };
void SetMaxDuration(int maxDuration) { this->maxDuration = maxDuration; };
void SetUseEpisode(int useEpisode) { this->useEpisode = useEpisode; };
void SetDirectory(std::string directory) { this-> directory = directory; };
void SetDelAfterDays(int delAfterDays) { this->delAfterDays = delAfterDays; };
void SetRecordingsKeep(int recordingsKeep) { this->recordingsKeep = recordingsKeep; };
void SetPauseOnNrRecordings(int pauseOnNrRecordings) { this-> pauseOnNrRecordings = pauseOnNrRecordings; };
void SetPriority(int priority) { this->priority = priority; };
void SetLifetime(int lifetime) { this->lifetime = lifetime; };
void SetMarginStart(int marginStart) { this->marginStart = marginStart; };
@@ -129,15 +113,28 @@ public:
void SetUseVPS(bool useVPS) { this->useVPS = useVPS; };
void SetAvoidRepeats(bool avoidRepeats) { this->avoidRepeats = avoidRepeats; };
void SetAllowedRepeats(int allowedRepeats) { this->allowedRepeats = allowedRepeats; };
void SetRepeatsWithinDays(int repeatsWithinDays) { this-> repeatsWithinDays = repeatsWithinDays; };
void SetCompareTitle(bool compareTitle) { this->compareTitle = compareTitle; };
void SetCompareSubtitle(bool compareSubtitle) { this->compareSubtitle = compareSubtitle; };
void SetCompareSummary(bool compareSummary) { this->compareSummary = compareSummary; };
void SetCompareSummaryMatchInPercent(int compareSummaryMatchInPercent) { this->compareSummaryMatchInPercent = compareSummaryMatchInPercent; };
void SetCompareDate(int compareDate) { this->compareDate = compareDate; };
void SetUseInFavorites(bool useInFavorites) { this->useInFavorites = useInFavorites; };
void SetUseAsSearchTimer(bool useAsSearchTimer) { this->useAsSearchTimer = useAsSearchTimer; };
void SetAction(int action) { this->action = action; };
void SetSwitchMinsBefore(int switchMinsBefore) { this->switchMinsBefore = switchMinsBefore; };
void SetUnmuteSoundOnSwitch(bool unmuteSoundOnSwitch) { this->unmuteSoundOnSwitch = unmuteSoundOnSwitch; };
void SetDelMode(bool delMode) { this->delMode = delMode; };
void SetDelAfterCountRecs(bool delAfterCountRecs) { this->delAfterCountRecs = delAfterCountRecs; };
void SetDelAfterDaysOfFirstRec(bool delAfterDaysOfFirstRec) { this->delAfterDaysOfFirstRec = delAfterDaysOfFirstRec; };
//COMMON
int GetNumTimers(void);
int GetNumRecordings(void);
void GetSearchModes(std::vector<std::string> *searchModes);
void GetUseChannelModes(std::vector<std::string> *useChannelModes);
void GetSearchTimerModes(std::vector<std::string> *searchTimerModes);
void GetCompareDateModes(std::vector<std::string> *compareDateModes);
void GetDelModes(std::vector<std::string> *delModes);
void Dump(void);
};

View File

@@ -26,7 +26,7 @@
#error "VDR-2.0.0 API version or greater is required!"
#endif
static const char *VERSION = "1.2.7";
static const char *VERSION = "1.2.9";
static const char *DESCRIPTION = tr("A fancy 2d EPG Viewer");
static const char *MAINMENUENTRY = "Tvguide";
@@ -62,9 +62,9 @@ cPluginTvguide::~cPluginTvguide() {
const char *cPluginTvguide::CommandLineHelp(void) {
return
" -e <IMAGESDIR>, --epgimages=<IMAGESDIR> Set directory where epgimages are stored.\n"
" -i <ICONDIR>, --icons=<ICONDIR> Set directory where icons are stored.\n"
" -l <LOGODIR>, --logodir=<LOGODIR> Set directory where logos are stored.\n";
" -e <IMAGESDIR>, --epgimages=<IMAGESDIR> Set directory where epgimages are stored.\n"
" -i <ICONDIR>, --iconpath=<ICONDIR> Set directory where icons are stored.\n"
" -l <LOGODIR>, --logopath=<LOGODIR> Set directory where logos are stored.\n";
}
bool cPluginTvguide::ProcessArgs(int argc, char *argv[]) {