From: Felix Domke Date: Wed, 15 Feb 2006 02:08:46 +0000 (+0000) Subject: add iCueSheet interface and null implementation X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=commitdiff_plain;h=49fe6e80f4664c97c95ea73001c3a8b34718b564 add iCueSheet interface and null implementation --- diff --git a/lib/service/iservice.h b/lib/service/iservice.h index 2f489b1..2d38d6f 100644 --- a/lib/service/iservice.h +++ b/lib/service/iservice.h @@ -377,6 +377,23 @@ public: TEMPLATE_TYPEDEF(ePtr, iTimeshiftServicePtr); + /* not related to eCueSheet */ +class iCueSheet: public iObject +{ +#ifdef SWIG + iCueSheet(); + ~iCueSheet(); +#endif +public: + /* returns a list of (pts, what)-tuples */ + virtual PyObject *getCutList() = 0; + + enum { cutIn = 0, cutOut = 1, cutMark = 2 }; + + virtual RESULT addCut(const pts_t &when, int what) = 0; + virtual RESULT removeCut(const pts_t &when, int what) = 0; +}; + class iPlayableService: public iObject { #ifdef SWIG @@ -413,6 +430,7 @@ public: virtual SWIG_VOID(RESULT) subServices(ePtr &SWIG_OUTPUT)=0; virtual SWIG_VOID(RESULT) frontendStatusInfo(ePtr &SWIG_OUTPUT)=0; virtual SWIG_VOID(RESULT) timeshift(ePtr &SWIG_OUTPUT)=0; + virtual SWIG_VOID(RESULT) cueSheet(ePtr &SWIG_OUTPUT)=0; }; TEMPLATE_TYPEDEF(ePtr, iPlayableServicePtr); diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index 650b609..76abbd3 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -869,6 +869,17 @@ RESULT eDVBServicePlay::timeshift(ePtr &ptr) return -1; } +RESULT eDVBServicePlay::cueSheet(ePtr &ptr) +{ + if (m_is_pvr) + { + ptr = this; + return 0; + } + ptr = 0; + return -1; +} + RESULT eDVBServicePlay::getName(std::string &name) { if (m_is_pvr) @@ -1168,6 +1179,23 @@ RESULT eDVBServicePlay::activateTimeshift() return -2; } +PyObject *eDVBServicePlay::getCutList() +{ + PyObject *list = PyList_New(0); + + return list; +} + +RESULT eDVBServicePlay::addCut(const pts_t &when, int what) +{ + return -1; +} + +RESULT eDVBServicePlay::removeCut(const pts_t &when, int what) +{ + return -1; +} + void eDVBServicePlay::updateTimeshiftPids() { if (!m_record) diff --git a/lib/service/servicedvb.h b/lib/service/servicedvb.h index a07e441..e27f7ff 100644 --- a/lib/service/servicedvb.h +++ b/lib/service/servicedvb.h @@ -58,7 +58,8 @@ private: class eDVBServicePlay: public iPlayableService, public iPauseableService, public iSeekableService, public Object, public iServiceInformation, public iAudioTrackSelection, public iFrontendStatusInformation, - public iSubserviceList, public iTimeshiftService + public iSubserviceList, public iTimeshiftService, + public iCueSheet { DECLARE_REF(eDVBServicePlay); public: @@ -75,6 +76,8 @@ public: RESULT frontendStatusInfo(ePtr &ptr); RESULT subServices(ePtr &ptr); RESULT timeshift(ePtr &ptr); + RESULT cueSheet(ePtr &ptr); + // iPauseableService RESULT pause(); @@ -114,6 +117,11 @@ public: int isTimeshiftActive(); RESULT activateTimeshift(); + // iCueSheet + PyObject *getCutList(); + RESULT addCut(const pts_t &when, int what); + RESULT removeCut(const pts_t &when, int what); + private: friend class eServiceFactoryDVB; eServiceReference m_reference; diff --git a/lib/service/servicemp3.h b/lib/service/servicemp3.h index c08278b..5ba3121 100644 --- a/lib/service/servicemp3.h +++ b/lib/service/servicemp3.h @@ -65,6 +65,7 @@ public: RESULT frontendStatusInfo(ePtr &ptr) { ptr = 0; return -1; } RESULT subServices(ePtr &ptr) { ptr = 0; return -1; } RESULT timeshift(ePtr &ptr) { ptr = 0; return -1; } + RESULT cueSheet(ePtr& ptr) { ptr = 0; return -1; } // iPausableService RESULT pause();