digiKam
presentationkb_p.h
Go to the documentation of this file.
1 /* ============================================================
2  *
3  * This file is a part of digiKam project
4  * https://www.digikam.org
5  *
6  * Date : 2007-11-14
7  * Description : a presentation tool.
8  *
9  * Copyright (C) 2007-2009 by Valerio Fuoglio <valerio dot fuoglio at gmail dot com>
10  * Copyright (C) 2012-2022 by Gilles Caulier <caulier dot gilles at gmail dot com>
11  *
12  * Parts of this code are based on
13  * smoothslidesaver by Carsten Weinhold <carsten dot weinhold at gmx dot de>
14  * and slideshowgl by Renchi Raju <renchi dot raju at gmail dot com>
15  *
16  * This program is free software; you can redistribute it
17  * and/or modify it under the terms of the GNU General
18  * Public License as published by the Free Software Foundation;
19  * either version 2, or (at your option) any later version.
20  *
21  * This program is distributed in the hope that it will be useful,
22  * but WITHOUT ANY WARRANTY; without even the implied warranty of
23  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24  * GNU General Public License for more details.
25  *
26  * ============================================================ */
27 
28 #ifndef DIGIKAM_PRESENTATION_KB_PRIVATE_H
29 #define DIGIKAM_PRESENTATION_KB_PRIVATE_H
30 
31 #include "presentationkb.h"
32 
33 // Local includes
34 
35 #include "digikam_config.h"
36 #include "digikam_debug.h"
37 #include "presentationcontainer.h"
38 #include "kbimageloader.h"
39 #include "kbeffect.h"
40 
41 // OpenGL headers is not included automatically with ARM targets
42 
43 #ifdef Q_PROCESSOR_ARM
44 # include <GL/gl.h>
45 #endif
46 
47 #ifdef HAVE_MEDIAPLAYER
48 # include "presentationaudiowidget.h"
49 #endif
50 
51 using namespace Digikam;
52 
54 {
55 
56 class KBImageLoader;
57 class ScreenProperties;
58 class PresentationAudioWidget;
59 
60 class Q_DECL_HIDDEN PresentationKB::Private
61 {
62 
63 public:
64 
65  explicit Private()
66  : deskX (0),
67  deskY (0),
68  deskWidth (0),
69  deskHeight (0),
70  endTexture (nullptr),
71  imageLoadThread (nullptr),
72  mouseMoveTimer (nullptr),
73  timer (nullptr),
74  haveImages (true),
75  effect (nullptr),
76  numKBEffectRepeated (0),
77  initialized (false),
78  step (0.0),
79  stepSameSpeed (0.0),
80  endOfShow (false),
81  showingEnd (false),
82  delay (0),
83  disableFadeInOut (false),
84  disableCrossFade (false),
85  enableSameSpeed (false),
86  forceFrameRate (0),
87  sharedData (nullptr),
88  playbackWidget (nullptr)
89  {
90  zoomIn = (QRandomGenerator::global()->bounded(2U) == 0);
91  image[0] = nullptr;
92  image[1] = nullptr;
93  }
94 
95  int deskX;
96  int deskY;
97  int deskWidth;
99 
100  QOpenGLTexture* endTexture;
102  QTimer* mouseMoveTimer;
103  QTimer* timer;
105 
106  KBImage* image[2];
109  bool zoomIn;
111  float step;
113 
114  bool endOfShow;
116 
117  int delay;
121  unsigned forceFrameRate;
122 
124 
126 };
127 
128 } // namespace DigikamGenericPresentationPlugin
129 
130 #endif // DIGIKAM_PRESENTATION_KB_PRIVATE_H
Definition: presentationkb.h:94
Definition: presentationaudiowidget.h:49
Definition: presentationcontainer.h:54
bool disableCrossFade
Definition: presentationkb_p.h:119
PresentationContainer * sharedData
Definition: presentationkb_p.h:123
bool endOfShow
Definition: presentationkb_p.h:114
int deskWidth
Definition: presentationkb_p.h:97
bool disableFadeInOut
Definition: presentationkb_p.h:118
float stepSameSpeed
Definition: presentationkb_p.h:112
bool showingEnd
Definition: presentationkb_p.h:115
bool haveImages
Definition: presentationkb_p.h:104
QTimer * mouseMoveTimer
Definition: presentationkb_p.h:102
int numKBEffectRepeated
Definition: presentationkb_p.h:108
QOpenGLTexture * endTexture
Definition: presentationkb_p.h:100
bool zoomIn
Definition: presentationkb_p.h:109
bool initialized
Definition: presentationkb_p.h:110
unsigned forceFrameRate
Definition: presentationkb_p.h:121
KBImageLoader * imageLoadThread
Definition: presentationkb_p.h:101
KBEffect * effect
Definition: presentationkb_p.h:107
QTimer * timer
Definition: presentationkb_p.h:103
int delay
Definition: presentationkb_p.h:117
float step
Definition: presentationkb_p.h:111
int deskHeight
Definition: presentationkb_p.h:98
PresentationAudioWidget * playbackWidget
Definition: presentationkb_p.h:125
bool enableSameSpeed
Definition: presentationkb_p.h:120
Definition: presentationkb.h:114
Definition: presentation_audiopage.cpp:46
Definition: datefolderview.cpp:43