diff options
author | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2020-01-06 12:51:49 +0100 |
---|---|---|
committer | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2020-01-06 15:14:45 +0100 |
commit | 6540e214440faef1c72057e1727991d88ae2c9e2 (patch) | |
tree | 8071504c4f309ccfa28df7e1a791401a5ee81dad /timemanager.c | |
parent | 2e4a43133e140eb5bd3344ef5486aca3dda41caf (diff) | |
download | vdr-plugin-tvguide-6540e214440faef1c72057e1727991d88ae2c9e2.tar.gz vdr-plugin-tvguide-6540e214440faef1c72057e1727991d88ae2c9e2.tar.bz2 |
Optimize TimeJump
Diffstat (limited to 'timemanager.c')
-rw-r--r-- | timemanager.c | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/timemanager.c b/timemanager.c index a38e57a..47a2677 100644 --- a/timemanager.c +++ b/timemanager.c @@ -3,6 +3,14 @@ #include "config.h" #include "timemanager.h" +cTimeManager::cTimeManager(void) { + if (config.displayMode == eVertical) { + displaySeconds = (geoManager.osdHeight - geoManager.statusHeaderHeight - geoManager.channelHeaderHeight - geoManager.channelGroupsHeight - geoManager.footerHeight) / geoManager.minutePixel * 60; + } else if (config.displayMode == eHorizontal) { + displaySeconds = (geoManager.osdWidth - geoManager.channelHeaderWidth - geoManager.channelGroupsWidth) / geoManager.minutePixel * 60; + } +} + cTimeManager::~cTimeManager(void) { } @@ -18,40 +26,32 @@ void cTimeManager::Now() { t = time(0); tStart = t; tStart = GetRounded(); - if (config.displayMode == eVertical) { - tEnd = tStart + (geoManager.osdHeight - geoManager.statusHeaderHeight - geoManager.channelHeaderHeight - geoManager.channelGroupsHeight - geoManager.footerHeight)/geoManager.minutePixel*60; - } else if (config.displayMode == eHorizontal) { - tEnd = tStart + (geoManager.osdWidth - geoManager.channelHeaderWidth - geoManager.channelGroupsWidth)/geoManager.minutePixel*60; - } + tEnd = tStart + displaySeconds; } void cTimeManager::AddStep(int step) { - tStart += step*60; - tEnd += step*60; + tStart += step * 60; + tEnd = tStart + displaySeconds; } -bool cTimeManager::DelStep(int step) { - if ((tStart - step*60)+30*60 < t) { - return true; +void cTimeManager::DelStep(int step) { + if ((tStart - step * 60) + 30 * 60 < t) { + Now(); + } else { + tStart -= step * 60; + tEnd = tStart + displaySeconds; } - tStart -= step*60; - tEnd -= step*60; - return false; } void cTimeManager::SetTime(time_t newTime) { tStart = newTime; - if (config.displayMode == eVertical) { - tEnd = tStart + (geoManager.osdHeight - geoManager.statusHeaderHeight - geoManager.channelHeaderHeight - geoManager.channelGroupsHeight - geoManager.footerHeight)/geoManager.minutePixel*60; - } else if (config.displayMode == eHorizontal) { - tEnd = tStart + (geoManager.osdWidth - geoManager.channelHeaderWidth - geoManager.channelGroupsWidth)/geoManager.minutePixel*60; - } + tEnd = tStart + displaySeconds; } time_t cTimeManager::getPrevPrimetime(time_t current) { tm *st = localtime(¤t); if (st->tm_hour < 21) { - current -= 24 * 60* 60; + current -= 24 * 60 * 60; st = localtime(¤t); } st->tm_hour = 20; @@ -63,7 +63,7 @@ time_t cTimeManager::getPrevPrimetime(time_t current) { time_t cTimeManager::getNextPrimetime(time_t current){ tm *st = localtime(¤t); if (st->tm_hour > 19) { - current += 24 * 60* 60; + current += 24 * 60 * 60; st = localtime(¤t); } st->tm_hour = 20; |