summaryrefslogtreecommitdiff
path: root/status.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'status.cpp')
-rw-r--r--status.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/status.cpp b/status.cpp
index b540f74..9f02ef8 100644
--- a/status.cpp
+++ b/status.cpp
@@ -26,7 +26,11 @@ void cStatusInfosatepg::ChannelSwitch(const cDevice *Device, int ChannelNumber)
bool bAddFilter=false;
// just add filter if we aren't locked
- if ((ChannelNumber==global->Channel) && (!global->isLocked())) bAddFilter=true;
+ if (ChannelNumber==global->Channel)
+ {
+ if (Device!=global->dev) return; // don't use virtual devices (they will switch too)
+ if (!global->ReceivedAll()) bAddFilter=true;
+ }
if (bAddFilter)
{
@@ -55,7 +59,8 @@ void cStatusInfosatepg::ChannelSwitch(const cDevice *Device, int ChannelNumber)
dsyslog("infosatepg: detach filter");
myFilterDevice->Detach(myFilter);
myFilterDevice=NULL;
- global->SetTimer();
+ global->dev=NULL;
+ global->SetWaitTimer();
global->SetSwitched(false);
}
}