File indexing completed on 2024-06-16 04:16:03

0001 /*
0002  *  SPDX-FileCopyrightText: 2023 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef KISANIMATIONPLAYBACKCONTROLSMODEL_H
0008 #define KISANIMATIONPLAYBACKCONTROLSMODEL_H
0009 
0010 #include <QObject>
0011 
0012 #include <lager/state.hpp>
0013 #include <lager/extra/qt.hpp>
0014 
0015 class KisPlaybackEngine;
0016 class KisCanvasAnimationState;
0017 
0018 class KisAnimationPlaybackControlsModel : public QObject
0019 {
0020     Q_OBJECT
0021 public:
0022     KisAnimationPlaybackControlsModel();
0023 
0024     void connectAnimationState(KisCanvasAnimationState *state);
0025     void connectPlaybackEngine(KisPlaybackEngine *engine);
0026 
0027 private:
0028     lager::state<bool, lager::automatic_tag> m_dropFramesMode;
0029     lager::state<qreal, lager::automatic_tag> m_playbackSpeed;
0030 
0031 public:
0032     LAGER_QT_CURSOR(bool, dropFramesMode);
0033     LAGER_QT_CURSOR(qreal, playbackSpeed);
0034     LAGER_QT_CURSOR(int, playbackSpeedDenorm);
0035 };
0036 
0037 #endif // KISANIMATIONPLAYBACKCONTROLSMODEL_H