mirror of
https://projects.vdr-developer.org/git/vdr-plugin-tvguide.git
synced 2023-10-05 13:01:48 +00:00
Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
89e9086943 | ||
|
e236d9e571 | ||
|
8794891599 | ||
|
cd62a9bd6b | ||
|
3f0bd75011 | ||
|
a711aed160 | ||
|
cdb5a46145 |
10
HISTORY
10
HISTORY
@@ -222,3 +222,13 @@ Version 1.2.12
|
||||
- Fixed updating current time
|
||||
- Fixed updating current TimeBase
|
||||
- Diplay the current TimeBase throughout the whole timeline
|
||||
|
||||
Version 1.2.13
|
||||
|
||||
- Revert "Diplay the current TimeBase throughout the whole timeline"
|
||||
|
||||
Version 1.2.14
|
||||
|
||||
- Diplay the current TimeBase throughout the whole timeline
|
||||
- Can switch off and optimize diplay time in epggrid "displayMode == Vertical"
|
||||
- Fixed a error while changing a Theme
|
||||
|
5
config.c
5
config.c
@@ -95,6 +95,7 @@ cTVGuideConfig::cTVGuideConfig() {
|
||||
FontRecMenuItemLargeDelta = 0;
|
||||
timeFormat = 1;
|
||||
useNopacityTheme = 1;
|
||||
useNopacityThemeCurrent = -1;
|
||||
themeIndex = -1;
|
||||
themeIndexCurrent = -1;
|
||||
themeName = "";
|
||||
@@ -124,13 +125,14 @@ bool cTVGuideConfig::LoadTheme() {
|
||||
//is correct theme already loaded?
|
||||
if (nOpacityTheme.size() == 0)
|
||||
nOpacityTheme = Setup.OSDTheme;
|
||||
if ((themeIndex > -1) && (themeIndex == themeIndexCurrent)) {
|
||||
if ((themeIndex > -1) && (themeIndex == themeIndexCurrent) && (useNopacityTheme == useNopacityThemeCurrent)) {
|
||||
if (!nOpacityTheme.compare(Setup.OSDTheme)) {
|
||||
return false;
|
||||
} else {
|
||||
nOpacityTheme = Setup.OSDTheme;
|
||||
}
|
||||
}
|
||||
esyslog("tvguide: loading new Theme");
|
||||
//Load available Themes
|
||||
cThemes themes;
|
||||
themes.Load(*cString("tvguide"));
|
||||
@@ -167,6 +169,7 @@ bool cTVGuideConfig::LoadTheme() {
|
||||
themeIndex = 0;
|
||||
|
||||
themeIndexCurrent = themeIndex;
|
||||
useNopacityThemeCurrent = useNopacityTheme;
|
||||
|
||||
const char *themePath = themes.FileName(themeIndex);
|
||||
if (access(themePath, F_OK) == 0) {
|
||||
|
1
config.h
1
config.h
@@ -149,6 +149,7 @@ class cTVGuideConfig {
|
||||
int FontRecMenuItemLargeDelta;
|
||||
int timeFormat;
|
||||
int useNopacityTheme;
|
||||
int useNopacityThemeCurrent;
|
||||
int themeIndex;
|
||||
int themeIndexCurrent;
|
||||
cString themeName;
|
||||
|
46
epggrid.c
46
epggrid.c
@@ -92,53 +92,57 @@ void cEpgGrid::SetSwitchTimer() {
|
||||
|
||||
void cEpgGrid::setText() {
|
||||
if (config.displayMode == eVertical) {
|
||||
cString strText;
|
||||
strText = cString::sprintf("%s - %s:\n%s", *(event->GetTimeString()), *(event->GetEndTimeString()), event->Title());
|
||||
text->Set(*(strText), fontManager.FontGrid, geoManager.colWidth-2*borderWidth);
|
||||
extText->Set(event->ShortText(), fontManager.FontGridSmall, geoManager.colWidth-2*borderWidth);
|
||||
} else if (config.displayMode == eHorizontal) {
|
||||
timeString = cString::sprintf("%s - %s", *(event->GetTimeString()), *(event->GetEndTimeString()));
|
||||
text->Set(event->Title(), fontManager.FontGrid, geoManager.colWidth - 2 * borderWidth);
|
||||
extText->Set(event->ShortText(), fontManager.FontGridSmall, geoManager.colWidth - 2 * borderWidth);
|
||||
}
|
||||
if (config.showTimeInGrid) {
|
||||
timeString = cString::sprintf("%s - %s:", *(event->GetTimeString()), *(event->GetEndTimeString()));
|
||||
}
|
||||
}
|
||||
|
||||
void cEpgGrid::drawText() {
|
||||
tColor colorText = (active)?theme.Color(clrFontActive):theme.Color(clrFont);
|
||||
tColor colorText = (active) ? theme.Color(clrFontActive) : theme.Color(clrFont);
|
||||
tColor colorTextBack;
|
||||
if (config.style == eStyleFlat)
|
||||
colorTextBack = color;
|
||||
else if (config.style == eStyleGraphical)
|
||||
colorTextBack = (active)?theme.Color(clrGridActiveFontBack):theme.Color(clrGridFontBack);
|
||||
colorTextBack = (active) ? theme.Color(clrGridActiveFontBack) : theme.Color(clrGridFontBack);
|
||||
else
|
||||
colorTextBack = clrTransparent;
|
||||
if (config.displayMode == eVertical) {
|
||||
if (Height()/geoManager.minutePixel < 6)
|
||||
if (Height() / geoManager.minutePixel < 6)
|
||||
return;
|
||||
int textHeight = fontManager.FontGrid->Height();
|
||||
int textHeightSmall = fontManager.FontGridSmall->Height();
|
||||
int textLines = text->Lines();
|
||||
for (int i=0; i<textLines; i++) {
|
||||
pixmap->DrawText(cPoint(borderWidth, borderWidth + i*textHeight), text->GetLine(i), colorText, colorTextBack, fontManager.FontGrid);
|
||||
int titleY = borderWidth;
|
||||
if (config.showTimeInGrid) { // mit Zeitangabe im Grid
|
||||
pixmap->DrawText(cPoint(borderWidth, borderWidth), *timeString, colorText, colorTextBack, fontManager.FontGridSmall);
|
||||
titleY += textHeightSmall;
|
||||
}
|
||||
for (int i = 0; i < textLines; i++) {
|
||||
pixmap->DrawText(cPoint(borderWidth, titleY + i * textHeight), text->GetLine(i), colorText, colorTextBack, fontManager.FontGrid);
|
||||
}
|
||||
int extTextLines = extText->Lines();
|
||||
int offset = (textLines+1)*textHeight - 0.5*textHeight;
|
||||
textHeight = fontManager.FontGridSmall->Height();
|
||||
if ((Height()-textHeight-10) > offset) {
|
||||
for (int i=0; i<extTextLines; i++) {
|
||||
pixmap->DrawText(cPoint(borderWidth, borderWidth + offset + i*textHeight), extText->GetLine(i), colorText, colorTextBack, fontManager.FontGridSmall);
|
||||
int offset = titleY + (textLines + 0.5) * textHeight;
|
||||
if ((Height() - textHeightSmall - 10) > offset) {
|
||||
for (int i = 0; i < extTextLines; i++) {
|
||||
pixmap->DrawText(cPoint(borderWidth, offset + i * textHeightSmall), extText->GetLine(i), colorText, colorTextBack, fontManager.FontGridSmall);
|
||||
}
|
||||
}
|
||||
} else if (config.displayMode == eHorizontal) {
|
||||
if (Width()/geoManager.minutePixel < 10) {
|
||||
int titleY = (geoManager.rowHeight - fontManager.FontGridHorizontal->Height())/2;
|
||||
if (Width() / geoManager.minutePixel < 10) {
|
||||
int titleY = (geoManager.rowHeight - fontManager.FontGridHorizontal->Height()) / 2;
|
||||
pixmap->DrawText(cPoint(borderWidth - 2, titleY), "...", colorText, colorTextBack, fontManager.FontGridHorizontal);
|
||||
return;
|
||||
}
|
||||
cString strTitle = CutText(event->Title(), viewportHeight, fontManager.FontGridHorizontal).c_str();
|
||||
int titleY = 0;
|
||||
if (config.showTimeInGrid) {
|
||||
if (config.showTimeInGrid) { // mit Zeitangabe im Grid
|
||||
pixmap->DrawText(cPoint(borderWidth, borderWidth), *timeString, colorText, colorTextBack, fontManager.FontGridHorizontalSmall);
|
||||
titleY = fontManager.FontGridHorizontalSmall->Height() + (geoManager.rowHeight - fontManager.FontGridHorizontalSmall->Height() - fontManager.FontGridHorizontal->Height())/2;
|
||||
titleY = fontManager.FontGridHorizontalSmall->Height() + (geoManager.rowHeight - fontManager.FontGridHorizontalSmall->Height() - fontManager.FontGridHorizontal->Height()) / 2;
|
||||
} else {
|
||||
titleY = (geoManager.rowHeight - fontManager.FontGridHorizontal->Height())/2;
|
||||
titleY = (geoManager.rowHeight - fontManager.FontGridHorizontal->Height()) / 2;
|
||||
}
|
||||
pixmap->DrawText(cPoint(borderWidth, titleY), *strTitle, colorText, colorTextBack, fontManager.FontGridHorizontal);
|
||||
}
|
||||
|
2
setup.c
2
setup.c
@@ -275,8 +275,8 @@ void cMenuSetupScreenLayout::Set(void) {
|
||||
Add(new cMenuEditIntItem(*cString::sprintf("%s%s", *indent, tr("Width of Channel Header (Perc. of osd width)")), &tmpConfig->channelHeaderWidthPercent, 5, 30));
|
||||
Add(new cMenuEditIntItem(*cString::sprintf("%s%s", *indent, tr("Height of Timeline (Perc. of osd height)")), &tmpConfig->timeLineHeightPercent, 5, 30));
|
||||
Add(new cMenuEditIntItem(*cString::sprintf("%s%s", *indent, tr("Number of Channels to display")), &tmpConfig->channelRows, 3, 12));
|
||||
Add(new cMenuEditBoolItem(*cString::sprintf("%s%s", *indent, tr("Display time in EPG Grids")), &tmpConfig->showTimeInGrid));
|
||||
}
|
||||
Add(new cMenuEditBoolItem(tr("Display time in EPG Grids"), &tmpConfig->showTimeInGrid));
|
||||
Add(new cMenuEditIntItem(tr("Height of Headers (Status Header and EPG View, Perc. of osd height)"), &tmpConfig->headerHeightPercent, 10, 50));
|
||||
Add(new cMenuEditIntItem(tr("Height of Footer (Perc. of osd height)"), &tmpConfig->footerHeightPercent, 3, 20));
|
||||
|
||||
|
34
timeline.c
34
timeline.c
@@ -4,6 +4,7 @@
|
||||
cTimeLine::cTimeLine(cTimeManager *timeManager) {
|
||||
this->timeManager = timeManager;
|
||||
lastClock = "";
|
||||
timeBase = NULL;
|
||||
if (config.displayMode == eVertical) {
|
||||
dateViewer = new cStyledPixmap(osdManager.requestPixmap(1, cRect(0,
|
||||
geoManager.statusHeaderHeight + geoManager.clockHeight,
|
||||
@@ -31,27 +32,18 @@ cTimeLine::cTimeLine(cTimeManager *timeManager) {
|
||||
1440 * geoManager.minutePixel,
|
||||
geoManager.timeLineHeight));
|
||||
}
|
||||
int clockY;
|
||||
int clockX;
|
||||
if (config.displayMode == eVertical) {
|
||||
clockY = geoManager.statusHeaderHeight;
|
||||
clockX = 0;
|
||||
}
|
||||
else {
|
||||
clockY = geoManager.statusHeaderHeight;
|
||||
clockX = 0;
|
||||
}
|
||||
clock = new cStyledPixmap(osdManager.requestPixmap(3, cRect(clockX,
|
||||
clockY,
|
||||
clock = new cStyledPixmap(osdManager.requestPixmap(4, cRect(0,
|
||||
geoManager.statusHeaderHeight,
|
||||
geoManager.clockWidth,
|
||||
geoManager.clockHeight)));
|
||||
}
|
||||
|
||||
cTimeLine::~cTimeLine(void) {
|
||||
delete dateViewer;
|
||||
osdManager.releasePixmap(timeline);
|
||||
if (clock)
|
||||
delete clock;
|
||||
osdManager.releasePixmap(timeBase);
|
||||
osdManager.releasePixmap(timeline);
|
||||
delete dateViewer;
|
||||
}
|
||||
|
||||
void cTimeLine::drawDateViewer() {
|
||||
@@ -198,11 +190,12 @@ void cTimeLine::drawRoundedCorners(int posX, int posY, int width, int height, in
|
||||
}
|
||||
|
||||
void cTimeLine::drawCurrentTimeBase(void) {
|
||||
bool nowVisible = timeManager->NowVisible();
|
||||
if (timeBase)
|
||||
osdManager.releasePixmap(timeBase);
|
||||
if (!nowVisible)
|
||||
return;
|
||||
if (!timeManager->NowVisible()) {
|
||||
if (timeBase)
|
||||
timeBase->Fill(clrTransparent);
|
||||
return;
|
||||
}
|
||||
osdManager.releasePixmap(timeBase);
|
||||
int deltaTime = (timeManager->GetNow() - timeManager->GetStart()) / 60 * geoManager.minutePixel;
|
||||
int x1, x2, y1, y2;
|
||||
if (config.displayMode == eVertical) {
|
||||
@@ -268,8 +261,7 @@ void cTimeLine::setTimeline() {
|
||||
bool cTimeLine::drawClock() {
|
||||
cString currentTime = timeManager->GetCurrentTime();
|
||||
if (strcmp(currentTime, lastClock)) {
|
||||
if (config.displayMode == eVertical)
|
||||
clock->Fill(clrTransparent);
|
||||
clock->Fill(clrTransparent);
|
||||
const cFont *font = (config.displayMode == eVertical) ? fontManager.FontTimeLineTime : fontManager.FontTimeLineTimeHorizontal;
|
||||
int textHeight = font->Height();
|
||||
int clockTextWidth = font->Width(*currentTime);
|
||||
|
@@ -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));
|
||||
}
|
||||
|
Reference in New Issue
Block a user