#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()
virtual int getLength(const eServiceReference &ref);
virtual SWIG_VOID(RESULT) getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &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);
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!
sVideoHeight,
sVideoWidth,
- sTransponderData /* transponderdata as python dict */
+ sTransponderData, /* transponderdata as python dict */
+
+ sCurrentChapter,
+ sCurrentTitle,
+ sTotalChapters,
+ sTotalTitles,
+
+ sUser = 0x100
};
enum {
resNA = -1,
lockState,
syncState,
frontendNumber,
- signalPowerdB,
+ signalQualitydB,
};
};
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<iSeekableService>, iSeekableServicePtr);
#ifndef SWIG
std::string m_description;
std::string m_language; /* iso639 */
+ int m_pid; /* for association with the stream. */
#endif
std::string getDescription() { return m_description; }
std::string getLanguage() { return m_language; }
+ int getPID() { return m_pid; }
};
SWIG_ALLOW_OUTPUT_SIMPLE(iAudioTrackInfo);
};
SWIG_TEMPLATE_TYPEDEF(ePtr<iServiceOfflineOperations>, iServiceOfflineOperationsPtr);
+SWIG_IGNORE(iStreamableService);
+class iStreamableService: public iObject
+{
+#ifdef SWIG
+ iStreamableService();
+ ~iStreamableService();
+#endif
+public:
+ /* returns a dict:
+ { "demux": <n>,
+ "pids": [(x,type),(y,type),(z,type),..],
+ ...
+ }
+ with type being "video", "audio", "pmt", "pat"...
+ */
+ virtual PyObject *getStreamingData()=0;
+};
+SWIG_TEMPLATE_TYPEDEF(ePtr<iStreamableService>, iStreamableServicePtr);
+
+class iServiceKeys_ENUMS
+{
+#ifdef SWIG
+ iServiceKeys_ENUMS();
+ ~iServiceKeys_ENUMS();
+#endif
+public:
+ enum {
+ keyLeft,
+ keyRight,
+ keyUp,
+ keyDown,
+ keyOk,
+ keyUser = 0x100
+ };
+};
+
+SWIG_IGNORE(iServiceKeys);
+class iServiceKeys: public iServiceKeys_ENUMS, public iObject
+{
+#ifdef SWIG
+ iServiceKeys();
+ ~iServiceKeys();
+#endif
+public:
+ virtual SWIG_VOID(RESULT) keyPressed(int key)=0;
+};
+SWIG_TEMPLATE_TYPEDEF(ePtr<iServiceKeys>, iServiceKeysPtr);
+
class iPlayableService_ENUMS
{
#ifdef SWIG
evStart,
evEnd,
+ evTunedIn,
evTuneFailed,
/* when iServiceInformation is implemented:*/
evUpdatedRassInteractivePicMask,
evVideoSizeChanged,
+ evVideoFramerateChanged,
+ evVideoProgressiveChanged,
+
+ evStopped,
- evStopped
+ evUser = 0x100
};
};
-class iStreamableService;
-
SWIG_IGNORE(iPlayableService);
class iPlayableService: public iPlayableService_ENUMS, public iObject
{
virtual SWIG_VOID(RESULT) audioDelay(ePtr<iAudioDelay> &SWIG_OUTPUT)=0;
virtual SWIG_VOID(RESULT) rdsDecoder(ePtr<iRdsDecoder> &SWIG_OUTPUT)=0;
virtual SWIG_VOID(RESULT) stream(ePtr<iStreamableService> &SWIG_OUTPUT)=0;
+ virtual SWIG_VOID(RESULT) keys(ePtr<iServiceKeys> &SWIG_OUTPUT)=0;
};
SWIG_TEMPLATE_TYPEDEF(ePtr<iPlayableService>, iPlayableServicePtr);
-SWIG_IGNORE(iStreamableService);
-class iStreamableService: public iObject
-{
-#ifdef SWIG
- iStreamableService();
- ~iStreamableService();
-#endif
-public:
- /* returns a dict:
- { "demux": <n>,
- "pids": [(x,type),(y,type),(z,type),..],
- ...
- }
- with type being "video", "audio", "pmt", "pat"...
- */
- virtual PyObject *getStreamingData()=0;
-};
-SWIG_TEMPLATE_TYPEDEF(ePtr<iStreamableService>, iStreamableServicePtr);
-
class iRecordableService_ENUMS
{
#ifdef SWIG
errNoDemuxAvailable=-2,
errNoTsRecorderAvailable=-3,
errDiskFull=-4,
- errTuneFailed=-255
+ errTuneFailed=-255,
+ errMisconfiguration = -256,
+ errNoResources = -257,
};
};
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 prepareStreaming()=0;
- virtual RESULT start()=0;
+ virtual RESULT start(bool simulate=false)=0;
virtual RESULT stop()=0;
virtual SWIG_VOID(RESULT) frontendInfo(ePtr<iFrontendInformation> &SWIG_OUTPUT)=0;
virtual SWIG_VOID(RESULT) stream(ePtr<iStreamableService> &SWIG_OUTPUT)=0;