]> git.vomp.tv Git - vompclient.git/blob - vvideolive.h
Update for windows
[vompclient.git] / vvideolive.h
1 /*
2     Copyright 2004-2005 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 VVIDEOLIVE_H
22 #define VVIDEOLIVE_H
23
24 #include <stdio.h>
25 #include <vector>
26
27 #include "view.h"
28 #include "player.h"
29 #include "playerradio.h"
30 #include "vdr.h"
31 #include "channel.h"
32 #include "vlivebanner.h"
33 #include "viewman.h"
34 #include "vchannelselect.h"
35 #include "colour.h"
36 #include "osd.h"
37 #include "vinfo.h"
38 #include "command.h"
39 #include "i18n.h"
40 #include "vepg.h"
41 #include "wtextbox.h"
42 #include "wwss.h"
43
44 class VEpg;
45 class VChannelList;
46 class VLiveBanner;
47
48 class VVideoLive : public View
49 {
50   public:
51     VVideoLive(ChannelList* chanList, ULONG streamType, VChannelList* vchannelList);
52     ~VVideoLive();
53     static VVideoLive* getInstance();
54     void draw();
55     int handleCommand(int command);
56     void processMessage(Message* m);
57     void streamEnd(); // from command
58
59     void channelChange(UCHAR changeType, UINT newData);
60     // changeType = INDEX = (newData is a channel index in the list)
61     //            = NUMBER = (newData is a real channel number)
62     //            = OFFSET = (newData is UP or DOWN)
63
64     void play(int noShowVLB = 0);
65     void stop(int noRemoveVLB = 0);
66
67     const static UCHAR INDEX = 1;
68     const static UCHAR NUMBER = 2;
69     const static UCHAR OFFSET = 3;
70     const static UCHAR PREVIOUS = 4;
71     const static UCHAR UP = 1;
72     const static UCHAR DOWN = 2;
73
74   private:
75     static VVideoLive* instance;
76     ViewMan* viewman;
77     VDR* vdr;
78     Video* video;
79     void* player; // HA HA FIXME
80     ChannelList* chanList;
81     VChannelList* vchannelList;
82     UINT currentChannel;       // index in list
83     UINT previousChannel;      // index in list
84     int unavailable;
85     VInfo* unavailableView;
86     ULONG streamType;
87
88     UINT upChannel();
89     UINT downChannel();
90     void doBanner(bool takesCommands);
91     void showUnavailable(int active);
92     int xpos;
93     void showEPG();
94     void doNoSuchChannel();
95     void toggleChopSides();
96     int videoMode;
97     int saveUnavailable;
98
99     Wwss wss;
100     Region wssRegion;
101     bool dowss;
102 };
103
104 #endif