summaryrefslogtreecommitdiff
path: root/epggrid.c
diff options
context:
space:
mode:
authorkamel5 <vdr.kamel5 (at) gmx (dot) net>2019-07-11 11:07:13 +0200
committerkamel5 <vdr.kamel5 (at) gmx (dot) net>2019-07-11 11:07:13 +0200
commit7a79059414ea2f10cba1710de0e37dcbbdfbfa42 (patch)
tree3300a2389ae07acbe21561e6f1fe78ea28674054 /epggrid.c
parentceadc0bbfe5a82ebdb961a15e2bb3669197551ad (diff)
downloadvdr-plugin-tvguide-7a79059414ea2f10cba1710de0e37dcbbdfbfa42.tar.gz
vdr-plugin-tvguide-7a79059414ea2f10cba1710de0e37dcbbdfbfa42.tar.bz2
Change files to unix
Diffstat (limited to 'epggrid.c')
-rw-r--r--epggrid.c388
1 files changed, 194 insertions, 194 deletions
diff --git a/epggrid.c b/epggrid.c
index d3eb3bb..467b5fd 100644
--- a/epggrid.c
+++ b/epggrid.c
@@ -1,194 +1,194 @@
-#include "services/remotetimers.h"
-#include "channelcolumn.h"
-#include "tools.h"
-#include "epggrid.h"
-
-cEpgGrid::cEpgGrid(cChannelColumn *c, const cEvent *event) : cGrid(c) {
- this->event = event;
- extText = new cTextWrapper();
- hasTimer = false;
- SetTimer();
- hasSwitchTimer = false;
- SetSwitchTimer();
- dummy = false;
-}
-
-cEpgGrid::~cEpgGrid(void) {
- delete extText;
-}
-
-void cEpgGrid::SetViewportHeight() {
- int viewportHeightOld = viewportHeight;
- if ( column->Start() > StartTime() ) {
- viewportHeight = (min((int)EndTime(), column->Stop()) - column->Start()) /60;
- } else if ( column->Stop() < EndTime() ) {
- viewportHeight = (column->Stop() - StartTime()) /60;
- if (viewportHeight < 0) viewportHeight = 0;
- } else {
- viewportHeight = Duration() / 60;
- }
- viewportHeight *= geoManager.minutePixel;
- if (viewportHeight != viewportHeightOld)
- dirty = true;
-}
-
-void cEpgGrid::PositionPixmap() {
- if (tvguideConfig.displayMode == eVertical) {
- int x0 = column->getX();
- int y0 = geoManager.statusHeaderHeight + geoManager.channelHeaderHeight + geoManager.channelGroupsHeight;
- if ( column->Start() < StartTime() ) {
- y0 += (StartTime() - column->Start())/60*geoManager.minutePixel;
- }
- if (!pixmap) {
- pixmap = osdManager.requestPixmap(-1, cRect(x0, y0, geoManager.colWidth, viewportHeight),
- cRect(0, 0, geoManager.colWidth, Duration()/60*geoManager.minutePixel));
- } else {
- pixmap->SetViewPort(cRect(x0, y0, geoManager.colWidth, viewportHeight));
- }
- } else if (tvguideConfig.displayMode == eHorizontal) {
- int x0 = geoManager.channelHeaderWidth + geoManager.channelGroupsWidth;
- int y0 = column->getY();
- if ( column->Start() < StartTime() ) {
- x0 += (StartTime() - column->Start())/60*geoManager.minutePixel;
- }
- if (!pixmap) {
- pixmap = osdManager.requestPixmap(-1, cRect(x0, y0, viewportHeight, geoManager.rowHeight),
- cRect(0, 0, Duration()/60*geoManager.minutePixel, geoManager.rowHeight));
- } else {
- pixmap->SetViewPort(cRect(x0, y0, viewportHeight, geoManager.rowHeight ));
- }
- }
-
-}
-
-void cEpgGrid::SetTimer() {
- hasTimer = false;
- if (tvguideConfig.useRemoteTimers && pRemoteTimers) {
- RemoteTimers_Event_v1_0 rt;
- rt.event = event;
- if (pRemoteTimers->Service("RemoteTimers::GetTimerByEvent-v1.0", &rt))
- hasTimer = true;
-#if VDRVERSNUM >= 20301
- } else {
- eTimerMatch TimerMatch = tmNone;
- LOCK_TIMERS_READ;
- const cTimers *timers = Timers;
- if (timers->GetMatch(event, &TimerMatch) && (TimerMatch == tmFull))
- hasTimer = true;
-#else
- } else if (column->HasTimer()) {
- hasTimer = event->HasTimer();
-#endif
- }
-}
-
-void cEpgGrid::SetSwitchTimer() {
- if (column->HasSwitchTimer()) {
- hasSwitchTimer = SwitchTimers.EventInSwitchList(event);
- } else {
- hasSwitchTimer = false;
- }
-}
-
-void cEpgGrid::setText() {
- if (tvguideConfig.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 (tvguideConfig.displayMode == eHorizontal) {
- timeString = cString::sprintf("%s - %s", *(event->GetTimeString()), *(event->GetEndTimeString()));
- }
-}
-
-void cEpgGrid::drawText() {
- tColor colorText = (active)?theme.Color(clrFontActive):theme.Color(clrFont);
- tColor colorTextBack;
- if (tvguideConfig.style == eStyleFlat)
- colorTextBack = color;
- else if (tvguideConfig.style == eStyleGraphical)
- colorTextBack = (active)?theme.Color(clrGridActiveFontBack):theme.Color(clrGridFontBack);
- else
- colorTextBack = clrTransparent;
- if (tvguideConfig.displayMode == eVertical) {
- if (Height()/geoManager.minutePixel < 6)
- return;
- int textHeight = fontManager.FontGrid->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 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);
- }
- }
- } else if (tvguideConfig.displayMode == eHorizontal) {
- 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 (tvguideConfig.showTimeInGrid) {
- pixmap->DrawText(cPoint(borderWidth, borderWidth), *timeString, colorText, colorTextBack, fontManager.FontGridHorizontalSmall);
- titleY = fontManager.FontGridHorizontalSmall->Height() + (geoManager.rowHeight - fontManager.FontGridHorizontalSmall->Height() - fontManager.FontGridHorizontal->Height())/2;
- } else {
- titleY = (geoManager.rowHeight - fontManager.FontGridHorizontal->Height())/2;
- }
- pixmap->DrawText(cPoint(borderWidth, titleY), *strTitle, colorText, colorTextBack, fontManager.FontGridHorizontal);
- }
- if (hasSwitchTimer)
- drawIcon("Switch", theme.Color(clrButtonYellow));
- if (hasTimer) {
- const cTimer *timer = NULL;
-#if VDRVERSNUM >= 20301
- {
- LOCK_TIMERS_READ;
- timer = Timers->GetMatch(event);
- }
-#else
- timer = Timers.GetMatch(event);
-#endif
- if (timer)
-#ifdef SWITCHONLYPATCH
- if (timer->HasFlags(tfSwitchOnly))
- drawIcon("Switch", theme.Color(clrButtonYellow));
- else if (timer->HasFlags(tfActive))
-#else /* SWITCHONLY */
- if (timer->HasFlags(tfActive))
-#endif /* SWITCHONLY */
- drawIcon("REC", theme.Color(clrButtonRed));
- else
- drawIcon("REC", theme.Color(clrButtonGreen));
- }
-}
-
-void cEpgGrid::drawIcon(cString iconText, tColor color) {
-
- const cFont *font = (tvguideConfig.displayMode == eVertical)
- ?fontManager.FontGrid
- :fontManager.FontGridHorizontalSmall;
- int textWidth = font->Width(*iconText)+2*borderWidth;
- int textHeight = font->Height()+10;
- pixmap->DrawRectangle( cRect(Width() - textWidth - borderWidth, Height() - textHeight - borderWidth, textWidth, textHeight), color);
- pixmap->DrawText(cPoint(Width() - textWidth, Height() - textHeight - borderWidth/2), *iconText, theme.Color(clrFont), color, font);
-}
-
-cString cEpgGrid::getTimeString(void) {
- return cString::sprintf("%s - %s", *(event->GetTimeString()), *(event->GetEndTimeString()));
-}
-
-void cEpgGrid::debug() {
- esyslog("tvguide epggrid: %s: %s, %s, viewportHeight: %d px, Duration: %d min, active: %d",
- column->Name(),
- *(event->GetTimeString()),
- event->Title(),
- viewportHeight,
- event->Duration()/60,
- active);
-}
+#include "services/remotetimers.h"
+#include "channelcolumn.h"
+#include "tools.h"
+#include "epggrid.h"
+
+cEpgGrid::cEpgGrid(cChannelColumn *c, const cEvent *event) : cGrid(c) {
+ this->event = event;
+ extText = new cTextWrapper();
+ hasTimer = false;
+ SetTimer();
+ hasSwitchTimer = false;
+ SetSwitchTimer();
+ dummy = false;
+}
+
+cEpgGrid::~cEpgGrid(void) {
+ delete extText;
+}
+
+void cEpgGrid::SetViewportHeight() {
+ int viewportHeightOld = viewportHeight;
+ if ( column->Start() > StartTime() ) {
+ viewportHeight = (min((int)EndTime(), column->Stop()) - column->Start()) /60;
+ } else if ( column->Stop() < EndTime() ) {
+ viewportHeight = (column->Stop() - StartTime()) /60;
+ if (viewportHeight < 0) viewportHeight = 0;
+ } else {
+ viewportHeight = Duration() / 60;
+ }
+ viewportHeight *= geoManager.minutePixel;
+ if (viewportHeight != viewportHeightOld)
+ dirty = true;
+}
+
+void cEpgGrid::PositionPixmap() {
+ if (tvguideConfig.displayMode == eVertical) {
+ int x0 = column->getX();
+ int y0 = geoManager.statusHeaderHeight + geoManager.channelHeaderHeight + geoManager.channelGroupsHeight;
+ if ( column->Start() < StartTime() ) {
+ y0 += (StartTime() - column->Start())/60*geoManager.minutePixel;
+ }
+ if (!pixmap) {
+ pixmap = osdManager.requestPixmap(-1, cRect(x0, y0, geoManager.colWidth, viewportHeight),
+ cRect(0, 0, geoManager.colWidth, Duration()/60*geoManager.minutePixel));
+ } else {
+ pixmap->SetViewPort(cRect(x0, y0, geoManager.colWidth, viewportHeight));
+ }
+ } else if (tvguideConfig.displayMode == eHorizontal) {
+ int x0 = geoManager.channelHeaderWidth + geoManager.channelGroupsWidth;
+ int y0 = column->getY();
+ if ( column->Start() < StartTime() ) {
+ x0 += (StartTime() - column->Start())/60*geoManager.minutePixel;
+ }
+ if (!pixmap) {
+ pixmap = osdManager.requestPixmap(-1, cRect(x0, y0, viewportHeight, geoManager.rowHeight),
+ cRect(0, 0, Duration()/60*geoManager.minutePixel, geoManager.rowHeight));
+ } else {
+ pixmap->SetViewPort(cRect(x0, y0, viewportHeight, geoManager.rowHeight ));
+ }
+ }
+
+}
+
+void cEpgGrid::SetTimer() {
+ hasTimer = false;
+ if (tvguideConfig.useRemoteTimers && pRemoteTimers) {
+ RemoteTimers_Event_v1_0 rt;
+ rt.event = event;
+ if (pRemoteTimers->Service("RemoteTimers::GetTimerByEvent-v1.0", &rt))
+ hasTimer = true;
+#if VDRVERSNUM >= 20301
+ } else {
+ eTimerMatch TimerMatch = tmNone;
+ LOCK_TIMERS_READ;
+ const cTimers *timers = Timers;
+ if (timers->GetMatch(event, &TimerMatch) && (TimerMatch == tmFull))
+ hasTimer = true;
+#else
+ } else if (column->HasTimer()) {
+ hasTimer = event->HasTimer();
+#endif
+ }
+}
+
+void cEpgGrid::SetSwitchTimer() {
+ if (column->HasSwitchTimer()) {
+ hasSwitchTimer = SwitchTimers.EventInSwitchList(event);
+ } else {
+ hasSwitchTimer = false;
+ }
+}
+
+void cEpgGrid::setText() {
+ if (tvguideConfig.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 (tvguideConfig.displayMode == eHorizontal) {
+ timeString = cString::sprintf("%s - %s", *(event->GetTimeString()), *(event->GetEndTimeString()));
+ }
+}
+
+void cEpgGrid::drawText() {
+ tColor colorText = (active)?theme.Color(clrFontActive):theme.Color(clrFont);
+ tColor colorTextBack;
+ if (tvguideConfig.style == eStyleFlat)
+ colorTextBack = color;
+ else if (tvguideConfig.style == eStyleGraphical)
+ colorTextBack = (active)?theme.Color(clrGridActiveFontBack):theme.Color(clrGridFontBack);
+ else
+ colorTextBack = clrTransparent;
+ if (tvguideConfig.displayMode == eVertical) {
+ if (Height()/geoManager.minutePixel < 6)
+ return;
+ int textHeight = fontManager.FontGrid->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 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);
+ }
+ }
+ } else if (tvguideConfig.displayMode == eHorizontal) {
+ 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 (tvguideConfig.showTimeInGrid) {
+ pixmap->DrawText(cPoint(borderWidth, borderWidth), *timeString, colorText, colorTextBack, fontManager.FontGridHorizontalSmall);
+ titleY = fontManager.FontGridHorizontalSmall->Height() + (geoManager.rowHeight - fontManager.FontGridHorizontalSmall->Height() - fontManager.FontGridHorizontal->Height())/2;
+ } else {
+ titleY = (geoManager.rowHeight - fontManager.FontGridHorizontal->Height())/2;
+ }
+ pixmap->DrawText(cPoint(borderWidth, titleY), *strTitle, colorText, colorTextBack, fontManager.FontGridHorizontal);
+ }
+ if (hasSwitchTimer)
+ drawIcon("Switch", theme.Color(clrButtonYellow));
+ if (hasTimer) {
+ const cTimer *timer = NULL;
+#if VDRVERSNUM >= 20301
+ {
+ LOCK_TIMERS_READ;
+ timer = Timers->GetMatch(event);
+ }
+#else
+ timer = Timers.GetMatch(event);
+#endif
+ if (timer)
+#ifdef SWITCHONLYPATCH
+ if (timer->HasFlags(tfSwitchOnly))
+ drawIcon("Switch", theme.Color(clrButtonYellow));
+ else if (timer->HasFlags(tfActive))
+#else /* SWITCHONLY */
+ if (timer->HasFlags(tfActive))
+#endif /* SWITCHONLY */
+ drawIcon("REC", theme.Color(clrButtonRed));
+ else
+ drawIcon("REC", theme.Color(clrButtonGreen));
+ }
+}
+
+void cEpgGrid::drawIcon(cString iconText, tColor color) {
+
+ const cFont *font = (tvguideConfig.displayMode == eVertical)
+ ?fontManager.FontGrid
+ :fontManager.FontGridHorizontalSmall;
+ int textWidth = font->Width(*iconText)+2*borderWidth;
+ int textHeight = font->Height()+10;
+ pixmap->DrawRectangle( cRect(Width() - textWidth - borderWidth, Height() - textHeight - borderWidth, textWidth, textHeight), color);
+ pixmap->DrawText(cPoint(Width() - textWidth, Height() - textHeight - borderWidth/2), *iconText, theme.Color(clrFont), color, font);
+}
+
+cString cEpgGrid::getTimeString(void) {
+ return cString::sprintf("%s - %s", *(event->GetTimeString()), *(event->GetEndTimeString()));
+}
+
+void cEpgGrid::debug() {
+ esyslog("tvguide epggrid: %s: %s, %s, viewportHeight: %d px, Duration: %d min, active: %d",
+ column->Name(),
+ *(event->GetTimeString()),
+ event->Title(),
+ viewportHeight,
+ event->Duration()/60,
+ active);
+}