]> git.vomp.tv Git - vompclient-marten.git/blob - vpicture.h
Fix back out of jpeg due to new Boxstack code
[vompclient-marten.git] / vpicture.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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19 */
20
21 #ifndef VPICTURE_H
22 #define VPICTURE_H
23
24 #include <stdio.h>
25 #include <string.h>
26 #include <vector>
27
28 #include "boxx.h"
29 #include "timerreceiver.h"
30 #include "vmedialist.h"
31 #include "colour.h"
32 #include "wjpeg.h"
33
34 class Message;
35 class VInfo;
36
37 /**
38   * the picture viewer
39   * will ineract with the parent List for ff,back, slide show...
40   *
41 */
42 class VPictureBanner;
43
44 class VPicture : public Boxx, public TimerReceiver
45 {
46   public:
47     ~VPicture();
48
49     void processMessage(Message* m);
50     int handleCommand(int command);
51     void draw();
52     void timercall(int clientReference);
53     //factory method
54     //return NULL on error
55     static VPicture *createViewer(VMediaList * parent, bool startSlideshow=false);
56     //show the picture currently selected in the parent
57     //potentially moving to next/previous one
58     void showPicture(ULONG move=VMediaList::MV_NONE,int rotate=WJpeg::ROT_0);
59
60     //start a slideshow
61     void startSlideshow();
62
63
64   private:
65     VPicture(VMediaList * plist);
66     void showBanner(bool loading=false, int shortDisplayTime=0);
67     void destroyBanner(bool fromTimer=false);
68     void updateBanner(bool shortDisplay=false);
69     void showInfo();
70     void updateInfo();
71     void destroyInfo(bool fromTimer=false);
72                 //add or destroy a view (banner, info)
73                 void sendViewMsg(Boxx *v,bool destroy=false);
74                 //send command in main thread
75                 void sendCommandMsg(int command);
76     VMediaList   *parent;
77     int  load(Media *m);
78     JpegReader   *reader;
79     bool needDraw;
80     WJpeg jpeg;
81     VPictureBanner *banner;
82     char * fullname;
83     char * filename;
84     ULONG ftime;
85     bool slideshow;
86     int showtime;
87     const char * mediaError;
88     Media * currentMedia;
89     const static int INITIAL_SHOWTIME=5;
90     bool shortBanner;
91     int rotate;
92     VInfo * info;
93     static Colour pictureBack;
94     static Colour infoBack;
95 };
96
97 #endif