git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
save timing information after record
[enigma2.git]
/
lib
/
service
/
servicedvb.h
diff --git
a/lib/service/servicedvb.h
b/lib/service/servicedvb.h
index e99faffd510db0c348ae99b0ecd01b77170f09ad..a07e4410b7b0515840ff2062a85a630f640d533f 100644
(file)
--- a/
lib/service/servicedvb.h
+++ b/
lib/service/servicedvb.h
@@
-6,6
+6,7
@@
#include <lib/dvb/pmt.h>
#include <lib/dvb/eit.h>
#include <lib/dvb/pmt.h>
#include <lib/dvb/eit.h>
+#include <lib/base/filepush.h>
class eServiceFactoryDVB: public iServiceHandler
{
class eServiceFactoryDVB: public iServiceHandler
{
@@
-32,7
+33,8
@@
class eDVBServiceList: public iListableService, public iMutableServiceList
DECLARE_REF(eDVBServiceList);
public:
virtual ~eDVBServiceList();
DECLARE_REF(eDVBServiceList);
public:
virtual ~eDVBServiceList();
- RESULT getContent(std::list<eServiceReference> &list);
+ RESULT getContent(std::list<eServiceReference> &list, bool sorted=false);
+ RESULT getContent(PyObject *list, bool sorted=false);
RESULT getNext(eServiceReference &ptr);
int compareLessEqual(const eServiceReference &a, const eServiceReference &b);
RESULT getNext(eServiceReference &ptr);
int compareLessEqual(const eServiceReference &a, const eServiceReference &b);
@@
-41,6
+43,7
@@
public:
RESULT addService(eServiceReference &ref);
RESULT removeService(eServiceReference &ref);
RESULT moveService(eServiceReference &ref, int pos);
RESULT addService(eServiceReference &ref);
RESULT removeService(eServiceReference &ref);
RESULT moveService(eServiceReference &ref, int pos);
+ RESULT setListName(const std::string &name);
private:
RESULT startQuery();
eServiceReference m_parent;
private:
RESULT startQuery();
eServiceReference m_parent;
@@
-84,6
+87,8
@@
public:
RESULT seekTo(pts_t to);
RESULT seekRelative(int direction, pts_t to);
RESULT getPlayPosition(pts_t &pos);
RESULT seekTo(pts_t to);
RESULT seekRelative(int direction, pts_t to);
RESULT getPlayPosition(pts_t &pos);
+ RESULT setTrickmode(int trick=0);
+ RESULT isCurrentlySeekable();
// iServiceInformation
RESULT getName(std::string &name);
// iServiceInformation
RESULT getName(std::string &name);
@@
-106,6
+111,8
@@
public:
// iTimeshiftService
RESULT startTimeshift();
RESULT stopTimeshift();
// iTimeshiftService
RESULT startTimeshift();
RESULT stopTimeshift();
+ int isTimeshiftActive();
+ RESULT activateTimeshift();
private:
friend class eServiceFactoryDVB;
private:
friend class eServiceFactoryDVB;
@@
-115,7
+122,8
@@
private:
ePtr<iTSMPEGDecoder> m_decoder;
ePtr<iTSMPEGDecoder> m_decoder;
- eDVBServicePMTHandler m_service_handler;
+ /* in timeshift mode, we essentially have two channels, and thus pmt handlers. */
+ eDVBServicePMTHandler m_service_handler, m_service_handler_timeshift;
eDVBServiceEITHandler m_event_handler;
eDVBServicePlay(const eServiceReference &ref, eDVBService *service);
eDVBServiceEITHandler m_event_handler;
eDVBServicePlay(const eServiceReference &ref, eDVBService *service);
@@
-123,12
+131,31
@@
private:
void gotNewEvent();
void serviceEvent(int event);
void gotNewEvent();
void serviceEvent(int event);
+ void serviceEventTimeshift(int event);
Signal2<void,iPlayableService*,int> m_event;
Signal2<void,iPlayableService*,int> m_event;
- int m_is_pvr, m_is_paused, m_timeshift_enabled;
+ int m_is_pvr, m_is_paused, m_timeshift_enabled, m_timeshift_active;
+
+ std::string m_timeshift_file;
+ int m_timeshift_fd;
+
+ ePtr<iDVBDemux> m_decode_demux;
int m_current_audio_stream;
int selectAudioStream(int n);
int m_current_audio_stream;
int selectAudioStream(int n);
+
+ ePtr<iDVBTSRecorder> m_record;
+ std::set<int> m_pids_active;
+
+ void updateTimeshiftPids();
+ void switchToLive();
+ void switchToTimeshift();
+
+ void updateDecoder();
+
+ int m_skipmode;
+
+ ePtr<eCueSheet> m_cue;
};
#endif
};
#endif