]> git.vomp.tv Git - vompclient.git/blob - vvideolivetv.h
Updates to new streaming protocol and live tv
[vompclient.git] / vvideolivetv.h
1 /*
2     Copyright 2007 Chris Tallon
3
4     This file is part of VOMP.
5
6     VOMP is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation; either version 2 of the License, or
9     (at your option) any later version.
10
11     VOMP is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with VOMP; if not, write to the Free Software
18     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19 */
20
21 #ifndef VVIDEOLIVETV_H
22 #define VVIDEOLIVETV_H
23
24 #include <stdio.h>
25 #include <vector>
26 #include <math.h>
27
28 #include "boxx.h"
29 #include "region.h"
30 #include "wwss.h"
31 #include "vdr.h"
32 #include "wtextbox.h"
33 #include "wselectlist.h"
34 #include "timerreceiver.h"
35
36 class VChannelList;
37 class Video;
38 class VChannelList;
39 class BoxStack;
40 class WTextbox;
41 class PlayerLiveTV;
42
43 class VVideoLiveTV : public Boxx, public TimerReceiver
44 {
45   public:
46     VVideoLiveTV(ChannelList* chanList, ULONG initialChannelNumber, VChannelList* vchannelList);
47     ~VVideoLiveTV();
48     int handleCommand(int command);
49     void processMessage(Message* m);
50
51     void go();
52
53     bool channelChange(UCHAR changeType, UINT newData);
54     // changeType = INDEX = (newData is a channel index in the list)
55     //            = NUMBER = (newData is a real channel number)
56     //            = OFFSET = (newData is UP or DOWN)
57
58     const static UCHAR INDEX = 1;
59     const static UCHAR NUMBER = 2;
60     const static UCHAR OFFSET = 3;
61     const static UCHAR PREVIOUS = 4;
62     const static UCHAR UP = 1;
63     const static UCHAR DOWN = 2;
64
65     void timercall(int ref);
66
67   private:
68     BoxStack* boxstack;
69     VDR* vdr;
70     Video* video;
71     PlayerLiveTV* player;
72     bool playing;
73     ChannelList* chanList;
74     VChannelList* vchannelList;
75     EventList* eventList;
76     int numberWidth;
77     int videoMode;
78
79     UINT currentChannelIndex;
80     UINT previousChannelIndex;
81     UINT osdChannelIndex;
82     int keying;
83     int keyingInput[10];
84
85     void stop();
86     UINT upChannel(UINT index);
87     UINT downChannel(UINT index);
88     void toggleChopSides();
89     void delData();
90     void doNowNext();
91     void doOK();
92     void doLeft();
93     void doRight();
94     void doUp();
95     void doDown();
96     void doChanUp();
97     void doChanDown();
98     void doKey(int command);
99     void displayOSD();
100     void removeOSD();
101     void setClock();
102     void doEPG();
103
104     Wwss wss;
105     Region wssRegion;
106     bool dowss;
107     
108     Boxx osd;
109     WTextbox clock;
110     WTextbox osdChanNum;
111     WTextbox osdChanName;
112     WSelectList sl;
113     Boxx boxRed;
114     Boxx boxGreen;
115     Boxx boxYellow;
116     Boxx boxBlue;
117     WTextbox textRed;
118     WTextbox textGreen;
119     WTextbox textYellow;
120     WTextbox textBlue;
121
122 };
123
124 #endif