aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2010-10-06 11:54:26 +0200
committerghost <andreas.monzner@multimedia-labs.de>2010-10-06 11:54:26 +0200
commit03dba41f691f1ae6a315d0a13c5af66fdf93fbfd (patch)
tree52b4c2815170e6a851988ed388d7d8248207c35a /lib/dvb
parentcb90a5fd3bdf08bff87beb7e310090731938ed29 (diff)
parent7618d28f166bbb7da7362519784a3b24b1f4f90f (diff)
downloadenigma2-03dba41f691f1ae6a315d0a13c5af66fdf93fbfd.tar.gz
enigma2-03dba41f691f1ae6a315d0a13c5af66fdf93fbfd.zip
Merge branch 'bug_518_add_demux_reserve_from_python'
Diffstat (limited to 'lib/dvb')
-rw-r--r--lib/dvb/dvb.cpp12
-rw-r--r--lib/dvb/dvb.h1
-rw-r--r--lib/dvb/idvb.h1
3 files changed, 14 insertions, 0 deletions
diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp
index 17712dde..836851c5 100644
--- a/lib/dvb/dvb.cpp
+++ b/lib/dvb/dvb.cpp
@@ -1657,6 +1657,18 @@ void eDVBChannel::SDTready(int result)
m_SDT = 0;
}
+int eDVBChannel::reserveDemux()
+{
+ ePtr<iDVBDemux> dmx;
+ if (!getDemux(dmx, 0))
+ {
+ uint8_t id;
+ if (!dmx->getCADemuxID(id))
+ return id;
+ }
+ return -1;
+}
+
RESULT eDVBChannel::requestTsidOnid(ePyObject callback)
{
if (PyCallable_Check(callback))
diff --git a/lib/dvb/dvb.h b/lib/dvb/dvb.h
index 7b320006..405bd557 100644
--- a/lib/dvb/dvb.h
+++ b/lib/dvb/dvb.h
@@ -268,6 +268,7 @@ public:
int getUseCount() { return m_use_count; }
RESULT requestTsidOnid(ePyObject callback);
+ int reserveDemux();
private:
ePtr<eDVBAllocatedFrontend> m_frontend;
ePtr<eDVBAllocatedDemux> m_demux, m_decoder_demux;
diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h
index d20829bf..996d7909 100644
--- a/lib/dvb/idvb.h
+++ b/lib/dvb/idvb.h
@@ -508,6 +508,7 @@ public:
/* direct frontend access for raw channels and/or status inquiries. */
virtual SWIG_VOID(RESULT) getFrontend(ePtr<iDVBFrontend> &SWIG_OUTPUT)=0;
virtual RESULT requestTsidOnid(SWIG_PYOBJECT(ePyObject) callback) { return -1; }
+ virtual int reserveDemux() { return -1; }
#ifndef SWIG
enum
{