X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/2e331e520dc3afa9e59800dad5e44fddfa6924a0..11e416ae02c53daa3841096e9792804f3d0e51dd:/lib/service/iservice.h?ds=sidebyside diff --git a/lib/service/iservice.h b/lib/service/iservice.h index 3905a7fc..7b85c8fa 100644 --- a/lib/service/iservice.h +++ b/lib/service/iservice.h @@ -84,7 +84,7 @@ public: #ifndef SWIG std::string name; #endif - std::string getName() { return name; } + std::string getName() const { return name; } void setName( const std::string &n ) { name=n; } eServiceReference() @@ -240,7 +240,7 @@ public: virtual int getLength(const eServiceReference &ref); virtual SWIG_VOID(RESULT) getEvent(const eServiceReference &ref, ePtr &SWIG_OUTPUT, time_t start_time=-1); // returns true when not implemented - virtual int isPlayable(const eServiceReference &ref, const eServiceReference &ignore); + virtual int isPlayable(const eServiceReference &ref, const eServiceReference &ignore, bool simulate=false); virtual int getInfo(const eServiceReference &ref, int w); virtual std::string getInfoString(const eServiceReference &ref,int w); @@ -261,6 +261,8 @@ public: enum { sIsCrypted, /* is encrypted (no indication if decrypt was possible) */ sAspect, /* aspect ratio: 0=4:3, 1=16:9, 2=whatever we need */ + sFrameRate, /* frame rate */ + sProgressive, /* 0 = interlaced, 1 = progressive */ sIsMultichannel, /* multichannel *available* (probably not selected) */ /* "user serviceable info" - they are not reliable. Don't use them for anything except the service menu! @@ -285,12 +287,6 @@ public: sServiceref, sTimeCreate, /* unix time or string */ - sTitle, - sArtist, - sAlbum, - sComment, - sTracknumber, - sGenre, sCAIDs, sVideoType, /* MPEG2 MPEG4 */ @@ -303,6 +299,62 @@ public: sTransponderData, /* transponderdata as python dict */ + sCurrentChapter, + sCurrentTitle, + sTotalChapters, + sTotalTitles, + + sTagTitle, + sTagTitleSortname, + sTagArtist, + sTagArtistSortname, + sTagAlbum, + sTagAlbumSortname, + sTagComposer, + sTagDate, + sTagGenre, + sTagComment, + sTagExtendedComment, + sTagTrackNumber, + sTagTrackCount, + sTagAlbumVolumeNumber, + sTagAlbumVolumeCount, + sTagLocation, + sTagHomepage, + sTagDescription, + sTagVersion, + sTagISRC, + sTagOrganization, + sTagCopyright, + sTagCopyrightURI, + sTagContact, + sTagLicense, + sTagLicenseURI, + sTagPerformer, + sTagCodec, + sTagVideoCodec, + sTagAudioCodec, + sTagBitrate, + sTagNominalBitrate, + sTagMinimumBitrate, + sTagMaximumBitrate, + sTagSerial, + sTagEncoder, + sTagEncoderVersion, + sTagTrackGain, + sTagTrackPeak, + sTagAlbumGain, + sTagAlbumPeak, + sTagReferenceLevel, + sTagLanguageCode, + sTagImage, + sTagPreviewImage, + sTagAttachment, + sTagBeatsPerMinute, + sTagKeywords, + sTagCRC, + sTagChannelMode, + sUser = 0x100 }; enum { @@ -385,6 +437,8 @@ class iPauseableService: public iObject ~iPausableService(); #endif public: + + /* this will set the *state* directly. So just call a SINGLE function of those at a time. */ virtual RESULT pause()=0; virtual RESULT unpause()=0; @@ -420,6 +474,8 @@ public: audio will be switched off, sync will be disabled etc. */ virtual RESULT setTrickmode(int trick=0)=0; virtual RESULT isCurrentlySeekable()=0; + virtual RESULT seekChapter(int) { return -1; } + virtual RESULT seekTitle(int) { return -1; } }; SWIG_TEMPLATE_TYPEDEF(ePtr, iSeekableServicePtr); @@ -728,6 +784,7 @@ public: evStart, evEnd, + evTunedIn, evTuneFailed, /* when iServiceInformation is implemented:*/ @@ -752,6 +809,8 @@ public: evUpdatedRassInteractivePicMask, evVideoSizeChanged, + evVideoFramerateChanged, + evVideoProgressiveChanged, evStopped, @@ -834,9 +893,9 @@ public: virtual RESULT connectEvent(const Slot2 &event, ePtr &connection)=0; #endif virtual SWIG_VOID(RESULT) getError(int &SWIG_OUTPUT)=0; - virtual RESULT prepare(const char *filename, time_t begTime=-1, time_t endTime=-1, int eit_event_id=-1)=0; + virtual RESULT prepare(const char *filename, time_t begTime=-1, time_t endTime=-1, int eit_event_id=-1, const char *name=0, const char *descr=0, const char *tags=0)=0; virtual RESULT prepareStreaming()=0; - virtual RESULT start()=0; + virtual RESULT start(bool simulate=false)=0; virtual RESULT stop()=0; virtual SWIG_VOID(RESULT) frontendInfo(ePtr &SWIG_OUTPUT)=0; virtual SWIG_VOID(RESULT) stream(ePtr &SWIG_OUTPUT)=0;