aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dvb')
-rw-r--r--lib/dvb/frontend.cpp7
-rw-r--r--lib/dvb/frontend.h1
-rw-r--r--lib/dvb/idvb.h1
3 files changed, 9 insertions, 0 deletions
diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp
index f85a37fe..8216eea0 100644
--- a/lib/dvb/frontend.cpp
+++ b/lib/dvb/frontend.cpp
@@ -483,6 +483,13 @@ eDVBFrontend::eDVBFrontend(int adap, int fe, int &ok, bool simulate)
closeFrontend();
}
+void eDVBFrontend::reopenFrontend()
+{
+ closeFrontend();
+ m_type = -1;
+ openFrontend();
+}
+
int eDVBFrontend::openFrontend()
{
if (m_state != stateClosed)
diff --git a/lib/dvb/frontend.h b/lib/dvb/frontend.h
index 4cf05081..bc31755c 100644
--- a/lib/dvb/frontend.h
+++ b/lib/dvb/frontend.h
@@ -146,6 +146,7 @@ public:
static void setTypePriorityOrder(int val) { PriorityOrder = val; }
static int getTypePriorityOrder() { return PriorityOrder; }
+ void reopenFrontend();
int openFrontend();
int closeFrontend(bool force=false);
const char *getDescription() const { return m_description; }
diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h
index 4ef7efad..a3e87e35 100644
--- a/lib/dvb/idvb.h
+++ b/lib/dvb/idvb.h
@@ -459,6 +459,7 @@ class iDVBFrontend: public iDVBFrontend_ENUMS, public iObject
public:
virtual RESULT getFrontendType(int &SWIG_OUTPUT)=0;
virtual RESULT tune(const iDVBFrontendParameters &where)=0;
+ virtual void reopenFrontend()=0;
#ifndef SWIG
virtual RESULT connectStateChange(const Slot1<void,iDVBFrontend*> &stateChange, ePtr<eConnection> &connection)=0;
#endif