mirror of
https://projects.vdr-developer.org/git/vdr-plugin-tvguide.git
synced 2023-10-05 13:01:48 +00:00
Compare commits
46 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
69711400fa | ||
|
|
463b6369d2 | ||
|
|
0b37464dd0 | ||
|
|
cf171d8732 | ||
|
|
d666b8701e | ||
|
|
6139016102 | ||
|
|
1c99501776 | ||
|
|
b484f6cfc1 | ||
|
|
c04ca30792 | ||
|
|
ba9c04a4bc | ||
|
|
cb2c604d71 | ||
|
|
b8b95f61ed | ||
|
|
507ecc60f6 | ||
|
|
ef4ff3d115 | ||
|
|
1c591b5408 | ||
|
|
5b1e174316 | ||
|
|
1a2da2da0a | ||
|
|
b83ad6df81 | ||
|
|
0a931b97dc | ||
|
|
3cce1d2ead | ||
|
|
f6a7ae497c | ||
|
|
803b28aad9 | ||
|
|
d5f46dacc6 | ||
|
|
763f9d4e52 | ||
|
|
82e404a74e | ||
|
|
872a0618f8 | ||
|
|
d0c1519463 | ||
|
|
c081bc5ca1 | ||
|
|
8b1651401c | ||
|
|
5df21a4707 | ||
|
|
e7753834bc | ||
|
|
d1e5e240ec | ||
|
|
6e83787437 | ||
|
|
333a3d397f | ||
|
|
80acee49e1 | ||
|
|
6095fb4dbc | ||
|
|
e01a63b29e | ||
|
|
0975e97519 | ||
|
|
929d8db9ba | ||
|
|
56250e3af8 | ||
|
|
d825d700eb | ||
|
|
ae206f4768 | ||
|
|
c7f0131d52 | ||
|
|
52d887d854 | ||
|
|
6f7042d41f | ||
|
|
9009f4f385 |
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
*.o
|
||||
*.so
|
||||
po/*.mo
|
||||
po/*.pot
|
||||
.dependencies
|
||||
36
HISTORY
36
HISTORY
@@ -167,3 +167,39 @@ Version 1.2.5
|
||||
- Eliminate a seqfault in "cRecManager::DeleteSearchTimer"
|
||||
- Show Inactive timer in DrawHeader
|
||||
- Add "switchMode" to setup menu
|
||||
|
||||
Version 1.2.6
|
||||
|
||||
- Some changes for VDR < 2.3.0
|
||||
- Changes for Rec Icon in DrawHeader and Grid
|
||||
- Eliminate a compiler warning in searchtimer.c
|
||||
- Correct an error in setup page
|
||||
- Optical changes in displaymode vertical
|
||||
- Different setup parameter for displayTime in horizontal and vertical mode
|
||||
- Optimizations in setup menu
|
||||
- Add .gitignore
|
||||
- Channelgroup in cRecMenuSearchTimerEdit
|
||||
(Create and modify of channelgroups isn't yet possible, should be done in epgsearch)
|
||||
- Change channel icon size in cRecMenuSearchTimerEdit
|
||||
|
||||
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
|
||||
|
||||
16
README
16
README
@@ -1,10 +1,14 @@
|
||||
This is a "plugin" for the Video Disk Recorder (VDR).
|
||||
|
||||
Written by: Louis Braun <louis DOT braun AT gmx DOT de>
|
||||
TVGuide on GitLab: https://gitlab.com/kamel5/tvguide
|
||||
|
||||
Project's homepage: http://projects.vdr-developer.org/projects/plg-tvguide
|
||||
Original Written by: Louis Braun <louis DOT braun AT gmx DOT de>
|
||||
|
||||
Latest version available at: http://projects.vdr-developer.org/projects/plg-tvguide/files
|
||||
Original Project's homepage: http://projects.vdr-developer.org/projects/plg-tvguide
|
||||
|
||||
Latest version available at: https://gitlab.com/kamel5/tvguide
|
||||
|
||||
Original version available at: http://projects.vdr-developer.org/projects/plg-tvguide/files
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -40,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
|
||||
@@ -274,4 +278,4 @@ Setup Options
|
||||
- Maximal number of logos to cache
|
||||
- Number of logos to cache at start: number of logos to pre cache at plugin startup
|
||||
(a too large number causes a slower VDR start)
|
||||
- Information about image cache sizes
|
||||
- Information about image cache sizes
|
||||
|
||||
@@ -5,21 +5,11 @@ cChannelColumn::cChannelColumn(int num, const cChannel *channel, cMyTime *myTime
|
||||
this->channel = channel;
|
||||
this->num = num;
|
||||
this->myTime = myTime;
|
||||
#if VDRVERSNUM >= 20301
|
||||
hasTimer = false;
|
||||
const cSchedule *Schedule = NULL;
|
||||
LOCK_SCHEDULES_READ;
|
||||
const cSchedules* schedules = Schedules;
|
||||
if (schedules) {
|
||||
Schedule = schedules->GetSchedule(channel);
|
||||
hasTimer = Schedule ? Schedule->HasTimer() : false;
|
||||
}
|
||||
#else
|
||||
#if VDRVERSNUM < 20301
|
||||
hasTimer = channel->HasTimer();
|
||||
#endif
|
||||
hasSwitchTimer = SwitchTimers.ChannelInSwitchList(channel);
|
||||
#if VDRVERSNUM >= 20301
|
||||
#else
|
||||
#if VDRVERSNUM < 20301
|
||||
schedulesLock = new cSchedulesLock(false, 100);
|
||||
#endif
|
||||
header = NULL;
|
||||
@@ -29,8 +19,7 @@ cChannelColumn::~cChannelColumn(void) {
|
||||
if (header)
|
||||
delete header;
|
||||
grids.Clear();
|
||||
#if VDRVERSNUM >= 20301
|
||||
#else
|
||||
#if VDRVERSNUM < 20301
|
||||
delete schedulesLock;
|
||||
#endif
|
||||
}
|
||||
@@ -383,25 +372,14 @@ cGrid *cChannelColumn::addDummyGrid(time_t start, time_t end, cGrid *firstGrid,
|
||||
}
|
||||
|
||||
void cChannelColumn::SetTimers() {
|
||||
#if VDRVERSNUM >= 20301
|
||||
hasTimer = false;
|
||||
const cSchedule *Schedule = NULL;
|
||||
{
|
||||
LOCK_SCHEDULES_READ;
|
||||
const cSchedules* schedules = Schedules;
|
||||
if (schedules) {
|
||||
Schedule = schedules->GetSchedule(channel);
|
||||
hasTimer = Schedule ? Schedule->HasTimer() : false;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#if VDRVERSNUM < 20301
|
||||
hasTimer = channel->HasTimer();
|
||||
#endif
|
||||
hasSwitchTimer = SwitchTimers.ChannelInSwitchList(channel);
|
||||
for (cGrid *grid = grids.First(); grid; grid = grids.Next(grid)) {
|
||||
bool gridHadTimer = grid->HasTimer();
|
||||
grid->SetTimer();
|
||||
if (gridHadTimer != grid->HasTimer())
|
||||
if (gridHadTimer || gridHadTimer != grid->HasTimer())
|
||||
grid->SetDirty();
|
||||
bool gridHadSwitchTimer = grid->HasSwitchTimer();
|
||||
grid->SetSwitchTimer();
|
||||
|
||||
2
config.c
2
config.c
@@ -10,6 +10,7 @@ cTvguideConfig::cTvguideConfig() {
|
||||
channelCols = 5;
|
||||
channelRows = 10;
|
||||
displayTime = 160;
|
||||
displayHorizontalTime = 160;
|
||||
displayStatusHeader = 1;
|
||||
displayChannelGroups = 1;
|
||||
displayTimeBase = 1;
|
||||
@@ -257,6 +258,7 @@ bool cTvguideConfig::SetupParse(const char *Name, const char *Value) {
|
||||
else if (strcmp(Name, "channelCols") == 0) channelCols = atoi(Value);
|
||||
else if (strcmp(Name, "channelRows") == 0) channelRows = atoi(Value);
|
||||
else if (strcmp(Name, "displayTime") == 0) displayTime = atoi(Value);
|
||||
else if (strcmp(Name, "displayHorizontalTime") == 0) displayHorizontalTime = atoi(Value);
|
||||
else if (strcmp(Name, "hideChannelLogos") == 0) hideChannelLogos = atoi(Value);
|
||||
else if (strcmp(Name, "logoExtension") == 0) logoExtension = atoi(Value);
|
||||
else if (strcmp(Name, "logoWidthRatio") == 0) logoWidthRatio = atoi(Value);
|
||||
|
||||
1
config.h
1
config.h
@@ -58,6 +58,7 @@ class cTvguideConfig {
|
||||
int channelRows;
|
||||
int numGrids;
|
||||
int displayTime;
|
||||
int displayHorizontalTime;
|
||||
int displayStatusHeader;
|
||||
int displayChannelGroups;
|
||||
int displayTimeBase;
|
||||
|
||||
15
epggrid.c
15
epggrid.c
@@ -62,22 +62,23 @@ void cEpgGrid::PositionPixmap() {
|
||||
}
|
||||
|
||||
void cEpgGrid::SetTimer() {
|
||||
hasTimer = false;
|
||||
if (tvguideConfig.useRemoteTimers && pRemoteTimers) {
|
||||
RemoteTimers_Event_v1_0 rt;
|
||||
rt.event = event;
|
||||
if (pRemoteTimers->Service("RemoteTimers::GetTimerByEvent-v1.0", &rt))
|
||||
hasTimer = true;
|
||||
else
|
||||
hasTimer = false;
|
||||
#if VDRVERSNUM >= 30400
|
||||
} else if (event->HasTimer()) {
|
||||
hasTimer = true;
|
||||
#if VDRVERSNUM >= 20301
|
||||
} else {
|
||||
eTimerMatch TimerMatch = tmNone;
|
||||
LOCK_TIMERS_READ;
|
||||
const cTimers *timers = Timers;
|
||||
if (timers->GetMatch(event, &TimerMatch) && (TimerMatch == tmFull))
|
||||
hasTimer = true;
|
||||
#else
|
||||
} else if (column->HasTimer()) {
|
||||
hasTimer = event->HasTimer();
|
||||
#endif
|
||||
} else {
|
||||
hasTimer = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,8 +29,6 @@ bool cGeometryManager::SetGeometry(int osdWidth, int osdHeight, bool force) {
|
||||
channelHeaderHeight = tvguideConfig.channelHeaderHeightPercent * osdHeight / 100;
|
||||
timeLineWidth = tvguideConfig.timeLineWidthPercent * osdWidth / 100;
|
||||
timeLineHeight = tvguideConfig.timeLineHeightPercent * osdHeight / 100;
|
||||
clockWidth = tvFrameWidth / 3;
|
||||
clockHeight = timeLineHeight;
|
||||
footerHeight = tvguideConfig.footerHeightPercent * osdHeight / 100;
|
||||
footerY = osdHeight - footerHeight;
|
||||
|
||||
@@ -43,21 +41,25 @@ bool cGeometryManager::SetGeometry(int osdWidth, int osdHeight, bool force) {
|
||||
logoWidth = channelLogoWidth/2 - 15;
|
||||
logoHeight = logoWidth * tvguideConfig.logoHeightRatio / tvguideConfig.logoWidthRatio;
|
||||
timeLineGridWidth = timeLineWidth;
|
||||
timeLineGridHeight = minutePixel*30;
|
||||
timeLineGridHeight = minutePixel * 30;
|
||||
dateVieverWidth = timeLineWidth;
|
||||
dateVieverHeight = channelHeaderHeight + channelGroupsHeight;
|
||||
dateVieverHeight = (channelHeaderHeight + channelGroupsHeight) * 2 / 3;
|
||||
clockWidth = dateVieverWidth;
|
||||
clockHeight = (channelHeaderHeight + channelGroupsHeight) - dateVieverHeight;
|
||||
} else if (tvguideConfig.displayMode == eHorizontal) {
|
||||
colWidth = 0;
|
||||
rowHeight = (osdHeight - statusHeaderHeight - timeLineHeight - footerHeight) / tvguideConfig.channelRows;
|
||||
minutePixel = (osdWidth - channelHeaderWidth - channelGroupsWidth) / tvguideConfig.displayTime;
|
||||
minutePixel = (osdWidth - channelHeaderWidth - channelGroupsWidth) / tvguideConfig.displayHorizontalTime;
|
||||
channelLogoWidth = channelHeaderWidth;
|
||||
channelLogoHeight = rowHeight;
|
||||
logoWidth = channelLogoHeight * tvguideConfig.logoWidthRatio / tvguideConfig.logoHeightRatio;
|
||||
logoHeight = channelLogoHeight;
|
||||
timeLineGridWidth = geoManager.minutePixel*30;
|
||||
timeLineGridWidth = geoManager.minutePixel * 30;
|
||||
timeLineGridHeight = geoManager.timeLineHeight;
|
||||
dateVieverWidth = channelHeaderWidth + channelGroupsWidth;
|
||||
dateVieverWidth = (channelHeaderWidth + channelGroupsWidth) * 3 / 5;
|
||||
dateVieverHeight = timeLineHeight;
|
||||
clockWidth = (channelHeaderWidth + channelGroupsWidth) - dateVieverWidth;
|
||||
clockHeight = timeLineHeight;
|
||||
}
|
||||
buttonBorder = footerHeight / 6;
|
||||
buttonWidth = osdWidth / 4 - 2 * buttonBorder;
|
||||
@@ -71,4 +73,4 @@ bool cGeometryManager::SetGeometry(int osdWidth, int osdHeight, bool force) {
|
||||
channelJumpHeight = osdHeight * 20 / 100;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
class cGeometryManager {
|
||||
private:
|
||||
public:
|
||||
cGeometryManager(void);
|
||||
~cGeometryManager();
|
||||
bool SetGeometry(int osdWidth, int osdHeight, bool force = false);
|
||||
cGeometryManager(void);
|
||||
~cGeometryManager();
|
||||
bool SetGeometry(int osdWidth, int osdHeight, bool force = false);
|
||||
//Common
|
||||
int osdWidth;
|
||||
int osdHeight;
|
||||
int statusHeaderHeight;
|
||||
int osdWidth;
|
||||
int osdHeight;
|
||||
int statusHeaderHeight;
|
||||
int tvFrameWidth;
|
||||
int headerContentWidth;
|
||||
//ChannelGroups
|
||||
int channelGroupsWidth;
|
||||
int channelGroupsWidth;
|
||||
int channelGroupsHeight;
|
||||
//ContentHeader
|
||||
int channelHeaderWidth;
|
||||
@@ -51,4 +51,4 @@ public:
|
||||
int channelJumpHeight;
|
||||
};
|
||||
|
||||
#endif //__TVGUIDE_GEOMETRYMANAGER_H
|
||||
#endif //__TVGUIDE_GEOMETRYMANAGER_H
|
||||
|
||||
@@ -88,13 +88,12 @@ void cHeaderGrid::drawChannelVertical(const cChannel *channel) {
|
||||
tw.Set(*headerText, fontManager.FontChannelHeader, geoManager.colWidth - 8);
|
||||
int lines = tw.Lines();
|
||||
int lineHeight = fontManager.FontChannelHeader->Height();
|
||||
int yStart = (geoManager.channelHeaderHeight - lines*lineHeight)/2 + 8;
|
||||
int yStart = (geoManager.channelHeaderHeight - lines * lineHeight) / 2 + 8;
|
||||
bool logoFound = false;
|
||||
if (!tvguideConfig.hideChannelLogos) {
|
||||
cImage *logo = imgCache.GetLogo(channel);
|
||||
if (logo) {
|
||||
const int logoheight = logo->Height();
|
||||
pixmapLogo->DrawImage(cPoint((Width() - logoWidth) / 2, (geoManager.channelHeaderHeight - lineHeight - logoheight) / 2), *logo);
|
||||
pixmapLogo->DrawImage(cPoint((Width() - logoWidth) / 2, 6), *logo);
|
||||
logoFound = true;
|
||||
}
|
||||
}
|
||||
@@ -108,12 +107,12 @@ void cHeaderGrid::drawChannelVertical(const cChannel *channel) {
|
||||
if (!drawText)
|
||||
return;
|
||||
tColor colorTextBack = (tvguideConfig.style == eStyleFlat)?color:clrTransparent;
|
||||
for (int i=0; i<lines; i++) {
|
||||
for (int i = 0; i < lines; i++) {
|
||||
int textWidth = fontManager.FontChannelHeader->Width(tw.GetLine(i));
|
||||
int xText = (geoManager.colWidth - textWidth) / 2;
|
||||
if (xText < 0)
|
||||
xText = 0;
|
||||
pixmap->DrawText(cPoint(xText, yStart + i*lineHeight), tw.GetLine(i), theme.Color(clrFontHeader), colorTextBack, fontManager.FontChannelHeader);
|
||||
pixmap->DrawText(cPoint(xText, yStart + i * lineHeight), tw.GetLine(i), theme.Color(clrFontHeader), colorTextBack, fontManager.FontChannelHeader);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
233
po/ca_ES.po
233
po/ca_ES.po
@@ -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-05 13:01+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,79 +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"
|
||||
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"
|
||||
@@ -387,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 ""
|
||||
|
||||
@@ -462,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"
|
||||
|
||||
@@ -525,6 +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"
|
||||
|
||||
@@ -780,16 +885,31 @@ 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 ""
|
||||
|
||||
msgid "Use \"What's on next\" in favorites"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use user defined time 1 in favorites"
|
||||
msgid "User defined times in favorites:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use user defined time 1"
|
||||
msgstr ""
|
||||
|
||||
msgid "Description"
|
||||
@@ -798,16 +918,13 @@ msgstr ""
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use user defined time 2 in favorites"
|
||||
msgid "Use user defined time 2"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use user defined time 3 in favorites"
|
||||
msgid "Use user defined time 3"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use user defined time 4 in favorites"
|
||||
msgstr ""
|
||||
|
||||
msgid "Limit channels in favorites"
|
||||
msgid "Use user defined time 4"
|
||||
msgstr ""
|
||||
|
||||
msgid "Switchtimer:"
|
||||
@@ -846,6 +963,9 @@ msgstr ""
|
||||
msgid "Recording Menus Icon Cache"
|
||||
msgstr ""
|
||||
|
||||
msgid "A fancy 2d EPG Viewer"
|
||||
msgstr ""
|
||||
|
||||
msgid "No Cast available"
|
||||
msgstr ""
|
||||
|
||||
@@ -915,9 +1035,6 @@ msgstr ""
|
||||
msgid "yes"
|
||||
msgstr ""
|
||||
|
||||
msgid "no"
|
||||
msgstr ""
|
||||
|
||||
msgid "Adult"
|
||||
msgstr ""
|
||||
|
||||
|
||||
259
po/de_DE.po
259
po/de_DE.po
@@ -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-05 13:01+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,68 +300,44 @@ 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 "Channel group"
|
||||
msgstr "Kanalgruppe"
|
||||
|
||||
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 "Use time"
|
||||
msgstr "Verwende Uhrzeit"
|
||||
|
||||
msgid "Start after"
|
||||
msgstr "Beginn nach"
|
||||
@@ -369,20 +345,98 @@ 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"
|
||||
@@ -459,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"
|
||||
|
||||
@@ -522,6 +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"
|
||||
|
||||
@@ -777,17 +882,32 @@ 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"
|
||||
|
||||
msgid "Use \"What's on next\" in favorites"
|
||||
msgstr "\"Was läuft als nächstes\" in Favoriten benutzen"
|
||||
|
||||
msgid "Use user defined time 1 in favorites"
|
||||
msgstr "Benutzerdef. Zeit 1 in Favoriten benutzen"
|
||||
msgid "User defined times in favorites:"
|
||||
msgstr "Nutzer definierte Zeiten in Favoriten:"
|
||||
|
||||
msgid "Use user defined time 1"
|
||||
msgstr "Verw. benutzerdef. Zeit 1"
|
||||
|
||||
msgid "Description"
|
||||
msgstr "Beschreibung"
|
||||
@@ -795,17 +915,14 @@ msgstr "Beschreibung"
|
||||
msgid "Time"
|
||||
msgstr "Zeit"
|
||||
|
||||
msgid "Use user defined time 2 in favorites"
|
||||
msgstr "Benutzerdef. Zeit 2 in Favoriten benutzen"
|
||||
msgid "Use user defined time 2"
|
||||
msgstr "Verw. benutzerdef. Zeit 2"
|
||||
|
||||
msgid "Use user defined time 3 in favorites"
|
||||
msgstr "Benutzerdef. Zeit 3 in Favoriten benutzen"
|
||||
msgid "Use user defined time 3"
|
||||
msgstr "Verw. benutzerdef. Zeit 3"
|
||||
|
||||
msgid "Use user defined time 4 in favorites"
|
||||
msgstr "Benutzerdef. Zeit 4 in Favoriten benutzen"
|
||||
|
||||
msgid "Limit channels in favorites"
|
||||
msgstr "Kanäle in Favoriten beschränken"
|
||||
msgid "Use user defined time 4"
|
||||
msgstr "Verw. benutzerdef. Zeit 4"
|
||||
|
||||
msgid "Switchtimer:"
|
||||
msgstr "Umschalttimer:"
|
||||
@@ -843,6 +960,9 @@ msgstr "Kanalgruppen Cache"
|
||||
msgid "Recording Menus Icon Cache"
|
||||
msgstr "Recording Menüs Icon Cache"
|
||||
|
||||
msgid "A fancy 2d EPG Viewer"
|
||||
msgstr "Eine schicke Programm Vorschau"
|
||||
|
||||
msgid "No Cast available"
|
||||
msgstr "Keine Besetzung vorhanden"
|
||||
|
||||
@@ -912,9 +1032,6 @@ msgstr "Überblick"
|
||||
msgid "yes"
|
||||
msgstr "Ja"
|
||||
|
||||
msgid "no"
|
||||
msgstr "Nein"
|
||||
|
||||
msgid "Adult"
|
||||
msgstr "Nur für Erwachsene"
|
||||
|
||||
@@ -944,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"
|
||||
|
||||
252
po/it_IT.po
252
po/it_IT.po
@@ -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-05 13:01+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,80 +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"
|
||||
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"
|
||||
@@ -384,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"
|
||||
|
||||
@@ -459,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"
|
||||
|
||||
@@ -522,6 +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"
|
||||
|
||||
@@ -777,17 +882,32 @@ 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"
|
||||
|
||||
msgid "Use \"What's on next\" in favorites"
|
||||
msgstr "Usa \"Programma prossimo\" nei favoriti"
|
||||
|
||||
msgid "Use user defined time 1 in favorites"
|
||||
msgstr "Usa il tempo definito per l'user 1 in favoriti"
|
||||
msgid "User defined times in favorites:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use user defined time 1"
|
||||
msgstr "Usa il tempo definito per l'user 1"
|
||||
|
||||
msgid "Description"
|
||||
msgstr "Descrizione"
|
||||
@@ -795,17 +915,14 @@ msgstr "Descrizione"
|
||||
msgid "Time"
|
||||
msgstr "Tempo"
|
||||
|
||||
msgid "Use user defined time 2 in favorites"
|
||||
msgstr "Usa il tempo definito per l'user 2 in favoriti"
|
||||
msgid "Use user defined time 2"
|
||||
msgstr "Usa il tempo definito per l'user 2"
|
||||
|
||||
msgid "Use user defined time 3 in favorites"
|
||||
msgstr "Usa il tempo definito per l'user 3 in favoriti"
|
||||
msgid "Use user defined time 3"
|
||||
msgstr "Usa il tempo definito per l'user 3"
|
||||
|
||||
msgid "Use user defined time 4 in favorites"
|
||||
msgstr "Usa il tempo definito per l'user 4 in favoriti"
|
||||
|
||||
msgid "Limit channels in favorites"
|
||||
msgstr "Limite dei canali nei favoriti"
|
||||
msgid "Use user defined time 4"
|
||||
msgstr "Usa il tempo definito per l'user 4"
|
||||
|
||||
msgid "Switchtimer:"
|
||||
msgstr ""
|
||||
@@ -843,6 +960,9 @@ msgstr "Cache dei Gruppi Canale"
|
||||
msgid "Recording Menus Icon Cache"
|
||||
msgstr "Recording Menüs Icon Cache"
|
||||
|
||||
msgid "A fancy 2d EPG Viewer"
|
||||
msgstr ""
|
||||
|
||||
msgid "No Cast available"
|
||||
msgstr "Nessun cast disponibile"
|
||||
|
||||
@@ -912,9 +1032,6 @@ msgstr "Überblick"
|
||||
msgid "yes"
|
||||
msgstr "Si"
|
||||
|
||||
msgid "no"
|
||||
msgstr "No"
|
||||
|
||||
msgid "Adult"
|
||||
msgstr "Per adulti"
|
||||
|
||||
@@ -944,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"
|
||||
|
||||
237
po/ru_RU.po
237
po/ru_RU.po
@@ -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-05 13:01+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,79 +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 "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"
|
||||
@@ -384,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 ""
|
||||
|
||||
@@ -459,6 +513,9 @@ msgstr "Таймер переключения НЕ был создан!"
|
||||
msgid "Switch Timer deleted"
|
||||
msgstr "Таймер переключения удален"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr "Режим поиска"
|
||||
|
||||
msgid "Channel to Search"
|
||||
msgstr "Канал для поиска"
|
||||
|
||||
@@ -522,6 +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 "Основные настройки"
|
||||
|
||||
@@ -777,16 +882,31 @@ 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 ""
|
||||
|
||||
msgid "Use \"What's on next\" in favorites"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use user defined time 1 in favorites"
|
||||
msgid "User defined times in favorites:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use user defined time 1"
|
||||
msgstr ""
|
||||
|
||||
msgid "Description"
|
||||
@@ -795,16 +915,13 @@ msgstr ""
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use user defined time 2 in favorites"
|
||||
msgid "Use user defined time 2"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use user defined time 3 in favorites"
|
||||
msgid "Use user defined time 3"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use user defined time 4 in favorites"
|
||||
msgstr ""
|
||||
|
||||
msgid "Limit channels in favorites"
|
||||
msgid "Use user defined time 4"
|
||||
msgstr ""
|
||||
|
||||
msgid "Switchtimer:"
|
||||
@@ -843,6 +960,9 @@ msgstr ""
|
||||
msgid "Recording Menus Icon Cache"
|
||||
msgstr ""
|
||||
|
||||
msgid "A fancy 2d EPG Viewer"
|
||||
msgstr ""
|
||||
|
||||
msgid "No Cast available"
|
||||
msgstr ""
|
||||
|
||||
@@ -912,9 +1032,6 @@ msgstr ""
|
||||
msgid "yes"
|
||||
msgstr ""
|
||||
|
||||
msgid "no"
|
||||
msgstr ""
|
||||
|
||||
msgid "Adult"
|
||||
msgstr ""
|
||||
|
||||
|
||||
237
po/sk_SK.po
237
po/sk_SK.po
@@ -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-05 13:01+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,79 +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 "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"
|
||||
@@ -384,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 ""
|
||||
|
||||
@@ -459,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"
|
||||
|
||||
@@ -522,6 +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"
|
||||
|
||||
@@ -777,16 +882,31 @@ 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 ""
|
||||
|
||||
msgid "Use \"What's on next\" in favorites"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use user defined time 1 in favorites"
|
||||
msgid "User defined times in favorites:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use user defined time 1"
|
||||
msgstr ""
|
||||
|
||||
msgid "Description"
|
||||
@@ -795,16 +915,13 @@ msgstr ""
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use user defined time 2 in favorites"
|
||||
msgid "Use user defined time 2"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use user defined time 3 in favorites"
|
||||
msgid "Use user defined time 3"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use user defined time 4 in favorites"
|
||||
msgstr ""
|
||||
|
||||
msgid "Limit channels in favorites"
|
||||
msgid "Use user defined time 4"
|
||||
msgstr ""
|
||||
|
||||
msgid "Switchtimer:"
|
||||
@@ -843,6 +960,9 @@ msgstr ""
|
||||
msgid "Recording Menus Icon Cache"
|
||||
msgstr ""
|
||||
|
||||
msgid "A fancy 2d EPG Viewer"
|
||||
msgstr ""
|
||||
|
||||
msgid "No Cast available"
|
||||
msgstr ""
|
||||
|
||||
@@ -912,9 +1032,6 @@ msgstr ""
|
||||
msgid "yes"
|
||||
msgstr ""
|
||||
|
||||
msgid "no"
|
||||
msgstr ""
|
||||
|
||||
msgid "Adult"
|
||||
msgstr ""
|
||||
|
||||
|
||||
66
recmanager.c
66
recmanager.c
@@ -50,9 +50,17 @@ bool cRecManager::CheckEventForTimer(const cEvent *event) {
|
||||
pRemoteTimers->Service("RemoteTimers::GetMatch-v1.0", &rtMatch);
|
||||
if (rtMatch.timerMatch == tmFull)
|
||||
hasTimer = true;
|
||||
} else
|
||||
} else {
|
||||
#if VDRVERSNUM >= 20301
|
||||
eTimerMatch TimerMatch = tmNone;
|
||||
LOCK_TIMERS_READ;
|
||||
const cTimers *timers = Timers;
|
||||
if (timers->GetMatch(event, &TimerMatch) && (TimerMatch == tmFull))
|
||||
hasTimer = true;
|
||||
#else
|
||||
hasTimer = event->HasTimer();
|
||||
|
||||
#endif
|
||||
}
|
||||
return hasTimer;
|
||||
}
|
||||
|
||||
@@ -175,7 +183,6 @@ void cRecManager::SetTimerPath(cTimer *timer, const cEvent *event, std::string p
|
||||
}
|
||||
|
||||
void cRecManager::DeleteTimer(int timerID) {
|
||||
dsyslog ("%s %s %d\n", __FILE__, __func__, __LINE__);
|
||||
#if VDRVERSNUM >= 20301
|
||||
cTimer *t;
|
||||
{
|
||||
@@ -191,7 +198,6 @@ void cRecManager::DeleteTimer(int timerID) {
|
||||
}
|
||||
|
||||
void cRecManager::DeleteTimer(const cEvent *event) {
|
||||
dsyslog ("%s %s %d\n", __FILE__, __func__, __LINE__);
|
||||
if (!event)
|
||||
return;
|
||||
if (tvguideConfig.useRemoteTimers && pRemoteTimers) {
|
||||
@@ -202,7 +208,6 @@ void cRecManager::DeleteTimer(const cEvent *event) {
|
||||
}
|
||||
|
||||
void cRecManager::DeleteLocalTimer(const cEvent *event) {
|
||||
dsyslog ("%s %s %d\n", __FILE__, __func__, __LINE__);
|
||||
const cTimer *t;
|
||||
#if VDRVERSNUM >= 20301
|
||||
{
|
||||
@@ -218,7 +223,6 @@ void cRecManager::DeleteLocalTimer(const cEvent *event) {
|
||||
}
|
||||
|
||||
void cRecManager::DeleteTimer(const cTimer *timer) {
|
||||
dsyslog ("%s %s %d\n", __FILE__, __func__, __LINE__);
|
||||
#if VDRVERSNUM >= 20301
|
||||
LOCK_TIMERS_WRITE;
|
||||
cTimers* timers = Timers;
|
||||
@@ -491,6 +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> list;
|
||||
list = epgSearch->handler->ChanGrpList();
|
||||
|
||||
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)
|
||||
@@ -571,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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +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);
|
||||
|
||||
47
recmenu.c
47
recmenu.c
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
196
recmenuitem.c
196
recmenuitem.c
@@ -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();
|
||||
}
|
||||
|
||||
@@ -493,7 +518,9 @@ cRecMenuItemSelect::cRecMenuItemSelect(cString text,
|
||||
int initialVal,
|
||||
bool active,
|
||||
int *callback,
|
||||
eRecMenuState action) {
|
||||
eRecMenuState action,
|
||||
bool refresh,
|
||||
int indent) {
|
||||
selectable = true;
|
||||
this->text = text;
|
||||
strings = Strings;
|
||||
@@ -504,6 +531,8 @@ cRecMenuItemSelect::cRecMenuItemSelect(cString text,
|
||||
this->currentVal = initialVal;
|
||||
this->active = active;
|
||||
this->callback = callback;
|
||||
this->refresh = refresh;
|
||||
this->indent = indent;
|
||||
this->action = action;
|
||||
height = 3 * font->Height() / 2;
|
||||
pixmapVal = NULL;
|
||||
@@ -536,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();
|
||||
}
|
||||
|
||||
@@ -571,14 +600,20 @@ eRecMenuState cRecMenuItemSelect::ProcessKey(eKeys Key) {
|
||||
if (callback)
|
||||
*callback = currentVal;
|
||||
DrawValue();
|
||||
return rmsConsumed;
|
||||
if (refresh)
|
||||
return rmsRefresh;
|
||||
else
|
||||
return rmsConsumed;
|
||||
break;
|
||||
case kRight:
|
||||
currentVal = (currentVal+1)%numValues;
|
||||
if (callback)
|
||||
*callback = currentVal;
|
||||
DrawValue();
|
||||
return rmsConsumed;
|
||||
if (refresh)
|
||||
return rmsRefresh;
|
||||
else
|
||||
return rmsConsumed;
|
||||
break;
|
||||
case kOk:
|
||||
return action;
|
||||
@@ -594,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;
|
||||
@@ -638,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();
|
||||
}
|
||||
|
||||
@@ -1289,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;
|
||||
@@ -1299,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;
|
||||
@@ -1331,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();
|
||||
}
|
||||
|
||||
@@ -1713,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;
|
||||
}
|
||||
|
||||
@@ -1787,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;
|
||||
}
|
||||
@@ -1802,13 +1841,13 @@ cRecMenuItemEvent::~cRecMenuItemEvent(void) {
|
||||
void cRecMenuItemEvent::SetPixmaps(void) {
|
||||
if (!pixmap) {
|
||||
pixmap = osdManager.requestPixmap(4, cRect(x, y, width, height));
|
||||
pixmapText = osdManager.requestPixmap(5, cRect(x, y, width, height));
|
||||
pixmapText = osdManager.requestPixmap(5, cRect(x, y, width - height / 2 - 10, height));
|
||||
pixmapText->Fill(clrTransparent);
|
||||
pixmapIcons = osdManager.requestPixmap(6, cRect(x, y, width, height));
|
||||
pixmapIcons->Fill(clrTransparent);
|
||||
} else {
|
||||
pixmap->SetViewPort(cRect(x, y, width, height));
|
||||
pixmapText->SetViewPort(cRect(x, y, width, height));
|
||||
pixmapText->SetViewPort(cRect(x, y, width - height / 2 - 10, height));
|
||||
pixmapIcons->SetViewPort(cRect(x, y, width, height));
|
||||
}
|
||||
}
|
||||
@@ -1861,7 +1900,7 @@ int cRecMenuItemEvent::DrawIcons(void) {
|
||||
int iconY = (height - iconSize) / 2;
|
||||
std::string iconInfo;
|
||||
if (active) {
|
||||
iconInfo = (iconActive==0)?"info_active":"info_inactive";
|
||||
iconInfo = (iconActive == 0) ? "info_active" : "info_inactive";
|
||||
} else {
|
||||
iconInfo = "info_inactive";
|
||||
}
|
||||
@@ -1871,7 +1910,6 @@ int cRecMenuItemEvent::DrawIcons(void) {
|
||||
iconsX += iconSize + 5;
|
||||
}
|
||||
|
||||
iconY = height - iconSize - 10;
|
||||
if (event->HasTimer()) {
|
||||
cImage *imgHasTimer = imgCache.GetIcon("activetimer", iconSize, iconSize);
|
||||
if (imgHasTimer) {
|
||||
@@ -1919,14 +1957,11 @@ eRecMenuState cRecMenuItemEvent::ProcessKey(eKeys Key) {
|
||||
|
||||
// --- cRecMenuItemChannelChooser -------------------------------------------------------
|
||||
cRecMenuItemChannelChooser::cRecMenuItemChannelChooser(cString text,
|
||||
#if VDRVERSNUM >= 20301
|
||||
const cChannel *initialChannel,
|
||||
#else
|
||||
cChannel *initialChannel,
|
||||
#endif
|
||||
bool active,
|
||||
int *callback,
|
||||
eRecMenuState action) {
|
||||
eRecMenuState action,
|
||||
int indent) {
|
||||
selectable = true;
|
||||
this->text = text;
|
||||
this->channel = initialChannel;
|
||||
@@ -1938,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;
|
||||
}
|
||||
|
||||
@@ -1970,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();
|
||||
}
|
||||
|
||||
@@ -1984,9 +2021,9 @@ void cRecMenuItemChannelChooser::DrawValue(void) {
|
||||
int logoWidth = height * tvguideConfig.logoWidthRatio / tvguideConfig.logoHeightRatio;
|
||||
int logoX = textX - logoWidth - 10;
|
||||
cImageLoader imgLoader;
|
||||
if (imgLoader.LoadLogo(channel, logoWidth, height)) {
|
||||
if (imgLoader.LoadLogo(channel, logoWidth, height - 10)) {
|
||||
cImage logo = imgLoader.GetImage();
|
||||
pixmapChannel->DrawImage(cPoint(logoX, 0), logo);
|
||||
pixmapChannel->DrawImage(cPoint(logoX, 5), logo);
|
||||
}
|
||||
} else {
|
||||
cString textVal = tr("all Channels");
|
||||
@@ -2008,29 +2045,21 @@ eRecMenuState cRecMenuItemChannelChooser::ProcessKey(eKeys Key) {
|
||||
fresh = true;
|
||||
if (!channel)
|
||||
return rmsConsumed;
|
||||
#if VDRVERSNUM >= 20301
|
||||
const cChannel *prev = channel;
|
||||
LOCK_CHANNELS_READ;
|
||||
const cChannel *firstChannel = Channels->First();
|
||||
#else
|
||||
cChannel *prev = channel;
|
||||
cChannel *firstChannel = Channels.First();
|
||||
#endif
|
||||
if(firstChannel->GroupSep())
|
||||
#if VDRVERSNUM >= 20301
|
||||
firstChannel = Channels->Next(firstChannel);
|
||||
LOCK_CHANNELS_READ;
|
||||
const cChannels* channels = Channels;
|
||||
#else
|
||||
firstChannel = Channels.Next(firstChannel);
|
||||
const cChannels* channels = &Channels;
|
||||
#endif
|
||||
const cChannel *firstChannel = channels->First();
|
||||
if(firstChannel->GroupSep())
|
||||
firstChannel = channels->Next(firstChannel);
|
||||
if (prev == firstChannel) {
|
||||
if (!initialChannelSet)
|
||||
channel = NULL;
|
||||
} else {
|
||||
#if VDRVERSNUM >= 20301
|
||||
while (prev = Channels->Prev(prev)) {
|
||||
#else
|
||||
while (prev = Channels.Prev(prev)) {
|
||||
#endif
|
||||
while (prev = channels->Prev(prev)) {
|
||||
if(!prev->GroupSep()) {
|
||||
channel = prev;
|
||||
break;
|
||||
@@ -2047,30 +2076,20 @@ eRecMenuState cRecMenuItemChannelChooser::ProcessKey(eKeys Key) {
|
||||
return rmsConsumed;
|
||||
break; }
|
||||
case kRight: {
|
||||
fresh = true;
|
||||
#if VDRVERSNUM >= 20301
|
||||
LOCK_CHANNELS_READ;
|
||||
const cChannels* channels = Channels;
|
||||
#else
|
||||
const cChannels* channels = &Channels;
|
||||
#endif
|
||||
fresh = true;
|
||||
if (!channel) {
|
||||
#if VDRVERSNUM >= 20301
|
||||
channel = Channels->First();
|
||||
#else
|
||||
channel = Channels.First();
|
||||
#endif
|
||||
channel = channels->First();
|
||||
if(channel->GroupSep())
|
||||
#if VDRVERSNUM >= 20301
|
||||
channel = Channels->Next(channel);
|
||||
#else
|
||||
channel = Channels.Next(channel);
|
||||
#endif
|
||||
channel = channels->Next(channel);
|
||||
} else {
|
||||
#if VDRVERSNUM >= 20301
|
||||
const cChannel *next = channel;
|
||||
while (next = Channels->Next(next)) {
|
||||
#else
|
||||
cChannel *next = channel;
|
||||
while (next = Channels.Next(next)) {
|
||||
#endif
|
||||
while (next = channels->Next(next)) {
|
||||
if(!next->GroupSep()) {
|
||||
channel = next;
|
||||
break;
|
||||
@@ -2096,7 +2115,7 @@ eRecMenuState cRecMenuItemChannelChooser::ProcessKey(eKeys Key) {
|
||||
LOCK_CHANNELS_READ;
|
||||
const cChannel *chanNew = Channels->GetByNumber(channelNumber);
|
||||
#else
|
||||
cChannel *chanNew = Channels.GetByNumber(channelNumber);
|
||||
const cChannel *chanNew = Channels.GetByNumber(channelNumber);
|
||||
#endif
|
||||
if (chanNew) {
|
||||
channel = chanNew;
|
||||
@@ -2118,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)
|
||||
@@ -2126,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;
|
||||
@@ -2167,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;
|
||||
}
|
||||
|
||||
@@ -2188,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;
|
||||
@@ -2211,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));
|
||||
}
|
||||
}
|
||||
@@ -2237,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; }
|
||||
@@ -2263,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;
|
||||
}
|
||||
|
||||
@@ -2291,7 +2312,7 @@ void cRecMenuItemRecording::Draw(void) {
|
||||
LOCK_CHANNELS_READ;
|
||||
const cChannel *channel = Channels->GetByChannelID(recInfo->ChannelID());
|
||||
#else
|
||||
cChannel *channel = Channels.GetByChannelID(recInfo->ChannelID());
|
||||
const cChannel *channel = Channels.GetByChannelID(recInfo->ChannelID());
|
||||
#endif
|
||||
cString channelName = tr("unknown channel");
|
||||
if (channel)
|
||||
@@ -2708,18 +2729,19 @@ void cRecMenuItemSearchTimer::SetPixmaps(void) {
|
||||
|
||||
void cRecMenuItemSearchTimer::Draw(void) {
|
||||
int textX = DrawIcons();
|
||||
bool timerIsActive = timer.IsActive();
|
||||
pixmapText->Fill(clrTransparent);
|
||||
textX += 20;
|
||||
cString label;
|
||||
if (timer.Active()) {
|
||||
label = cString::sprintf("\"%s\"", timer.SearchString().c_str());
|
||||
} else {
|
||||
label = cString::sprintf("\"%s\" (%s)", timer.SearchString().c_str(), tr("inactive"));
|
||||
}
|
||||
cString label = cString::sprintf("\"%s\"", timer.GetSearchString().c_str());
|
||||
cString inactive = cString::sprintf("(%s)", tr("inactive"));
|
||||
int numTimersActive = timer.GetNumTimers();
|
||||
int numRecordings = timer.GetNumRecordings();
|
||||
|
||||
cString info = cString::sprintf("%s: %d, %s: %d", tr("active timers"), numTimersActive, tr("recordings done"), numRecordings);
|
||||
pixmapText->DrawText(cPoint(textX, 5 + (height/2 - font->Height())/2), *label, colorText, clrTransparent, font);
|
||||
pixmapText->DrawText(cPoint(textX, 5 + (height/2 - font->Height()) / 2), *label, colorText, clrTransparent, font);
|
||||
if (!timerIsActive) {
|
||||
pixmapText->DrawText(cPoint(textX, 5 + (height - font->Height()) / 2), *inactive, colorText, clrTransparent, font, width - textX - 20, 0, taRight);
|
||||
}
|
||||
pixmapText->DrawText(cPoint(textX, height/2 + (height/2 - fontSmall->Height())/2), *info, colorText, clrTransparent, fontSmall);
|
||||
}
|
||||
|
||||
@@ -2836,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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
@@ -247,6 +259,8 @@ private:
|
||||
cString text;
|
||||
int currentVal;
|
||||
int *callback;
|
||||
bool refresh;
|
||||
int indent;
|
||||
std::vector<std::string> strings;
|
||||
int numValues;
|
||||
cPixmap *pixmapVal;
|
||||
@@ -257,7 +271,9 @@ public:
|
||||
int initialVal,
|
||||
bool active = false,
|
||||
int *callback = NULL,
|
||||
eRecMenuState action = rmsNotConsumed);
|
||||
eRecMenuState action = rmsNotConsumed,
|
||||
bool refresh = false,
|
||||
int indent = 0);
|
||||
virtual ~cRecMenuItemSelect(void);
|
||||
void SetPixmaps(void);
|
||||
void Hide(void);
|
||||
@@ -276,6 +292,7 @@ private:
|
||||
std::vector<std::string> folders;
|
||||
int currentVal;
|
||||
char *callback;
|
||||
int indent;
|
||||
int numValues;
|
||||
cPixmap *pixmapVal;
|
||||
void DrawValue(void);
|
||||
@@ -287,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);
|
||||
@@ -361,6 +379,7 @@ private:
|
||||
cString text;
|
||||
int value;
|
||||
int *callback;
|
||||
int indent;
|
||||
int mm;
|
||||
int hh;
|
||||
int pos;
|
||||
@@ -372,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);
|
||||
@@ -489,27 +509,21 @@ public:
|
||||
class cRecMenuItemChannelChooser : public cRecMenuItem {
|
||||
private:
|
||||
cString text;
|
||||
#if VDRVERSNUM >= 20301
|
||||
const cChannel *channel;
|
||||
#else
|
||||
cChannel *channel;
|
||||
#endif
|
||||
int channelNumber;
|
||||
int *callback;
|
||||
int indent;
|
||||
bool initialChannelSet;
|
||||
bool fresh;
|
||||
cPixmap *pixmapChannel;
|
||||
void DrawValue(void);
|
||||
public:
|
||||
cRecMenuItemChannelChooser (cString text,
|
||||
#if VDRVERSNUM >= 20301
|
||||
const cChannel *initialChannel,
|
||||
#else
|
||||
cChannel *initialChannel,
|
||||
#endif
|
||||
bool active = false,
|
||||
int *callback = NULL,
|
||||
eRecMenuState action = rmsNotConsumed);
|
||||
eRecMenuState action = rmsNotConsumed,
|
||||
int indent = 0);
|
||||
virtual ~cRecMenuItemChannelChooser(void);
|
||||
void SetPixmaps(void);
|
||||
void Hide(void);
|
||||
@@ -525,6 +539,7 @@ private:
|
||||
cString text;
|
||||
int weekdays;
|
||||
int *callback;
|
||||
int indent;
|
||||
bool epgsearchMode;
|
||||
std::string days;
|
||||
int daysX;
|
||||
@@ -542,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);
|
||||
|
||||
@@ -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);
|
||||
@@ -311,7 +309,9 @@ eOSState cRecMenuManager::StateMachine(eRecMenuState nextState) {
|
||||
if (epgSearchTemplates.size() > 0) {
|
||||
activeMenu = new cRecMenuSearchTimerTemplates(searchTimer, epgSearchTemplates);
|
||||
} else {
|
||||
activeMenu = new cRecMenuSearchTimerEdit(searchTimer, false);
|
||||
std::vector<std::string> channelGroups;
|
||||
recManager->GetChannelGroups(&channelGroups);
|
||||
activeMenu = new cRecMenuSearchTimerEdit(searchTimer, channelGroups);
|
||||
}
|
||||
}
|
||||
activeMenu->Display();
|
||||
@@ -320,21 +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;
|
||||
activeMenu = new cRecMenuSearchTimerEdit(searchTimer, advancedOptions);
|
||||
std::vector<std::string> channelGroups;
|
||||
recManager->GetChannelGroups(&channelGroups);
|
||||
activeMenu = new cRecMenuSearchTimerEdit(searchTimer, channelGroups);
|
||||
activeMenu->Display();
|
||||
break; }
|
||||
case rmsSearchTimerTest: {
|
||||
@@ -363,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; }
|
||||
|
||||
388
recmenus.c
388
recmenus.c
@@ -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,42 +718,28 @@ int cRecMenuSearchTimers::GetTotalNumMenuItems(void) {
|
||||
}
|
||||
|
||||
// --- cRecMenuSearchTimerEdit ---------------------------------------------------------
|
||||
cRecMenuSearchTimerEdit::cRecMenuSearchTimerEdit(cTVGuideSearchTimer searchTimer, bool advancedOptions) {
|
||||
cRecMenuSearchTimerEdit::cRecMenuSearchTimerEdit(cTVGuideSearchTimer searchTimer, std::vector<std::string> channelGroups) {
|
||||
init = true;
|
||||
deleteMenuItems = false;
|
||||
this->advancedOptions = advancedOptions;
|
||||
this->searchTimer = searchTimer;
|
||||
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();
|
||||
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();
|
||||
this->sT = searchTimer;
|
||||
this->channelGroups = channelGroups;
|
||||
strncpy(searchString, sT.searchString.c_str(), TEXTINPUTLENGTH);
|
||||
channelgroupIndex = -1;
|
||||
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");
|
||||
@@ -765,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();
|
||||
}
|
||||
|
||||
@@ -776,168 +757,235 @@ 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 = 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();
|
||||
}
|
||||
|
||||
void cRecMenuSearchTimerEdit::InitMenuItems(void) {
|
||||
int cRecMenuSearchTimerEdit::SplitChannelGroups(std::vector<std::string> *channelGroups, std::vector<std::string> *channelgroups) {
|
||||
int i = 0;
|
||||
int j = 0;
|
||||
for (std::vector<std::string>::iterator it = channelGroups->begin(); it != channelGroups->end(); it++) {
|
||||
std::string a = *it;
|
||||
splitstring s(a.c_str());
|
||||
std::vector<std::string> value = s.split('|', 0);
|
||||
std::vector<std::string>::iterator ito = value.begin();
|
||||
channelgroups->push_back(*ito);
|
||||
std::string b = *ito;
|
||||
if (b.compare(sT.channelGroup) == 0)
|
||||
j = i;
|
||||
i++;
|
||||
}
|
||||
return j;
|
||||
}
|
||||
|
||||
useChannelPos = 6;
|
||||
useTimePos = 7;
|
||||
useDayOfWeekPos = 8;
|
||||
avoidRepeatsPos = 14;
|
||||
void cRecMenuSearchTimerEdit::CreateMenuItems(void) {
|
||||
|
||||
mainMenuItems.push_back(new cRecMenuItemText(tr("Search String"), searchString, TEXTINPUTLENGTH, false, searchString));
|
||||
mainMenuItems.push_back(new cRecMenuItemBool(tr("Active"), timerActive, false, false, &timerActive, rmsSearchTimerSave));
|
||||
std::vector<std::string> searchModes;
|
||||
searchTimer.GetSearchModes(&searchModes);
|
||||
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 cRecMenuItemBool(tr("Limit Channels"), useChannel, true, false, &useChannel, rmsSearchTimerSave));
|
||||
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));
|
||||
int activeMenuItem = 0;
|
||||
|
||||
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 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
|
||||
|
||||
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) {
|
||||
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)
|
||||
AddSubMenu(&useChannelSubMenu);
|
||||
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) {
|
||||
searchTimer.SetSearchString(searchString);
|
||||
searchTimer.SetActive(timerActive);
|
||||
searchTimer.SetSearchMode(mode);
|
||||
searchTimer.SetUseTitle(useTitle);
|
||||
searchTimer.SetUseSubtitle(useSubtitle);
|
||||
searchTimer.SetUseDesription(useDescription);
|
||||
searchTimer.SetUseChannel(useChannel);
|
||||
if (useChannel) {
|
||||
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);
|
||||
}
|
||||
searchTimer.SetUseTime(useTime);
|
||||
if (useTime) {
|
||||
searchTimer.SetStartTime(startTime);
|
||||
searchTimer.SetStopTime(stopTime);
|
||||
if (sT.useChannel == 2) {
|
||||
if (channelgroups.size() > 0) {
|
||||
std::string & channelGroup = channelgroups[channelgroupIndex];
|
||||
searchTimer.SetChannelGroup(channelGroup);
|
||||
} else {
|
||||
sT.useChannel = 0;
|
||||
}
|
||||
}
|
||||
searchTimer.SetUseDayOfWeek(useDayOfWeek);
|
||||
if (useDayOfWeek) {
|
||||
searchTimer.SetUseChannel(sT.useChannel);
|
||||
searchTimer.SetUseTime(sT.useTime);
|
||||
if (sT.useTime) {
|
||||
searchTimer.SetStartTime(sT.startTime);
|
||||
searchTimer.SetStopTime(sT.stopTime);
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -947,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;
|
||||
}
|
||||
@@ -957,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);
|
||||
@@ -1007,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);
|
||||
|
||||
51
recmenus.h
51
recmenus.h
@@ -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,14 +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*> useTimeSubMenu;
|
||||
std::vector<cRecMenuItem*> useDayOfWeekSubMenu;
|
||||
std::vector<cRecMenuItem*> avoidRepeatSubMenu;
|
||||
std::vector<cRecMenuItem*> currentMenuItems;
|
||||
bool init;
|
||||
int numMenuItems;
|
||||
int useChannelPos;
|
||||
int useTimePos;
|
||||
@@ -222,35 +234,14 @@ private:
|
||||
int avoidRepeatsPos;
|
||||
char searchString[TEXTINPUTLENGTH];
|
||||
bool timerActive;
|
||||
int mode;
|
||||
bool useTitle;
|
||||
bool useSubtitle;
|
||||
bool useDescription;
|
||||
bool useChannel;
|
||||
int startChannel;
|
||||
int stopChannel;
|
||||
bool useTime;
|
||||
int startTime;
|
||||
int stopTime;
|
||||
bool useDayOfWeek;
|
||||
int channelgroupIndex;
|
||||
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);
|
||||
cRecMenuSearchTimerEdit(cTVGuideSearchTimer searchTimer, std::vector<std::string> channelGroups);
|
||||
void CreateMenuItems(void);
|
||||
virtual ~cRecMenuSearchTimerEdit(void);
|
||||
cTVGuideSearchTimer GetSearchTimer(void);
|
||||
|
||||
149
searchtimer.c
149
searchtimer.c
@@ -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);
|
||||
@@ -210,31 +212,31 @@ bool cTVGuideSearchTimer::Parse(bool readTemplate) {
|
||||
return false;
|
||||
for (int value = 0; value < numValues; value++) {
|
||||
switch (value) {
|
||||
case 0:
|
||||
case 0:
|
||||
if (!readTemplate)
|
||||
ID = atoi(values[value].c_str());
|
||||
break;
|
||||
case 1:
|
||||
case 1:
|
||||
if (!readTemplate) {
|
||||
std::string searchStringMasked = values[value];
|
||||
std::replace(searchStringMasked.begin(), searchStringMasked.end(), '|', ':');
|
||||
searchString = searchStringMasked;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
case 2:
|
||||
useTime = atoi(values[value].c_str());
|
||||
break;
|
||||
case 3:
|
||||
if (useTime) {
|
||||
startTime = atoi(values[value].c_str());
|
||||
}
|
||||
break;
|
||||
startTime = atoi(values[value].c_str());
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (useTime) {
|
||||
stopTime = atoi(values[value].c_str());
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
stopTime = atoi(values[value].c_str());
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
useChannel = atoi(values[value].c_str());
|
||||
break;
|
||||
case 6:
|
||||
@@ -242,39 +244,44 @@ bool cTVGuideSearchTimer::Parse(bool readTemplate) {
|
||||
channelMin = NULL;
|
||||
channelMax = NULL;
|
||||
} else if (useChannel == 1) {
|
||||
char *channelMinbuffer = NULL;
|
||||
char *channelMaxbuffer = NULL;
|
||||
int channels = sscanf(values[value].c_str(), "%a[^|]|%a[^|]", &channelMinbuffer, &channelMaxbuffer);
|
||||
int minNum = 0, maxNum = 0;
|
||||
int fields = sscanf(values[value].c_str(), "%d-%d", &minNum, &maxNum);
|
||||
if (fields == 0) { // stored with ID
|
||||
char *channelMinbuffer = NULL;
|
||||
char *channelMaxbuffer = NULL;
|
||||
int channels = sscanf(values[value].c_str(), "%m[^|]|%m[^|]", &channelMinbuffer, &channelMaxbuffer);
|
||||
#if VDRVERSNUM >= 20301
|
||||
LOCK_CHANNELS_READ;
|
||||
channelMin = Channels->GetByChannelID(tChannelID::FromString(channelMinbuffer), true, true);
|
||||
LOCK_CHANNELS_READ;
|
||||
channelMin = Channels->GetByChannelID(tChannelID::FromString(channelMinbuffer), true, true);
|
||||
#else
|
||||
channelMin = Channels.GetByChannelID(tChannelID::FromString(channelMinbuffer), true, true);
|
||||
channelMin = Channels.GetByChannelID(tChannelID::FromString(channelMinbuffer), true, true);
|
||||
#endif
|
||||
if (!channelMin) {
|
||||
channelMin = channelMax = NULL;
|
||||
useChannel = 0;
|
||||
}
|
||||
if (channels == 1)
|
||||
channelMax = channelMin;
|
||||
else {
|
||||
#if VDRVERSNUM >= 20301
|
||||
channelMax = Channels->GetByChannelID(tChannelID::FromString(channelMaxbuffer), true, true);
|
||||
#else
|
||||
channelMax = Channels.GetByChannelID(tChannelID::FromString(channelMaxbuffer), true, true);
|
||||
#endif
|
||||
if (!channelMax) {
|
||||
if (!channelMin) {
|
||||
esyslog("ERROR: channel '%s' not defined", channelMinbuffer);
|
||||
channelMin = channelMax = NULL;
|
||||
useChannel = 0;
|
||||
}
|
||||
if (channels == 1)
|
||||
channelMax = channelMin;
|
||||
else {
|
||||
#if VDRVERSNUM >= 20301
|
||||
channelMax = Channels->GetByChannelID(tChannelID::FromString(channelMaxbuffer), true, true);
|
||||
#else
|
||||
channelMax = Channels.GetByChannelID(tChannelID::FromString(channelMaxbuffer), true, true);
|
||||
#endif
|
||||
if (!channelMax) {
|
||||
esyslog("ERROR: channel '%s' not defined", channelMaxbuffer);
|
||||
channelMin = channelMax = NULL;
|
||||
useChannel = 0;
|
||||
}
|
||||
}
|
||||
free(channelMinbuffer);
|
||||
free(channelMaxbuffer);
|
||||
}
|
||||
free(channelMinbuffer);
|
||||
free(channelMaxbuffer);
|
||||
} else if (useChannel == 2) {
|
||||
channelGroup = values[value];
|
||||
}
|
||||
} else if (useChannel == 2)
|
||||
channelGroup = values[value];
|
||||
break;
|
||||
case 7:
|
||||
case 7:
|
||||
useCase = atoi(values[value].c_str());
|
||||
break;
|
||||
case 8:
|
||||
@@ -515,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)
|
||||
@@ -570,8 +576,37 @@ 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) {
|
||||
esyslog("tvguide searchtimer: strTimer: %s", strTimer.c_str());
|
||||
@@ -582,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);
|
||||
@@ -592,23 +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
|
||||
};
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
|
||||
|
||||
class cTVGuideSearchTimer {
|
||||
private:
|
||||
friend class cRecMenuSearchTimerEdit;
|
||||
protected:
|
||||
std::string strTimer;
|
||||
int ID;
|
||||
std::string searchString;
|
||||
@@ -76,50 +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; };
|
||||
bool UseChannel(void) { return useChannel; };
|
||||
int StartChannel(void) { return (channelMin)?channelMin->Number():0; };
|
||||
int StopChannel(void) { return (channelMax)?channelMax->Number():0; };
|
||||
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(bool useChannel) { this->useChannel = useChannel; };
|
||||
void SetStartChannel(int startChannel);
|
||||
void SetStopChannel(int stopChannel);
|
||||
void SetUseChannel(int useChannel) { this->useChannel = useChannel; };
|
||||
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; };
|
||||
@@ -127,14 +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);
|
||||
};
|
||||
|
||||
|
||||
@@ -154,7 +154,11 @@ public:
|
||||
|
||||
struct Epgsearch_services_v1_0 {
|
||||
// in/out
|
||||
#if __cplusplus < 201103L
|
||||
std::auto_ptr<cServiceHandler> handler;
|
||||
#else
|
||||
std::unique_ptr<cServiceHandler> handler;
|
||||
#endif
|
||||
};
|
||||
|
||||
// Data structures for service "Epgsearch-services-v1.1"
|
||||
@@ -169,7 +173,11 @@ public:
|
||||
|
||||
struct Epgsearch_services_v1_1 {
|
||||
// in/out
|
||||
#if __cplusplus < 201103L
|
||||
std::auto_ptr<cServiceHandler_v1_1> handler;
|
||||
#else
|
||||
std::unique_ptr<cServiceHandler_v1_1> handler;
|
||||
#endif
|
||||
};
|
||||
|
||||
// Data structures for service "Epgsearch-services-v1.2"
|
||||
@@ -184,7 +192,11 @@ public:
|
||||
|
||||
struct Epgsearch_services_v1_2 {
|
||||
// in/out
|
||||
#if __cplusplus < 201103L
|
||||
std::auto_ptr<cServiceHandler_v1_2> handler;
|
||||
#else
|
||||
std::unique_ptr<cServiceHandler_v1_2> handler;
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
114
setup.c
114
setup.c
@@ -77,6 +77,7 @@ void cTvguideSetup::Store(void) {
|
||||
SetupStore("channelCols", tvguideConfig.channelCols);
|
||||
SetupStore("channelRows", tvguideConfig.channelRows);
|
||||
SetupStore("displayTime", tvguideConfig.displayTime);
|
||||
SetupStore("displayHorizontalTime", tvguideConfig.displayHorizontalTime);
|
||||
SetupStore("bigStepHours", tvguideConfig.bigStepHours);
|
||||
SetupStore("hugeStepHours", tvguideConfig.hugeStepHours);
|
||||
SetupStore("channelJumpMode", tvguideConfig.channelJumpMode);
|
||||
@@ -155,7 +156,7 @@ void cTvguideSetup::Store(void) {
|
||||
SetupStore("limitLogoCache", tvguideConfig.limitLogoCache);
|
||||
}
|
||||
|
||||
cMenuSetupSubMenu::cMenuSetupSubMenu(const char* Title, cTvguideConfig* data) : cOsdMenu(Title, 30) {
|
||||
cMenuSetupSubMenu::cMenuSetupSubMenu(const char* Title, cTvguideConfig* data) : cOsdMenu(Title, 40) {
|
||||
tmpTvguideConfig = data;
|
||||
indent = " ";
|
||||
}
|
||||
@@ -209,7 +210,11 @@ void cMenuSetupGeneral::Set(void) {
|
||||
if (themes.NumThemes())
|
||||
Add(new cMenuEditStraItem(cString::sprintf("%s%s", *indent, tr("Theme")), &tmpTvguideConfig->themeIndex, themes.NumThemes(), themes.Descriptions()));
|
||||
}
|
||||
Add(new cMenuEditIntItem(tr("Time to display in minutes"), &tmpTvguideConfig->displayTime, 60, 320));
|
||||
if (tmpTvguideConfig->displayMode == eVertical) {
|
||||
Add(new cMenuEditIntItem(tr("Time to display in minutes"), &tmpTvguideConfig->displayTime, 60, 320));
|
||||
} else if (tmpTvguideConfig->displayMode == eHorizontal) {
|
||||
Add(new cMenuEditIntItem(tr("Time to display in minutes"), &tmpTvguideConfig->displayHorizontalTime, 60, 320));
|
||||
}
|
||||
Add(new cMenuEditBoolItem(tr("Rounded Corners"), &tmpTvguideConfig->roundedCorners));
|
||||
|
||||
Add(new cMenuEditStraItem(tr("Channel Jump Mode (Keys Green / Yellow)"), &tmpTvguideConfig->channelJumpMode, 2, jumpMode));
|
||||
@@ -231,11 +236,16 @@ void cMenuSetupGeneral::Set(void) {
|
||||
}
|
||||
|
||||
eOSState cMenuSetupGeneral::ProcessKey(eKeys Key) {
|
||||
bool olduseNopacityTheme = tmpTvguideConfig->useNopacityTheme;
|
||||
bool olddisplayRerunsDetailEPGView = tmpTvguideConfig->displayRerunsDetailEPGView;
|
||||
eOSState state = cOsdMenu::ProcessKey(Key);
|
||||
if (Key == kOk) {
|
||||
state = osBack;
|
||||
} else if (Key != kNone) {
|
||||
Set();
|
||||
if (tmpTvguideConfig->useNopacityTheme != olduseNopacityTheme ||
|
||||
tmpTvguideConfig->displayRerunsDetailEPGView != olddisplayRerunsDetailEPGView) {
|
||||
Set();
|
||||
}
|
||||
}
|
||||
return state;
|
||||
}
|
||||
@@ -312,11 +322,22 @@ void cMenuSetupScreenLayout::Set(void) {
|
||||
}
|
||||
|
||||
eOSState cMenuSetupScreenLayout::ProcessKey(eKeys Key) {
|
||||
int olddisplayMode = tmpTvguideConfig->displayMode;
|
||||
bool olddisplayStatusHeader = tmpTvguideConfig->displayStatusHeader;
|
||||
bool olddisplayChannelGroups = tmpTvguideConfig->displayChannelGroups;
|
||||
int oldhideChannelLogos = tmpTvguideConfig->hideChannelLogos;
|
||||
int oldhideEpgImages = tmpTvguideConfig->hideEpgImages;
|
||||
eOSState state = cOsdMenu::ProcessKey(Key);
|
||||
if (Key == kOk) {
|
||||
state = osBack;
|
||||
} else if (Key != kNone) {
|
||||
Set();
|
||||
if (tmpTvguideConfig->displayMode != olddisplayMode ||
|
||||
tmpTvguideConfig->displayStatusHeader != olddisplayStatusHeader ||
|
||||
tmpTvguideConfig->displayChannelGroups != olddisplayChannelGroups ||
|
||||
tmpTvguideConfig->hideChannelLogos != oldhideChannelLogos ||
|
||||
tmpTvguideConfig->hideEpgImages != oldhideEpgImages) {
|
||||
Set();
|
||||
}
|
||||
}
|
||||
return state;
|
||||
}
|
||||
@@ -397,33 +418,34 @@ void cMenuSetupFavorites::Set(void) {
|
||||
if (pRemoteTimers)
|
||||
Add(new cMenuEditBoolItem(tr("Use Remotetimers"), &tmpTvguideConfig->useRemoteTimers));
|
||||
|
||||
Add(new cMenuEditBoolItem(tr("Use \"What's on now\" in favorites"), &tmpTvguideConfig->favWhatsOnNow));
|
||||
Add(new cMenuEditBoolItem(tr("Use \"What's on next\" in favorites"), &tmpTvguideConfig->favWhatsOnNext));
|
||||
Add(new cMenuEditBoolItem(tr("Use user defined time 1 in favorites"), &tmpTvguideConfig->favUseTime1));
|
||||
if (tmpTvguideConfig->favUseTime1) {
|
||||
Add(new cMenuEditStrItem(cString::sprintf("%s%s", *indent, tr("Description")), description1, sizeof(description1), trVDR(FileNameChars)));
|
||||
Add(new cMenuEditTimeItem(cString::sprintf("%s%s", *indent, tr("Time")), &tmpTvguideConfig->favTime1));
|
||||
}
|
||||
Add(new cMenuEditBoolItem(tr("Use user defined time 2 in favorites"), &tmpTvguideConfig->favUseTime2));
|
||||
if (tmpTvguideConfig->favUseTime2) {
|
||||
Add(new cMenuEditStrItem(cString::sprintf("%s%s", *indent, tr("Description")), description2, sizeof(description2), trVDR(FileNameChars)));
|
||||
Add(new cMenuEditTimeItem(cString::sprintf("%s%s", *indent, tr("Time")), &tmpTvguideConfig->favTime2));
|
||||
}
|
||||
Add(new cMenuEditBoolItem(tr("Use user defined time 3 in favorites"), &tmpTvguideConfig->favUseTime3));
|
||||
if (tmpTvguideConfig->favUseTime3) {
|
||||
Add(new cMenuEditStrItem(cString::sprintf("%s%s", *indent, tr("Description")), description3, sizeof(description3), trVDR(FileNameChars)));
|
||||
Add(new cMenuEditTimeItem(cString::sprintf("%s%s", *indent, tr("Time")), &tmpTvguideConfig->favTime3));
|
||||
}
|
||||
Add(new cMenuEditBoolItem(tr("Use user defined time 4 in favorites"), &tmpTvguideConfig->favUseTime4));
|
||||
if (tmpTvguideConfig->favUseTime4) {
|
||||
Add(new cMenuEditStrItem(cString::sprintf("%s%s", *indent, tr("Description")), description4, sizeof(description4), trVDR(FileNameChars)));
|
||||
Add(new cMenuEditTimeItem(cString::sprintf("%s%s", *indent, tr("Time")), &tmpTvguideConfig->favTime4));
|
||||
}
|
||||
Add(new cMenuEditBoolItem(tr("Limit channels in favorites"), &tmpTvguideConfig->favLimitChannels));
|
||||
if (tmpTvguideConfig->favLimitChannels) {
|
||||
Add(new cMenuEditChanItem(tr("Start Channel"), &tmpTvguideConfig->favStartChannel));
|
||||
Add(new cMenuEditChanItem(tr("Stop Channel"), &tmpTvguideConfig->favStopChannel));
|
||||
}
|
||||
Add(new cMenuEditBoolItem(tr("Use \"What's on now\" in favorites"), &tmpTvguideConfig->favWhatsOnNow));
|
||||
Add(new cMenuEditBoolItem(tr("Use \"What's on next\" in favorites"), &tmpTvguideConfig->favWhatsOnNext));
|
||||
Add(new cOsdItem(tr("User defined times in favorites:"), osUnknown, false));
|
||||
Add(new cMenuEditBoolItem(tr("Use user defined time 1"), &tmpTvguideConfig->favUseTime1));
|
||||
if (tmpTvguideConfig->favUseTime1) {
|
||||
Add(new cMenuEditStrItem(cString::sprintf("%s%s", *indent, tr("Description")), description1, sizeof(description1), trVDR(FileNameChars)));
|
||||
Add(new cMenuEditTimeItem(cString::sprintf("%s%s", *indent, tr("Time")), &tmpTvguideConfig->favTime1));
|
||||
}
|
||||
Add(new cMenuEditBoolItem(tr("Use user defined time 2"), &tmpTvguideConfig->favUseTime2));
|
||||
if (tmpTvguideConfig->favUseTime2) {
|
||||
Add(new cMenuEditStrItem(cString::sprintf("%s%s", *indent, tr("Description")), description2, sizeof(description2), trVDR(FileNameChars)));
|
||||
Add(new cMenuEditTimeItem(cString::sprintf("%s%s", *indent, tr("Time")), &tmpTvguideConfig->favTime2));
|
||||
}
|
||||
Add(new cMenuEditBoolItem(tr("Use user defined time 3"), &tmpTvguideConfig->favUseTime3));
|
||||
if (tmpTvguideConfig->favUseTime3) {
|
||||
Add(new cMenuEditStrItem(cString::sprintf("%s%s", *indent, tr("Description")), description3, sizeof(description3), trVDR(FileNameChars)));
|
||||
Add(new cMenuEditTimeItem(cString::sprintf("%s%s", *indent, tr("Time")), &tmpTvguideConfig->favTime3));
|
||||
}
|
||||
Add(new cMenuEditBoolItem(tr("Use user defined time 4"), &tmpTvguideConfig->favUseTime4));
|
||||
if (tmpTvguideConfig->favUseTime4) {
|
||||
Add(new cMenuEditStrItem(cString::sprintf("%s%s", *indent, tr("Description")), description4, sizeof(description4), trVDR(FileNameChars)));
|
||||
Add(new cMenuEditTimeItem(cString::sprintf("%s%s", *indent, tr("Time")), &tmpTvguideConfig->favTime4));
|
||||
}
|
||||
Add(new cOsdItem(tr("Switchtimer:"), osUnknown, false));
|
||||
Add(new cMenuEditStraItem(tr("Switch Mode"), &tmpTvguideConfig->switchMode, 3, switchModeItems));
|
||||
Add(new cMenuEditIntItem(tr("Switch (x)min before start of the show"), &tmpTvguideConfig->switchMinsBefore, 0, 10));
|
||||
@@ -434,32 +456,42 @@ void cMenuSetupFavorites::Set(void) {
|
||||
}
|
||||
|
||||
eOSState cMenuSetupFavorites::ProcessKey(eKeys Key) {
|
||||
|
||||
int tmpFavUseTime1 = tmpTvguideConfig->favUseTime1;
|
||||
int tmpFavUseTime2 = tmpTvguideConfig->favUseTime2;
|
||||
int tmpFavUseTime3 = tmpTvguideConfig->favUseTime3;
|
||||
int tmpFavUseTime4 = tmpTvguideConfig->favUseTime4;
|
||||
int tmpFavLimitChannels = tmpTvguideConfig->favLimitChannels;
|
||||
int tmpFolderMode = tmpTvguideConfig->instRecFolderMode;
|
||||
|
||||
eOSState state = cOsdMenu::ProcessKey(Key);
|
||||
if (Key == kOk) {
|
||||
tmpTvguideConfig->descUser1 = description1;
|
||||
tmpTvguideConfig->descUser2 = description2;
|
||||
tmpTvguideConfig->descUser3 = description3;
|
||||
tmpTvguideConfig->descUser4 = description4;
|
||||
tmpTvguideConfig->instRecFixedFolder = fixedFolder;
|
||||
} else if ((Key == kLeft)||(Key == kRight)) {
|
||||
if ((tmpFavUseTime1 != tmpTvguideConfig->favUseTime1) ||
|
||||
(tmpFavUseTime2 != tmpTvguideConfig->favUseTime2) ||
|
||||
(tmpFavUseTime3 != tmpTvguideConfig->favUseTime3) ||
|
||||
(tmpFavUseTime4 != tmpTvguideConfig->favUseTime4) ||
|
||||
(tmpFavLimitChannels != tmpTvguideConfig->favLimitChannels) ||
|
||||
(tmpFolderMode != tmpTvguideConfig->instRecFolderMode) )
|
||||
Set();
|
||||
|
||||
if ((tmpFavUseTime1 != tmpTvguideConfig->favUseTime1) ||
|
||||
(tmpFavUseTime2 != tmpTvguideConfig->favUseTime2) ||
|
||||
(tmpFavUseTime3 != tmpTvguideConfig->favUseTime3) ||
|
||||
(tmpFavUseTime4 != tmpTvguideConfig->favUseTime4) ||
|
||||
(tmpFavLimitChannels != tmpTvguideConfig->favLimitChannels) ||
|
||||
(tmpFolderMode != tmpTvguideConfig->instRecFolderMode) ) {
|
||||
Set();
|
||||
Display();
|
||||
}
|
||||
|
||||
if (state == osUnknown) {
|
||||
switch (Key) {
|
||||
case kOk: {
|
||||
tmpTvguideConfig->descUser1 = cString::sprintf("%s", description1);
|
||||
tmpTvguideConfig->descUser2 = cString::sprintf("%s", description2);
|
||||
tmpTvguideConfig->descUser3 = cString::sprintf("%s", description3);
|
||||
tmpTvguideConfig->descUser4 = cString::sprintf("%s", description4);
|
||||
return osBack; }
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
|
||||
//-----Image Caching-------------------------------------------------------------------------------------------------------------
|
||||
cMenuSetupImageCache::cMenuSetupImageCache(cTvguideConfig* data) : cMenuSetupSubMenu(tr("Image Loading and Caching"), data) {
|
||||
Set();
|
||||
|
||||
@@ -58,10 +58,7 @@ void cStatusHeader::ScaleVideo(void) {
|
||||
void cStatusHeader::DrawInfoText(cGrid *grid) {
|
||||
int border = 10;
|
||||
int textWidth = 0;
|
||||
if (tvguideConfig.displayMode == eVertical)
|
||||
textWidth = width - 2 * border - geoManager.clockWidth - 2;
|
||||
else
|
||||
textWidth = width - 2 * border;
|
||||
textWidth = width - 2 * border;
|
||||
tColor colorTextBack = (tvguideConfig.style == eStyleFlat)?color:clrTransparent;
|
||||
pixmapText->Fill(clrTransparent);
|
||||
int x = border;
|
||||
@@ -143,4 +140,4 @@ void cStatusHeader::DecorateVideoFrame(void) {
|
||||
pixmapTVFrame->DrawEllipse(cRect(frame, height - radius - frame, radius, radius), theme.Color(clrBackgroundOSD), -3);
|
||||
pixmapTVFrame->DrawRectangle(cRect(0, height - frame, tvFrameWidth, frame), theme.Color(clrBackgroundOSD));
|
||||
pixmapTVFrame->DrawEllipse(cRect(tvFrameWidth - radius - frame, height - radius - frame, radius, radius), theme.Color(clrBackgroundOSD), -4);
|
||||
}
|
||||
}
|
||||
|
||||
25
timeline.c
25
timeline.c
@@ -5,7 +5,7 @@ cTimeLine::cTimeLine(cMyTime *myTime) {
|
||||
this->myTime = myTime;
|
||||
if (tvguideConfig.displayMode == eVertical) {
|
||||
dateViewer = new cStyledPixmap(osdManager.requestPixmap(1, cRect(0,
|
||||
geoManager.statusHeaderHeight,
|
||||
geoManager.statusHeaderHeight + geoManager.clockHeight,
|
||||
geoManager.dateVieverWidth,
|
||||
geoManager.dateVieverHeight)));
|
||||
timeline = osdManager.requestPixmap(2, cRect(0,
|
||||
@@ -23,7 +23,7 @@ cTimeLine::cTimeLine(cMyTime *myTime) {
|
||||
} else if (tvguideConfig.displayMode == eHorizontal) {
|
||||
dateViewer = new cStyledPixmap(osdManager.requestPixmap(1, cRect(geoManager.clockWidth,
|
||||
geoManager.statusHeaderHeight,
|
||||
geoManager.dateVieverWidth - geoManager.clockWidth,
|
||||
geoManager.dateVieverWidth,
|
||||
geoManager.dateVieverHeight)));
|
||||
timeline = osdManager.requestPixmap(2, cRect(geoManager.channelHeaderWidth + geoManager.channelGroupsWidth,
|
||||
geoManager.statusHeaderHeight,
|
||||
@@ -42,13 +42,8 @@ cTimeLine::cTimeLine(cMyTime *myTime) {
|
||||
int clockY;
|
||||
int clockX;
|
||||
if (tvguideConfig.displayMode == eVertical) {
|
||||
clockY = 10;
|
||||
if (tvguideConfig.scaleVideo) {
|
||||
clockX = geoManager.osdWidth - geoManager.tvFrameWidth - geoManager.clockWidth - 4;
|
||||
}
|
||||
else {
|
||||
clockX = geoManager.osdWidth - geoManager.clockWidth - 10;
|
||||
}
|
||||
clockY = geoManager.statusHeaderHeight;
|
||||
clockX = 0;
|
||||
}
|
||||
else {
|
||||
clockY = geoManager.statusHeaderHeight;
|
||||
@@ -83,18 +78,20 @@ void cTimeLine::drawDateViewer() {
|
||||
dateViewer->Fill(clrTransparent);
|
||||
}
|
||||
tColor colorFont = theme.Color(clrButtonYellow);
|
||||
tColor colorFontBack = (tvguideConfig.style == eStyleFlat)?theme.Color(clrHeader):clrTransparent;
|
||||
tColor colorFontBack = (tvguideConfig.style == eStyleFlat) ? theme.Color(clrHeader) : clrTransparent;
|
||||
|
||||
if (tvguideConfig.displayMode == eVertical) {
|
||||
int textHeight = fontManager.FontTimeLineWeekday->Height();
|
||||
int textHeightWeekday = fontManager.FontTimeLineWeekday->Height();
|
||||
int textHeightDate = fontManager.FontTimeLineDate->Height();
|
||||
int weekdayWidth = fontManager.FontTimeLineWeekday->Width(*weekDay);
|
||||
int dateWidth = fontManager.FontTimeLineDate->Width(*date);
|
||||
dateViewer->DrawText(cPoint((geoManager.timeLineWidth-weekdayWidth)/2, (geoManager.channelHeaderHeight + geoManager.channelGroupsHeight -2*textHeight)/2), *weekDay, colorFont, colorFontBack, fontManager.FontTimeLineWeekday);
|
||||
dateViewer->DrawText(cPoint((geoManager.timeLineWidth-dateWidth)/2, (geoManager.channelHeaderHeight + geoManager.channelGroupsHeight -2*textHeight)/2 + textHeight + 5), *date, colorFont, colorFontBack, fontManager.FontTimeLineDate);
|
||||
int y = ((geoManager.dateVieverHeight - textHeightWeekday - textHeightDate) / 2);
|
||||
dateViewer->DrawText(cPoint((geoManager.timeLineWidth - weekdayWidth) / 2, y), *weekDay, colorFont, colorFontBack, fontManager.FontTimeLineWeekday);
|
||||
dateViewer->DrawText(cPoint((geoManager.timeLineWidth - dateWidth) / 2, y + textHeightWeekday), *date, colorFont, colorFontBack, fontManager.FontTimeLineDate);
|
||||
} else if (tvguideConfig.displayMode == eHorizontal) {
|
||||
cString strDate = cString::sprintf("%s %s", *weekDay, *date);
|
||||
int x = ((dateViewer->Width() - fontManager.FontTimeLineDateHorizontal->Width(*strDate)) / 2);
|
||||
int y = (dateViewer->Height() - fontManager.FontTimeLineDateHorizontal->Height())/2;
|
||||
int y = ((dateViewer->Height() - fontManager.FontTimeLineDateHorizontal->Height()) / 2);
|
||||
dateViewer->DrawText(cPoint(x, y), *strDate, colorFont, colorFontBack, fontManager.FontTimeLineDateHorizontal);
|
||||
}
|
||||
}
|
||||
|
||||
12
tvguide.c
12
tvguide.c
@@ -26,8 +26,8 @@
|
||||
#error "VDR-2.0.0 API version or greater is required!"
|
||||
#endif
|
||||
|
||||
static const char *VERSION = "1.2.5";
|
||||
static const char *DESCRIPTION = "A fancy 2d EPG Viewer";
|
||||
static const char *VERSION = "1.2.9";
|
||||
static const char *DESCRIPTION = tr("A fancy 2d EPG Viewer");
|
||||
static const char *MAINMENUENTRY = "Tvguide";
|
||||
|
||||
class cPluginTvguide : public cPlugin {
|
||||
@@ -35,7 +35,7 @@ public:
|
||||
cPluginTvguide(void);
|
||||
virtual ~cPluginTvguide();
|
||||
virtual const char *Version(void) { return VERSION; }
|
||||
virtual const char *Description(void) { return DESCRIPTION; }
|
||||
virtual const char *Description(void) { return tr(DESCRIPTION); }
|
||||
virtual const char *CommandLineHelp(void);
|
||||
virtual bool ProcessArgs(int argc, char *argv[]);
|
||||
virtual bool Initialize(void);
|
||||
@@ -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[]) {
|
||||
|
||||
36
tvguideosd.c
36
tvguideosd.c
@@ -139,11 +139,15 @@ void cTvGuideOsd::readChannels(const cChannel *channelStart) {
|
||||
if (!channelStart)
|
||||
return;
|
||||
#if VDRVERSNUM >= 20301
|
||||
const cChannels *channels;
|
||||
{
|
||||
LOCK_CHANNELS_READ;
|
||||
for (const cChannel *channel = channelStart; channel; channel = Channels->Next(channel)) {
|
||||
channels = Channels;
|
||||
}
|
||||
#else
|
||||
for (const cChannel *channel = channelStart; channel; channel = Channels.Next(channel)) {
|
||||
cChannels *channels = &Channels;
|
||||
#endif
|
||||
for (const cChannel *channel = channelStart; channel; channel = channels->Next(channel)) {
|
||||
if (!channel->GroupSep()) {
|
||||
if (channelGroups->IsInLastGroup(channel)) {
|
||||
break;
|
||||
@@ -165,11 +169,7 @@ void cTvGuideOsd::readChannels(const cChannel *channelStart) {
|
||||
int numCurrent = columns.Count();
|
||||
int numBack = tvguideConfig.numGrids - numCurrent;
|
||||
int newChannelNumber = columns.First()->getChannel()->Number() - numBack;
|
||||
#if VDRVERSNUM >= 20301
|
||||
const cChannel *newStart = Channels->GetByNumber(newChannelNumber);
|
||||
#else
|
||||
const cChannel *newStart = Channels.GetByNumber(newChannelNumber);
|
||||
#endif
|
||||
const cChannel *newStart = channels->GetByNumber(newChannelNumber);
|
||||
readChannels(newStart);
|
||||
}
|
||||
}
|
||||
@@ -238,13 +238,16 @@ void cTvGuideOsd::channelForward() {
|
||||
bool colAdded = false;
|
||||
if (!colRight) {
|
||||
const cChannel *channelRight = activeGrid->column->getChannel();
|
||||
const cChannels *channels;
|
||||
#if VDRVERSNUM >= 20301
|
||||
{
|
||||
{
|
||||
LOCK_CHANNELS_READ;
|
||||
while (channelRight = Channels->Next(channelRight)) {
|
||||
channels = Channels;
|
||||
}
|
||||
#else
|
||||
while (channelRight = Channels.Next(channelRight)) {
|
||||
channels = &Channels;
|
||||
#endif
|
||||
while (channelRight = channels->Next(channelRight)) {
|
||||
if (!channelRight->GroupSep()) {
|
||||
if (channelGroups->IsInLastGroup(channelRight)) {
|
||||
break;
|
||||
@@ -258,9 +261,6 @@ void cTvGuideOsd::channelForward() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#if VDRVERSNUM >= 20301
|
||||
} //LOCK_CHANNELS_READ
|
||||
#endif
|
||||
if (colRight) {
|
||||
colAdded = true;
|
||||
if (columns.Count() == tvguideConfig.numGrids) {
|
||||
@@ -297,13 +297,16 @@ void cTvGuideOsd::channelBack() {
|
||||
bool colAdded = false;
|
||||
if (!colLeft) {
|
||||
const cChannel *channelLeft = activeGrid->column->getChannel();
|
||||
const cChannels *channels;
|
||||
#if VDRVERSNUM >= 20301
|
||||
{
|
||||
LOCK_CHANNELS_READ;
|
||||
while (channelLeft = Channels->Prev(channelLeft)) {
|
||||
channels = Channels;
|
||||
}
|
||||
#else
|
||||
while (channelLeft = Channels.Prev(channelLeft)) {
|
||||
channels = &Channels;
|
||||
#endif
|
||||
while (channelLeft = channels->Prev(channelLeft)) {
|
||||
if (!channelLeft->GroupSep()) {
|
||||
colLeft = new cChannelColumn(0, channelLeft, myTime);
|
||||
if (colLeft->readGrids()) {
|
||||
@@ -314,9 +317,6 @@ void cTvGuideOsd::channelBack() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#if VDRVERSNUM >= 20301
|
||||
} //LOCK_CHANNELS_READ
|
||||
#endif
|
||||
if (colLeft) {
|
||||
colAdded = true;
|
||||
if (columns.Count() == tvguideConfig.numGrids) {
|
||||
|
||||
9
view.c
9
view.c
@@ -16,7 +16,6 @@ cView::cView(void) {
|
||||
pixmapBackground = NULL;
|
||||
pixmapHeader = NULL;
|
||||
pixmapHeaderLogo = NULL;
|
||||
pixmapHeaderIcon = NULL;
|
||||
pixmapContent = NULL;
|
||||
pixmapTabs = NULL;
|
||||
pixmapScrollbar = NULL;
|
||||
@@ -47,8 +46,6 @@ cView::~cView(void) {
|
||||
delete pixmapHeader;
|
||||
if (pixmapHeaderLogo)
|
||||
osdManager.releasePixmap(pixmapHeaderLogo);
|
||||
if (pixmapHeaderIcon)
|
||||
osdManager.releasePixmap(pixmapHeaderIcon);
|
||||
if (pixmapContent)
|
||||
osdManager.releasePixmap(pixmapContent);
|
||||
if (pixmapTabs)
|
||||
@@ -157,10 +154,8 @@ void cView::DrawHeader(void) {
|
||||
int height = fontManager.FontDetailHeader->Height() + 10;
|
||||
int posX = headerWidth - widthIcon - 25;
|
||||
int posY = ySubtitle - 5;
|
||||
if (!pixmapHeaderIcon)
|
||||
pixmapHeaderIcon = osdManager.requestPixmap(7, cRect(posX, posY, widthIcon, height));
|
||||
pixmapHeaderIcon->DrawRectangle(cRect(0, 0, widthIcon, height), iconColor);
|
||||
pixmapHeaderIcon->DrawText(cPoint(5, 5), *recIconText, theme.Color(clrFont), iconColor, fontManager.FontDetailHeader);
|
||||
pixmapHeader->DrawRectangle( cRect(posX, posY, widthIcon, height), iconColor);
|
||||
pixmapHeader->DrawText(cPoint(posX + 5, posY + 5), *recIconText, theme.Color(clrFont), iconColor, fontManager.FontDetailHeader);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user