1 /* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2017-05-24
7 * Description : images transition manager.
8 *
9 * Copyright (C) 2017-2021 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 *
11 * This program is free software; you can redistribute it
12 * and/or modify it under the terms of the GNU General
13 * Public License as published by the Free Software Foundation;
14 * either version 2, or (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * ============================================================ */
22
23 #include "transitionmngr_p.h"
24
25 namespace Digikam
26 {
27
registerTransitions()28 void TransitionMngr::Private::registerTransitions()
29 {
30 eff_transList.insert(TransitionMngr::None, &TransitionMngr::Private::transitionNone);
31 eff_transList.insert(TransitionMngr::ChessBoard, &TransitionMngr::Private::transitionChessboard);
32 eff_transList.insert(TransitionMngr::MeltDown, &TransitionMngr::Private::transitionMeltdown);
33 eff_transList.insert(TransitionMngr::Sweep, &TransitionMngr::Private::transitionSweep);
34 eff_transList.insert(TransitionMngr::Mosaic, &TransitionMngr::Private::transitionMosaic);
35 eff_transList.insert(TransitionMngr::Cubism, &TransitionMngr::Private::transitionCubism);
36 eff_transList.insert(TransitionMngr::Growing, &TransitionMngr::Private::transitionGrowing);
37 eff_transList.insert(TransitionMngr::HorizontalLines, &TransitionMngr::Private::transitionHorizLines);
38 eff_transList.insert(TransitionMngr::VerticalLines, &TransitionMngr::Private::transitionVertLines);
39 eff_transList.insert(TransitionMngr::CircleOut, &TransitionMngr::Private::transitionCircleOut);
40 eff_transList.insert(TransitionMngr::MultiCircleOut, &TransitionMngr::Private::transitionMultiCircleOut);
41 eff_transList.insert(TransitionMngr::SpiralIn, &TransitionMngr::Private::transitionSpiralIn);
42 eff_transList.insert(TransitionMngr::Blobs, &TransitionMngr::Private::transitionBlobs);
43 eff_transList.insert(TransitionMngr::Fade, &TransitionMngr::Private::transitionFade);
44 eff_transList.insert(TransitionMngr::SlideL2R, &TransitionMngr::Private::transitionSlideL2R);
45 eff_transList.insert(TransitionMngr::SlideR2L, &TransitionMngr::Private::transitionSlideR2L);
46 eff_transList.insert(TransitionMngr::SlideT2B, &TransitionMngr::Private::transitionSlideT2B);
47 eff_transList.insert(TransitionMngr::SlideB2T, &TransitionMngr::Private::transitionSlideB2T);
48 eff_transList.insert(TransitionMngr::PushL2R, &TransitionMngr::Private::transitionPushL2R);
49 eff_transList.insert(TransitionMngr::PushR2L, &TransitionMngr::Private::transitionPushR2L);
50 eff_transList.insert(TransitionMngr::PushT2B, &TransitionMngr::Private::transitionPushT2B);
51 eff_transList.insert(TransitionMngr::PushB2T, &TransitionMngr::Private::transitionPushB2T);
52 eff_transList.insert(TransitionMngr::SwapL2R, &TransitionMngr::Private::transitionSwapL2R);
53 eff_transList.insert(TransitionMngr::SwapR2L, &TransitionMngr::Private::transitionSwapR2L);
54 eff_transList.insert(TransitionMngr::SwapT2B, &TransitionMngr::Private::transitionSwapT2B);
55 eff_transList.insert(TransitionMngr::SwapB2T, &TransitionMngr::Private::transitionSwapB2T);
56 eff_transList.insert(TransitionMngr::BlurIn, &TransitionMngr::Private::transitionBlurIn);
57 eff_transList.insert(TransitionMngr::BlurOut, &TransitionMngr::Private::transitionBlurOut);
58 }
59
getRandomTransition() const60 TransitionMngr::TransType TransitionMngr::Private::getRandomTransition() const
61 {
62 QList<TransitionMngr::TransType> effs = eff_transList.keys();
63 effs.removeAt(effs.indexOf(TransitionMngr::None));
64
65 int count = effs.count();
66 int i = qrand() % count;
67
68 return effs[i];
69 }
70
transitionRandom(bool)71 int TransitionMngr::Private::transitionRandom(bool /*aInit*/)
72 {
73 return -1;
74 }
75
transitionNone(bool)76 int TransitionMngr::Private::transitionNone(bool)
77 {
78 eff_curFrame = eff_outImage;
79
80 return -1;
81 }
82
83 } // namespace Digikam
84