[vdr-plugin-skinelchi] 01/06: New upstream version 0.3.0
Tobias Grimm
tiber-guest at moszumanska.debian.org
Mon Jan 8 23:34:19 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-skinelchi.
commit 42c3ed179f965a988b18a4ca2f6d700b3dcc6418
Author: Tobias Grimm <git at e-tobi.net>
Date: Tue Jan 9 00:03:02 2018 +0100
New upstream version 0.3.0
---
50-skinelchi.conf | 8 +++
DisplayChannel.c | 73 +++++++++++++++++++-----
DisplayChannel.h | 12 ++--
DisplayMenu.c | 92 ++++++++++--------------------
DisplayReplay.c | 10 ++--
DisplayTracks.c | 3 +-
DisplayVolume.c | 2 -
HISTORY | 11 ++++
Makefile | 14 +++--
README | 9 +--
config.c | 2 +
config.h | 4 ++
patches/vdr-1.6.0-eit_new_streamtypes.diff | 11 ----
po/de_DE.po | 15 +++--
po/fr_FR.po | 18 ++++--
po/it_IT.po | 18 ++++--
setup.c | 4 +-
skinelchi.c | 22 +++----
symbols/1080/Csignal.xpm | 51 +++++++++++++++++
symbols/576/signal.xpm | 43 ++++++++++++++
symbols/720/Bsignal.xpm | 45 +++++++++++++++
vdrstatus.c | 8 ---
vdrstatus.h | 4 --
videostatus.c | 59 -------------------
24 files changed, 328 insertions(+), 210 deletions(-)
diff --git a/50-skinelchi.conf b/50-skinelchi.conf
new file mode 100644
index 0000000..3b176b4
--- /dev/null
+++ b/50-skinelchi.conf
@@ -0,0 +1,8 @@
+[skinelchi]
+# optional path to channel log directory
+# default: <configdir>/plugins/skinelchi
+#--logos=<logodir>
+
+# optional path to EPG images (needs ImageMagick compiled in)
+# default: /video0/epgimages
+#--icache=<DIR>
diff --git a/DisplayChannel.c b/DisplayChannel.c
index aa75b7c..fafc872 100644
--- a/DisplayChannel.c
+++ b/DisplayChannel.c
@@ -41,6 +41,7 @@
#include "symbols/576/ar169.xpm"
#include "symbols/576/ar2211.xpm"
#include "symbols/576/arHD.xpm"
+#include "symbols/576/signal.xpm"
#include "symbols/720/Baudio.xpm"
#include "symbols/720/Bdolbydigital.xpm"
@@ -57,6 +58,7 @@
#include "symbols/720/Bar169.xpm"
#include "symbols/720/Bar2211.xpm"
#include "symbols/720/BarHD.xpm"
+#include "symbols/720/Bsignal.xpm"
#include "symbols/1080/Caudio.xpm"
#include "symbols/1080/Cdolbydigital.xpm"
@@ -73,6 +75,7 @@
#include "symbols/1080/Car169.xpm"
#include "symbols/1080/Car2211.xpm"
#include "symbols/1080/CarHD.xpm"
+#include "symbols/1080/Csignal.xpm"
cBitmap cSkinElchiDisplayChannel::bmAVps(vps_xpm);
cBitmap cSkinElchiDisplayChannel::bmATeletext(teletext_xpm);
@@ -89,6 +92,7 @@ cBitmap cSkinElchiDisplayChannel::bmAARLG169(arLG169_xpm);
cBitmap cSkinElchiDisplayChannel::bmAAR169(ar169_xpm);
cBitmap cSkinElchiDisplayChannel::bmAAR2211(ar2211_xpm);
cBitmap cSkinElchiDisplayChannel::bmAARHD(arHD_xpm);
+cBitmap cSkinElchiDisplayChannel::bmASignal(signal_xpm);
cBitmap cSkinElchiDisplayChannel::bmBVps(Bvps_xpm);
cBitmap cSkinElchiDisplayChannel::bmBTeletext(Bteletext_xpm);
@@ -105,6 +109,7 @@ cBitmap cSkinElchiDisplayChannel::bmBARLG169(BarLG169_xpm);
cBitmap cSkinElchiDisplayChannel::bmBAR169(Bar169_xpm);
cBitmap cSkinElchiDisplayChannel::bmBAR2211(Bar2211_xpm);
cBitmap cSkinElchiDisplayChannel::bmBARHD(BarHD_xpm);
+cBitmap cSkinElchiDisplayChannel::bmBSignal(Bsignal_xpm);
cBitmap cSkinElchiDisplayChannel::bmCVps(Cvps_xpm);
cBitmap cSkinElchiDisplayChannel::bmCTeletext(Cteletext_xpm);
@@ -121,12 +126,9 @@ cBitmap cSkinElchiDisplayChannel::bmCARLG169(CarLG169_xpm);
cBitmap cSkinElchiDisplayChannel::bmCAR169(Car169_xpm);
cBitmap cSkinElchiDisplayChannel::bmCAR2211(Car2211_xpm);
cBitmap cSkinElchiDisplayChannel::bmCARHD(CarHD_xpm);
+cBitmap cSkinElchiDisplayChannel::bmCSignal(Csignal_xpm);
-#if VDRVERSNUM < 10700
-#define STRVIDEOSIZE " 000x000"
-#else
#define STRVIDEOSIZE " 0000x0000"
-#endif
extern cSkinElchiStatus *ElchiStatus;
@@ -144,6 +146,8 @@ cSkinElchiDisplayChannel::cSkinElchiDisplayChannel(bool WithInfo)
old_ar = ar_unknown;
old_width = -1;
old_height = -1;
+ LastSignalStrength = -1;
+ LastSignalQuality = -1;
showMessage = changed = false;
showVolume = false;
volumechange = ElchiStatus->GetVolumeChange();
@@ -168,11 +172,10 @@ cSkinElchiDisplayChannel::cSkinElchiDisplayChannel(bool WithInfo)
OSDHeight = 576;
int OSDWidth = 720;
double OSDAspect = 4.0/3.0;
-#if VDRVERSNUM >= 10708
+
cDevice::PrimaryDevice()->GetOsdSize(OSDWidth, OSDHeight, OSDAspect);
-#endif
- DSYSLOG("skinelchi: OSDsize Channel %dx%d left=%d/%d top=%d/%d width=%d/%d heigth=%d/%d",
+ isyslog("skinelchi: OSDsize Channel %dx%d left=%d/%d top=%d/%d width=%d/%d heigth=%d/%d",
OSDWidth, OSDHeight, OSDsize.left, Setup.OSDLeft, OSDsize.top, Setup.OSDTop, OSDsize.width, Setup.OSDWidth, OSDsize.height, Setup.OSDHeight);
if (OSDHeight >= 1080) {
@@ -193,6 +196,7 @@ cSkinElchiDisplayChannel::cSkinElchiDisplayChannel(bool WithInfo)
bmAR169 = &bmCAR169;
bmAR2211 = &bmCAR2211;
bmARHD = &bmCARHD;
+ bmSignal = &bmCSignal;
Gap = 9;
SymbolGap = 6;
ScrollWidth = 9;
@@ -214,6 +218,7 @@ cSkinElchiDisplayChannel::cSkinElchiDisplayChannel(bool WithInfo)
bmAR169 = &bmBAR169;
bmAR2211 = &bmBAR2211;
bmARHD = &bmBARHD;
+ bmSignal = &bmBSignal;
Gap = 6;
SymbolGap = 4;
ScrollWidth = 6;
@@ -235,6 +240,7 @@ cSkinElchiDisplayChannel::cSkinElchiDisplayChannel(bool WithInfo)
bmAR169 = &bmAAR169;
bmAR2211 = &bmAAR2211;
bmARHD = &bmAARHD;
+ bmSignal = &bmASignal;
Gap = 5;
SymbolGap = 3;
ScrollWidth = 5;
@@ -362,7 +368,14 @@ cSkinElchiDisplayChannel::cSkinElchiDisplayChannel(bool WithInfo)
RecordingScroll = NULL;
} // end with/without Info
- AudioScroll = new cCharScroll(x7, y1 + lineOffset, x10 - x7, smallfont->Height(), osd,
+ // x10: max x (osdwidth-lh/2)
+ // x8: osdWidth - lh
+ // x6: Ende Datum/Uhrzeit
+ // x7 = x6 + lh/2
+ // x9: Begin bmVPS - SymbolGap
+ x9a = x9 + SymbolGap + bmAR43->Width() + SymbolGap + bmVps->Width() + SymbolGap + bmTeletext->Width() + SymbolGap + bmAudio->Width();
+
+ AudioScroll = new cCharScroll(x7, y1 + lineOffset, ElchiConfig.showSignalBars ? x9a - x7 : x10 - x7, smallfont->Height(), osd,
Theme.Color(clrChannelSymbolOn), bg, taRight|taTop);
int DestWidth = x9 - x3;
@@ -578,6 +591,9 @@ void cSkinElchiDisplayChannel::SetChannel(const cChannel *Channel, int ChannelNu
DSYSLOG("skinelchi: cSkinElchiDisplayChannel::SetChannel(%d,%d)", Channel ? Channel->Number():0, ChannelNumber)
changed = true;
+ // force signal redraw
+ LastSignalStrength = -1;
+ LastSignalQuality = -1;
int x = x10;
if (!Channel) {
@@ -665,12 +681,13 @@ void cSkinElchiDisplayChannel::SetChannel(const cChannel *Channel, int ChannelNu
else
{
cString filename = NULL;
+#if APIVERSNUM < 20301
if (!osd->GetBitmap(1) && ElchiConfig.useHQlogo && OSDHeight <= 576)
filename = CheckLogoFile(Channel, cString::sprintf("%s/hqlogos", ElchiConfig.GetLogoBaseDir()));
-
+#endif
if (!(const char *)filename)
filename = CheckLogoFile(Channel, cString::sprintf("%s/logos/%d", ElchiConfig.GetLogoBaseDir(), (OSDHeight >= 1080 ? 1080 : (OSDHeight >= 720) ? 720 : 576)));
-
+
if (ElchiConfig.LogoMessages) {
if (NULL != (const char *)filename)
isyslog("skinelchi: loading logo \"%s\"", *filename);
@@ -715,12 +732,13 @@ void cSkinElchiDisplayChannel::SetEvents(const cEvent *Present, const cEvent *Fo
if (Present) {
///isyslog("SetEvents: present, hastimer=%d, IsRunning=%d", Present->HasTimer(),Present->IsRunning());
-#if VDRVERSNUM < 10733
- int TimerMatch = tmNone;
-#else
eTimerMatch TimerMatch = tmNone;
-#endif
+#if APIVERSNUM >= 20301
+ LOCK_TIMERS_READ
+ const cTimer * Timer = Timers->GetMatch(Present, &TimerMatch);
+#else
const cTimer * Timer = Timers.GetMatch(Present, &TimerMatch);
+#endif
if (Timer && Timer->Recording()) {
///isyslog("SetEvents: present has Timer");
offsetPresent = bmRecording->Width() + Gap;
@@ -902,6 +920,33 @@ void cSkinElchiDisplayChannel::Flush(void)
}
}
+ // ----------------- signal info --------------------------------
+ if (ElchiConfig.showSignalBars) {
+ int SignalStrength = cDevice::ActualDevice()->SignalStrength();
+ //isyslog("skinelchi-signalinfo: str=%d lastStr=%d", SignalStrength, LastSignalStrength);
+
+ if (SignalStrength >= 0 && (SignalStrength != LastSignalStrength)) {
+ int s = SignalStrength * bmSignal->Width() / 100;
+ //cString Strength = cString::sprintf("STR: %d%%", SignalStrength);
+ //osd->DrawText(x9a, y1 + lineOffset-slh/2, Strength, Theme.Color(clrChannelDateFg), Theme.Color(clrChannelDateBg), cFont::GetFont(fontSml), x10-x9a, slh/2, taLeft);
+ osd->DrawBitmap(x10 - bmSignal->Width(), y1 + SymbolGap/2, *bmSignal);
+ osd->DrawRectangle(x10 - bmSignal->Width() + s, y1 + SymbolGap/2, x10 - 1, y1 + SymbolGap/2 + bmSignal->Height() - 1, bg);
+ LastSignalStrength = SignalStrength;
+ changed = true;
+ }
+ int SignalQuality = cDevice::ActualDevice()->SignalQuality();
+ //isyslog("skinelchi-signalqualy: snr=%d lastSnr=%d", SignalQuality, LastSignalQuality);
+ if (SignalQuality >= 6 && (SignalQuality != LastSignalQuality)) { // every 2nd value is 5, why?
+ int q = SignalQuality * bmSignal->Width() / 100;
+ //cString Quality = cString::sprintf("SNR: %d%%", SignalQuality);
+ //osd->DrawText(x9a, y1 + lineOffset, Quality, Theme.Color(clrChannelDateFg), Theme.Color(clrChannelDateBg), cFont::GetFont(fontSml), x10-x9a, slh/2, taLeft);
+ osd->DrawBitmap(x10 - bmSignal->Width(), y1 + lh/2 + SymbolGap/2, *bmSignal);
+ osd->DrawRectangle(x10 - bmSignal->Width() + q, y1 + lh/2 + SymbolGap/2, x10 - 1, y1 + lh/2 + SymbolGap/2 + bmSignal->Height() - 1, bg);
+ LastSignalQuality = SignalQuality;
+ changed = true;
+ }
+ }
+
// ----------------------- audio --------------------------------
// build audio string (excluding Recording infos)
cDevice *Device = cDevice::PrimaryDevice();
diff --git a/DisplayChannel.h b/DisplayChannel.h
index 6d49115..20704cc 100644
--- a/DisplayChannel.h
+++ b/DisplayChannel.h
@@ -24,7 +24,7 @@ class cSkinElchiDisplayChannel : public cSkinDisplayChannel
private:
cOsd *osd;
int logox, logoy;
- int x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11;
+ int x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x9a, x10, x11;
int y0, y1, y2, y3, y4, y5, y6, y6a, y7, y8, y9;
bool withInfo, rec, showMessage, showVolume, sleeptimermessage;
int lh, slh, lhh, lineOffset;
@@ -36,13 +36,13 @@ private:
bool changed;
char *date;
cBitmap *bmVps, *bmTeletext, *bmRadio, *bmAudio, *bmDolbyDigital, *bmEncrypted, *bmRecording, *bmMail,
- *bmAR43, *bmARL149, *bmARL169, *bmARLG169, *bmAR169, *bmAR2211, *bmARHD;
+ *bmAR43, *bmARL149, *bmARL169, *bmARLG169, *bmAR169, *bmAR2211, *bmARHD, *bmSignal;
static cBitmap bmAVps, bmATeletext, bmARadio, bmAAudio, bmADolbyDigital, bmAEncrypted, bmARecording, bmAMail,
- bmAAR43, bmAARL149, bmAARL169, bmAARLG169, bmAAR169, bmAAR2211, bmAARHD;
+ bmAAR43, bmAARL149, bmAARL169, bmAARLG169, bmAAR169, bmAAR2211, bmAARHD, bmASignal;
static cBitmap bmBVps, bmBTeletext, bmBRadio, bmBAudio, bmBDolbyDigital, bmBEncrypted, bmBRecording, bmBMail,
- bmBAR43, bmBARL149, bmBARL169, bmBARLG169, bmBAR169, bmBAR2211, bmBARHD;
+ bmBAR43, bmBARL149, bmBARL169, bmBARLG169, bmBAR169, bmBAR2211, bmBARHD, bmBSignal;
static cBitmap bmCVps, bmCTeletext, bmCRadio, bmCAudio, bmCDolbyDigital, bmCEncrypted, bmCRecording, bmCMail,
- bmCAR43, bmCARL149, bmCARL169, bmCARLG169, bmCAR169, bmCAR2211, bmCARHD;
+ bmCAR43, bmCARL149, bmCARL169, bmCARLG169, bmCAR169, bmCAR2211, bmCARHD, bmCSignal;
cString audiostring;
bool AudioChanged;
bool video;
@@ -50,6 +50,8 @@ private:
int old_height;
int OSDHeight;
eAspectRatio old_ar;
+ int LastSignalStrength;
+ int LastSignalQuality;
int setchannel_x;
cCharScroll *AudioScroll;
cCharScroll *RecordingScroll;
diff --git a/DisplayMenu.c b/DisplayMenu.c
index b924475..1b49c71 100644
--- a/DisplayMenu.c
+++ b/DisplayMenu.c
@@ -143,9 +143,8 @@ cSkinElchiDisplayMenu::cSkinElchiDisplayMenu(void)
int OSDHeight = 576;
int OSDWidth = 720;
double OSDAspect = 4.0/3.0;
-#if VDRVERSNUM >= 10708
+
cDevice::PrimaryDevice()->GetOsdSize(OSDWidth, OSDHeight, OSDAspect);
-#endif
DSYSLOG("skinelchi: OSDsize Menu %dx%d left=%d/%d top=%d/%d width=%d/%d heigth=%d/%d",
OSDWidth, OSDHeight, OSDsize.left, Setup.OSDLeft, OSDsize.top, Setup.OSDTop, OSDsize.width, Setup.OSDWidth, OSDsize.height, Setup.OSDHeight);
@@ -288,9 +287,12 @@ void cSkinElchiDisplayMenu::Init(areatype ReqAreaType)
AreaNdx = 0;
epgimagecolors = 256 - MAX_ELCHI_THEME_COLORS;
DSYSLOG("skinelchi: setting Area_1_8Bit (%s:%d)",__FILE__,__LINE__)
+#if APIVERSNUM < 20301
+ // might lead to flickering on 2.3.1+
osd->GetBitmap(0)->Reset();
for (int i = 0; i < MAX_ELCHI_THEME_COLORS; i++)
osd->GetBitmap(0)->SetColor(i, ElchiConfig.ThemeColors[i]);
+#endif
}
else {
epgimagesize = 0;
@@ -509,7 +511,12 @@ void cSkinElchiDisplayMenu::Clear2(void)
osd->DrawRectangle(x0, y2, x8 - 1, y5 - 1, bg);
if (timercheck) {
- cTimer *nexttimer = Timers.GetNextActiveTimer();
+#if APIVERSNUM >= 20301
+ LOCK_TIMERS_READ
+ const cTimer *nexttimer = Timers->GetNextActiveTimer();
+#else
+ const cTimer *nexttimer = Timers.GetNextActiveTimer();
+#endif
if (nexttimer) {
const cFont *font = cFont::GetFont(fontOsd);
Epgsearch_lastconflictinfo_v1_0 conflictinfo;
@@ -542,7 +549,7 @@ void cSkinElchiDisplayMenu::Clear2(void)
void cSkinElchiDisplayMenu::DrawTitle(void)
{
DSYSLOG("skinelchi: DisplayMenu::DrawTitle (%s)", *title2)
-#if VDRVERSNUM >= 10728
+
if ((MenuCategory() == mcMain) || (MenuCategory() == mcRecording) || (MenuCategory() == mcTimer)) {
ostringstream titleline;
titleline.imbue(std::locale(""));
@@ -557,7 +564,7 @@ void cSkinElchiDisplayMenu::DrawTitle(void)
}
else
TitleScroll->SetText(*title2, cFont::GetFont(fontSml));
-#endif
+
changed = true;
}
@@ -570,12 +577,9 @@ void cSkinElchiDisplayMenu::SetTitle(const char *Title)
return;
}
-#if VDRVERSNUM >= 10728
title2 = Title;
+ cVideoDiskUsage::HasChanged(lastDiskUsageState);
DrawTitle();
-#else
- TitleScroll->SetText(Title, cFont::GetFont(fontSml));
-#endif
changed = true;
}
@@ -763,7 +767,9 @@ void cSkinElchiDisplayMenu::SetItem(const char *Text, int Index, bool Current, b
buffer[strlen(s) - 1] = '\0'; // remove the '*' character
}
else
- if ( (strlen(s) == 3) && ( i == 2 || i == 3 || i == 4)) {
+ // check if event info symbols
+ if (strlen(s) == 3 && strchr(" tTR", s[0])
+ && strchr(" V", s[1]) && strchr(" *", s[2])) {
if (s[0] == 'R') isRecording = true;
if (s[0] == 'T') hasEventtimer = true;
if (s[0] == 't') haspartEventtimer = true;
@@ -771,7 +777,9 @@ void cSkinElchiDisplayMenu::SetItem(const char *Text, int Index, bool Current, b
if (s[2] == '*') isRunning = true;
}
else
- if ( (strlen(s) == 4) && ( i == 3 )) { //epgsearch What's on now default
+ //epgsearch What's on now default
+ if ( (strlen(s) == 4) && ( i == 3 ) &&
+ ( strchr("RTt ", s[1])) && ( strchr("V ", s[2])) && ( strchr("* ", s[3]))) {
if (s[1] == 'R') isRecording = true;
if (s[1] == 'T') hasEventtimer = true;
if (s[1] == 't') haspartEventtimer = true;
@@ -957,14 +965,12 @@ void cSkinElchiDisplayMenu::SetEvent(const cEvent *Event)
osd->DrawText(x2, y, s, Theme.Color(clrMenuEventVpsFg), Theme.Color(clrMenuEventVpsBg), smallfont);
}
-#if VDRVERSNUM >= 10711
// Parentalrating
if (ElchiConfig.showEPGDetails == 2 && Event->ParentalRating()) {
cString buffer = cString::sprintf(" %s ", *Event->GetParentalRatingString());
int w = font->Width(buffer);
osd->DrawText(x2 + textwidth - w - lh/2, y, buffer, Theme.Color(clrMenuEventVpsFg), Theme.Color(clrMenuEventVpsBg), smallfont, w);
}
-#endif
y += lh;
// Title
@@ -980,7 +986,6 @@ void cSkinElchiDisplayMenu::SetEvent(const cEvent *Event)
y += ts.Height();
}
-#if VDRVERSNUM >= 10711
// Content
if (ElchiConfig.showEPGDetails == 2) {
ostringstream content;
@@ -998,7 +1003,6 @@ void cSkinElchiDisplayMenu::SetEvent(const cEvent *Event)
y += ts.Height();
}
}
-#endif
// Description
ostringstream text;
@@ -1011,6 +1015,7 @@ void cSkinElchiDisplayMenu::SetEvent(const cEvent *Event)
}
if (ElchiConfig.showEPGDetails > 0) {
+ text << endl << tr("Duration") << ": " << (Event->Duration()/60)/60 << ":" << setw(2) << setfill('0') << ((Event->Duration()/60) % 60);
const cComponents *Components = Event->Components();
if (Components) {
ostringstream audio;
@@ -1128,22 +1133,16 @@ void cSkinElchiDisplayMenu::SetRecording(const cRecording *Recording)
lh = font->Height();
cTextScroller ts; // cTextScroller missbraucht für 3x cTextWrapper
char t[32];
-#if VDRVERSNUM >= 10721
snprintf(t, sizeof(t), "%s %s", *DateString(Recording->Start()), *TimeString(Recording->Start()));
-#else
- snprintf(t, sizeof(t), "%s %s", *DateString(Recording->start), *TimeString(Recording->start));
-#endif
ts.Set(osd, x2, y, x, y5 - y, t, font, Theme.Color(clrMenuEventTime), bg);
y += ts.Height();
-#if VDRVERSNUM >= 10711
// Parentalrating
if ((ElchiConfig.showRecDetails == 2) && Info->GetEvent()->ParentalRating()) {
cString buffer = cString::sprintf(" %s ", *Info->GetEvent()->GetParentalRatingString());
osd->DrawText(x2, y, buffer, Theme.Color(clrMenuEventVpsFg), Theme.Color(clrMenuEventVpsBg), smallfont);
}
-#endif
y += lh;
const char *Title = Info->Title();
@@ -1158,7 +1157,6 @@ void cSkinElchiDisplayMenu::SetRecording(const cRecording *Recording)
y += ts.Height();
}
-#if VDRVERSNUM >= 10711
// Content
if (ElchiConfig.showRecDetails == 2)
{
@@ -1177,7 +1175,6 @@ void cSkinElchiDisplayMenu::SetRecording(const cRecording *Recording)
y += ts.Height();
}
}
-#endif
y += lh;
ostringstream text;
@@ -1188,21 +1185,20 @@ void cSkinElchiDisplayMenu::SetRecording(const cRecording *Recording)
if (ElchiConfig.showRecDetails > 0)
{
- cChannel *channel = Channels.GetByChannelID(((cRecordingInfo *)Info)->ChannelID());
+#if APIVERSNUM >= 20301
+ LOCK_CHANNELS_READ
+ const cChannel *channel = Channels->GetByChannelID(((cRecordingInfo *)Info)->ChannelID());
+#else
+ const cChannel *channel = Channels.GetByChannelID(((cRecordingInfo *)Info)->ChannelID());
+#endif
if (channel)
text << trVDR("Channel") << ": " << channel->Number() << " - " << channel->Name() << endl;
cMarks marks;
-#if VDRVERSNUM >= 10703
bool hasMarks = marks.Load(Recording->FileName(), Recording->FramesPerSecond(), Recording->IsPesRecording()) && marks.Count();
cIndexFile *index = new cIndexFile(Recording->FileName(), false, Recording->IsPesRecording());
-#else
- bool hasMarks = marks.Load(Recording->FileName()) && marks.Count();
-
- cIndexFile *index = new cIndexFile(Recording->FileName(), false);
-#endif
int lastIndex = 0;
int cuttedLength = 0;
@@ -1220,16 +1216,12 @@ void cSkinElchiDisplayMenu::SetRecording(const cRecording *Recording)
int rc = 0;
do {
-#if VDRVERSNUM >= 10703
if (Recording->IsPesRecording())
filename = cString::sprintf("%s/%03d.vdr", Recording->FileName(), ++i);
else {
filename = cString::sprintf("%s/%05d.ts", Recording->FileName(), ++i);
imax = 99999;
}
-#else
- filename = cString::sprintf("%s/%03d.vdr", Recording->FileName(), ++i);
-#endif
rc=stat(filename, &filebuf);
if (rc == 0)
filesize[i] = filesize[i-1] + filebuf.st_size;
@@ -1242,22 +1234,13 @@ void cSkinElchiDisplayMenu::SetRecording(const cRecording *Recording)
recsize = filesize[i-1];
if (hasMarks && index) {
-#if VDRVERSNUM >= 10703
uint16_t FileNumber;
off_t FileOffset;
-#else
- uchar FileNumber;
- int FileOffset;
-#endif
bool cutin = true;
cMark *mark = marks.First();
while (mark) {
-#if VDRVERSNUM >= 10721
long position = mark->Position();
-#else
- long position = mark->position;
-#endif
index->Get(position, &FileNumber, &FileOffset);
if (cutin) {
cutinframe = position;
@@ -1281,17 +1264,9 @@ void cSkinElchiDisplayMenu::SetRecording(const cRecording *Recording)
if (index) {
lastIndex = index->Last();
-#if VDRVERSNUM >= 10703
- text << tr("Length") << ": " << *IndexToHMSF(lastIndex, false, Recording->FramesPerSecond());
-#else
- text << tr("Length") << ": " << *IndexToHMSF(lastIndex);
-#endif
+ text << tr("Duration") << ": " << *IndexToHMSF(lastIndex, false, Recording->FramesPerSecond());
if (hasMarks)
-#if VDRVERSNUM >= 10703
text << " (" << tr("cutted") << ": " << *IndexToHMSF(cuttedLength, false, Recording->FramesPerSecond()) << ")";
-#else
- text << " (" << tr("cutted") << ": " << *IndexToHMSF(cuttedLength) << ")";
-#endif
text << endl;
}
delete index;
@@ -1306,18 +1281,10 @@ void cSkinElchiDisplayMenu::SetRecording(const cRecording *Recording)
else
text << " (" << tr("cutted") << ": " << recsizecutted/MEGABYTE(1) << " MB)";
-#if VDRVERSNUM >= 10721
text << endl << trVDR("Priority") << ": " << Recording->Priority() << ", " << trVDR("Lifetime") << ": " << Recording->Lifetime() << endl;
-#else
- text << endl << trVDR("Priority") << ": " << Recording->priority << ", " << trVDR("Lifetime") << ": " << Recording->lifetime << endl;
-#endif
if (lastIndex) {
-#if VDRVERSNUM >= 10703
text << tr("format") << ": " << (Recording->IsPesRecording() ? "PES" : "TS") << ", " << tr("bit rate") << ": ~ " << fixed << setprecision (2) << (float)recsize/lastIndex*Recording->FramesPerSecond()*8/MEGABYTE(1) << " MBit/s (Video + Audio)";
-#else
- text << tr("bit rate") << ": ~ " << fixed << setprecision (2) << (float)recsize/lastIndex*FRAMESPERSEC*8/MEGABYTE(1) << " MBit/s (Video + Audio)";
-#endif
}
const cComponents *Components = Info->Components();
@@ -1478,10 +1445,8 @@ void cSkinElchiDisplayMenu::Flush(void)
const cFont *font = cFont::GetFont(fontOsd);
lh = font->Height();
-#if APIVERSNUM >= 10728
if (cVideoDiskUsage::HasChanged(lastDiskUsageState))
DrawTitle();
-#endif
cString newdate = DayDateTime();
if (!date || strcmp(date, newdate)) {
@@ -1496,11 +1461,14 @@ void cSkinElchiDisplayMenu::Flush(void)
if (epgimageTimer.TimedOut()) {
cBitmap *bitmap = epgimageThread->GetNextBitmap();
if (bitmap) {
+#if APIVERSNUM < 20301
+ // might lead to flickering on 2.3.1+
if (CurAreaNdx == 0) {
osd->GetBitmap(0)->Reset();
for (int i = 0; i < MAX_ELCHI_THEME_COLORS; i++)
osd->GetBitmap(0)->SetColor(i, ElchiConfig.ThemeColors[i]);
}
+#endif
osd->DrawRectangle(x4, y3, x6 - 1, y4 - 1, Theme.Color(clrBackground));
osd->DrawBitmap(x6 - bitmap->Width(), y3, *bitmap);
epgimageThread->ReleaseNextBitmap();
diff --git a/DisplayReplay.c b/DisplayReplay.c
index d1499f4..c3a5986 100644
--- a/DisplayReplay.c
+++ b/DisplayReplay.c
@@ -306,11 +306,7 @@ cBitmap cSkinElchiDisplayReplay::bmCAR169(Car169_xpm);
cBitmap cSkinElchiDisplayReplay::bmCAR2211(Car2211_xpm);
cBitmap cSkinElchiDisplayReplay::bmCARHD(CarHD_xpm);
-#if VDRVERSNUM < 10700
-#define STRVIDEOSIZE " 000x000"
-#else
#define STRVIDEOSIZE " 0000x0000"
-#endif
extern cSkinElchiStatus *ElchiStatus;
@@ -349,9 +345,8 @@ cSkinElchiDisplayReplay::cSkinElchiDisplayReplay(bool ModeOnly)
int OSDHeight = 576;
int OSDWidth = 720;
double OSDAspect = 4.0/3.0;
-#if VDRVERSNUM >= 10708
+
cDevice::PrimaryDevice()->GetOsdSize(OSDWidth, OSDHeight, OSDAspect);
-#endif
DSYSLOG("skinelchi: OSDsize Replay %dx%d left=%d/%d top=%d/%d width=%d/%d heigth=%d/%d",
OSDWidth, OSDHeight, OSDsize.left, Setup.OSDLeft, OSDsize.top, Setup.OSDTop, OSDsize.width, Setup.OSDWidth, OSDsize.height, Setup.OSDHeight)
@@ -551,6 +546,8 @@ cSkinElchiDisplayReplay::cSkinElchiDisplayReplay(bool ModeOnly)
tArea Areas[] = { { x0, y0, x1 - 1, y3 - 1, 4 } };
osd->SetAreas(Areas, sizeof(Areas) / sizeof(tArea));
+#if APIVERSNUM < 20301
+ // might lead to flickering on 2.3.1+
cBitmap *bitmap = osd->GetBitmap(0);
if (bitmap) {
bitmap->Reset();
@@ -580,6 +577,7 @@ clrTransparent
:19
*/
}
+#endif
bg = Theme.Color(clrBackground);
osd->DrawPixel(x3, y3, clrTransparent);
diff --git a/DisplayTracks.c b/DisplayTracks.c
index 89a024e..e8e5cc5 100644
--- a/DisplayTracks.c
+++ b/DisplayTracks.c
@@ -78,9 +78,8 @@ cSkinElchiDisplayTracks::cSkinElchiDisplayTracks(const char *Title, int NumTrack
int OSDHeight = 576;
int OSDWidth = 720;
double OSDAspect = 4.0/3.0;
-#if VDRVERSNUM >= 10708
+
cDevice::PrimaryDevice()->GetOsdSize(OSDWidth, OSDHeight, OSDAspect);
-#endif
DSYSLOG("skinelchi: OSDsize Tracks %dx%d left=%d/%d top=%d/%d width=%d/%d heigth=%d/%d",
OSDWidth, OSDHeight, OSDsize.left, Setup.OSDLeft, OSDsize.top, Setup.OSDTop, OSDsize.width, Setup.OSDWidth, OSDsize.height, Setup.OSDHeight);
diff --git a/DisplayVolume.c b/DisplayVolume.c
index 52bfcd1..04ba0d1 100644
--- a/DisplayVolume.c
+++ b/DisplayVolume.c
@@ -45,11 +45,9 @@ cSkinElchiDisplayVolume::cSkinElchiDisplayVolume(void)
OSDsize.height = cOsd::OsdHeight();
int OSDHeight = 576;
-#if VDRVERSNUM >= 10708
int OSDWidth = 720;
double OSDAspect = 4.0/3.0;
cDevice::PrimaryDevice()->GetOsdSize(OSDWidth, OSDHeight, OSDAspect);
-#endif
DSYSLOG("skinelchi: OSDsize Volume %dx%d left=%d/%d top=%d/%d width=%d/%d heigth=%d/%d",
OSDWidth, OSDHeight, OSDsize.left, Setup.OSDLeft, OSDsize.top, Setup.OSDTop, OSDsize.width, Setup.OSDWidth, OSDsize.height, Setup.OSDHeight);
diff --git a/HISTORY b/HISTORY
index cc4a796..f91ae50 100644
--- a/HISTORY
+++ b/HISTORY
@@ -403,3 +403,14 @@ something maybe only changed if i get feedback
- added support for VDR 1.7.33+
- added Makefile support for VDR 1.7.36+
- get ImageMagick libs and headers from pkg-config (suggested by Copperhead at vdr-portal.de)
+
+2016-03-28 Version 0.3.0 by Christoph Haubrich
+- dropped support for VDR versions before 2.2 - skinElchi now requires VDR 2.2 or higher
+- fixed calling of cVideoDiskUsage::HasChanged() everytime before Title is drawn
+- changed default path for channel logos to <ResourceDir>/skinelchi/logos
+- changed default path for EPG images to <CacheDir>/skinelchi/epgimages
+- fixed wrong symbol conversion in some menus
+- added 50-skinelchi.conf for conf.d mechanism
+- added support for VDR 2.3.1+
+- added duration to EPG details
+- added optional signal quality bars to chanel display
diff --git a/Makefile b/Makefile
index 7f38197..6f5945f 100644
--- a/Makefile
+++ b/Makefile
@@ -52,7 +52,7 @@ ifeq ($(LOCDIR),)
### The C++ compiler and options:
CXX ?= g++
-CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual
+CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual -Wno-unused-variable
#CFLAGS += -g -ggdb -O0
#CXXFLAGS += -g -ggdb -O0 -fPIC -g -Wall -Woverloaded-virtual
@@ -106,9 +106,12 @@ INCLUDES += -I$(VDRDIR)/include
DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
+## avoid themes warnings
+CXXFLAGS += -Wno-unused-variable
+
ifdef SKINELCHI_HAVE_IMAGEMAGICK
DEFINES += -DSKINELCHI_HAVE_IMAGEMAGICK
- INCLUDES += $(shell pkg-config --cflags-only-I ImageMagick++)
+ INCLUDES += $(shell pkg-config --cflags ImageMagick++)
endif
ifdef SKINELCHI_DEBUG
@@ -195,5 +198,8 @@ clean:
env:
@echo "Configuration:"
@echo " APIVERSION $(APIVERSION)"
- @echo " CXX $(CXX) CXXFLAGS $(CXXFLAGS)"
- @echo " VDRDIR $(VDRDIR) LIBDIR $(LIBDIR) LOCDIR $(LOCDIR)"
+ @echo " CXX $(CXX)"
+ @echo " CXXFLAGS $(CXXFLAGS)"
+ @echo " VDRDIR $(VDRDIR)"
+ @echo " LIBDIR $(LIBDIR)"
+ @echo " LOCDIR $(LOCDIR)"
diff --git a/README b/README
index 93cd29f..e1ccf21 100644
--- a/README
+++ b/README
@@ -71,14 +71,15 @@ to use skinElchi with the default settings and start VDR.
The path to the logo directories is supplied via command line parameter:
-l <logodir>, --logos=<logodir> directory with logo directory (and optional hqlogo)
- (default is <configdir>/plugins/skinelchi)
+ (default is <ResourceDir>/skinelchi/logos)
If skinElchi was compiled with ImageMagick support an additional option is available
for the EPG images:
- -c <dir>, --icache=>DIR> path to EPG images
- (default is /video0/epgimages)
+ -c <dir>, --icache=<DIR> path to EPG images
+ (default is <CacheDir>/skinelchi/epgimages)
-Both parameters can only be set on the command line.
+Both parameters can only be set on the command line or nedd to be set in 50-skinelchi.conf for
+the conf.d mechanism.
Important changes compared to previous versions:
diff --git a/config.c b/config.c
index f72d9a1..bd34a54 100644
--- a/config.c
+++ b/config.c
@@ -39,6 +39,7 @@ cSkinElchiConfig::cSkinElchiConfig(void)
// channel display
strcpy(logoBaseDir, "");
showRecInfo = 0;
+ showSignalBars = 1;
tryChannelDisplay8Bpp = 0;
useHQlogo = 1;
LogoSearchNameFirst = 1;
@@ -97,6 +98,7 @@ bool cSkinElchiConfig::SetupParse(const char *Name, const char *Value)
else if (strcmp(Name, "showRecInfo") == 0) showRecInfo = atoi(Value);
else if (strcmp(Name, "logo") == 0) showLogo = atoi(Value); // old value
else if (strcmp(Name, "showLogo") == 0) showLogo = atoi(Value);
+ else if (strcmp(Name, "showSignalBars") == 0) showSignalBars = atoi(Value);
else if (strcmp(Name, "tryChannelDisplay8Bpp") == 0) tryChannelDisplay8Bpp = atoi(Value);
else if (strcmp(Name, "useHQlogo") == 0) useHQlogo = atoi(Value);
else if (strcmp(Name, "LogoSearchNameFirst") == 0) LogoSearchNameFirst = atoi(Value);
diff --git a/config.h b/config.h
index 4dd274d..affbbd1 100644
--- a/config.h
+++ b/config.h
@@ -53,6 +53,7 @@ public:
// channel display
int showRecInfo;
int showLogo;
+ int showSignalBars;
int tryChannelDisplay8Bpp;
int useHQlogo;
int LogoSearchNameFirst;
@@ -73,6 +74,8 @@ extern cSkinElchiConfig ElchiConfig;
extern cTheme Theme;
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-variable"
THEME_CLR(Theme, clrBackground, 0x77000066);// 0
THEME_CLR(Theme, clrButtonRedFg, clrWhite); // 1
THEME_CLR(Theme, clrButtonRedBg, 0xCCCC1111);// 2
@@ -140,5 +143,6 @@ THEME_CLR(Theme, clrReplayProgressMark, clrBlack); // 63
THEME_CLR(Theme, clrReplayProgressCurrent, 0xCCCC1111);// 64
THEME_CLR(Theme, clrReplaySymbolOn, clrYellow); // 65
THEME_CLR(Theme, clrReplaySymbolOff, 0x77777777);// 66
+#pragma GCC diagnostic pop
#endif //__SKINELCHI_CONFIG_H
diff --git a/patches/vdr-1.6.0-eit_new_streamtypes.diff b/patches/vdr-1.6.0-eit_new_streamtypes.diff
deleted file mode 100644
index 657249c..0000000
--- a/patches/vdr-1.6.0-eit_new_streamtypes.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- eit.c.org 2008-07-09 19:19:07.000000000 +0200
-+++ eit.c 2011-04-03 16:38:38.000000000 +0200
-@@ -219,7 +219,7 @@
- SI::ComponentDescriptor *cd = (SI::ComponentDescriptor *)d;
- uchar Stream = cd->getStreamContent();
- uchar Type = cd->getComponentType();
-- if (1 <= Stream && Stream <= 3 && Type != 0) { // 1=video, 2=audio, 3=subtitles
-+ if (1 <= Stream && Stream <= 6 && Type != 0) { // 1=MPEG2-video, 2=MPEG1-audio, 3=subtitles, 4=AC3-audio, 5=H.264-video, 6=HEAAC-audio
- if (!Components)
- Components = new cComponents;
- char buffer[Utf8BufSize(256)];
diff --git a/po/de_DE.po b/po/de_DE.po
index afe1fad..ab2bc32 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -5,13 +5,13 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: VDR 1.6.0\n"
+"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2013-01-28 19:43+0100\n"
+"POT-Creation-Date: 2016-03-29 18:53+0200\n"
"PO-Revision-Date: 2007-11-04 15:38+0100\n"
"Last-Translator: Christoph Haubrich <see README>\n"
"Language-Team: <vdr at linuxtv.org>\n"
-"Language: \n"
+"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -43,6 +43,9 @@ msgstr "Kein Bild"
msgid "available"
msgstr "verfügbar"
+msgid "Duration"
+msgstr "Dauer"
+
msgid "Video"
msgstr "Video"
@@ -52,9 +55,6 @@ msgstr "Audio"
msgid "Subtitle"
msgstr "Untertitel"
-msgid "Length"
-msgstr "Länge"
-
msgid "cutted"
msgstr "geschnitten"
@@ -177,6 +177,9 @@ msgstr "Aufnahme-Info anzeigen"
msgid "show channel logos"
msgstr "Kanal-Logos anzeigen"
+msgid "show signal bars"
+msgstr "Signalstärke anzeigen"
+
msgid "use HQ-logos"
msgstr "benutze HQ-logos"
diff --git a/po/fr_FR.po b/po/fr_FR.po
index 38bc7ca..1d90d57 100644
--- a/po/fr_FR.po
+++ b/po/fr_FR.po
@@ -5,13 +5,13 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: VDR 1.6.0\n"
+"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2013-01-28 19:43+0100\n"
+"POT-Creation-Date: 2016-03-29 18:53+0200\n"
"PO-Revision-Date: 2007-11-04 15:38+0100\n"
"Last-Translator: Patrice Staudt <see README>\n"
"Language-Team: <vdr at linuxtv.org>\n"
-"Language: \n"
+"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -43,6 +43,9 @@ msgstr "pas d'image"
msgid "available"
msgstr "disponible"
+msgid "Duration"
+msgstr ""
+
msgid "Video"
msgstr "Vidéo"
@@ -52,9 +55,6 @@ msgstr "Audio"
msgid "Subtitle"
msgstr "Sous-titres"
-msgid "Length"
-msgstr "Longueur"
-
msgid "cutted"
msgstr "coupé"
@@ -178,6 +178,9 @@ msgstr "afficher info d'enregistrement"
msgid "show channel logos"
msgstr "Logos chaîne visible"
+msgid "show signal bars"
+msgstr ""
+
msgid "use HQ-logos"
msgstr "utiliser logos Haute Définition"
@@ -210,3 +213,6 @@ msgstr "Canal gauche"
msgid "Right channel"
msgstr "Canal droit"
+
+#~ msgid "Length"
+#~ msgstr "Longueur"
diff --git a/po/it_IT.po b/po/it_IT.po
index ba9c958..ac9bd12 100644
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -5,13 +5,13 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: VDR 1.6.0\n"
+"Project-Id-Version: VDR 2.0.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2013-01-28 19:43+0100\n"
+"POT-Creation-Date: 2016-03-29 18:53+0200\n"
"PO-Revision-Date: 2009-07-01 23:29+0100\n"
"Last-Translator: Diego Pierotto <vdr-italian at tiscali.it>\n"
"Language-Team: <vdr at linuxtv.org>\n"
-"Language: \n"
+"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -46,6 +46,9 @@ msgstr "Immagine non"
msgid "available"
msgstr "disponibile"
+msgid "Duration"
+msgstr ""
+
msgid "Video"
msgstr "Video"
@@ -55,9 +58,6 @@ msgstr "Audio"
msgid "Subtitle"
msgstr "Sottotitoli"
-msgid "Length"
-msgstr "Durata"
-
msgid "cutted"
msgstr "ridotta"
@@ -182,6 +182,9 @@ msgstr "Mostra info registrazione"
msgid "show channel logos"
msgstr "Mostra loghi canali"
+msgid "show signal bars"
+msgstr ""
+
msgid "use HQ-logos"
msgstr "Utilizza loghi HQ"
@@ -214,3 +217,6 @@ msgstr "Canale sinistro"
msgid "Right channel"
msgstr "Canale destro"
+
+#~ msgid "Length"
+#~ msgstr "Durata"
diff --git a/setup.c b/setup.c
index 0c7f39f..312f74d 100644
--- a/setup.c
+++ b/setup.c
@@ -63,7 +63,7 @@ eOSState cMenuEditColorItem::ProcessKey(eKeys Key)
if (state == osUnknown) {
Key = NORMALKEY(Key);
- switch (Key) {
+ switch (int(Key)) {
case kNone: break;
case kLeft|k_Repeat:
@@ -372,6 +372,7 @@ void cSkinElchiSetupChannelDisplay::Setup(void)
{
Add(new cMenuEditStraItem(tr("show recording Info"), &tmpconfig->showRecInfo, 3, RecInfoItems));
Add(new cMenuEditBoolItem(tr("show channel logos"), &tmpconfig->showLogo));
+ Add(new cMenuEditBoolItem(tr("show signal bars"), &tmpconfig->showSignalBars));
Add(new cMenuEditBoolItem(tr("use one 8bpp area (if possible)"), &tmpconfig->tryChannelDisplay8Bpp));
Add(new cMenuEditBoolItem(tr("use HQ-logos"), &tmpconfig->useHQlogo));
Add(new cMenuEditBoolItem(tr("try to load logo first by"), &tmpconfig->LogoSearchNameFirst, tr("Channel ID"), tr("Channel Name")));
@@ -468,6 +469,7 @@ void cSkinElchiSetup::Store(void)
// channel Display values
SetupStore("showRecInfo", ElchiConfig.showRecInfo);
SetupStore("showLogo", ElchiConfig.showLogo);
+ SetupStore("showSignalBars", ElchiConfig.showSignalBars);
SetupStore("tryChannelDisplay8Bpp", ElchiConfig.tryChannelDisplay8Bpp);
SetupStore("useHQlogo", ElchiConfig.useHQlogo);
SetupStore("LogoSearchNameFirst", ElchiConfig.LogoSearchNameFirst);
diff --git a/skinelchi.c b/skinelchi.c
index 3eefb26..ba226f0 100644
--- a/skinelchi.c
+++ b/skinelchi.c
@@ -32,8 +32,8 @@
#include "videostatus.h"
//#endif
-#if defined(APIVERSNUM) && APIVERSNUM < 10600
-#error THIS VERSION OF THE SKINELCHI-PLUGIN REQUIRES AT LEAST VDR 1.6.0
+#if defined(APIVERSNUM) && APIVERSNUM < 20200
+#error THIS VERSION OF THE SKINELCHI-PLUGIN REQUIRES AT LEAST VDR 2.2.0
#endif
@@ -57,7 +57,7 @@
#include <vdr/themes.h>
#include <vdr/plugin.h>
-static const char *VERSION = "0.2.8";
+static const char *VERSION = "0.3.0";
static const char *DESCRIPTION = trNOOP("Elchi skin");
const char *OSDSKIN = "Elchi";
@@ -159,13 +159,14 @@ bool cPluginSkinElchi::Start(void)
// set default logo dir if not supplied by commandline arguments
if (isempty(ElchiConfig.GetLogoBaseDir()))
- ElchiConfig.SetLogoBaseDir(cPlugin::ConfigDirectory(PLUGIN_NAME_I18N));
+ ElchiConfig.SetLogoBaseDir(cPlugin::ResourceDirectory(PLUGIN_NAME_I18N));
isyslog("SkinElchi: using channel logo base dir '%s'", ElchiConfig.GetLogoBaseDir());
+
#ifdef SKINELCHI_HAVE_IMAGEMAGICK
- isyslog("SkinElchi: using EPG image dir '%s'", ElchiConfig.GetEpgImageDir());
+ if (isempty(ElchiConfig.GetEpgImageDir()))
+ ElchiConfig.SetEpgImageDir(cString::sprintf("%s/epgimages/", cPlugin::CacheDirectory(PLUGIN_NAME_I18N)));
#endif
-
new cSkinElchi;
ElchiStatus = new cSkinElchiStatus;
@@ -217,11 +218,12 @@ const char *cPluginSkinElchi::CommandLineHelp(void)
DSYSLOG("skinelchi: cPluginSkinElchi::CommandLineHelp is called")
return
#ifdef SKINELCHI_HAVE_IMAGEMAGICK
- " -c DIR, --icache=DIR optional path for epgimages\n"
- " (default: '/video/epgimages')\n"
+ " -c <ImageDir>, --icache=<ImageDir> path to EPG images\n"
+ " (default: '<CacheDir>/skinelchi/epgimages')\n"
#endif
- " -l PathToLogos, --logos=PathToLogos optional path for XPM channel logos\n"
- " (default: '<configDir>/skinelchi/logos')\n";
+ " -l <LogoDir>, --logos=<LogoDir> path to XPM channel logos\n"
+ " logos are searched for in subfolders 'logos' and 'hqlogos'\n"
+ " (default: '<ResourceDir>/skinelchi')\n";
}
bool cPluginSkinElchi::ProcessArgs(int argc, char *argv[])
diff --git a/symbols/1080/Csignal.xpm b/symbols/1080/Csignal.xpm
new file mode 100644
index 0000000..1cd9547
--- /dev/null
+++ b/symbols/1080/Csignal.xpm
@@ -0,0 +1,51 @@
+/* XPM */
+static const char *const Csignal_xpm[] = {
+"150 17 31 1",
+" c None",
+". c #EF1D0B",
+"+ c #EF320B",
+"@ c #EE400E",
+"# c #EE4C12",
+"$ c #EE590C",
+"% c #EC650D",
+"& c #ED700D",
+"* c #13B027",
+"= c #EC7D0C",
+"- c #30B925",
+"; c #EB880B",
+"> c #EA9108",
+", c #4BC024",
+"' c #EB9912",
+") c #EBA306",
+"! c #64C923",
+"~ c #EAAE08",
+"{ c #7ACF25",
+"] c #EAB90A",
+"^ c #8ED521",
+"/ c #E9C602",
+"( c #A1DB22",
+"_ c #ADDF20",
+": c #E9D604",
+"< c #BDE422",
+"[ c #E8DF10",
+"} c #CFEA20",
+"| c #E9EA06",
+"1 c #E5EF0E",
+"2 c #E0EF21",
+".........+++@@@@@###$$$%%%&&&&====;;>>>''))))~~~]]]/////::::[||||||1111111111111111222222}}}}}}<<<<<___(((((^^^^^^{{{{{{{!!!!!!,,,,,,,--------********",
+".........+++@@@@@###$$$%%%&&&&====;;>>>''))))~~~]]]/////::::[||||||1111111111111111222222}}}}}}<<<<<___(((((^^^^^^{{{{{{{!!!!!!,,,,,,,--------********",
+".........+++@@@@@###$$$%%%&&&&====;;>>>''))))~~~]]]/////::::[||||||1111111111111111222222}}}}}}<<<<<___(((((^^^^^^{{{{{{{!!!!!!,,,,,,,--------********",
+".........+++@@@@@###$$$%%%&&&&====;;>>>''))))~~~]]]/////::::[||||||1111111111111111222222}}}}}}<<<<<___(((((^^^^^^{{{{{{{!!!!!!,,,,,,,--------********",
+".........+++@@@@@###$$$%%%&&&&====;;>>>''))))~~~]]]/////::::[||||||1111111111111111222222}}}}}}<<<<<___(((((^^^^^^{{{{{{{!!!!!!,,,,,,,--------********",
+".........+++@@@@@###$$$%%%&&&&====;;>>>''))))~~~]]]/////::::[||||||1111111111111111222222}}}}}}<<<<<___(((((^^^^^^{{{{{{{!!!!!!,,,,,,,--------********",
+".........+++@@@@@###$$$%%%&&&&====;;>>>''))))~~~]]]/////::::[||||||1111111111111111222222}}}}}}<<<<<___(((((^^^^^^{{{{{{{!!!!!!,,,,,,,--------********",
+".........+++@@@@@###$$$%%%&&&&====;;>>>''))))~~~]]]/////::::[||||||1111111111111111222222}}}}}}<<<<<___(((((^^^^^^{{{{{{{!!!!!!,,,,,,,--------********",
+".........+++@@@@@###$$$%%%&&&&====;;>>>''))))~~~]]]/////::::[||||||1111111111111111222222}}}}}}<<<<<___(((((^^^^^^{{{{{{{!!!!!!,,,,,,,--------********",
+".........+++@@@@@###$$$%%%&&&&====;;>>>''))))~~~]]]/////::::[||||||1111111111111111222222}}}}}}<<<<<___(((((^^^^^^{{{{{{{!!!!!!,,,,,,,--------********",
+".........+++@@@@@###$$$%%%&&&&====;;>>>''))))~~~]]]/////::::[||||||1111111111111111222222}}}}}}<<<<<___(((((^^^^^^{{{{{{{!!!!!!,,,,,,,--------********",
+".........+++@@@@@###$$$%%%&&&&====;;>>>''))))~~~]]]/////::::[||||||1111111111111111222222}}}}}}<<<<<___(((((^^^^^^{{{{{{{!!!!!!,,,,,,,--------********",
+".........+++@@@@@###$$$%%%&&&&====;;>>>''))))~~~]]]/////::::[||||||1111111111111111222222}}}}}}<<<<<___(((((^^^^^^{{{{{{{!!!!!!,,,,,,,--------********",
+".........+++@@@@@###$$$%%%&&&&====;;>>>''))))~~~]]]/////::::[||||||1111111111111111222222}}}}}}<<<<<___(((((^^^^^^{{{{{{{!!!!!!,,,,,,,--------********",
+".........+++@@@@@###$$$%%%&&&&====;;>>>''))))~~~]]]/////::::[||||||1111111111111111222222}}}}}}<<<<<___(((((^^^^^^{{{{{{{!!!!!!,,,,,,,--------********",
+".........+++@@@@@###$$$%%%&&&&====;;>>>''))))~~~]]]/////::::[||||||1111111111111111222222}}}}}}<<<<<___(((((^^^^^^{{{{{{{!!!!!!,,,,,,,--------********",
+".........+++@@@@@###$$$%%%&&&&====;;>>>''))))~~~]]]/////::::[||||||1111111111111111222222}}}}}}<<<<<___(((((^^^^^^{{{{{{{!!!!!!,,,,,,,--------********"};
diff --git a/symbols/576/signal.xpm b/symbols/576/signal.xpm
new file mode 100644
index 0000000..a40710c
--- /dev/null
+++ b/symbols/576/signal.xpm
@@ -0,0 +1,43 @@
+/* XPM */
+static const char *const signal_xpm[] = {
+"80 9 31 1",
+" c None",
+". c #F0150C",
+"+ c #EF2A0A",
+"@ c #EE3B0D",
+"# c #EE4C0D",
+"$ c #ED5D09",
+"% c #EC650D",
+"& c #ED700D",
+"* c #10B027",
+"= c #EE7C0D",
+"- c #30B926",
+"; c #EB8814",
+"> c #EB8D05",
+", c #4CC024",
+"' c #EC9710",
+") c #64C923",
+"! c #E9A507",
+"~ c #7ACF25",
+"{ c #EBB40D",
+"] c #8ED51F",
+"^ c #E8C500",
+"/ c #A2DC22",
+"( c #E8CF10",
+"_ c #ADDF23",
+": c #E9D801",
+"< c #BFE521",
+"[ c #EBE200",
+"} c #D0EA25",
+"| c #EAEC0A",
+"1 c #DFEE20",
+"2 c #E5EF0D",
+"...+++@@@##$$%&&==;>''!!!{{^^(::[[||222222221111}}<<<__///]]]~~~)))),,,-----****",
+"...+++@@@##$$%&&==;>''!!!{{^^(::[[||222222221111}}<<<__///]]]~~~)))),,,-----****",
+"...+++@@@##$$%&&==;>''!!!{{^^(::[[||222222221111}}<<<__///]]]~~~)))),,,-----****",
+"...+++@@@##$$%&&==;>''!!!{{^^(::[[||222222221111}}<<<__///]]]~~~)))),,,-----****",
+"...+++@@@##$$%&&==;>''!!!{{^^(::[[||222222221111}}<<<__///]]]~~~)))),,,-----****",
+"...+++@@@##$$%&&==;>''!!!{{^^(::[[||222222221111}}<<<__///]]]~~~)))),,,-----****",
+"...+++@@@##$$%&&==;>''!!!{{^^(::[[||222222221111}}<<<__///]]]~~~)))),,,-----****",
+"...+++@@@##$$%&&==;>''!!!{{^^(::[[||222222221111}}<<<__///]]]~~~)))),,,-----****",
+"...+++@@@##$$%&&==;>''!!!{{^^(::[[||222222221111}}<<<__///]]]~~~)))),,,-----****"};
diff --git a/symbols/720/Bsignal.xpm b/symbols/720/Bsignal.xpm
new file mode 100644
index 0000000..2ae19e1
--- /dev/null
+++ b/symbols/720/Bsignal.xpm
@@ -0,0 +1,45 @@
+/* XPM */
+static const char *const Bsignal_xpm[] = {
+"100 11 31 1",
+" c None",
+". c #EF1D0A",
+"+ c #EF320B",
+"@ c #EF3F0E",
+"# c #ED4B11",
+"$ c #ED5908",
+"% c #ED6C0E",
+"& c #11B027",
+"* c #EE790A",
+"= c #EC800F",
+"- c #2FB925",
+"; c #EC8B04",
+"> c #4BC024",
+", c #EB960F",
+"' c #EAA305",
+") c #64C924",
+"! c #E9AD13",
+"~ c #7AD025",
+"{ c #E9B808",
+"] c #8FD521",
+"^ c #E8C500",
+"/ c #A3DD24",
+"( c #E9CF00",
+"_ c #AFE11C",
+": c #EBD907",
+"< c #BFE520",
+"[ c #E9E113",
+"} c #CFE924",
+"| c #E9EB08",
+"1 c #DFEE20",
+"2 c #E5EF0E",
+"......++@@@##$$$%%%**==;;,,'''!{{{^^((::[||||222222222211111}}<<<<__////]]]]~~~~)))))>>>>------&&&&&",
+"......++@@@##$$$%%%**==;;,,'''!{{{^^((::[||||222222222211111}}<<<<__////]]]]~~~~)))))>>>>------&&&&&",
+"......++@@@##$$$%%%**==;;,,'''!{{{^^((::[||||222222222211111}}<<<<__////]]]]~~~~)))))>>>>------&&&&&",
+"......++@@@##$$$%%%**==;;,,'''!{{{^^((::[||||222222222211111}}<<<<__////]]]]~~~~)))))>>>>------&&&&&",
+"......++@@@##$$$%%%**==;;,,'''!{{{^^((::[||||222222222211111}}<<<<__////]]]]~~~~)))))>>>>------&&&&&",
+"......++@@@##$$$%%%**==;;,,'''!{{{^^((::[||||222222222211111}}<<<<__////]]]]~~~~)))))>>>>------&&&&&",
+"......++@@@##$$$%%%**==;;,,'''!{{{^^((::[||||222222222211111}}<<<<__////]]]]~~~~)))))>>>>------&&&&&",
+"......++@@@##$$$%%%**==;;,,'''!{{{^^((::[||||222222222211111}}<<<<__////]]]]~~~~)))))>>>>------&&&&&",
+"......++@@@##$$$%%%**==;;,,'''!{{{^^((::[||||222222222211111}}<<<<__////]]]]~~~~)))))>>>>------&&&&&",
+"......++@@@##$$$%%%**==;;,,'''!{{{^^((::[||||222222222211111}}<<<<__////]]]]~~~~)))))>>>>------&&&&&",
+"......++@@@##$$$%%%**==;;,,'''!{{{^^((::[||||222222222211111}}<<<<__////]]]]~~~~)))))>>>>------&&&&&"};
diff --git a/vdrstatus.c b/vdrstatus.c
index 620b4c2..b7b7833 100644
--- a/vdrstatus.c
+++ b/vdrstatus.c
@@ -45,11 +45,7 @@ cSkinElchiStatus::~cSkinElchiStatus()
//isyslog("skinelchi ~cSkinElchiStatus()");
}
-#if VDRVERSNUM < 010726
-void cSkinElchiStatus::ChannelSwitch(const cDevice * device, int channelNumber)
-#else
void cSkinElchiStatus::ChannelSwitch(const cDevice * device, int channelNumber, bool LiveView)
-#endif
{ // Indicates a channel switch on the given DVB device.
// If ChannelNumber is 0, this is before the channel is being switched,
// otherwise ChannelNumber is the number of the channel that has been switched to.
@@ -123,11 +119,7 @@ void cSkinElchiStatus::SetVolume(int volume, bool absolute)
// absolutely or relative to the current volume.
VolumeChange++;
-#if APIVERSNUM < 10402
- Volume = volume;//vdr 1.3.22 -> get volume always absolute
-#else
Volume = absolute ? volume : Volume + volume;
-#endif
}
diff --git a/vdrstatus.h b/vdrstatus.h
index b3341f2..5f9badc 100644
--- a/vdrstatus.h
+++ b/vdrstatus.h
@@ -46,11 +46,7 @@ private:
int Volume;
int VolumeChange;
protected:
-#if VDRVERSNUM < 010726
- virtual void ChannelSwitch(const cDevice *device, int channelNumber);
-#else
virtual void ChannelSwitch(const cDevice *device, int channelNumber, bool LiveView);
-#endif
virtual void Recording(const cDevice *Device, const char *Name, const char *FileName, bool On);
virtual void Replaying(const cControl *Control, const char *Name, const char *FileName, bool On);
virtual void SetVolume(int Volume, bool Absolute);
diff --git a/videostatus.c b/videostatus.c
index c83d173..96cf177 100644
--- a/videostatus.c
+++ b/videostatus.c
@@ -45,27 +45,10 @@ void cVideoStatus::Stop()
void cVideoStatus::Activate(bool activate)
{
-#if VDRVERSNUM < 10707
- if (activate) {
- bool using_avards = false;
- avards = cPluginManager::GetPlugin("avards");
-
- if (avards) {
- avards_CurrentVideoFormat_v1_0 videoformat;
- avards->Service(AVARDS_CURRENT_VIDEO_FORMAT_SERVICE_STRING_ID, &videoformat);
- using_avards = videoformat.Mode != AVARDS_VIDEOMODE_UNKNOWN;
- }
- if (!using_avards)
- Start();
- }
- else
- Stop();
-#endif
}
bool cVideoStatus::GetVideoInfo(cVideoInfo *videoinfo)
{
-#if VDRVERSNUM >= 10707
int Width, Height;
double VideoAspect;
cDevice::PrimaryDevice()->GetVideoSize(Width, Height, VideoAspect);
@@ -79,48 +62,6 @@ bool cVideoStatus::GetVideoInfo(cVideoInfo *videoinfo)
else videoinfo->aspectratio = ar_unknown;
//isyslog("skinelchi: %d x %d @ %.5f", Width, Height, VideoAspect);
return true;
-#else
- if (Running()) {
- Lock();
- videoinfo->height = height;
- videoinfo->width = width;
- videoinfo->aspectratio = aspectratio;
- Unlock();
- return true;
- }
- else {
- if (avards) {
- avards_CurrentVideoFormat_v1_0 videoformat;
- avards->Service(AVARDS_CURRENT_VIDEO_FORMAT_SERVICE_STRING_ID, &videoformat);
- //isyslog("skinelchi: cVideoStatus avards %d*%d %X %s", videoformat.Width, videoformat.Height, videoformat.Mode, videoformat.ModeString);
- videoinfo->width = videoformat.Width;
- videoinfo->height = videoformat.Height;
-
- switch (videoformat.Mode) {
- case AVARDS_VIDEOMODE_4_3:
- videoinfo->aspectratio = ar4_3;
- break;
- case AVARDS_VIDEOMODE_L14_9:
- videoinfo->aspectratio = arL14_9;
- break;
- case AVARDS_VIDEOMODE_L16_9:
- videoinfo->aspectratio = arL16_9;
- break;
- case AVARDS_VIDEOMODE_LG16_9:
- videoinfo->aspectratio = arL16_9;
- break;
- case AVARDS_VIDEOMODE_16_9:
- videoinfo->aspectratio = ar16_9;
- break;
- default:
- videoinfo->aspectratio = ar_unknown;
- break;
- }
- return true;
- }
- }
-#endif
- return false;
}
void cVideoStatus::Action(void)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-vdr-dvb/vdr-plugin-skinelchi.git
More information about the pkg-vdr-dvb-changes
mailing list