]> git.vomp.tv Git - vompclient.git/blob - vaudioplayer.h
Media Player From Andreas Vogel
[vompclient.git] / vaudioplayer.h
1 /*
2     Copyright 2004-2005 Chris Tallon, Andreas Vogel
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 VAUDIOPLAYER_H
22 #define VAUDIOPLAYER_H
23
24 #include <stdio.h>
25 #include <string.h>
26 #include <vector>
27
28 #include "view.h"
29 #include "remote.h"
30 #include "wsymbol.h"
31 #include "viewman.h"
32 #include "vdr.h"
33 #include "media.h"
34 #include "colour.h"
35 #include "i18n.h"
36 #include "vmedialist.h"
37 #include "wjpeg.h"
38
39 /**
40   * the audio player frontend
41   * will ineract with the parent List for ff,back, slide show...
42   *
43 */
44 class AudioPlayer;
45
46 class VAudioplayer : public View,public TimerReceiver
47 {
48   public:
49     ~VAudioplayer();
50
51     void processMessage(Message* m);
52     int handleCommand(int command);
53     void draw();
54     void timercall(int clientReference);
55     //factory method
56     //return NULL on error
57     static VAudioplayer *createPlayer(VMediaList * parent, bool startPlayall=false);
58     //show the picture currently selected in the parent
59     //potentially moving to next/previous one
60     void play(ULONG move=VMediaList::MV_NONE);
61
62     //start a playall
63     void startPlayall();
64
65
66   private:
67                 const static int BANNER_TIME=30;
68                 //show time of an error
69                 const static int BANNER_ERROR_TIME=8;
70
71
72                 //margin on SCREEN on each side
73                 const static int BANNER_X_MARGIN=50;
74                 //margin on bottom of screen
75                 const static int BANNER_BOTTOM_MARGIN=30;
76                 //length of the progress bar
77                 const static int BARLEN=250;
78
79     VAudioplayer(VMediaList * plist);
80                 void retriggerBanner();
81     void showBanner(bool forceRestart=false);
82     void destroyBanner();
83     void updateBanner(bool restart=false);
84                 void drawBanner();
85                 void drawClocks();
86                 View *createBannerView(int numlines);
87                 int bannerlines;
88                 //add or destroy a view (banner, info)
89                 void sendViewMsg(View *v,bool destroy=false);
90                 //get the player - create it if necessary
91                 AudioPlayer* getPlayer(bool create=true);
92     VMediaList   *parent;
93     View *banner;
94     char * fullname;
95     char * filename;
96     ULONG ftime;
97     bool playall;
98     char * mediaError;
99     Media * currentMedia;
100                 bool justPlaying;
101                 int numentries;
102                 time_t bannerTime;
103                 Region barRegion;
104                 Region clocksRegion;
105           Colour barBlue;
106
107 };
108
109 #endif