+ return m_list->compareLessEqual(a, b);
+ }
+};
+#endif
+
+SWIG_IGNORE(iServiceOfflineOperations);
+class iServiceOfflineOperations: public iObject
+{
+#ifdef SWIG
+ iServiceOfflineOperations();
+ ~iServiceOfflineOperations();
+#endif
+public:
+ /* to delete a service, forever. */
+ virtual RESULT deleteFromDisk(int simulate=1)=0;
+
+ /* for transferring a service... */
+ virtual SWIG_VOID(RESULT) getListOfFilenames(std::list<std::string> &SWIG_OUTPUT)=0;
+
+ // TODO: additional stuff, like a conversion interface?
+};
+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);
+
+SWIG_IGNORE(iStreamedService);
+class iStreamedService: public iObject
+{
+#ifdef SWIG
+ iStreamedService();
+ ~iStreamedService();
+#endif
+public:
+ virtual PyObject *getBufferCharge()=0;
+ virtual int setBufferSize(int size)=0;
+};
+SWIG_TEMPLATE_TYPEDEF(ePtr<iStreamedService>, iStreamedServicePtr);
+
+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
+ iPlayableService_ENUMS();
+ ~iPlayableService_ENUMS();
+#endif
+public:
+ enum {