summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2015-05-15 10:03:34 +0200
committerlouis <louis.braun@gmx.de>2015-05-15 10:03:34 +0200
commit727f20617cb17ab23f2e41a192366692c6d45374 (patch)
treecad34a4380b86a85bb5ec513b20de8214cae65d3
parent5a0155d1e924601c7fa686001af19928887f83f7 (diff)
downloadvdr-plugin-skindesigner-727f20617cb17ab23f2e41a192366692c6d45374.tar.gz
vdr-plugin-skindesigner-727f20617cb17ab23f2e41a192366692c6d45374.tar.bz2
added permashift support in displaychannel
-rw-r--r--HISTORY2
-rw-r--r--skins/metrixhd/xmlfiles/displaychannel.xml9
-rw-r--r--skinskeleton/xmlfiles/displaychannel.xml2
-rw-r--r--views/displaychannelview.c9
-rw-r--r--views/viewhelpers.c12
-rw-r--r--views/viewhelpers.h1
6 files changed, 34 insertions, 1 deletions
diff --git a/HISTORY b/HISTORY
index a89386f..a70c7e0 100644
--- a/HISTORY
+++ b/HISTORY
@@ -330,5 +330,7 @@ Version 0.4.6
- added token {startsin} in displaymenuschedules
- added viewelement <vdrstatistics> in main menu
+- added permashift support in displaychannel
+
diff --git a/skins/metrixhd/xmlfiles/displaychannel.xml b/skins/metrixhd/xmlfiles/displaychannel.xml
index c9dbb6f..13b9c07 100644
--- a/skins/metrixhd/xmlfiles/displaychannel.xml
+++ b/skins/metrixhd/xmlfiles/displaychannel.xml
@@ -70,12 +70,19 @@
{duration} Total Duration of current Schedule in seconds
{elapsed} Elapsed time of current Schedule in seconds
{remaining} Remaining time of current Schedule in seconds
+ {permashift} true if permashift plugin is in use
+ {livebuffer} current buffered data in seconds
-->
<progressbar>
- <area x="22%" y="87%" width="76%" height="3" layer="2">
+ <area condition="not{permashift}" x="22%" y="87%" width="76%" height="3" layer="2">
<drawrectangle x="0" y="1" width="100%" height="1" color="{clrWhite}" />
<drawrectangle x="0" y="0" width="{elapsed}/{duration}*{areawidth}" height="3" color="{clrTransBlueLight}" />
</area>
+ <area condition="{permashift}" x="22%" y="87%" width="76%" height="5" layer="2">
+ <drawrectangle x="0" y="2" width="100%" height="1" color="{clrWhite}" />
+ <drawrectangle x="{elapsed}/{duration}*{areawidth} - {livebuffer}/{duration}*{areawidth}" y="0" width="{livebuffer}/{duration}*{areawidth}" height="5" color="{clrRed}" />
+ <drawrectangle x="0" y="1" width="{elapsed}/{duration}*{areawidth}" height="3" color="{clrTransBlueLight}" />
+ </area>
</progressbar>
<!-- Available Variables statusinfo:
diff --git a/skinskeleton/xmlfiles/displaychannel.xml b/skinskeleton/xmlfiles/displaychannel.xml
index aecf946..319ff20 100644
--- a/skinskeleton/xmlfiles/displaychannel.xml
+++ b/skinskeleton/xmlfiles/displaychannel.xml
@@ -46,6 +46,8 @@
{duration} Total Duration of current Schedule in seconds
{elapsed} Elapsed time of current Schedule in seconds
{remaining} Remaining time of current Schedule in seconds
+ {permashift} true if permashift plugin is in use
+ {livebuffer} current buffered data in seconds
-->
<progressbar>
</progressbar>
diff --git a/views/displaychannelview.c b/views/displaychannelview.c
index 28626f8..255dc3e 100644
--- a/views/displaychannelview.c
+++ b/views/displaychannelview.c
@@ -124,6 +124,15 @@ void cDisplayChannelView::DrawProgressBar(cString &start, cString &stop, int Cur
intTokens.insert(pair<string, int>("elapsed", Current));
intTokens.insert(pair<string, int>("remaining", Total - Current));
+ int liveBuffer = GetLiveBuffer();
+ if (liveBuffer >= 0) {
+ intTokens.insert(pair<string, int>("permashift", 1));
+ intTokens.insert(pair<string, int>("livebuffer", liveBuffer));
+ } else {
+ intTokens.insert(pair<string, int>("permashift", 0));
+ intTokens.insert(pair<string, int>("livebuffer", 0));
+ }
+
ClearProgressBar();
DrawViewElement(veProgressBar, &stringTokens, &intTokens);
}
diff --git a/views/viewhelpers.c b/views/viewhelpers.c
index 9163282..cc72c9b 100644
--- a/views/viewhelpers.c
+++ b/views/viewhelpers.c
@@ -442,6 +442,18 @@ bool cViewHelpers::CheckNewMails(void) {
return false;
}
+int cViewHelpers::GetLiveBuffer(void) {
+ static cPlugin *pPermashift = cPluginManager::GetPlugin("permashift");
+ if (!pPermashift) {
+ return -1;
+ }
+ int buffer = 0;
+ if (pPermashift->Service("Permashift-GetUsedBufferSecs-v1", &buffer)) {
+ return buffer;
+ }
+ return -1;
+}
+
void cViewHelpers::SetScraperTokens(const cEvent *event, const cRecording *recording, stringmap &stringTokens, intmap &intTokens, map < string, vector<stringmap> > &loopTokens) {
static cPlugin *pScraper = GetScraperPlugin();
if (!pScraper || (!event && !recording)) {
diff --git a/views/viewhelpers.h b/views/viewhelpers.h
index 9640406..e1675bc 100644
--- a/views/viewhelpers.h
+++ b/views/viewhelpers.h
@@ -32,6 +32,7 @@ protected:
void InitDevices(void);
bool SetDevices(bool initial, bool light, intmap *intTokens, vector<stringmap> *devices);
bool CheckNewMails(void);
+ int GetLiveBuffer(void);
void SetScraperTokens(const cEvent *event, const cRecording *recording, stringmap &stringTokens, intmap &intTokens, map < string, vector<stringmap> > &loopTokens);
void SetPosterBanner(const cEvent *event, stringmap &stringTokens, intmap &intTokens);
void SetTimers(map<string,int> *intTokens, map<string,string> *stringTokens, vector<stringmap> *timers);