summaryrefslogtreecommitdiff
path: root/views/displaymenuview.c
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2014-10-25 20:10:00 +0200
committerlouis <louis.braun@gmx.de>2014-10-25 20:10:00 +0200
commit1e20f0c893b37f889269500e55f3022f450dfb04 (patch)
tree7ddb4b2838950e5b2b94e3416386423d28535e40 /views/displaymenuview.c
parentce67dea08af33f53525b61e168f32af11101e2c6 (diff)
downloadvdr-plugin-skindesigner-1e20f0c893b37f889269500e55f3022f450dfb04.tar.gz
vdr-plugin-skindesigner-1e20f0c893b37f889269500e55f3022f450dfb04.tar.bz2
added device info in displaychannel
Diffstat (limited to 'views/displaymenuview.c')
-rw-r--r--views/displaymenuview.c119
1 files changed, 3 insertions, 116 deletions
diff --git a/views/displaymenuview.c b/views/displaymenuview.c
index 66df9a6..47c1591 100644
--- a/views/displaymenuview.c
+++ b/views/displaymenuview.c
@@ -223,9 +223,6 @@ cDisplayMenuMainView::cDisplayMenuMainView(cTemplateView *tmplView, bool menuIni
cDisplayMenuMainView::~cDisplayMenuMainView() {
CancelSave();
FadeOut();
- delete[] lastSignalStrength;
- delete[] lastSignalQuality;
- delete[] recDevices;
}
void cDisplayMenuMainView::DrawStaticViewElements(void) {
@@ -360,18 +357,6 @@ void cDisplayMenuMainView::DrawDiscUsage(void) {
DrawViewElement(veDiscUsage, &stringTokens, &intTokens);
}
-void cDisplayMenuMainView::InitDevices(void) {
- int numDevices = cDevice::NumDevices();
- lastSignalStrength = new int[numDevices];
- lastSignalQuality = new int[numDevices];
- recDevices = new bool[numDevices];
- for (int i=0; i<numDevices; i++) {
- lastSignalStrength[i] = 0;
- lastSignalQuality[i] = 0;
- recDevices[i] = false;
- }
-}
-
bool cDisplayMenuMainView::DrawLoad(void) {
if (!ViewElementImplemented(veSystemLoad)) {
return false;
@@ -400,120 +385,22 @@ bool cDisplayMenuMainView::DrawDevices(void) {
if (!ViewElementImplemented(veDevices)) {
return false;
}
- int numDevices = cDevice::NumDevices();
- if (!initial) {
- //check if drawing is necessary
- bool changed = false;
- for (int i = 0; i < numDevices; i++) {
- const cDevice *device = cDevice::GetDevice(i);
- if (!device || !device->NumProvidedSystems()) {
- continue;
- }
- if ((device->SignalStrength() != lastSignalStrength[i]) || (device->SignalQuality() != lastSignalQuality[i])) {
- changed = true;
- break;
- }
- }
- if (!changed) {
- return false;
- }
- }
map < string, string > stringTokens;
map < string, int > intTokens;
-
map < string, vector< map< string, string > > > deviceLoopTokens;
vector< map< string, string > > devices;
- //check device which currently displays live tv
- int deviceLiveTV = -1;
- cDevice *primaryDevice = cDevice::PrimaryDevice();
- if (primaryDevice) {
- if (!primaryDevice->Replaying() || primaryDevice->Transferring())
- deviceLiveTV = cDevice::ActualDevice()->DeviceNumber();
- else
- deviceLiveTV = primaryDevice->DeviceNumber();
- }
-
- //check currently recording devices
- for (cTimer *timer = Timers.First(); timer; timer = Timers.Next(timer)) {
- if (!timer->Recording()) {
- continue;
- }
- if (cRecordControl *RecordControl = cRecordControls::GetRecordControl(timer)) {
- const cDevice *recDevice = RecordControl->Device();
- if (recDevice) {
- recDevices[recDevice->DeviceNumber()] = true;
- }
- }
- }
- int actualNumDevices = 0;
- for (int i = 0; i < numDevices; i++) {
- const cDevice *device = cDevice::GetDevice(i);
- if (!device || !device->NumProvidedSystems()) {
- continue;
- }
- actualNumDevices++;
- map< string, string > deviceVals;
- stringstream strNum;
- strNum << actualNumDevices;
- deviceVals.insert(pair< string, string >("devices[num]", strNum.str()));
- deviceVals.insert(pair< string, string >("devices[type]", *(device->DeviceType())));
- cCamSlot *camSlot = device->CamSlot();
- int camNumber = -1;
- if (camSlot) {
- camNumber = camSlot->SlotNumber();
- deviceVals.insert(pair< string, string >("devices[hascam]", "1"));
- } else {
- deviceVals.insert(pair< string, string >("devices[hascam]", "0"));
- }
- int signalStrength = device->SignalStrength();
- int signalQuality = device->SignalQuality();
- stringstream strCamNumber;
- strCamNumber << camNumber;
- deviceVals.insert(pair< string, string >("devices[cam]", strCamNumber.str()));
- stringstream strStrength;
- strStrength << signalStrength;
- deviceVals.insert(pair< string, string >("devices[signalstrength]", strStrength.str()));
- stringstream strQuality;
- strQuality << signalQuality;
- deviceVals.insert(pair< string, string >("devices[signalquality]", strQuality.str()));
-
- deviceVals.insert(pair< string, string >("devices[livetv]", i == deviceLiveTV ? "1" : "0"));
- deviceVals.insert(pair< string, string >("devices[recording]", recDevices[i] ? "1" : "0"));
-
- const cChannel *channel = device->GetCurrentlyTunedTransponder();
- const cSource *source = (channel) ? Sources.Get(channel->Source()) : NULL;
- if (channel && channel->Number() > 0) {
- stringstream strChanNum;
- strChanNum << channel->Number();
- deviceVals.insert(pair< string, string >("devices[channelnumber]", strChanNum.str()));
- deviceVals.insert(pair< string, string >("devices[channelname]", channel->Name()));
- deviceVals.insert(pair< string, string >("devices[channelid]", *(channel->GetChannelID().ToString())));
- deviceVals.insert(pair< string, string >("devices[istuned]", "1"));
- } else {
- deviceVals.insert(pair< string, string >("devices[channelnumber]", "0"));
- deviceVals.insert(pair< string, string >("devices[channelname]", ""));
- deviceVals.insert(pair< string, string >("devices[channelid]", ""));
- deviceVals.insert(pair< string, string >("devices[istuned]", "0"));
- }
-
- deviceVals.insert(pair< string, string >("devices[source]", source ? source->Description() : ""));
-
- devices.push_back(deviceVals);
+ bool changed = SetDevices(initial, &intTokens, &devices);
+ if (!changed)
+ return false;
- lastSignalStrength[i] = signalStrength;
- lastSignalQuality[i] = signalQuality;
- }
deviceLoopTokens.insert(pair< string, vector< map< string, string > > >("devices", devices));
-
- intTokens.insert(pair<string, int>("numdevices", actualNumDevices));
ClearViewElement(veDevices);
DrawViewElement(veDevices, &stringTokens, &intTokens, &deviceLoopTokens);
return true;
}
-
/************************************************************************
* cDisplayMenuSchedulesView
************************************************************************/