File indexing completed on 2024-04-21 03:49:51

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2014 Sanjiban Bairagya <sanjiban22393@gmail.com>
0004 //
0005 
0006 #ifndef PLAYBACKFLYTOITEM_H
0007 #define PLAYBACKFLYTOITEM_H
0008 
0009 #include "PlaybackItem.h"
0010 
0011 #include <QDateTime>
0012 
0013 namespace Marble
0014 {
0015 class GeoDataCoordinates;
0016 class GeoDataFlyTo;
0017 
0018 class PlaybackFlyToItem : public PlaybackItem
0019 {
0020     Q_OBJECT
0021 public:
0022     explicit PlaybackFlyToItem( const GeoDataFlyTo* flyTo );
0023     const GeoDataFlyTo* flyTo() const;
0024     double duration() const override;
0025     void play() override;
0026     void pause() override;
0027     void seek( double position ) override;
0028     void stop() override;
0029     void center( double t );
0030     void setBefore(PlaybackFlyToItem* before);
0031     void setNext(PlaybackFlyToItem* next);
0032     void setStartCoordinates( const GeoDataCoordinates &coordinates );
0033     void setFirst( bool isFirst );
0034 
0035 private Q_SLOTS:
0036     void playNext();
0037 
0038 private:
0039     const GeoDataFlyTo* m_flyTo;
0040     PlaybackFlyToItem* m_before;
0041     PlaybackFlyToItem* m_next;
0042     QDateTime m_start;
0043     QDateTime m_pause;
0044     bool m_isPlaying;
0045     bool m_isFirst;
0046 };
0047 
0048 }
0049 #endif