shouldSort=8, // should be ASCII-sorted according to service_name. great for directories.
hasSortKey=16, // has a sort key in data[3]. not having a sort key implies 0.
sort1=32, // sort key is 1 instead of 0
- isMarker=64 // Marker
+ isMarker=64, // Marker
+ isGroup=128 // is a group of services
};
int flags; // flags will NOT be compared.
data[3]=data3;
data[4]=data4;
}
+#endif
eServiceReference(int type, int flags, const std::string &path)
: type(type), flags(flags), path(path)
{
memset(data, 0, sizeof(data));
}
-#endif
eServiceReference(const std::string &string);
std::string toString() const;
std::string toCompareString() const;
extern PyObject *New_eServiceReference(const eServiceReference &ref); // defined in enigma_python.i
+#ifndef SWIG
+#ifdef PYTHON_REFCOUNT_DEBUG
+inline ePyObject Impl_New_eServiceReference(const char* file, int line, const eServiceReference &ref)
+{
+ return ePyObject(New_eServiceReference(ref), file, line);
+}
+#define NEW_eServiceReference(ref) Impl_New_eServiceReference(__FILE__, __LINE__, ref)
+#else
+inline ePyObject Impl_New_eServiceReference(const eServiceReference &ref)
+{
+ return New_eServiceReference(ref);
+}
+#define NEW_eServiceReference(ref) Impl_New_eServiceReference(ref)
+#endif
+#endif // SWIG
+
typedef long long pts_t;
/* the reason we have the servicereference as additional argument is
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 bool isPlayable(const eServiceReference &ref, const eServiceReference &ignore);
+ virtual int isPlayable(const eServiceReference &ref, const eServiceReference &ignore);
virtual int getInfo(const eServiceReference &ref, int w);
virtual std::string getInfoString(const eServiceReference &ref,int w);
sVideoType, // MPEG2 MPEG4
sTags, /* space seperated list of tags */
+
+ sDVBState, /* states as defined in pmt handler (as events there) */
};
enum { resNA = -1, resIsString = -2, resIsPyObject = -3 };
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
+
// TEMPLATE_TYPEDEF(std::list<eServiceReference>, eServiceReferenceList);
class iMutableServiceList: public iObject
~iListableService();
#endif
public:
+#ifndef SWIG
/* legacy interface: get a list */
virtual RESULT getContent(std::list<eServiceReference> &list, bool sorted=false)=0;
+#endif
virtual PyObject *getContent(const char* format, bool sorted=false)=0;
/* new, shiny interface: streaming. */