std::string getPath() { return path; }
void setPath( const std::string &n ) { path=n; }
+ unsigned int getUnsignedData(unsigned int num) const
+ {
+ if ( num < sizeof(data)/sizeof(int) )
+ return data[num];
+ return 0;
+ }
+
int getData(unsigned int num) const
{
if ( num < sizeof(data)/sizeof(int) )
return 0;
}
+ void setUnsignedData(unsigned int num, unsigned int val)
+ {
+ if ( num < sizeof(data)/sizeof(int) )
+ data[num] = val;
+ }
+
void setData(unsigned int num, int val)
{
if ( num < sizeof(data)/sizeof(int) )
virtual SWIG_VOID(RESULT) getName(std::string &SWIG_OUTPUT)=0;
virtual SWIG_VOID(RESULT) getEvent(ePtr<eServiceEvent> &SWIG_OUTPUT, int nownext);
- enum {
+ enum {
sIsCrypted, /* is encrypted (no indication if decrypt was possible) */
sAspect, /* aspect ratio: 0=4:3, 1=16:9, 2=whatever we need */
sIsMultichannel, /* multichannel *available* (probably not selected) */
sProvider,
sDescription,
+ sServiceref,
sTimeCreate, // unix time or string
+
+ sTitle,
+ sArtist,
+ sAlbum,
+ sComment,
+ sTracknumber,
+ sGenre,
+ sCAIDs,
};
- enum { resNA = -1, resIsString = -2 };
+ enum { resNA = -1, resIsString = -2, resIsPyObject = -3 };
virtual int getInfo(int w);
virtual std::string getInfoString(int w);
+ virtual PyObject *getInfoObject(int w);
};
TEMPLATE_TYPEDEF(ePtr<iServiceInformation>, iServiceInformationPtr);
enum {
bitErrorRate,
signalPower,
- signalQuality
+ signalQuality,
+ LockState,
+ SyncState
};
virtual int getFrontendInfo(int w)=0;
+ virtual PyObject *getFrontendData(bool original=false)=0;
};
TEMPLATE_TYPEDEF(ePtr<iFrontendStatusInformation>, iFrontendStatusInformationPtr);
/* if you want to do several seeks in a row, you can enable the trickmode.
audio will be switched off, sync will be disabled etc. */
virtual RESULT setTrickmode(int trick=0)=0;
+ virtual RESULT isCurrentlySeekable()=0;
};
TEMPLATE_TYPEDEF(ePtr<iSeekableService>, iSeekableServicePtr);
TEMPLATE_TYPEDEF(ePtr<iTimeshiftService>, iTimeshiftServicePtr);
+ /* not related to eCueSheet */
+class iCueSheet: public iObject
+{
+#ifdef SWIG
+ iCueSheet();
+ ~iCueSheet();
+#endif
+public:
+ /* returns a list of (pts, what)-tuples */
+ virtual PyObject *getCutList() = 0;
+ virtual void setCutList(PyObject *list) = 0;
+ virtual void setCutListEnable(int enable) = 0;
+ enum { cutIn = 0, cutOut = 1, cutMark = 2 };
+};
+
+TEMPLATE_TYPEDEF(ePtr<iCueSheet>, iCueSheetPtr);
+
class iPlayableService: public iObject
{
#ifdef SWIG
evEOF,
evSOF, /* bounced against start of file (when seeking backwards) */
+
+ /* only when cueSheet is implemented */
+ evCuesheetChanged,
};
virtual RESULT connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection)=0;
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) subServices(ePtr<iSubserviceList> &SWIG_OUTPUT)=0;
virtual SWIG_VOID(RESULT) frontendStatusInfo(ePtr<iFrontendStatusInformation> &SWIG_OUTPUT)=0;
virtual SWIG_VOID(RESULT) timeshift(ePtr<iTimeshiftService> &SWIG_OUTPUT)=0;
+ virtual SWIG_VOID(RESULT) cueSheet(ePtr<iCueSheet> &SWIG_OUTPUT)=0;
};
TEMPLATE_TYPEDEF(ePtr<iPlayableService>, iPlayableServicePtr);
~iRecordableService();
#endif
public:
- virtual RESULT prepare(const char *filename)=0;
+ virtual RESULT prepare(const char *filename, time_t begTime=-1, time_t endTime=-1, int eit_event_id=-1)=0;
virtual RESULT start()=0;
virtual RESULT stop()=0;
};
public:
/* legacy interface: get a list */
virtual RESULT getContent(std::list<eServiceReference> &list, bool sorted=false)=0;
- virtual RESULT getContent(PyObject *list, bool sorted=false)=0;
+ virtual PyObject *getContent(const char* format, bool sorted=false)=0;
/* new, shiny interface: streaming. */
virtual SWIG_VOID(RESULT) getNext(eServiceReference &SWIG_OUTPUT)=0;