File indexing completed on 2024-04-21 03:50:01

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2014 Sanjiban Bairagya <sanjiban22393@gmail.com>
0004 //
0005 
0006 #ifndef TOURCAPTUREDIALOG_H
0007 #define TOURCAPTUREDIALOG_H
0008 
0009 #include <QDialog>
0010 
0011 #include "marble_export.h"
0012 
0013 namespace Ui {
0014 class TourCaptureDialog;
0015 }
0016 
0017 namespace Marble {
0018 
0019 class MarbleWidget;
0020 
0021 class MovieCapture;
0022 class TourPlayback;
0023 class MARBLE_EXPORT TourCaptureDialog : public QDialog
0024 {
0025     Q_OBJECT
0026 
0027 public:
0028     explicit TourCaptureDialog(MarbleWidget *widget, QWidget *parent = nullptr);
0029     ~TourCaptureDialog() override;
0030 
0031 public Q_SLOTS:
0032     void startRecording();
0033     void stopRecording();
0034     void setRate( double rate );
0035     void setTourPlayback( TourPlayback* playback );
0036     void setDefaultFilename( const QString &filename );
0037     void handleError();
0038 
0039 private Q_SLOTS:
0040     void loadDestinationFile();
0041     void updateProgress( double position );
0042     void recordNextFrame();
0043 
0044 private:
0045     Ui::TourCaptureDialog *ui;
0046     MovieCapture *m_recorder;
0047     TourPlayback *m_playback;
0048     bool m_writingPossible;
0049     double m_current_position;
0050     QString m_defaultFileName;
0051 };
0052 
0053 } // namespace Marble
0054 
0055 #endif // MOVIECAPTUREDIALOG_H