diff --git a/timeline.c b/timeline.c index 7336ac9..c13a7c0 100644 --- a/timeline.c +++ b/timeline.c @@ -16,7 +16,11 @@ cTimeLine::cTimeLine(cTimeManager *timeManager) { , cRect(0, 0, geoManager.timeLineWidth, - 1440 * geoManager.minutePixel)); + 1440*geoManager.minutePixel)); + timeBase = osdManager.requestPixmap(3, cRect(0, + geoManager.statusHeaderHeight + geoManager.channelGroupsHeight + geoManager.channelHeaderHeight, + geoManager.osdWidth, + geoManager.timeLineGridHeight)); } else if (config.displayMode == eHorizontal) { dateViewer = new cStyledPixmap(osdManager.requestPixmap(1, cRect(geoManager.clockWidth, geoManager.statusHeaderHeight, @@ -28,9 +32,14 @@ cTimeLine::cTimeLine(cTimeManager *timeManager) { geoManager.timeLineHeight) , cRect(0, 0, - 1440 * geoManager.minutePixel, + 1440*geoManager.minutePixel, geoManager.timeLineHeight)); + timeBase = osdManager.requestPixmap(3, cRect(geoManager.channelGroupsWidth + geoManager.channelHeaderWidth, + geoManager.statusHeaderHeight, + geoManager.timeLineGridWidth, + geoManager.timeLineHeight + config.channelRows * geoManager.rowHeight)); } + timeBase->Fill(clrTransparent); int clockY; int clockX; if (config.displayMode == eVertical) { @@ -198,29 +207,19 @@ void cTimeLine::drawRoundedCorners(int posX, int posY, int width, int height, in } void cTimeLine::drawCurrentTimeBase(void) { + timeBase->Fill(clrTransparent); bool nowVisible = timeManager->NowVisible(); - if (timeBase) - osdManager.releasePixmap(timeBase); if (!nowVisible) return; int deltaTime = (timeManager->GetNow() - timeManager->GetStart()) / 60 * geoManager.minutePixel; - int x1, x2, y1, y2; if (config.displayMode == eVertical) { - x1 = 0; - y1 = geoManager.statusHeaderHeight + geoManager.channelGroupsHeight + geoManager.channelHeaderHeight + deltaTime - 2; - x2 = geoManager.osdWidth; - y2 = 4; + timeBase->DrawRectangle(cRect(0, deltaTime - 2, timeBase->ViewPort().Width(), 4), theme.Color(clrTimeBase)); } else { - x1 = geoManager.channelGroupsWidth + geoManager.channelHeaderWidth + deltaTime - 2; - y1 = geoManager.statusHeaderHeight; - x2 = 4; - y2 = geoManager.timeLineHeight + config.channelRows * geoManager.rowHeight; + timeBase->DrawRectangle(cRect(deltaTime-2, 0, 4, timeBase->ViewPort().Height()), theme.Color(clrTimeBase)); } - timeBase = osdManager.requestPixmap(3, cRect(x1, y1, x2, y2)); - timeBase->Fill(clrTransparent); - timeBase->DrawRectangle(cRect(0, 0, timeBase->ViewPort().Width(), timeBase->ViewPort().Height()), theme.Color(clrTimeBase)); } + cImage *cTimeLine::createBackgroundImage(int width, int height, tColor clrBgr, tColor clrBlend) { cImage *image = NULL; if (config.style == eStyleBlendingDefault) { diff --git a/timemanager.c b/timemanager.c index a12b450..a38e57a 100644 --- a/timemanager.c +++ b/timemanager.c @@ -9,7 +9,7 @@ cTimeManager::~cTimeManager(void) { cString cTimeManager::printTime(time_t displayTime) { struct tm *ts; ts = localtime(&displayTime); - cString strTime = cString::sprintf("%d.%d-%d:%d.%d", ts->tm_mday, ts->tm_mon + 1, ts->tm_hour, ts->tm_min, ts->tm_sec); + cString strTime = cString::sprintf("%d.%d-%d:%d.%d", ts->tm_mday, ts->tm_mon+1, ts->tm_hour, ts->tm_min, ts->tm_sec); return strTime; } @@ -19,43 +19,43 @@ void cTimeManager::Now() { tStart = t; tStart = GetRounded(); if (config.displayMode == eVertical) { - tEnd = tStart + (geoManager.osdHeight - geoManager.statusHeaderHeight - geoManager.channelHeaderHeight - geoManager.channelGroupsHeight - geoManager.footerHeight) / geoManager.minutePixel * 60; + 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 + (geoManager.osdWidth - geoManager.channelHeaderWidth - geoManager.channelGroupsWidth)/geoManager.minutePixel*60; } } void cTimeManager::AddStep(int step) { - tStart += step * 60; - tEnd += step * 60; + tStart += step*60; + tEnd += step*60; } bool cTimeManager::DelStep(int step) { - if ((tStart - step * 60) + 30 * 60 < t) { + if ((tStart - step*60)+30*60 < t) { return true; } - tStart -= step * 60; - tEnd -= step * 60; + 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; + 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 + (geoManager.osdWidth - geoManager.channelHeaderWidth - geoManager.channelGroupsWidth)/geoManager.minutePixel*60; } } 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; - st->tm_min = 0; + st->tm_min = 0; time_t primeTime = mktime(st); return primeTime; } @@ -63,11 +63,11 @@ 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; - st->tm_min = 0; + st->tm_min = 0; time_t primeTime = mktime(st); return primeTime; } @@ -105,7 +105,7 @@ cString cTimeManager::GetWeekday() { int cTimeManager::GetTimelineOffset() { tm *st = localtime(&tStart); - int offset = st->tm_hour * 60; + int offset = st->tm_hour*60; offset += st->tm_min; return offset; } @@ -126,6 +126,7 @@ bool cTimeManager::NowVisible(void) { return false; } + void cTimeManager::debug() { esyslog("t: %s, tStart: %s, tEnd: %s", *TimeString(t), *TimeString(tStart), *TimeString(tEnd)); }