#include <lib/base/object.h>
#include <lib/base/ebase.h>
#include <lib/base/elock.h>
+#include <lib/base/itssource.h>
#include <lib/service/service.h>
#include <libsig_comp.h>
#include <connection.h>
public:
virtual RESULT getFrontendType(int &SWIG_OUTPUT)=0;
virtual RESULT tune(const iDVBFrontendParameters &where)=0;
+ virtual int closeFrontend(bool force = false, bool no_delayed = false)=0;
+ virtual void reopenFrontend()=0;
#ifndef SWIG
virtual RESULT connectStateChange(const Slot1<void,iDVBFrontend*> &stateChange, ePtr<eConnection> &connection)=0;
#endif
virtual RESULT sendToneburst(int burst)=0;
#ifndef SWIG
virtual RESULT setSEC(iDVBSatelliteEquipmentControl *sec)=0;
- virtual RESULT setSecSequence(const eSecCommandList &list)=0;
+ virtual RESULT setSecSequence(eSecCommandList &list)=0;
#endif
virtual int readFrontendData(int type)=0;
virtual void getFrontendStatus(SWIG_PYOBJECT(ePyObject) dest)=0;
{
public:
virtual RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, const eDVBFrontendParametersSatellite &sat, int frontend_id, unsigned int timeout)=0;
+ virtual void prepareTurnOffSatCR(iDVBFrontend &frontend, int satcr)=0;
virtual int canTune(const eDVBFrontendParametersSatellite &feparm, iDVBFrontend *fe, int frontend_id, int *highest_score_lnb=0)=0;
- virtual void setRotorMoving(bool)=0;
+ virtual void setRotorMoving(int slotid, bool)=0;
};
struct eDVBCIRouting
/* 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
{
virtual RESULT getCurrentFrontendParameters(ePtr<iDVBFrontendParameters> &)=0;
enum
{
- evtEOF, evtSOF, evtFailed
+ evtPreStart, evtEOF, evtSOF, evtFailed
};
virtual RESULT connectStateChange(const Slot1<void,iDVBChannel*> &stateChange, ePtr<eConnection> &connection)=0;
virtual RESULT connectEvent(const Slot2<void,iDVBChannel*,int> &eventChange, ePtr<eConnection> &connection)=0;
virtual RESULT playFile(const char *file) = 0;
virtual void stopFile() = 0;
+ /* new interface */
+ virtual RESULT playSource(ePtr<iTsSource> &source, const char *priv=NULL) = 0;
+ virtual void stopSource() = 0;
+
virtual void setCueSheet(eCueSheet *cuesheet) = 0;
virtual RESULT getLength(pts_t &pts) = 0;
/** Set Sync mode to either audio or video master */
virtual RESULT setSyncMaster(int who)=0;
- /** Apply settings with starting video */
- virtual RESULT start()=0;
- /** Apply settings but don't start yet */
- virtual RESULT preroll()=0;
+ /** Apply settings but don't change state */
+ virtual RESULT set()=0;
+ /* all those apply settings, then transition to the given state */
- /** Freeze frame. Either continue decoding (without display) or halt. */
- virtual RESULT freeze(int cont)=0;
- /** Continue after freeze. */
- virtual RESULT unfreeze()=0;
+ /** play */
+ virtual RESULT play()=0;
+ /** Freeze frame. */
+ virtual RESULT pause()=0;
/** fast forward by skipping frames. 0 is disabled, 2 is twice-the-speed, ... */
virtual RESULT setFastForward(int skip=0)=0;
- // stop on .. Picture
- enum { spm_I, spm_Ref, spm_Any };
- /** Stop on specific decoded picture. For I-Frame display. */
- virtual RESULT setSinglePictureMode(int when)=0;
-
- enum { pkm_B, pkm_PB };
- /** Fast forward by skipping either B or P/B pictures */
- virtual RESULT setPictureSkipMode(int what)=0;
-
/** Slow Motion by repeating pictures */
virtual RESULT setSlowMotion(int repeat)=0;
-
- enum { zoom_Normal, zoom_PanScan, zoom_Letterbox, zoom_Fullscreen };
- /** Set Zoom. mode *must* be fitting. */
- virtual RESULT setZoom(int what)=0;
-
- virtual RESULT setTrickmode(int what) = 0;
+ /** Display any complete data as fast as possible */
+ virtual RESULT setTrickmode()=0;
+
virtual RESULT getPTS(int what, pts_t &pts) = 0;
virtual RESULT showSinglePic(const char *filename) = 0;