Workaround for HWAccelerated OSD

This commit is contained in:
kamel5 2019-11-03 11:30:41 +01:00
parent 89e9086943
commit 7300fdf91c
12 changed files with 89 additions and 53 deletions

View File

@ -130,9 +130,11 @@ int cChannelEpg::getY() {
return geoManager.statusHeaderHeight + geoManager.timeLineHeight + num*geoManager.rowHeight; return geoManager.statusHeaderHeight + geoManager.timeLineHeight + num*geoManager.rowHeight;
} }
cGridElement *cChannelEpg::getActive() { cGridElement *cChannelEpg::getActive(bool last) {
cTimeManager t; cTimeManager t;
t.Now(); t.Now();
if (last)
return grids.Last();
for (cGridElement *grid = grids.First(); grid; grid = grids.Next(grid)) { for (cGridElement *grid = grids.First(); grid; grid = grids.Next(grid)) {
if (grid->Match(t.Get())) if (grid->Match(t.Get()))
return grid; return grid;

View File

@ -42,7 +42,7 @@ public:
int Stop() { return timeManager->GetEnd(); }; int Stop() { return timeManager->GetEnd(); };
const char* Name() { return channel->Name(); }; const char* Name() { return channel->Name(); };
const cChannel *getChannel() {return channel;} const cChannel *getChannel() {return channel;}
cGridElement *getActive(); cGridElement *getActive(bool last = false);
cGridElement *getNext(cGridElement *activeGrid); cGridElement *getNext(cGridElement *activeGrid);
cGridElement *getPrev(cGridElement *activeGrid); cGridElement *getPrev(cGridElement *activeGrid);
cGridElement *getNeighbor(cGridElement *activeGrid); cGridElement *getNeighbor(cGridElement *activeGrid);

View File

@ -2,6 +2,7 @@
#include "config.h" #include "config.h"
cTVGuideConfig::cTVGuideConfig() { cTVGuideConfig::cTVGuideConfig() {
useHWAccel = false;
debugImageLoading = 0; debugImageLoading = 0;
showMainMenuEntry = 1; showMainMenuEntry = 1;
replaceOriginalSchedule = 0; replaceOriginalSchedule = 0;
@ -243,6 +244,7 @@ cString cTVGuideConfig::checkSlashAtEnd(std::string path) {
bool cTVGuideConfig::SetupParse(const char *Name, const char *Value) { bool cTVGuideConfig::SetupParse(const char *Name, const char *Value) {
if (strcmp(Name, "timeFormat") == 0) timeFormat = atoi(Value); if (strcmp(Name, "timeFormat") == 0) timeFormat = atoi(Value);
else if (strcmp(Name, "debugImageLoading") == 0) debugImageLoading = atoi(Value); else if (strcmp(Name, "debugImageLoading") == 0) debugImageLoading = atoi(Value);
else if (strcmp(Name, "useHWAccel") == 0) useHWAccel = atoi(Value);
else if (strcmp(Name, "showMainMenuEntry") == 0) showMainMenuEntry = atoi(Value); else if (strcmp(Name, "showMainMenuEntry") == 0) showMainMenuEntry = atoi(Value);
else if (strcmp(Name, "replaceOriginalSchedule") == 0) replaceOriginalSchedule = atoi(Value); else if (strcmp(Name, "replaceOriginalSchedule") == 0) replaceOriginalSchedule = atoi(Value);
else if (strcmp(Name, "useNopacityTheme") == 0) useNopacityTheme = atoi(Value); else if (strcmp(Name, "useNopacityTheme") == 0) useNopacityTheme = atoi(Value);

View File

@ -49,6 +49,7 @@ class cTVGuideConfig {
public: public:
cTVGuideConfig(); cTVGuideConfig();
~cTVGuideConfig(); ~cTVGuideConfig();
int useHWAccel;
int debugImageLoading; int debugImageLoading;
int showMainMenuEntry; int showMainMenuEntry;
int replaceOriginalSchedule; int replaceOriginalSchedule;

View File

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-tvguide 0.0.1\n" "Project-Id-Version: vdr-tvguide 0.0.1\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2019-04-22 14:34+0200\n" "POT-Creation-Date: 2019-11-03 12:37+0100\n"
"PO-Revision-Date: 2013-09-21 17:49+0200\n" "PO-Revision-Date: 2013-09-21 17:49+0200\n"
"Last-Translator: My friend <Sampep> Thanks David <Gabychan> <gbonich@gmail.com>\n" "Last-Translator: My friend <Sampep> Thanks David <Gabychan> <gbonich@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@ -99,12 +99,6 @@ msgstr ""
msgid "recordings done" msgid "recordings done"
msgstr "" msgstr ""
msgid "What's on now"
msgstr ""
msgid "What's on next"
msgstr ""
msgid "Instant Record" msgid "Instant Record"
msgstr "Enregistra a l'instant" msgstr "Enregistra a l'instant"
@ -567,6 +561,12 @@ msgstr "No s'han trobat gravacions per"
msgid "No Favorites available" msgid "No Favorites available"
msgstr "" msgstr ""
msgid "What's on now"
msgstr ""
msgid "What's on next"
msgstr ""
msgid "whole term must appear" msgid "whole term must appear"
msgstr "expressió completa" msgstr "expressió completa"
@ -675,6 +675,9 @@ msgstr "si existeix"
msgid "always" msgid "always"
msgstr "sempre" msgstr "sempre"
msgid "Use workaround for HWAccelerated OSD"
msgstr ""
msgid "Show Main Menu Entry" msgid "Show Main Menu Entry"
msgstr "Mostra entrada del menú principal" msgstr "Mostra entrada del menú principal"

View File

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-tvguide 0.0.1\n" "Project-Id-Version: vdr-tvguide 0.0.1\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2019-04-22 14:34+0200\n" "POT-Creation-Date: 2019-11-03 12:37+0100\n"
"PO-Revision-Date: 2012-08-25 17:49+0200\n" "PO-Revision-Date: 2012-08-25 17:49+0200\n"
"Last-Translator: Horst\n" "Last-Translator: Horst\n"
"Language-Team: \n" "Language-Team: \n"
@ -96,12 +96,6 @@ msgstr "aktive Timer"
msgid "recordings done" msgid "recordings done"
msgstr "erledigte Aufnahmen" msgstr "erledigte Aufnahmen"
msgid "What's on now"
msgstr "Was läuft jetzt?"
msgid "What's on next"
msgstr "Was läuft als nächstes?"
msgid "Instant Record" msgid "Instant Record"
msgstr "Aufnahme" msgstr "Aufnahme"
@ -564,6 +558,12 @@ msgstr "Keine Aufnahmen gefunden für"
msgid "No Favorites available" msgid "No Favorites available"
msgstr "Keine Favoriten verfügbar" msgstr "Keine Favoriten verfügbar"
msgid "What's on now"
msgstr "Was läuft jetzt?"
msgid "What's on next"
msgstr "Was läuft als nächstes?"
msgid "whole term must appear" msgid "whole term must appear"
msgstr "vollständiger Ausdruck" msgstr "vollständiger Ausdruck"
@ -672,6 +672,9 @@ msgstr "falls vorhanden"
msgid "always" msgid "always"
msgstr "immer" msgstr "immer"
msgid "Use workaround for HWAccelerated OSD"
msgstr ""
msgid "Show Main Menu Entry" msgid "Show Main Menu Entry"
msgstr "Hauptmenüeintrag anzeigen" msgstr "Hauptmenüeintrag anzeigen"

View File

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-tvguide 0.0.1\n" "Project-Id-Version: vdr-tvguide 0.0.1\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2019-04-22 14:34+0200\n" "POT-Creation-Date: 2019-11-03 12:37+0100\n"
"PO-Revision-Date: 2012-08-25 17:49+0200\n" "PO-Revision-Date: 2012-08-25 17:49+0200\n"
"Last-Translator: fiveten_59\n" "Last-Translator: fiveten_59\n"
"Language-Team: \n" "Language-Team: \n"
@ -96,12 +96,6 @@ msgstr "Timers attivi"
msgid "recordings done" msgid "recordings done"
msgstr "registrazione eseguita" msgstr "registrazione eseguita"
msgid "What's on now"
msgstr "Was läuft jetzt?"
msgid "What's on next"
msgstr "Was läuft als nächstes?"
msgid "Instant Record" msgid "Instant Record"
msgstr "Registrazione immediata" msgstr "Registrazione immediata"
@ -564,6 +558,12 @@ msgstr "Nessuna registrazione trovata per"
msgid "No Favorites available" msgid "No Favorites available"
msgstr "Nessun Favoriti disponibile" msgstr "Nessun Favoriti disponibile"
msgid "What's on now"
msgstr "Was läuft jetzt?"
msgid "What's on next"
msgstr "Was läuft als nächstes?"
msgid "whole term must appear" msgid "whole term must appear"
msgstr "vollständiger Ausdruck" msgstr "vollständiger Ausdruck"
@ -672,6 +672,9 @@ msgstr "se esiste"
msgid "always" msgid "always"
msgstr "sempre" msgstr "sempre"
msgid "Use workaround for HWAccelerated OSD"
msgstr ""
msgid "Show Main Menu Entry" msgid "Show Main Menu Entry"
msgstr "Hauptmenüeintrag anzeigen" msgstr "Hauptmenüeintrag anzeigen"

View File

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-tvguide 1.0.0\n" "Project-Id-Version: vdr-tvguide 1.0.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2019-04-22 14:34+0200\n" "POT-Creation-Date: 2019-11-03 12:37+0100\n"
"PO-Revision-Date: 2013-09-25 17:49+0400\n" "PO-Revision-Date: 2013-09-25 17:49+0400\n"
"Last-Translator: AmiD, ilya\n" "Last-Translator: AmiD, ilya\n"
"Language-Team: Russia-Cherepovets(wm.amid@gmail.com)\n" "Language-Team: Russia-Cherepovets(wm.amid@gmail.com)\n"
@ -96,12 +96,6 @@ msgstr ""
msgid "recordings done" msgid "recordings done"
msgstr "" msgstr ""
msgid "What's on now"
msgstr ""
msgid "What's on next"
msgstr ""
msgid "Instant Record" msgid "Instant Record"
msgstr "Записать" msgstr "Записать"
@ -564,6 +558,12 @@ msgstr "Не найдено записей:"
msgid "No Favorites available" msgid "No Favorites available"
msgstr "" msgstr ""
msgid "What's on now"
msgstr ""
msgid "What's on next"
msgstr ""
msgid "whole term must appear" msgid "whole term must appear"
msgstr "фраза" msgstr "фраза"
@ -672,6 +672,9 @@ msgstr "если существует"
msgid "always" msgid "always"
msgstr "всегда" msgstr "всегда"
msgid "Use workaround for HWAccelerated OSD"
msgstr ""
msgid "Show Main Menu Entry" msgid "Show Main Menu Entry"
msgstr "Показывать пункт в главном меню" msgstr "Показывать пункт в главном меню"

View File

@ -3,7 +3,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-tvguide 1.1.0\n" "Project-Id-Version: vdr-tvguide 1.1.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2019-04-22 14:34+0200\n" "POT-Creation-Date: 2019-11-03 12:37+0100\n"
"PO-Revision-Date: 2013-09-15 00:12+0100\n" "PO-Revision-Date: 2013-09-15 00:12+0100\n"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n" "Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@ -96,12 +96,6 @@ msgstr ""
msgid "recordings done" msgid "recordings done"
msgstr "" msgstr ""
msgid "What's on now"
msgstr ""
msgid "What's on next"
msgstr ""
msgid "Instant Record" msgid "Instant Record"
msgstr "Okam¾ite nahra»" msgstr "Okam¾ite nahra»"
@ -564,6 +558,12 @@ msgstr "Nena
msgid "No Favorites available" msgid "No Favorites available"
msgstr "" msgstr ""
msgid "What's on now"
msgstr ""
msgid "What's on next"
msgstr ""
msgid "whole term must appear" msgid "whole term must appear"
msgstr "kompletný výraz" msgstr "kompletný výraz"
@ -672,6 +672,9 @@ msgstr "ak s
msgid "always" msgid "always"
msgstr "v¾dy" msgstr "v¾dy"
msgid "Use workaround for HWAccelerated OSD"
msgstr ""
msgid "Show Main Menu Entry" msgid "Show Main Menu Entry"
msgstr "Zobrazi» v hlavnom menu" msgstr "Zobrazi» v hlavnom menu"

View File

@ -60,6 +60,7 @@ void cTvguideSetup::Store(void) {
SetupStore("debugImageLoading", config.debugImageLoading); SetupStore("debugImageLoading", config.debugImageLoading);
SetupStore("useNopacityTheme", config.useNopacityTheme); SetupStore("useNopacityTheme", config.useNopacityTheme);
SetupStore("themeIndex", config.themeIndex); SetupStore("themeIndex", config.themeIndex);
SetupStore("useHWAccel", config.useHWAccel);
SetupStore("showMainMenuEntry", config.showMainMenuEntry); SetupStore("showMainMenuEntry", config.showMainMenuEntry);
SetupStore("replaceOriginalSchedule", config.replaceOriginalSchedule); SetupStore("replaceOriginalSchedule", config.replaceOriginalSchedule);
SetupStore("displayMode", config.displayMode); SetupStore("displayMode", config.displayMode);
@ -203,6 +204,7 @@ cMenuSetupGeneral::cMenuSetupGeneral(cTVGuideConfig* data) : cMenuSetupSubMenu(
void cMenuSetupGeneral::Set(void) { void cMenuSetupGeneral::Set(void) {
int currentItem = Current(); int currentItem = Current();
Clear(); Clear();
Add(new cMenuEditBoolItem(tr("Use workaround for HWAccelerated OSD"), &tmpConfig->useHWAccel));
Add(new cMenuEditBoolItem(tr("Show Main Menu Entry"), &tmpConfig->showMainMenuEntry)); Add(new cMenuEditBoolItem(tr("Show Main Menu Entry"), &tmpConfig->showMainMenuEntry));
Add(new cMenuEditBoolItem(tr("Replace VDR Schedules Menu"), &tmpConfig->replaceOriginalSchedule)); Add(new cMenuEditBoolItem(tr("Replace VDR Schedules Menu"), &tmpConfig->replaceOriginalSchedule));
Add(new cMenuEditBoolItem(tr("Use appropriate nOpacity Theme"), &tmpConfig->useNopacityTheme)); Add(new cMenuEditBoolItem(tr("Use appropriate nOpacity Theme"), &tmpConfig->useNopacityTheme));

View File

@ -195,7 +195,7 @@ void cTvGuideOsd::drawGridsChannelJump(int offset) {
} }
} }
void cTvGuideOsd::drawGridsTimeJump() { void cTvGuideOsd::drawGridsTimeJump(bool last) {
if (columns.Count() == 0) if (columns.Count() == 0)
return; return;
cChannelEpg *colActive = NULL; cChannelEpg *colActive = NULL;
@ -209,7 +209,7 @@ void cTvGuideOsd::drawGridsTimeJump() {
column->readGrids(); column->readGrids();
column->drawGrids(); column->drawGrids();
} }
activeGrid = colActive->getActive(); activeGrid = colActive->getActive(last);
if (activeGrid) { if (activeGrid) {
activeGrid->SetActive(); activeGrid->SetActive();
activeGrid->Draw(); activeGrid->Draw();
@ -372,12 +372,19 @@ void cTvGuideOsd::timeForward() {
void cTvGuideOsd::ScrollForward() { void cTvGuideOsd::ScrollForward() {
timeManager->AddStep(config.stepMinutes); timeManager->AddStep(config.stepMinutes);
timeLine->drawDateViewer(); if (config.useHWAccel) {
timeLine->setTimeline(); drawGridsTimeJump(true);
for (cChannelEpg *column = columns.First(); column; column = columns.Next(column)) { timeLine->drawDateViewer();
column->AddNewGridsAtEnd(); timeLine->drawClock();
column->ClearOutdatedStart(); timeLine->setTimeline();
column->drawGrids(); } 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); bool tooFarInPast = timeManager->DelStep(config.stepMinutes);
if (tooFarInPast) if (tooFarInPast)
return; return;
timeLine->drawDateViewer(); if (config.useHWAccel) {
timeLine->setTimeline(); drawGridsTimeJump();
for (cChannelEpg *column = columns.First(); column; column = columns.Next(column)) { timeLine->drawDateViewer();
column->AddNewGridsAtStart(); timeLine->drawClock();
column->ClearOutdatedEnd(); timeLine->setTimeline();
column->drawGrids(); } else {
} timeLine->drawDateViewer();
timeLine->setTimeline();
for (cChannelEpg *column = columns.First(); column; column = columns.Next(column)) {
column->AddNewGridsAtStart();
column->ClearOutdatedEnd();
column->drawGrids();
}
}
} }
void cTvGuideOsd::processKeyUp() { void cTvGuideOsd::processKeyUp() {

View File

@ -31,7 +31,7 @@ private:
void drawOsd(); void drawOsd();
void readChannels(const cChannel *channelStart); void readChannels(const cChannel *channelStart);
void drawGridsChannelJump(int offset = 0); void drawGridsChannelJump(int offset = 0);
void drawGridsTimeJump(); void drawGridsTimeJump(bool last = false);
void processKeyUp(); void processKeyUp();
void processKeyDown(); void processKeyDown();
void processKeyLeft(); void processKeyLeft();