From e16e8b182f43bb219ec35036427692a32d213c2c Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Mon, 4 Jun 2012 08:09:19 +0200 Subject: [PATCH] The LCARS skin now only displays devices that can actually receive channels --- CONTRIBUTORS | 2 ++ HISTORY | 2 ++ skinlcars.c | 32 +++++++++++++++++++------------- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index e7344e9b..a729fa46 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1311,6 +1311,8 @@ Reinhard Nissl transponder changes are recognized for helping to debug switching into time shift mode when pausing live video for fixing a possible high CPU load when pausing replay + for suggesting that the LCARS skin should only displays devices that can actually + receive channels Richard Robson for reporting freezing replay if a timer starts while in Transfer Mode from the diff --git a/HISTORY b/HISTORY index a1b38ca5..ca76fe9c 100644 --- a/HISTORY +++ b/HISTORY @@ -7153,3 +7153,5 @@ Video Disk Recorder Revision History - Added a missing template specification to the c'tor of cSortedTimers (thanks to Udo Richter). - Fixed the background color of the Transfer Mode indicator bitmap in the LCARS skin. +- The LCARS skin now only displays devices that can actually receive channels, leaving + out, for instance, pure replay devices (suggested by Reinhard Nissl). diff --git a/skinlcars.c b/skinlcars.c index e8442109..60978f76 100644 --- a/skinlcars.c +++ b/skinlcars.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: skinlcars.c 2.3 2012/06/03 15:59:26 kls Exp $ + * $Id: skinlcars.c 2.4 2012/06/04 08:05:03 kls Exp $ */ // "Star Trek: The Next Generation"(R) is a registered trademark of Paramount Pictures, @@ -1192,15 +1192,17 @@ void cSkinLCARSDisplayMenu::DrawTimers(void) int Slot = 0; for (int i = 0; i < cDevice::NumDevices(); i++) { if (const cDevice *Device = cDevice::GetDevice(i)) { - if (!deviceRecording[Device->DeviceNumber()]) { - if (Slot < FreeDeviceSlots.Size()) { - y = FreeDeviceSlots[Slot]; - Slot++; + if (Device->NumProvidedSystems()) { + if (!deviceRecording[Device->DeviceNumber()]) { + if (Slot < FreeDeviceSlots.Size()) { + y = FreeDeviceSlots[Slot]; + Slot++; + } + if (y + lineHeight > ys05) + break; + deviceOffset[Device->DeviceNumber()] = y; + y += lineHeight + Gap; } - if (y + lineHeight > ys05) - break; - deviceOffset[Device->DeviceNumber()] = y; - y += lineHeight + Gap; } } } @@ -1231,8 +1233,10 @@ void cSkinLCARSDisplayMenu::DrawDevice(const cDevice *Device) void cSkinLCARSDisplayMenu::DrawDevices(void) { for (int i = 0; i < cDevice::NumDevices(); i++) { - if (const cDevice *Device = cDevice::GetDevice(i)) - DrawDevice(Device); + if (const cDevice *Device = cDevice::GetDevice(i)) { + if (Device->NumProvidedSystems()) + DrawDevice(Device); + } } } @@ -1264,8 +1268,10 @@ void cSkinLCARSDisplayMenu::DrawSignals(void) if (initial || Now - lastSignalDisplay >= SIGNALDISPLAYDELTA) { for (int i = 0; i < cDevice::NumDevices(); i++) { if (const cDevice *Device = cDevice::GetDevice(i)) { - if (int y = deviceOffset[i]) - DrawDeviceSignal(osd, Device, xs + lineHeight / 2, y, xs11, y + lineHeight, lastSignalStrength[i], lastSignalQuality[i], initial); + if (Device->NumProvidedSystems()) { + if (int y = deviceOffset[i]) + DrawDeviceSignal(osd, Device, xs + lineHeight / 2, y, xs11, y + lineHeight, lastSignalStrength[i], lastSignalQuality[i], initial); + } } } lastSignalDisplay = Now;