X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fdvb%2Fidvb.h;h=cff4dbb97e0c6a24eaf3e40c80fe1389878d4ff9;hp=c18d2421ca83d9e911213789d5baa2ae397a579d;hb=dafa266c71fd625cd5a9bedbea10a47e27c868ad;hpb=3e3832c8784e966dca29354c158ffb636f33c8cb diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index c18d242..cff4dbb 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -297,13 +297,14 @@ public: enum { dxNoSDT=1, // don't get SDT -//nyi dxDontshow=2, + dxDontshow=2, dxNoDVB=4, // dont use PMT for this service ( use cached pids ) dxHoldName=8, dxNewFound=64, }; bool usePMT() const { return !(m_flags & dxNoDVB); } + bool isHidden() const { return m_flags & dxDontshow; } CAID_LIST m_ca; @@ -314,7 +315,7 @@ public: // iStaticServiceInformation RESULT getName(const eServiceReference &ref, std::string &name); RESULT getEvent(const eServiceReference &ref, ePtr &ptr, time_t start_time); - int isPlayable(const eServiceReference &ref, const eServiceReference &ignore); + int isPlayable(const eServiceReference &ref, const eServiceReference &ignore, bool simulate=false); PyObject *getInfoObject(const eServiceReference &ref, int); // implemented in lib/service/servicedvb.h /* for filtering: */ @@ -374,6 +375,7 @@ public: virtual RESULT removeService(const eServiceReference &service)=0; virtual RESULT removeServices(eDVBChannelID chid=eDVBChannelID(), unsigned int orb_pos=0xFFFFFFFF)=0; virtual RESULT removeServices(int dvb_namespace=-1, int tsid=-1, int onid=-1, unsigned int orb_pos=0xFFFFFFFF)=0; + virtual RESULT removeServices(iDVBFrontendParameters *feparm)=0; virtual RESULT addFlag(const eServiceReference &service, unsigned int flagmask=0xFFFFFFFF)=0; virtual RESULT removeFlag(const eServiceReference &service, unsigned int flagmask=0xFFFFFFFF)=0; virtual RESULT removeFlags(unsigned int flagmask, eDVBChannelID chid=eDVBChannelID(), unsigned int orb_pos=0xFFFFFFFF)=0; @@ -383,13 +385,13 @@ public: virtual RESULT getChannelFrontendData(const eDVBChannelID &id, ePtr &parm)=0; - virtual RESULT addService(const eServiceReferenceDVB &service, eDVBService *service)=0; + virtual RESULT addService(const eServiceReferenceDVB &reference, eDVBService *service)=0; virtual RESULT getService(const eServiceReferenceDVB &reference, ePtr &service)=0; virtual RESULT flush()=0; virtual RESULT getBouquet(const eServiceReference &ref, eBouquet* &bouquet)=0; - virtual RESULT startQuery(ePtr &query, eDVBChannelQuery *query, const eServiceReference &source)=0; + virtual RESULT startQuery(ePtr &query, eDVBChannelQuery *q, const eServiceReference &source)=0; }; #endif // SWIG @@ -401,13 +403,17 @@ class iDVBFrontendParameters: public iObject ~iDVBFrontendParameters(); #endif public: - virtual RESULT getSystem(int &SWIG_OUTPUT) const = 0; - virtual RESULT getDVBS(eDVBFrontendParametersSatellite &SWIG_OUTPUT) const = 0; - virtual RESULT getDVBC(eDVBFrontendParametersCable &SWIG_OUTPUT) const = 0; - virtual RESULT getDVBT(eDVBFrontendParametersTerrestrial &SWIG_OUTPUT) const = 0; - - virtual RESULT calculateDifference(const iDVBFrontendParameters *parm, int &SWIG_OUTPUT, bool exact) const = 0; - virtual RESULT getHash(unsigned long &SWIG_OUTPUT) const = 0; + enum { flagOnlyFree = 1 }; + virtual SWIG_VOID(RESULT) getSystem(int &SWIG_OUTPUT) const = 0; + virtual SWIG_VOID(RESULT) getDVBS(eDVBFrontendParametersSatellite &SWIG_OUTPUT) const = 0; + virtual SWIG_VOID(RESULT) getDVBC(eDVBFrontendParametersCable &SWIG_OUTPUT) const = 0; + virtual SWIG_VOID(RESULT) getDVBT(eDVBFrontendParametersTerrestrial &SWIG_OUTPUT) const = 0; + virtual SWIG_VOID(RESULT) getFlags(unsigned int &SWIG_OUTPUT) const = 0; +#ifndef SWIG + virtual SWIG_VOID(RESULT) calculateDifference(const iDVBFrontendParameters *parm, int &, bool exact) const = 0; + virtual SWIG_VOID(RESULT) getHash(unsigned long &) const = 0; + virtual SWIG_VOID(RESULT) calcLockTimeout(unsigned int &) const = 0; +#endif }; SWIG_TEMPLATE_TYPEDEF(ePtr, iDVBFrontendParametersPtr); @@ -441,10 +447,10 @@ class iDVBFrontend_ENUMS #endif public: enum { feSatellite, feCable, feTerrestrial }; - enum { stateIdle, stateTuning, stateFailed, stateLock, stateLostLock }; + enum { stateIdle, stateTuning, stateFailed, stateLock, stateLostLock, stateClosed }; enum { toneOff, toneOn }; enum { voltageOff, voltage13, voltage18, voltage13_5, voltage18_5 }; - enum { bitErrorRate, signalPower, signalQuality, locked, synced, frontendNumber, signalPowerdB }; + enum { bitErrorRate, signalPower, signalQuality, locked, synced, frontendNumber, signalQualitydB }; }; SWIG_IGNORE(iDVBFrontend); @@ -470,8 +476,8 @@ public: virtual void getTransponderData(SWIG_PYOBJECT(ePyObject) dest, bool original)=0; virtual void getFrontendData(SWIG_PYOBJECT(ePyObject) dest)=0; #ifndef SWIG - virtual RESULT getData(int num, int &data)=0; - virtual RESULT setData(int num, int val)=0; + virtual RESULT getData(int num, long &data)=0; + virtual RESULT setData(int num, long val)=0; /* 0 means: not compatible. other values are a priority. */ virtual int isCompatibleWith(ePtr &feparm)=0; #endif @@ -482,9 +488,9 @@ SWIG_TEMPLATE_TYPEDEF(ePtr, iDVBFrontendPtr); class iDVBSatelliteEquipmentControl: public iObject { public: - virtual RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, const eDVBFrontendParametersSatellite &sat, int frontend_id)=0; - virtual int canTune(const eDVBFrontendParametersSatellite &feparm, iDVBFrontend *fe, int frontend_id)=0; - virtual void setRotorMoving(bool)=0; + virtual RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, const eDVBFrontendParametersSatellite &sat, int frontend_id, unsigned int timeout)=0; + virtual int canTune(const eDVBFrontendParametersSatellite &feparm, iDVBFrontend *fe, int frontend_id, int *highest_score_lnb=0)=0; + virtual void setRotorMoving(int slotid, bool)=0; }; struct eDVBCIRouting @@ -499,6 +505,7 @@ class iDVBChannel: public iObject public: /* direct frontend access for raw channels and/or status inquiries. */ virtual SWIG_VOID(RESULT) getFrontend(ePtr &SWIG_OUTPUT)=0; + virtual RESULT requestTsidOnid(SWIG_PYOBJECT(ePyObject) callback) { return -1; } #ifndef SWIG enum { @@ -624,6 +631,7 @@ public: #if HAVE_DVB_API_VERSION < 3 && !defined(VIDEO_EVENT_SIZE_CHANGED) #define VIDEO_EVENT_SIZE_CHANGED 1 +#define VIDEO_EVENT_FRAME_RATE_CHANGED 2 #endif class iTSMPEGDecoder: public iObject @@ -656,37 +664,24 @@ public: /** 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; @@ -695,13 +690,25 @@ public: struct videoEvent { - enum { eventUnknown = 0, eventSizeChanged = VIDEO_EVENT_SIZE_CHANGED } type; + enum { eventUnknown = 0, + eventSizeChanged = VIDEO_EVENT_SIZE_CHANGED, + eventFrameRateChanged = VIDEO_EVENT_FRAME_RATE_CHANGED, + eventProgressiveChanged = 16 + } type; unsigned char aspect; unsigned short height; unsigned short width; + bool progressive; + unsigned short framerate; }; virtual RESULT connectVideoEvent(const Slot1 &event, ePtr &connection) = 0; + + virtual int getVideoWidth() = 0; + virtual int getVideoHeight() = 0; + virtual int getVideoProgressive() = 0; + virtual int getVideoFrameRate() = 0; + virtual int getVideoAspect() = 0; }; #endif //SWIG