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,
+ sVideoType // MPEG2 MPEG4
};
- 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);
-class iFrontendStatusInformation: public iObject
+class iFrontendInformation: public iObject
{
#ifdef SWIG
- iFrontendStatusInformation();
- ~iFrontendStatusInformation();
+ iFrontendInformation();
+ ~iFrontendInformation();
#endif
public:
enum {
bitErrorRate,
signalPower,
signalQuality,
- LockState,
- SyncState
+ lockState,
+ syncState,
+ frontendNumber
};
virtual int getFrontendInfo(int w)=0;
virtual PyObject *getFrontendData(bool original=false)=0;
};
-TEMPLATE_TYPEDEF(ePtr<iFrontendStatusInformation>, iFrontendStatusInformationPtr);
+TEMPLATE_TYPEDEF(ePtr<iFrontendInformation>, iFrontendInformationPtr);
class iPauseableService: public iObject
{
TEMPLATE_TYPEDEF(ePtr<iAudioTrackSelection>, iAudioTrackSelectionPtr);
+class iAudioChannelSelection: public iObject
+{
+#ifdef SWIG
+ iAudioChannelSelection();
+ ~iAudioChannelSelection();
+#endif
+public:
+ enum { LEFT, STEREO, RIGHT };
+ virtual int getCurrentChannel()=0;
+ virtual RESULT selectChannel(int i)=0;
+};
+
+TEMPLATE_TYPEDEF(ePtr<iAudioChannelSelection>, iAudioChannelSelectionPtr);
+
+class iAudioDelay: public iObject
+{
+#ifdef SWIG
+ iAudioDelay();
+ ~iAudioDelay();
+#endif
+public:
+ virtual int getAC3Delay()=0;
+ virtual int getPCMDelay()=0;
+ virtual void setAC3Delay(int)=0;
+ virtual void setPCMDelay(int)=0;
+};
+
+TEMPLATE_TYPEDEF(ePtr<iAudioDelay>, iAudioDelayPtr);
+
class iSubserviceList: public iObject
{
#ifdef SWIG
TEMPLATE_TYPEDEF(ePtr<iCueSheet>, iCueSheetPtr);
+class eWidget;
+class PyList;
+
+class iSubtitleOutput: public iObject
+{
+public:
+ virtual RESULT enableSubtitles(eWidget *parent, PyObject *entry)=0;
+ virtual RESULT disableSubtitles(eWidget *parent)=0;
+ virtual PyObject *getSubtitleList()=0;
+};
+
+TEMPLATE_TYPEDEF(ePtr<iSubtitleOutput>, iSubtitleOutputPtr);
+
class iPlayableService: public iObject
{
#ifdef SWIG
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) audioTracks(ePtr<iAudioTrackSelection> &SWIG_OUTPUT)=0;
+ virtual SWIG_VOID(RESULT) audioChannel(ePtr<iAudioChannelSelection> &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) frontendInfo(ePtr<iFrontendInformation> &SWIG_OUTPUT)=0;
virtual SWIG_VOID(RESULT) timeshift(ePtr<iTimeshiftService> &SWIG_OUTPUT)=0;
virtual SWIG_VOID(RESULT) cueSheet(ePtr<iCueSheet> &SWIG_OUTPUT)=0;
+ virtual SWIG_VOID(RESULT) subtitle(ePtr<iSubtitleOutput> &SWIG_OUTPUT)=0;
+ virtual SWIG_VOID(RESULT) audioDelay(ePtr<iAudioDelay> &SWIG_OUTPUT)=0;
};
TEMPLATE_TYPEDEF(ePtr<iPlayableService>, iPlayableServicePtr);
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;
+ virtual SWIG_VOID(RESULT) frontendInfo(ePtr<iFrontendInformation> &SWIG_OUTPUT)=0;
};
TEMPLATE_TYPEDEF(ePtr<iRecordableService>, iRecordableServicePtr);
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;