File indexing completed on 2024-04-21 07:36:00

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2014 Sanjiban Bairagya <sanjiban22393@gmail.com>
0004 //
0005 
0006 #ifndef ANIMATEDUPDATETRACK_H
0007 #define ANIMATEDUPDATETRACK_H
0008 
0009 #include <QDateTime>
0010 #include <QTimer>
0011 
0012 namespace Marble
0013 {
0014 
0015 class GeoDataFeature;
0016 class GeoDataContainer;
0017 class GeoDataPlacemark;
0018 class PlaybackAnimatedUpdateItem;
0019 
0020 class AnimatedUpdateTrack : public QObject
0021 {
0022     Q_OBJECT
0023 
0024 public:
0025     explicit AnimatedUpdateTrack( PlaybackAnimatedUpdateItem* item );
0026     void setDelayBeforeTrackStarts( double delay );
0027     double delayBeforeTrackStarts() const;
0028     void play();
0029     void pause();
0030     void seek( double position );
0031     void stop();
0032     void setPaused( bool );
0033 
0034 Q_SIGNALS:
0035     void balloonHidden();
0036     void balloonShown( GeoDataPlacemark* );
0037     void updated( GeoDataFeature* );
0038     void added( GeoDataContainer *parent, GeoDataFeature *feature, int row );
0039     void removed( const GeoDataFeature *feature  );
0040 
0041 public Q_SLOTS:
0042     void playSlot();
0043 
0044 private:
0045     PlaybackAnimatedUpdateItem* m_item;
0046     QDateTime m_playTime;
0047     QDateTime m_pauseTime;
0048     double m_delayBeforeTrackStarts;
0049     double m_progress;
0050     QTimer m_timer;
0051     bool m_paused;
0052 };
0053 }
0054 #endif