add datetime mgr
[enigma2.git] / lib / dvb / idvb.h
index 0dc5ce5766e5ed0655ce3abb6679dac1ea881fab..d338f298533ae4ffaf2ddd84caf58baab0322708 100644 (file)
@@ -349,8 +349,9 @@ public:
 
 #define MAX_DISEQC_LENGTH  16
 
-struct eDVBDiseqcCommand
+class eDVBDiseqcCommand
 {
+public:
        int len;
        __u8 data[MAX_DISEQC_LENGTH];
 #if HAVE_DVB_API_VERSION < 3
@@ -360,6 +361,7 @@ struct eDVBDiseqcCommand
 };
 
 class iDVBSatelliteEquipmentControl;
+class eSecCommandList;
 
 class iDVBFrontend: public iObject
 {
@@ -378,7 +380,7 @@ public:
        };
        virtual RESULT getState(int &state)=0;
        enum {
-               toneOn, toneOff
+               toneOff, toneOn
        };
        virtual RESULT setTone(int tone)=0;
        enum {
@@ -386,7 +388,11 @@ public:
        };
        virtual RESULT setVoltage(int voltage)=0;
        virtual RESULT sendDiseqc(const eDVBDiseqcCommand &diseqc)=0;
+       virtual RESULT sendToneburst(int burst)=0;
        virtual RESULT setSEC(iDVBSatelliteEquipmentControl *sec)=0;
+       virtual RESULT setSecSequence(const eSecCommandList &list)=0;
+       virtual RESULT getData(int num, int &data)=0;
+       virtual RESULT setData(int num, int val)=0;
 };
 
 class iDVBSatelliteEquipmentControl: public iObject
@@ -408,7 +414,8 @@ public:
                state_idle,        /* not yet tuned */
                state_tuning,      /* currently tuning (first time) */
                state_unavailable, /* currently unavailable, will be back without further interaction */
-               state_ok           /* ok */
+               state_ok,          /* ok */
+               state_release      /* channel is being shut down. */
        };
        virtual RESULT connectStateChange(const Slot1<void,iDVBChannel*> &stateChange, ePtr<eConnection> &connection)=0;
        virtual RESULT getState(int &state)=0;
@@ -422,6 +429,23 @@ public:
        
                /* direct frontend access for raw channels and/or status inquiries. */
        virtual RESULT getFrontend(ePtr<iDVBFrontend> &frontend)=0;
+       
+               /* use count handling */
+       virtual void AddUse() = 0;
+       virtual void ReleaseUse() = 0;
+};
+
+class iDVBPVRChannel: public iDVBChannel
+{
+public:
+       enum
+       {
+               state_eof = state_release + 1  /* end-of-file reached. */
+       };
+       
+               /* FIXME: there are some very ugly buffer-end and ... related problems */
+               /* so this is VERY UGLY. */
+       virtual RESULT playFile(const char *file) = 0;
 };
 
 class iDVBSectionReader;