summaryrefslogtreecommitdiff
path: root/tvguideosd.c
diff options
context:
space:
mode:
Diffstat (limited to 'tvguideosd.c')
-rw-r--r--tvguideosd.c44
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() {