diff options
Diffstat (limited to 'tvguideosd.c')
-rw-r--r-- | tvguideosd.c | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/tvguideosd.c b/tvguideosd.c index cd86544..fc64eae 100644 --- a/tvguideosd.c +++ b/tvguideosd.c @@ -195,7 +195,7 @@ void cTvGuideOsd::drawGridsChannelJump(int offset) { } } -void cTvGuideOsd::drawGridsTimeJump() { +void cTvGuideOsd::drawGridsTimeJump(bool last) { if (columns.Count() == 0) return; cChannelEpg *colActive = NULL; @@ -209,7 +209,7 @@ void cTvGuideOsd::drawGridsTimeJump() { column->readGrids(); column->drawGrids(); } - activeGrid = colActive->getActive(); + activeGrid = colActive->getActive(last); if (activeGrid) { activeGrid->SetActive(); activeGrid->Draw(); @@ -372,12 +372,19 @@ void cTvGuideOsd::timeForward() { void cTvGuideOsd::ScrollForward() { timeManager->AddStep(config.stepMinutes); - timeLine->drawDateViewer(); - timeLine->setTimeline(); - for (cChannelEpg *column = columns.First(); column; column = columns.Next(column)) { - column->AddNewGridsAtEnd(); - column->ClearOutdatedStart(); - column->drawGrids(); + if (config.useHWAccel) { + drawGridsTimeJump(true); + timeLine->drawDateViewer(); + timeLine->drawClock(); + timeLine->setTimeline(); + } else { + timeLine->drawDateViewer(); + timeLine->setTimeline(); + for (cChannelEpg *column = columns.First(); column; column = columns.Next(column)) { + column->AddNewGridsAtEnd(); + column->ClearOutdatedStart(); + column->drawGrids(); + } } } @@ -406,13 +413,20 @@ void cTvGuideOsd::ScrollBack() { bool tooFarInPast = timeManager->DelStep(config.stepMinutes); if (tooFarInPast) return; - timeLine->drawDateViewer(); - timeLine->setTimeline(); - for (cChannelEpg *column = columns.First(); column; column = columns.Next(column)) { - column->AddNewGridsAtStart(); - column->ClearOutdatedEnd(); - column->drawGrids(); - } + if (config.useHWAccel) { + drawGridsTimeJump(); + timeLine->drawDateViewer(); + timeLine->drawClock(); + timeLine->setTimeline(); + } else { + timeLine->drawDateViewer(); + timeLine->setTimeline(); + for (cChannelEpg *column = columns.First(); column; column = columns.Next(column)) { + column->AddNewGridsAtStart(); + column->ClearOutdatedEnd(); + column->drawGrids(); + } + } } void cTvGuideOsd::processKeyUp() { |