[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