aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2010-04-15 00:42:04 +0200
committerghost <andreas.monzner@multimedia-labs.de>2010-04-15 00:42:40 +0200
commit2b2953574912796d7d7878f6523614ee3164fdb9 (patch)
tree5c1a5b3a2463ff28f2e2df76eb4a7debfd5a2f4b /lib
parent90a0ccba1f6e5a966950676bfc1e62d47b23ae6a (diff)
downloadenigma2-2b2953574912796d7d7878f6523614ee3164fdb9.tar.gz
enigma2-2b2953574912796d7d7878f6523614ee3164fdb9.zip
add possibility to reserve a demux from python (via rawChannel)
Diffstat (limited to 'lib')
-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
{