trunk 20080912
[gitenigma.git] / include / lib / dvb / subtitling.h
blob0546c1ded7220b41d84f99125d79d48cbaab3fbc
1 #ifndef __subtitling_h
2 #define __subtitling_h
4 #include <linux/fb.h>
5 #include <lib/gui/ewidget.h>
6 #include <lib/base/ebase.h>
7 #include <lib/dvb/subtitle.h>
8 #include <queue>
10 class eSubtitleWidget: public eWidget
12 int pid;
13 std::set<int> pageids;
14 void gotData(int);
15 eSocketNotifier *sn;
16 int fd;
17 int isvisible;
18 #ifndef TUXTXT_CFG_STANDALONE
19 int ttxpage;
20 int ttx_running;
21 int rememberttxpage;
22 int rememberttxsubpage;
23 #endif
24 subtitle_ctx *subtitle; // the subtitle context
26 struct pes_packet_s
28 unsigned long long pts;
29 unsigned char *pkt;
30 int len;
33 std::queue<pes_packet_s> queue;
35 eTimer timer, timeout;
36 void processPESPacket(unsigned char *pkt, int len);
37 void processNext();
38 void displaying_timeout();
40 unsigned char pesbuffer[65536];
41 int pos;
42 int peslen;
43 static eSubtitleWidget *instance;
44 int eventHandler(const eWidgetEvent &event);
45 void globalFocusHasChanged(const eWidget* newFocus);
46 public:
47 void start(int pid, const std::set<int> &pageids);
48 #ifndef TUXTXT_CFG_STANDALONE
49 void startttx(int page);
50 void stopttx();
51 #endif
52 void stop();
53 int getCurPid();
54 eSubtitleWidget();
55 ~eSubtitleWidget();
56 static eSubtitleWidget *getInstance() { return instance; }
59 #endif