[vdr-plugin-skinenigmang] 01/07: New upstream version 0.1.2+git20180128
Tobias Grimm
tiber-guest at moszumanska.debian.org
Sun Jan 28 15:58:00 UTC 2018
This is an automated email from the git hooks/post-receive script.
tiber-guest pushed a commit to branch master
in repository vdr-plugin-skinenigmang.
commit 74a8d853a255da25b71e91bc54f3e701e01a7159
Author: Tobias Grimm <etobi at debian.org>
Date: Sun Jan 28 16:38:18 2018 +0100
New upstream version 0.1.2+git20180128
---
HISTORY | 7 ++++++-
bitmap.c | 8 ++++----
bitmap.h | 4 ++--
enigma.c | 40 +++++++++++++++++++++++++++++++++++++---
logo.c | 20 ++++++++++----------
logo.h | 6 +++---
skinenigmang.c | 2 +-
status.c | 15 ++++++++++++++-
8 files changed, 77 insertions(+), 25 deletions(-)
diff --git a/HISTORY b/HISTORY
index 951f4d9..136189a 100644
--- a/HISTORY
+++ b/HISTORY
@@ -1,10 +1,15 @@
VDR Skin 'EnigmaNG' Revision History
------------------------------------------
-2012-xx-xx: Version 0.1.3
+2015-xx-xx: Version 0.1.3
+- Fixed: Compile under VDR 2.3.1.
+- Added: Display Category/Genre/Contents in channel OSD (Submitted by dimeptr; Closes #1161)
+- Added: Support for color button reordering in VDR >=1.7.30 (Closes #1209)
- Added: Display free video disk space in main and recordings menu with VDR 1.7.28+.
- Fixed: Main menu info area with VDR 1.7.28+.
- Added: Setup options to set width of signal information and progress bar in channel info OSD.
+- Added: Support for building with GraphicsMagick instead of ImageMagick. (Patch by Ville Skyttä)
+- Fixed: Disappearing symbols in channel info osd if signal strength and quality are shown.
2012-04-29: Version 0.1.2
- Changed: Use vdr fuctions to determine signal strength (Closes #811).
diff --git a/bitmap.c b/bitmap.c
index ff3e7aa..3581753 100644
--- a/bitmap.c
+++ b/bitmap.c
@@ -28,12 +28,12 @@ cOSDImageBitmap::cOSDImageBitmap()
cOSDImageBitmap::~cOSDImageBitmap()
{}
-bool cOSDImageBitmap::DrawImage(const char *fileNameP, int x, int y, int w, int h, int colors, cBitmap *bmp)
+bool cOSDImageBitmap::DrawImage(const char *fileNameP, int x, int y, int w, int h, int colors, cOsd *osd)
{
- return DrawMagick(fileNameP, x, y, w, h, colors, bmp);
+ return DrawMagick(fileNameP, x, y, w, h, colors, osd);
}
-bool cOSDImageBitmap::DrawMagick(const char *Filename, int x, int y, int width, int height, int colors, cBitmap *bmp)
+bool cOSDImageBitmap::DrawMagick(const char *Filename, int x, int y, int width, int height, int colors, cOsd *osd)
{
Image image;
try {
@@ -80,7 +80,7 @@ bool cOSDImageBitmap::DrawMagick(const char *Filename, int x, int y, int width,
| ((int)(pix->red * 255 / MaxRGB) << 16)
| ((int)(pix->green * 255 / MaxRGB) << 8)
| (int)(pix->blue * 255 / MaxRGB);
- bmp->DrawPixel(x + ix, y + iy, col);
+ osd->DrawPixel(x + ix, y + iy, col);
++pix;
}
}
diff --git a/bitmap.h b/bitmap.h
index 63644cb..db1fb1d 100644
--- a/bitmap.h
+++ b/bitmap.h
@@ -17,11 +17,11 @@ class cOSDImageBitmap {
public:
cOSDImageBitmap();
~cOSDImageBitmap();
- bool DrawImage(const char *fileNameP, int x, int y, int w, int h, int colors, cBitmap *bmp);
+ bool DrawImage(const char *fileNameP, int x, int y, int w, int h, int colors, cOsd *osd);
static void Init(void);
private:
- bool DrawMagick(const char *Filename, int x, int y, int height, int width, int colors, cBitmap *bmp);
+ bool DrawMagick(const char *Filename, int x, int y, int height, int width, int colors, cOsd *osd);
};
#endif
diff --git a/enigma.c b/enigma.c
index 89a2b61..2991cc4 100644
--- a/enigma.c
+++ b/enigma.c
@@ -563,8 +563,12 @@ void cSkinEnigmaDisplayChannel::DrawSymbols(const cChannel *Channel)
if (EnigmaConfig.showVps) {
// check if vps
// get schedule
+#if VDRVERSNUM >= 20301
+ LOCK_SCHEDULES_READ
+#else
cSchedulesLock SchedulesLock;
const cSchedules *Schedules = cSchedules::Schedules(SchedulesLock);
+#endif
if (Schedules) {
const cSchedule *Schedule = Schedules->GetSchedule(Channel);
if (Schedule) {
@@ -1414,6 +1418,7 @@ void cSkinEnigmaDisplayMenu::SetColors(void)
{
debug("cSkinEnigmaDisplayMenu::SetColors()");
+#if VDRVERSNUM < 20301
if (osd->GetBitmap(1) == NULL) { //single area
return;
}
@@ -1493,6 +1498,7 @@ void cSkinEnigmaDisplayMenu::SetColors(void)
// color 14 reserved for "clrMessageStatusFg + 2 * Type"
// color 15 reserved for "clrMessageStatusBg + 2 * Type"
}
+#endif
}
void cSkinEnigmaDisplayMenu::SetupAreas(void)
@@ -1596,7 +1602,12 @@ void cSkinEnigmaDisplayMenu::SetupAreas(void)
}
#endif //USE_PLUGIN_EPGSEARCH
+#if VDRVERSNUM >= 20301
+ LOCK_TIMERS_READ
+ if (Timers->GetNextActiveTimer()) {
+#else
if (Timers.GetNextActiveTimer()) {
+#endif
int h = pFontInfoTimerHeadline->Height();
// Show next active timers
y += h / 2;
@@ -2636,7 +2647,12 @@ void cSkinEnigmaDisplayMenu::SetEvent(const cEvent *Event)
i++;
sstrReruns << "- "
<< *DayDateTime(r->event->StartTime());
+#if VDRVERSNUM >= 20301
+ LOCK_CHANNELS_READ
+ const cChannel *channel = Channels->GetByChannelID(r->event->ChannelID(), true, true);
+#else
cChannel *channel = Channels.GetByChannelID(r->event->ChannelID(), true, true);
+#endif
if (channel)
sstrReruns << " " << channel->ShortName(true);
sstrReruns << ": " << r->event->Title();
@@ -2681,7 +2697,7 @@ void cSkinEnigmaDisplayMenu::SetEvent(const cEvent *Event)
if (fShowLogo) {
// draw logo
osd->DrawRectangle(xDateLeft + SmallGap, yDateTop, xDateRight - 1, yDateBottom - SmallGap - 1, Theme.Color(clrLogoBg));
- if (!(EnigmaConfig.showImages && EnigmaLogoCache.DrawEventImage(Event, xLogoLeft, yLogoTop, xLogoRight - xLogoLeft, yLogoBottom - yLogoTop, nNumImageColors, osd->GetBitmap(2) ? osd->GetBitmap(2) : osd->GetBitmap(0)))) {
+ if (!(EnigmaConfig.showImages && EnigmaLogoCache.DrawEventImage(Event, xLogoLeft, yLogoTop, xLogoRight - xLogoLeft, yLogoBottom - yLogoTop, nNumImageColors, osd))) {
if (EnigmaLogoCache.LoadIcon("icons/menu/schedule"))
osd->DrawBitmap(xLogoLeft + (xLogoRight - xLogoLeft - EnigmaLogoCache.Get().Width()) / 2,
yLogoTop + (yLogoBottom - yLogoTop - EnigmaLogoCache.Get().Height()) / 2,
@@ -2855,7 +2871,12 @@ void cSkinEnigmaDisplayMenu::SetRecording(const cRecording *Recording)
}
#endif
+#if VDRVERSNUM >= 20301
+ LOCK_CHANNELS_READ
+ const cChannel *channel = Channels->GetByChannelID(Info->ChannelID());
+#else
cChannel *channel = Channels.GetByChannelID(Info->ChannelID());
+#endif
if (channel)
sstrInfo << trVDR("Channel") << ": " << channel->Number() << " - " << channel->Name() << std::endl;
if (EnigmaConfig.showRecSize > 0) {
@@ -3033,7 +3054,7 @@ void cSkinEnigmaDisplayMenu::SetRecording(const cRecording *Recording)
#ifndef SKINENIGMA_NO_MENULOGO
if (fShowLogo) {
osd->DrawRectangle(xDateLeft + SmallGap, yDateTop, xDateRight - 1, yDateBottom - SmallGap - 1, Theme.Color(clrLogoBg));
- if (!(EnigmaConfig.showImages && EnigmaLogoCache.DrawRecordingImage(Recording, xLogoLeft, yLogoTop, xLogoRight - xLogoLeft, yLogoBottom - yLogoTop, nNumImageColors, osd->GetBitmap(2) ? osd->GetBitmap(2) : osd->GetBitmap(0)))) {
+ if (!(EnigmaConfig.showImages && EnigmaLogoCache.DrawRecordingImage(Recording, xLogoLeft, yLogoTop, xLogoRight - xLogoLeft, yLogoBottom - yLogoTop, nNumImageColors, osd))) {
// draw logo
if (EnigmaLogoCache.LoadIcon("icons/menu/recordings"))
osd->DrawBitmap(xLogoLeft + (xLogoRight - xLogoLeft - EnigmaLogoCache.Get().Width()) / 2,
@@ -3607,7 +3628,9 @@ cSkinEnigmaDisplayVolume::cSkinEnigmaDisplayVolume()
osd->SetAreas(SingleArea, sizeof(SingleArea) / sizeof(tArea));
} else {
debug("cSkinEnigmaDisplayVolume: using multiple areas");
+#if VDRVERSNUM < 20301
cBitmap *bitmap = NULL;
+#endif
if (fShowSymbol) {
tArea Areas[] = { {xLogoLeft, yLogoTop, xLogoRight + LogoDecoGap + LogoDecoWidth - 1, yLogoBottom - 1, 4},
{xTitleLeft, yTitleTop, xTitleRight - 1, yBottomBottom - 1, 4}
@@ -3622,7 +3645,9 @@ cSkinEnigmaDisplayVolume::cSkinEnigmaDisplayVolume()
throw 1;
return;
}
+#if VDRVERSNUM < 20301
bitmap = osd->GetBitmap(1);
+#endif
} else {
tArea Areas[] = { {xTitleLeft, yTitleTop, xTitleRight - 1, yBottomBottom - 1, 4}
};
@@ -3636,8 +3661,11 @@ cSkinEnigmaDisplayVolume::cSkinEnigmaDisplayVolume()
throw 1;
return;
}
+#if VDRVERSNUM < 20301
bitmap = osd->GetBitmap(0);
+#endif
}
+#if VDRVERSNUM < 20301
if (bitmap) {
// set colors
bitmap->Reset();
@@ -3649,6 +3677,7 @@ cSkinEnigmaDisplayVolume::cSkinEnigmaDisplayVolume()
bitmap->SetColor(5, Theme.Color(clrVolumeBarMute));
bitmap->SetColor(6, Theme.Color(clrTitleFg));
}
+#endif
}
// clear all
osd->DrawRectangle(0, 0, osd->Width(), osd->Height(), clrTransparent);
@@ -4172,7 +4201,12 @@ void cSkinEnigmaDisplayMessage::Flush(void)
bool cSkinEnigmaBaseOsd::HasChannelTimerRecording(const cChannel *Channel)
{
// try to find current channel from timers
- for (cTimer * t = Timers.First(); t; t = Timers.Next(t)) {
+#if VDRVERSNUM >= 20301
+ LOCK_TIMERS_READ
+ for (const cTimer *t = Timers->First(); t; t = Timers->Next(t)) {
+#else
+ for (cTimer *t = Timers.First(); t; t = Timers.Next(t)) {
+#endif
if ((t->Channel() == Channel) && t->Recording())
return true;
}
diff --git a/logo.c b/logo.c
index 3eb2a24..341e04b 100644
--- a/logo.c
+++ b/logo.c
@@ -44,37 +44,37 @@ bool cEnigmaLogoCache::Resize(unsigned int cacheSizeP)
return true;
}
-bool cEnigmaLogoCache::DrawEventImage(const cEvent *Event, int x, int y, int w, int h, int c, cBitmap *bmp)
+bool cEnigmaLogoCache::DrawEventImage(const cEvent *Event, int x, int y, int w, int h, int c, cOsd *osd)
{
- if (Event == NULL || bmp == NULL)
+ if (Event == NULL || osd == NULL)
return false;
char *strFilename = NULL;
int rc = false;
if (-1 != asprintf(&strFilename, "%s/%d.%s", EnigmaConfig.GetImagesDir(), Event->EventID(), EnigmaConfig.GetImageExtension())) {
- rc = DrawImage(strFilename, x, y, w, h, c, bmp);
+ rc = DrawImage(strFilename, x, y, w, h, c, osd);
free (strFilename);
}
return rc;
}
-bool cEnigmaLogoCache::DrawRecordingImage(const cRecording *Recording, int x, int y, int w, int h, int c, cBitmap *bmp)
+bool cEnigmaLogoCache::DrawRecordingImage(const cRecording *Recording, int x, int y, int w, int h, int c, cOsd *osd)
{
- if (Recording == NULL || bmp == NULL)
+ if (Recording == NULL || osd == NULL)
return false;
char *strFilename = NULL;
int rc = false;
if (-1 != asprintf(&strFilename, "%s/%s.%s", Recording->FileName(), RECORDING_COVER, EnigmaConfig.GetImageExtension())) {
- rc = DrawImage(strFilename, x, y, w, h, c, bmp);
+ rc = DrawImage(strFilename, x, y, w, h, c, osd);
free (strFilename);
}
return rc;
}
-bool cEnigmaLogoCache::DrawImage(const char *fileNameP, int x, int y, int w, int h, int c, cBitmap *bmp)
+bool cEnigmaLogoCache::DrawImage(const char *fileNameP, int x, int y, int w, int h, int c, cOsd *osd)
{
- if (fileNameP== NULL || bmp == NULL)
+ if (fileNameP== NULL || osd == NULL)
return false;
struct stat stbuf;
@@ -86,11 +86,11 @@ bool cEnigmaLogoCache::DrawImage(const char *fileNameP, int x, int y, int w, int
#ifdef HAVE_IMAGEMAGICK
bitmapM = NULL;
- return image.DrawImage(fileNameP, x, y, w, h, c, bmp);
+ return image.DrawImage(fileNameP, x, y, w, h, c, osd);
#else
int rc = LoadXpm(fileNameP, w, h);
if (rc)
- bmp->DrawBitmap(x, y, *bitmapM); //TODO?
+ osd->DrawBitmap(x, y, *bitmapM); //TODO?
return rc;
#endif
}
diff --git a/logo.h b/logo.h
index bef1441..5fc51d1 100644
--- a/logo.h
+++ b/logo.h
@@ -37,15 +37,15 @@ private:
cBitmap *bmpImage;
#endif
std::map<std::string, cBitmap*> cacheMapM;
- bool DrawImage(const char *fileNameP, int x, int y, int w, int h, int c, cBitmap *bmp);
+ bool DrawImage(const char *fileNameP, int x, int y, int w, int h, int c, cOsd *osd);
bool LoadXpm(const char *fileNameP, int w, int h);
bool Load(const char *fileNameP, int w, int h);
public:
cEnigmaLogoCache(unsigned int cacheSizeP);
~cEnigmaLogoCache();
bool Resize(unsigned int cacheSizeP);
- bool DrawEventImage(const cEvent *Event, int x, int y, int w, int h, int c, cBitmap *bmp);
- bool DrawRecordingImage(const cRecording *Recording, int x, int y, int w, int h, int c, cBitmap *bmp);
+ bool DrawEventImage(const cEvent *Event, int x, int y, int w, int h, int c, cOsd *osd);
+ bool DrawRecordingImage(const cRecording *Recording, int x, int y, int w, int h, int c, cOsd *osd);
bool LoadChannelLogo(const cChannel *Channel);
bool LoadSymbol(const char *fileNameP);
bool LoadIcon(const char *fileNameP);
diff --git a/skinenigmang.c b/skinenigmang.c
index 708e7b2..5aaba45 100644
--- a/skinenigmang.c
+++ b/skinenigmang.c
@@ -20,7 +20,7 @@
#endif
-static const char VERSION[] = "0.1.2";
+static const char VERSION[] = "0.1.3-git";
static const char DESCRIPTION[] = trNOOP("EnigmaNG skin");
class cPluginSkinEnigma : public cPlugin {
diff --git a/status.c b/status.c
index ea1f177..7fa1019 100644
--- a/status.c
+++ b/status.c
@@ -28,6 +28,9 @@ void cEnigmaStatus::Replaying(const cControl * /*Control */ , const char *Name,
debug("cEnigmaStatus::Replaying(%s)", Name);
if (Name != NULL) {
+#if VDRVERSNUM >= 20301
+ LOCK_RECORDINGS_READ
+#endif
mReplayMode = replayMPlayer;
if (strlen(Name) > 6 && Name[0] == '[' && Name[3] == ']' && Name[5] == '(') {
int i;
@@ -40,7 +43,11 @@ void cEnigmaStatus::Replaying(const cControl * /*Control */ , const char *Name,
mReplayIsLoop = Name[1] == 'L';
mReplayIsShuffle = Name[2] == 'S';
}
+#if VDRVERSNUM >= 20301
+ } else if (FileName ? Recordings->GetByName(FileName) : NULL) {
+#else
} else if (FileName ? Recordings.GetByName(FileName) : NULL) {
+#endif
mReplayMode = replayNormal;
} else if (strcmp(Name, "DVD") == 0)
mReplayMode = replayDVD;
@@ -86,9 +93,13 @@ void cEnigmaStatus::OsdItem(const char * /* Text */, int /* ItemIndex */)
void cEnigmaStatus::UpdateActiveTimers(void)
{
mTimers.Clear();
+#if VDRVERSNUM >= 20301
+ LOCK_TIMERS_READ
+ for (const cTimer * tim = Timers->First(); tim; tim = Timers->Next(tim)) {
+#else
Timers.IncBeingEdited();
-
for (cTimer * tim = Timers.First(); tim; tim = Timers.Next(tim)) {
+#endif
if (tim->HasFlags(tfActive)) {
int i = 0;
cTimer dummy;
@@ -112,7 +123,9 @@ void cEnigmaStatus::UpdateActiveTimers(void)
}
}
+#if VDRVERSNUM < 20301
Timers.DecBeingEdited();
+#endif
mTimers.Sort();
}
// vim:et:sw=2:ts=2:
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-vdr-dvb/vdr-plugin-skinenigmang.git
More information about the pkg-vdr-dvb-changes
mailing list