return self.pnav.enqueueService(ref)
def getCurrentService(self):
- service = iPlayableServicePtr()
- if self.pnav.getCurrentService(service):
+ service = self.pnav.getCurrentService()
+
+ if service is None:
return None
+
return service
def getPlaylist(self):
self.ref = ref
def getStaticServiceInformation(self):
- info = iStaticServiceInformationPtr()
- if NavigationInstance.instance.ServiceHandler.info(self.ref, info):
- info = None
- return info
+ return NavigationInstance.instance.ServiceHandler.info(self.ref)
def __str__(self):
return self.ref.toString()
def getServiceName(self):
info = self.getStaticServiceInformation()
- if not info:
+ if info is not None:
return None
return info.getName(self.ref)
%feature("ref") iObject "$this->AddRef(); eDebug(\"AddRef (%s:%d)!\", __FILE__, __LINE__); "
%feature("unref") iObject "$this->Release(); eDebug(\"Release! %s:%d\", __FILE__, __LINE__); "
+
/* this magic allows smartpointer to be used as OUTPUT arguments, i.e. call-by-reference-styled return value. */
-%define %typemap_output_ptr(Type)
+%define %typemap_output_simple(Type)
%typemap(in,numinputs=0) Type *OUTPUT ($*1_ltype temp),
Type &OUTPUT ($*1_ltype temp)
"$1 = new Type;";
"$result = t_output_helper($result, (SWIG_NewPointerObj((void*)($1), $1_descriptor, 1)));"
%enddef
-%newobject eDebugClassPtr::operator->;
+%define %typemap_output_ptr(Type)
+ %typemap(in,numinputs=0) Type *OUTPUT ($*1_ltype temp),
+ Type &OUTPUT ($*1_ltype temp)
+ "$1 = new Type;";
+ %fragment("t_out_helper"{Type},"header",
+ fragment="t_output_helper") {}
+ %typemap(argout,fragment="t_out_helper"{Type}) Type *OUTPUT, Type &OUTPUT
+ // generate None if smartpointer is NULL
+ "$result = t_output_helper($result, ((*$1) ? SWIG_NewPointerObj((void*)($1), $1_descriptor, 1) : (Py_INCREF(Py_None), Py_None)));"
+%enddef
+
#define DEBUG
%include "typemaps.i"
%template(y) x; \
typedef x y; \
%typemap_output_ptr(x);
+#define SWIG_ALLOW_OUTPUT_SIMPLE(x) %typemap_output_simple(x);
#else
#define TEMPLATE_TYPEDEF(x, y) typedef x y
+#define SWIG_ALLOW_OUTPUT_SIMPLE(x)
#endif
+
#ifdef SWIG
#define SWIG_INPUT INPUT
#define SWIG_OUTPUT OUTPUT
return path < c.path;
}
operator bool() const
+ {
+ return valid();
+ }
+
+ int valid() const
{
return type != idInvalid;
}
};
+SWIG_ALLOW_OUTPUT_SIMPLE(eServiceReference);
+
typedef unsigned long long pts_t;
/* the reason we have the servicereference as additional argument is
class eServiceEvent;
+TEMPLATE_TYPEDEF(ePtr<eServiceEvent>, eServiceEventPtr);
+
class iServiceInformation: public iObject
{
public:
TEMPLATE_TYPEDEF(ePtr<iListableService>, iListableServicePtr);
+class iServiceOfflineOperations: public iObject
+{
+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?
+};
+
class iServiceHandler: public iObject
{
public:
virtual SWIG_VOID(RESULT) record(const eServiceReference &, ePtr<iRecordableService> &SWIG_OUTPUT)=0;
virtual SWIG_VOID(RESULT) list(const eServiceReference &, ePtr<iListableService> &SWIG_OUTPUT)=0;
virtual SWIG_VOID(RESULT) info(const eServiceReference &, ePtr<iStaticServiceInformation> &SWIG_OUTPUT)=0;
+ virtual SWIG_VOID(RESULT) offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &SWIG_OUTPUT)=0;
};
TEMPLATE_TYPEDEF(ePtr<iServiceHandler>, iServiceHandlerPtr);