Support turbo2.
[vuplus_dvbapp] / lib / service / servicedvbfcc.h
1 #ifndef __servicedvbfcc_h
2 #define __servicedvbfcc_h
3
4 #include <lib/service/servicedvb.h>
5 #include <list>
6
7 #include <lib/dvb/fcc.h>
8
9 class eDVBServiceFCCPlay: public eDVBServicePlay
10 {
11         DECLARE_REF(eDVBServiceFCCPlay);
12 public:
13         eDVBServiceFCCPlay(const eServiceReference &ref, eDVBService *service);
14         virtual ~eDVBServiceFCCPlay();
15         void serviceEvent(int event);
16         RESULT start();
17 protected:
18         void pushbackFCCEvents(int event);
19         void popFCCEvents();
20         void changeFCCMode();
21         void processNewProgramInfo(bool toLive=false);
22         void updateFCCDecoder(bool sendSeekableStateChanged=false);
23         void FCCDecoderStop();
24         void switchToLive();
25         bool checkUsbTuner();
26         bool getFCCStateDecoding();
27         void setNormalDecoding();
28
29         bool m_fcc_enable;
30
31         enum {
32                 fcc_start               = 1,
33                 fcc_tune_failed = 2,
34                 fcc_failed              = 4,
35                 fcc_ready               = 8,
36                 fcc_decoding    = 16,
37                 fcc_novideo             = 32,
38         };
39         int m_fcc_flag;
40
41         enum {
42                 fcc_mode_preparing,
43                 fcc_mode_decoding
44         };
45         int m_fcc_mode;
46
47         bool m_fcc_mustplay;
48         std::list<int> m_fcc_events;
49         int m_pmtVersion;
50         bool m_normal_decoding;
51 };
52
53 #endif /* __servicedvbfcc_h */