mirror of
				https://projects.vdr-developer.org/git/vdr-plugin-tvguide.git
				synced 2023-10-05 13:01:48 +00:00 
			
		
		
		
	Diplay the current TimeBase throughout the whole timeline
This commit is contained in:
		
							
								
								
									
										31
									
								
								timeline.c
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								timeline.c
									
									
									
									
									
								
							@@ -16,11 +16,7 @@ cTimeLine::cTimeLine(cTimeManager *timeManager) {
 | 
			
		||||
                                             , cRect(0,
 | 
			
		||||
                                                     0, 
 | 
			
		||||
                                                     geoManager.timeLineWidth, 
 | 
			
		||||
                                                     1440*geoManager.minutePixel));
 | 
			
		||||
        timeBase = osdManager.requestPixmap(3, cRect(0, 
 | 
			
		||||
                                                     geoManager.statusHeaderHeight + geoManager.channelGroupsHeight + geoManager.channelHeaderHeight, 
 | 
			
		||||
                                                     geoManager.osdWidth, 
 | 
			
		||||
                                                     geoManager.timeLineGridHeight));
 | 
			
		||||
                                                     1440 * geoManager.minutePixel));
 | 
			
		||||
    } else if (config.displayMode == eHorizontal) {
 | 
			
		||||
        dateViewer = new cStyledPixmap(osdManager.requestPixmap(1, cRect(geoManager.clockWidth, 
 | 
			
		||||
                                                                         geoManager.statusHeaderHeight, 
 | 
			
		||||
@@ -32,14 +28,9 @@ 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) {
 | 
			
		||||
@@ -207,19 +198,29 @@ 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) {
 | 
			
		||||
        timeBase->DrawRectangle(cRect(0, deltaTime - 2, timeBase->ViewPort().Width(), 4), theme.Color(clrTimeBase));
 | 
			
		||||
       x1 = 0;
 | 
			
		||||
       y1 = geoManager.statusHeaderHeight + geoManager.channelGroupsHeight + geoManager.channelHeaderHeight + deltaTime - 2;
 | 
			
		||||
       x2 = geoManager.osdWidth;
 | 
			
		||||
       y2 = 4;
 | 
			
		||||
    } else {
 | 
			
		||||
        timeBase->DrawRectangle(cRect(deltaTime-2, 0, 4, timeBase->ViewPort().Height()), theme.Color(clrTimeBase));
 | 
			
		||||
       x1 = geoManager.channelGroupsWidth + geoManager.channelHeaderWidth + deltaTime - 2;
 | 
			
		||||
       y1 = geoManager.statusHeaderHeight;
 | 
			
		||||
       x2 = 4;
 | 
			
		||||
       y2 = geoManager.timeLineHeight + config.channelRows * geoManager.rowHeight;
 | 
			
		||||
    }
 | 
			
		||||
    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) {
 | 
			
		||||
 
 | 
			
		||||
@@ -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,7 +126,6 @@ bool cTimeManager::NowVisible(void) {
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void cTimeManager::debug() {
 | 
			
		||||
    esyslog("t: %s, tStart: %s, tEnd: %s", *TimeString(t), *TimeString(tStart), *TimeString(tEnd));
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user