diff options
| author | louis <louis.braun@gmx.de> | 2015-03-22 13:24:52 +0100 |
|---|---|---|
| committer | louis <louis.braun@gmx.de> | 2015-03-22 13:24:52 +0100 |
| commit | 7a0e0b11ae0113591065a46765fdec333e2e9956 (patch) | |
| tree | 8408136adf5ee843bc4a93e1e4d7cba2ba80943b | |
| parent | 03f3789ee9c02aac7b5c326d7abd02d271bbcddd (diff) | |
| download | vdr-plugin-skindesigner-7a0e0b11ae0113591065a46765fdec333e2e9956.tar.gz vdr-plugin-skindesigner-7a0e0b11ae0113591065a46765fdec333e2e9956.tar.bz2 | |
fixed crash in drawing devices
| -rw-r--r-- | designer.c | 2 | ||||
| -rw-r--r-- | skins/metrixhd/xmlfiles/displaychannel.xml | 6 | ||||
| -rw-r--r-- | skins/metrixhd/xmlfiles/displaymenumain.xml | 2 | ||||
| -rw-r--r-- | views/viewhelpers.c | 24 |
4 files changed, 7 insertions, 27 deletions
@@ -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; } |
