+ /* when iServiceInformation is implemented:*/
+ evUpdatedEventInfo,
+ evUpdatedInfo,
+
+ /* when seek() is implemented: */
+ evSeekableStatusChanged, /* for example when timeshifting */
+
+ evEOF,
+ evSOF, /* bounced against start of file (when seeking backwards) */
+
+ /* when cueSheet is implemented */
+ evCuesheetChanged,
+
+ /* when rdsDecoder is implemented */
+ evUpdatedRadioText,
+ evUpdatedRtpText,
+
+ /* Radio Screenshow Support */
+ evUpdatedRassSlidePic,
+ evUpdatedRassInteractivePicMask,
+
+ evVideoSizeChanged,
+ evVideoFramerateChanged,
+ evVideoProgressiveChanged,
+
+ evStopped,
+
+ evUser = 0x100
+ };
+};
+
+SWIG_IGNORE(iPlayableService);
+class iPlayableService: public iPlayableService_ENUMS, public iObject
+{
+#ifdef SWIG
+ iPlayableService();
+ ~iPlaybleService();
+#endif
+ friend class iServiceHandler;
+public:
+#ifndef SWIG
+ virtual RESULT connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection)=0;
+#endif
+ virtual RESULT start()=0;
+ virtual RESULT stop()=0;
+ /* might have to be changed... */
+ virtual RESULT setTarget(int target)=0;
+ virtual SWIG_VOID(RESULT) seek(ePtr<iSeekableService> &SWIG_OUTPUT)=0;
+ virtual SWIG_VOID(RESULT) pause(ePtr<iPauseableService> &SWIG_OUTPUT)=0;
+ virtual SWIG_VOID(RESULT) info(ePtr<iServiceInformation> &SWIG_OUTPUT)=0;
+ virtual SWIG_VOID(RESULT) audioTracks(ePtr<iAudioTrackSelection> &SWIG_OUTPUT)=0;
+ virtual SWIG_VOID(RESULT) audioChannel(ePtr<iAudioChannelSelection> &SWIG_OUTPUT)=0;
+ virtual SWIG_VOID(RESULT) subServices(ePtr<iSubserviceList> &SWIG_OUTPUT)=0;
+ virtual SWIG_VOID(RESULT) frontendInfo(ePtr<iFrontendInformation> &SWIG_OUTPUT)=0;
+ virtual SWIG_VOID(RESULT) timeshift(ePtr<iTimeshiftService> &SWIG_OUTPUT)=0;
+ virtual SWIG_VOID(RESULT) cueSheet(ePtr<iCueSheet> &SWIG_OUTPUT)=0;
+ virtual SWIG_VOID(RESULT) subtitle(ePtr<iSubtitleOutput> &SWIG_OUTPUT)=0;
+ 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);
+
+class iRecordableService_ENUMS
+{
+#ifdef SWIG
+ iRecordableService_ENUMS();
+ ~iRecordableService_ENUMS();
+#endif
+public:
+ enum {
+ evStart,
+ evEnd,
+ evTunedIn,
+ evTuneFailed,
+ evRecordRunning,
+ evRecordStopped,
+ evNewProgramInfo,
+ evRecordFailed,
+ evRecordWriteError
+ };
+ enum {
+ NoError=0,
+ errOpenRecordFile=-1,
+ errNoDemuxAvailable=-2,
+ errNoTsRecorderAvailable=-3,
+ errDiskFull=-4,
+ errTuneFailed=-255,
+ errMisconfiguration = -256,
+ errNoResources = -257,
+ };
+};
+
+SWIG_IGNORE(iRecordableService);
+class iRecordableService: public iRecordableService_ENUMS, public iObject
+{
+#ifdef SWIG
+ iRecordableService();
+ ~iRecordableService();
+#endif
+public:
+#ifndef SWIG
+ virtual RESULT connectEvent(const Slot2<void,iRecordableService*,int> &event, ePtr<eConnection> &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 prepareStreaming()=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;
+};
+SWIG_TEMPLATE_TYPEDEF(ePtr<iRecordableService>, iRecordableServicePtr);
+
+extern PyObject *New_iRecordableServicePtr(const ePtr<iRecordableService> &ref); // defined in enigma_python.i
+
+inline PyObject *PyFrom(ePtr<iRecordableService> &c)
+{
+ return New_iRecordableServicePtr(c);
+}
+
+#ifndef SWIG
+#ifdef PYTHON_REFCOUNT_DEBUG
+inline ePyObject Impl_New_iRecordableServicePtr(const char* file, int line, const ePtr<iRecordableService> &ptr)
+{
+ return ePyObject(New_iRecordableServicePtr(ptr), file, line);
+}
+#define NEW_iRecordableServicePtr(ptr) Impl_New_iRecordableServicePtr(__FILE__, __LINE__, ptr)
+#else
+inline ePyObject Impl_New_iRecordableServicePtr(const ePtr<iRecordableService> &ptr)
+{
+ return New_iRecordableServicePtr(ptr);
+}
+#define NEW_iRecordableServicePtr(ptr) Impl_New_iRecordableServicePtr(ptr)
+#endif
+#endif // SWIG
+
+SWIG_IGNORE(iServiceHandler);