summaryrefslogtreecommitdiff
path: root/timemanager.c
diff options
context:
space:
mode:
authorkamel5 <vdr.kamel5 (at) gmx (dot) net>2020-01-06 12:51:49 +0100
committerkamel5 <vdr.kamel5 (at) gmx (dot) net>2020-01-06 15:14:45 +0100
commit6540e214440faef1c72057e1727991d88ae2c9e2 (patch)
tree8071504c4f309ccfa28df7e1a791401a5ee81dad /timemanager.c
parent2e4a43133e140eb5bd3344ef5486aca3dda41caf (diff)
downloadvdr-plugin-tvguide-6540e214440faef1c72057e1727991d88ae2c9e2.tar.gz
vdr-plugin-tvguide-6540e214440faef1c72057e1727991d88ae2c9e2.tar.bz2
Optimize TimeJump
Diffstat (limited to 'timemanager.c')
-rw-r--r--timemanager.c40
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(&current);
if (st->tm_hour < 21) {
- current -= 24 * 60* 60;
+ current -= 24 * 60 * 60;
st = localtime(&current);
}
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(&current);
if (st->tm_hour > 19) {
- current += 24 * 60* 60;
+ current += 24 * 60 * 60;
st = localtime(&current);
}
st->tm_hour = 20;