mirror of
https://projects.vdr-developer.org/git/vdr-plugin-tvguide.git
synced 2023-10-05 13:01:48 +00:00
Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
a711aed160 | ||
|
cdb5a46145 | ||
|
fc784f34e5 | ||
|
b707292485 | ||
|
587fbe1f44 | ||
|
9173d14b10 | ||
|
3386c05e91 | ||
|
a1eaf7a865 | ||
|
41eb32389d | ||
|
f4369c0772 |
16
HISTORY
16
HISTORY
@@ -210,3 +210,19 @@ Version 1.2.10
|
||||
- Simplify cRecMenuSearchTimerEdit::GetSearchTimer
|
||||
- Fixed cRecMenuItemSelectDirectory::DrawValue
|
||||
- Some rework
|
||||
|
||||
Version 1.2.11
|
||||
|
||||
- Fixed a segfault with graphicsmagick > 1.3.31
|
||||
- Fixed a possible deadlock in detailview
|
||||
- Optical changes in cMenuSetupImageCache
|
||||
|
||||
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"
|
||||
|
@@ -1,12 +1,12 @@
|
||||
#include "detailview.h"
|
||||
|
||||
cDetailView::cDetailView(const cEvent *event, cFooter *footer) {
|
||||
cDetailView::cDetailView(const cEvent *event, cFooter *footer) : cThread("DetailView") {
|
||||
this->event = event;
|
||||
this->footer = footer;
|
||||
}
|
||||
|
||||
cDetailView::~cDetailView(void){
|
||||
Cancel(-1);
|
||||
Cancel(3);
|
||||
while (Active())
|
||||
cCondWait::SleepMs(10);
|
||||
#if VDRVERSNUM >= 20301
|
||||
|
@@ -11,7 +11,6 @@
|
||||
using namespace Magick;
|
||||
|
||||
cImageLoader::cImageLoader() {
|
||||
InitializeMagick(NULL);
|
||||
}
|
||||
|
||||
cImageLoader::~cImageLoader() {
|
||||
|
@@ -5,7 +5,6 @@
|
||||
#include "imagescaler.h"
|
||||
|
||||
cImageMagickWrapper::cImageMagickWrapper() {
|
||||
InitializeMagick(NULL);
|
||||
}
|
||||
|
||||
cImageMagickWrapper::~cImageMagickWrapper() {
|
||||
|
10
setup.c
10
setup.c
@@ -508,11 +508,11 @@ void cMenuSetupImageCache::Set(void) {
|
||||
Add(new cMenuEditIntItem(tr("Number of logos to cache at start"), &tmpConfig->numLogosInitial, 0, 9999));
|
||||
|
||||
Add(InfoItem(tr("Cache Sizes"), ""));
|
||||
Add(InfoItem(tr("OSD Element Cache"), (imgCache.GetCacheSize(ctOsdElement)).c_str()));
|
||||
Add(InfoItem(tr("Logo cache"), (imgCache.GetCacheSize(ctLogo)).c_str()));
|
||||
Add(InfoItem(tr("EPG Grid Cache"), (imgCache.GetCacheSize(ctGrid)).c_str()));
|
||||
Add(InfoItem(tr("Channel Groups Cache"), (imgCache.GetCacheSize(ctChannelGroup)).c_str()));
|
||||
Add(InfoItem(tr("Recording Menus Icon Cache"), (imgCache.GetCacheSize(ctIcon)).c_str()));
|
||||
Add(InfoItem(tr("OSD Element Cache"), cString::sprintf("\t%s", (imgCache.GetCacheSize(ctOsdElement)).c_str())));
|
||||
Add(InfoItem(tr("Logo cache"), cString::sprintf("\t%s", (imgCache.GetCacheSize(ctLogo)).c_str())));
|
||||
Add(InfoItem(tr("EPG Grid Cache"), cString::sprintf("\t%s", (imgCache.GetCacheSize(ctGrid)).c_str())));
|
||||
Add(InfoItem(tr("Channel Groups Cache"), cString::sprintf("\t%s", (imgCache.GetCacheSize(ctChannelGroup)).c_str())));
|
||||
Add(InfoItem(tr("Recording Menus Icon Cache"), cString::sprintf("\t%s", (imgCache.GetCacheSize(ctIcon)).c_str())));
|
||||
|
||||
SetCurrent(Get(currentItem));
|
||||
Display();
|
||||
|
34
timeline.c
34
timeline.c
@@ -3,6 +3,7 @@
|
||||
|
||||
cTimeLine::cTimeLine(cTimeManager *timeManager) {
|
||||
this->timeManager = timeManager;
|
||||
lastClock = "";
|
||||
if (config.displayMode == eVertical) {
|
||||
dateViewer = new cStyledPixmap(osdManager.requestPixmap(1, cRect(0,
|
||||
geoManager.statusHeaderHeight + geoManager.clockHeight,
|
||||
@@ -263,20 +264,25 @@ void cTimeLine::setTimeline() {
|
||||
drawCurrentTimeBase();
|
||||
}
|
||||
|
||||
void cTimeLine::drawClock() {
|
||||
if (config.displayMode == eVertical)
|
||||
clock->Fill(clrTransparent);
|
||||
bool cTimeLine::drawClock() {
|
||||
cString currentTime = timeManager->GetCurrentTime();
|
||||
const cFont *font = (config.displayMode == eVertical)?fontManager.FontTimeLineTime:fontManager.FontTimeLineTimeHorizontal;
|
||||
int textHeight = font->Height();
|
||||
int clockTextWidth = font->Width(*currentTime);
|
||||
tColor colorFontBack = (config.style == eStyleFlat)?theme.Color(clrHeader):clrTransparent;
|
||||
if (config.style == eStyleGraphical) {
|
||||
clock->drawBackgroundGraphical(bgClock);
|
||||
} else {
|
||||
clock->setColor(theme.Color(clrHeader), theme.Color(clrHeaderBlending));
|
||||
clock->drawBackground();
|
||||
clock->drawBorder();
|
||||
if (strcmp(currentTime, lastClock)) {
|
||||
if (config.displayMode == eVertical)
|
||||
clock->Fill(clrTransparent);
|
||||
const cFont *font = (config.displayMode == eVertical) ? fontManager.FontTimeLineTime : fontManager.FontTimeLineTimeHorizontal;
|
||||
int textHeight = font->Height();
|
||||
int clockTextWidth = font->Width(*currentTime);
|
||||
tColor colorFontBack = (config.style == eStyleFlat) ? theme.Color(clrHeader) : clrTransparent;
|
||||
if (config.style == eStyleGraphical) {
|
||||
clock->drawBackgroundGraphical(bgClock);
|
||||
} else {
|
||||
clock->setColor(theme.Color(clrHeader), theme.Color(clrHeaderBlending));
|
||||
clock->drawBackground();
|
||||
clock->drawBorder();
|
||||
}
|
||||
clock->DrawText(cPoint((geoManager.clockWidth - clockTextWidth) / 2, (geoManager.clockHeight - textHeight) / 2), *currentTime, theme.Color(clrFont), colorFontBack, font);
|
||||
lastClock = currentTime;
|
||||
return true;
|
||||
}
|
||||
clock->DrawText(cPoint((geoManager.clockWidth-clockTextWidth)/2, (geoManager.clockHeight-textHeight)/2), *currentTime, theme.Color(clrFont), colorFontBack, font);
|
||||
return false;
|
||||
}
|
||||
|
11
timeline.h
11
timeline.h
@@ -13,17 +13,18 @@ private:
|
||||
cPixmap *timeline;
|
||||
cStyledPixmap *clock;
|
||||
cPixmap *timeBase;
|
||||
cString lastClock;
|
||||
void decorateTile(int posX, int posY, int tileWidth, int tileHeight);
|
||||
void drawRoundedCorners(int posX, int posY, int width, int height, int radius);
|
||||
cImage *createBackgroundImage(int width, int height, tColor clrBgr, tColor clrBlend);
|
||||
void drawCurrentTimeBase(void);
|
||||
public:
|
||||
cTimeLine(cTimeManager *timeManager);
|
||||
virtual ~cTimeLine(void);
|
||||
void setTimeline();
|
||||
void drawDateViewer();
|
||||
void drawTimeline();
|
||||
void drawClock();
|
||||
void setTimeline(void);
|
||||
void drawDateViewer(void);
|
||||
void drawTimeline(void);
|
||||
void drawCurrentTimeBase(void);
|
||||
bool drawClock();
|
||||
};
|
||||
|
||||
#endif //__TVGUIDE_TIMELINE_H
|
||||
|
@@ -12,6 +12,7 @@
|
||||
#include <vdr/plugin.h>
|
||||
#include <vdr/device.h>
|
||||
#include <vdr/menu.h>
|
||||
#include <Magick++.h>
|
||||
|
||||
#define DEFINE_CONFIG 1
|
||||
#include "geometrymanager.h"
|
||||
@@ -26,7 +27,7 @@
|
||||
#error "VDR-2.0.0 API version or greater is required!"
|
||||
#endif
|
||||
|
||||
static const char *VERSION = "1.2.10";
|
||||
static const char *VERSION = "1.2.13";
|
||||
static const char *DESCRIPTION = tr("A fancy 2d EPG Viewer");
|
||||
static const char *MAINMENUENTRY = "Tvguide";
|
||||
|
||||
@@ -93,6 +94,10 @@ bool cPluginTvguide::ProcessArgs(int argc, char *argv[]) {
|
||||
return true;
|
||||
}
|
||||
|
||||
__attribute__((constructor)) static void init(void) {
|
||||
Magick::InitializeMagick(NULL);
|
||||
}
|
||||
|
||||
bool cPluginTvguide::Initialize(void) {
|
||||
config.SetDefaultPathes();
|
||||
config.LoadTheme();
|
||||
|
10
tvguideosd.c
10
tvguideosd.c
@@ -352,7 +352,7 @@ void cTvGuideOsd::channelBack() {
|
||||
|
||||
void cTvGuideOsd::timeForward() {
|
||||
bool actionDone = false;
|
||||
if ( (timeManager->GetEnd() - activeGrid->EndTime())/60 < 30 ) {
|
||||
if ((timeManager->GetEnd() - activeGrid->EndTime())/60 < 30 ) {
|
||||
ScrollForward();
|
||||
actionDone = true;
|
||||
}
|
||||
@@ -373,7 +373,6 @@ void cTvGuideOsd::timeForward() {
|
||||
void cTvGuideOsd::ScrollForward() {
|
||||
timeManager->AddStep(config.stepMinutes);
|
||||
timeLine->drawDateViewer();
|
||||
timeLine->drawClock();
|
||||
timeLine->setTimeline();
|
||||
for (cChannelEpg *column = columns.First(); column; column = columns.Next(column)) {
|
||||
column->AddNewGridsAtEnd();
|
||||
@@ -384,7 +383,7 @@ void cTvGuideOsd::ScrollForward() {
|
||||
|
||||
void cTvGuideOsd::timeBack() {
|
||||
bool actionDone = false;
|
||||
if ( (activeGrid->StartTime() - timeManager->GetStart())/60 < 30 ) {
|
||||
if ((activeGrid->StartTime() - timeManager->GetStart())/60 < 30 ) {
|
||||
ScrollBack();
|
||||
actionDone = true;
|
||||
}
|
||||
@@ -408,7 +407,6 @@ void cTvGuideOsd::ScrollBack() {
|
||||
if (tooFarInPast)
|
||||
return;
|
||||
timeLine->drawDateViewer();
|
||||
timeLine->drawClock();
|
||||
timeLine->setTimeline();
|
||||
for (cChannelEpg *column = columns.First(); column; column = columns.Next(column)) {
|
||||
column->AddNewGridsAtStart();
|
||||
@@ -776,6 +774,10 @@ eOSState cTvGuideOsd::ProcessKey(eKeys Key) {
|
||||
case kNone: if (channelJumper) CheckTimeout(); break;
|
||||
default: break;
|
||||
}
|
||||
if (timeLine->drawClock()) {
|
||||
timeLine->drawCurrentTimeBase();
|
||||
osdManager.flush();
|
||||
}
|
||||
}
|
||||
if (!alreadyUnlocked) {
|
||||
cPixmap::Unlock();
|
||||
|
6
view.c
6
view.c
@@ -5,7 +5,7 @@
|
||||
* cView
|
||||
********************************************************************************************/
|
||||
|
||||
cView::cView(void) {
|
||||
cView::cView(void) : cThread("View") {
|
||||
activeView = 0;
|
||||
scrollable = false;
|
||||
tabbed = false;
|
||||
@@ -641,7 +641,7 @@ cSeriesView::cSeriesView(int seriesId, int episodeId) : cView() {
|
||||
}
|
||||
|
||||
cSeriesView::~cSeriesView(void) {
|
||||
Cancel(-1);
|
||||
Cancel(3);
|
||||
while (Active())
|
||||
cCondWait::SleepMs(10);
|
||||
}
|
||||
@@ -863,7 +863,7 @@ cMovieView::cMovieView(int movieId) : cView() {
|
||||
}
|
||||
|
||||
cMovieView::~cMovieView(void) {
|
||||
Cancel(-1);
|
||||
Cancel(3);
|
||||
while (Active())
|
||||
cCondWait::SleepMs(10);
|
||||
}
|
||||
|
Reference in New Issue
Block a user