aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb
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:04 +0200
commit7618d28f166bbb7da7362519784a3b24b1f4f90f (patch)
tree76339b384fa6a426bb8f16fe8169742baa261af9 /lib/dvb
parent402e6bf1f69c36e2a7244c22d39224ab90d5ec2b (diff)
downloadenigma2-7618d28f166bbb7da7362519784a3b24b1f4f90f.tar.gz
enigma2-7618d28f166bbb7da7362519784a3b24b1f4f90f.zip
add possibility to reserve a demux from python (via rawChannel)
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
{