1 /* ============================================================ 2 * 3 * This file is a part of digiKam project 4 * https://www.digikam.org 5 * 6 * Date : 2017-05-24 7 * Description : video frame effects 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 #ifndef DIGIKAM_EFFECT_MNGR_H 24 #define DIGIKAM_EFFECT_MNGR_H 25 26 // Qt includes 27 28 #include <QMap> 29 #include <QString> 30 #include <QImage> 31 32 // Local includes 33 34 #include "digikam_export.h" 35 36 namespace Digikam 37 { 38 39 class DIGIKAM_EXPORT EffectMngr 40 { 41 public: 42 43 /** 44 * See KEn Burns effect description: https://en.wikipedia.org/wiki/Ken_Burns_effect 45 */ 46 enum EffectType 47 { 48 None = 0, ///< Static camera 49 KenBurnsZoomIn, 50 KenBurnsZoomOut, 51 KenBurnsPanLR, 52 KenBurnsPanRL, 53 KenBurnsPanTB, 54 KenBurnsPanBT, 55 Random 56 }; 57 58 public: 59 60 explicit EffectMngr(); 61 ~EffectMngr(); 62 63 void setOutputSize(const QSize& size); 64 void setEffect(EffectType eff); 65 void setImage(const QImage& img); 66 void setFrames(int ifrms); 67 68 QImage currentFrame(int& tmout); 69 70 static QMap<EffectType, QString> effectNames(); 71 72 private: 73 74 // Disable 75 EffectMngr(const EffectMngr&) = delete; 76 EffectMngr& operator=(const EffectMngr&) = delete; 77 78 private: 79 80 class Private; 81 Private* const d; 82 }; 83 84 } // namespace Digikam 85 86 #endif // DIGIKAM_EFFECT_MNGR_H 87