summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2015-03-22 13:24:52 +0100
committerlouis <louis.braun@gmx.de>2015-03-22 13:24:52 +0100
commit7a0e0b11ae0113591065a46765fdec333e2e9956 (patch)
tree8408136adf5ee843bc4a93e1e4d7cba2ba80943b
parent03f3789ee9c02aac7b5c326d7abd02d271bbcddd (diff)
downloadvdr-plugin-skindesigner-7a0e0b11ae0113591065a46765fdec333e2e9956.tar.gz
vdr-plugin-skindesigner-7a0e0b11ae0113591065a46765fdec333e2e9956.tar.bz2
fixed crash in drawing devices
-rw-r--r--designer.c2
-rw-r--r--skins/metrixhd/xmlfiles/displaychannel.xml6
-rw-r--r--skins/metrixhd/xmlfiles/displaymenumain.xml2
-rw-r--r--views/viewhelpers.c24
4 files changed, 7 insertions, 27 deletions
diff --git a/designer.c b/designer.c
index 93b5b34..537a3fb 100644
--- a/designer.c
+++ b/designer.c
@@ -46,6 +46,8 @@ cSkinDisplayChannel *cSkinDesigner::DisplayChannel(bool WithInfo) {
}
cSkinDisplayMenu *cSkinDesigner::DisplayMenu(void) {
+ if (init)
+ return NULL;
if (!useBackupSkin) {
cSDDisplayMenu *displayMenu = NULL;
Init();
diff --git a/skins/metrixhd/xmlfiles/displaychannel.xml b/skins/metrixhd/xmlfiles/displaychannel.xml
index 3c63a18..1628106 100644
--- a/skins/metrixhd/xmlfiles/displaychannel.xml
+++ b/skins/metrixhd/xmlfiles/displaychannel.xml
@@ -196,11 +196,11 @@
{devices[channelid]} ID of the currently tuned channel
{devices[source]} source of the currently tuned channel
-->
- <devices>
- <area condition="{showdevices}" x="70%" y="30%" width="30%" height="{areaheight}/12 * {numdevices}" layer="1">
+ <devices condition="{showdevices}" >
+ <area x="70%" y="30%" width="30%" height="{areaheight}/12 * {numdevices}" layer="1">
<fill color="{clrTransBlack}"/>
</area>
- <area condition="{showdevices}" x="70%" y="30%" width="30%" height="{areaheight}/12 * {numdevices}" layer="2">
+ <area x="70%" y="30%" width="30%" height="{areaheight}/12 * {numdevices}" layer="2">
<loop name="devices" x="0" y="0" orientation="vertical" columnwidth="{areawidth}" rowheight="{areaheight} / {numdevices}" overflow="cut">
<drawtext name="label" x="5" y="0" font="{light}" fontsize="{rowheight}*0.35" color="{clrWhite}" text="{devices[num]}: {devices[type]}" />
<drawtext condition="{devices[hascam]}" x="{width(label)} + 15" y="0" font="{light}" fontsize="{rowheight}*0.35" color="{clrWhite}" text="(CAM {devices[cam]})" />
diff --git a/skins/metrixhd/xmlfiles/displaymenumain.xml b/skins/metrixhd/xmlfiles/displaymenumain.xml
index ef588a6..077c0b1 100644
--- a/skins/metrixhd/xmlfiles/displaymenumain.xml
+++ b/skins/metrixhd/xmlfiles/displaymenumain.xml
@@ -240,7 +240,7 @@
{devices[channelid]} ID of the currently tuned channel
{devices[source]} source of the currently tuned channel
-->
- <devices>
+ <devices condition="{showdevices}">
<area x="75%" y="48%" width="25%" height="{areaheight}/12 * {numdevices}" layer="1">
<fill color="{clrTransBlack}"/>
</area>
diff --git a/views/viewhelpers.c b/views/viewhelpers.c
index c9423d4..3ec8847 100644
--- a/views/viewhelpers.c
+++ b/views/viewhelpers.c
@@ -21,7 +21,7 @@ cViewHelpers::~cViewHelpers() {
}
void cViewHelpers::InitDevices(void) {
- int numDevices = cDevice::NumDevices();
+ numDevices = cDevice::NumDevices();
lastSignalStrength = new int[numDevices];
lastSignalQuality = new int[numDevices];
recDevices = new bool[numDevices];
@@ -34,9 +34,6 @@ void cViewHelpers::InitDevices(void) {
}
bool cViewHelpers::SetDevices(bool initial, map<string,int> *intTokens, vector<map<string,string> > *devices) {
-#ifdef DOPROFILE
- cStopWatch watch("SetDevices");
-#endif
if (!initial) {
//check if drawing is necessary
bool changed = false;
@@ -46,23 +43,13 @@ bool cViewHelpers::SetDevices(bool initial, map<string,int> *intTokens, vector<m
continue;
}
int signalStrength = device->SignalStrength();
-#ifdef DOPROFILE
- watch.Report(*cString::sprintf("SignalStrength() device %d", i));
-#endif
int signalQuality = device->SignalQuality();
-#ifdef DOPROFILE
- watch.Report(*cString::sprintf("SignalQuality() device %d", i));
-#endif
-
if ((signalStrength != lastSignalStrength[i]) || (signalQuality != lastSignalQuality[i])) {
changed = true;
break;
}
}
if (!changed) {
-#ifdef DOPROFILE
- watch.Stop("SetDevices End");
-#endif
return false;
}
}
@@ -109,13 +96,7 @@ bool cViewHelpers::SetDevices(bool initial, map<string,int> *intTokens, vector<m
deviceVals.insert(pair< string, string >("devices[hascam]", "0"));
}
int signalStrength = device->SignalStrength();
-#ifdef DOPROFILE
- watch.Report(*cString::sprintf("SignalStrength() device %d", i));
-#endif
int signalQuality = device->SignalQuality();
-#ifdef DOPROFILE
- watch.Report(*cString::sprintf("SignalQuality() device %d", i));
-#endif
stringstream strCamNumber;
strCamNumber << camNumber;
deviceVals.insert(pair< string, string >("devices[cam]", strCamNumber.str()));
@@ -157,9 +138,6 @@ bool cViewHelpers::SetDevices(bool initial, map<string,int> *intTokens, vector<m
}
intTokens->insert(pair<string, int>("numdevices", actualNumDevices));
-#ifdef DOPROFILE
- watch.Stop("SetDevices End");
-#endif
return true;
}