+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
+ iRecordableService_ENUMS();
+ ~iRecordableService_ENUMS();
+#endif
+public:
+ enum {
+ evStart,
+ evEnd,
+ evTunedIn,
+ evTuneFailed,
+ evRecordRunning,
+ evRecordStopped,
+ evNewProgramInfo,
+ evRecordFailed
+ /*evDiskFull*/
+ };
+ enum {
+ NoError=0,
+ errOpenRecordFile=-1,
+ errNoDemuxAvailable=-2,
+ errNoTsRecorderAvailable=-3,
+ errDiskFull=-4,
+ errTuneFailed=-255
+ };
+};
+
+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()=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);