QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
LogReplayLinkController.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QPointer>
4#include <QtCore/QString>
5#include <QtQmlIntegration/QtQmlIntegration>
6
7class LogReplayLink;
8
9class LogReplayLinkController : public QObject
10{
11 Q_OBJECT
12 QML_ELEMENT
13 Q_MOC_INCLUDE("LogReplayLink.h")
14 Q_PROPERTY(LogReplayLink *link READ link WRITE setLink NOTIFY linkChanged)
15 Q_PROPERTY(bool isPlaying READ isPlaying WRITE setIsPlaying NOTIFY isPlayingChanged)
17 Q_PROPERTY(QString totalTime MEMBER _totalTime NOTIFY totalTimeChanged)
18 Q_PROPERTY(QString playheadTime MEMBER _playheadTime NOTIFY playheadTimeChanged)
19 Q_PROPERTY(qreal playbackSpeed MEMBER _playbackSpeed NOTIFY playbackSpeedChanged)
20
21public:
22 explicit LogReplayLinkController(QObject *parent = nullptr);
24
25 LogReplayLink *link() const { return _link; }
27
28 bool isPlaying() const { return _isPlaying; }
29 void setIsPlaying(bool isPlaying) const;
30
31 qreal percentComplete() const { return _percentComplete; }
32 void setPercentComplete(qreal percentComplete) const;
33
34signals:
38 void playbackSpeedChanged(qreal playbackSpeed);
39 void playheadTimeChanged(const QString &playheadTime);
40 void totalTimeChanged(const QString &totalTime);
41
42private slots:
43 void _currentLogTimeSecs(uint32_t secs);
44 void _linkDisconnected() { setLink(nullptr); }
45 void _logFileStats(uint32_t logDurationSecs);
46 void _playbackAtEnd();
47 void _playbackPaused();
48 void _playbackPercentCompleteChanged(qreal percentComplete);
49 void _playbackStarted();
50
51private:
52 static QString _secondsToHMS(uint32_t seconds);
53
54 bool _isPlaying = false;
55 qreal _percentComplete = 0;
56 uint32_t _playheadSecs = 0;
57 qreal _playbackSpeed = 1;
58 QString _playheadTime;
59 QString _totalTime;
60 QPointer<LogReplayLink> _link;
61};
LogReplayLink * link() const
void percentCompleteChanged(qreal percentComplete)
void isPlayingChanged(bool isPlaying)
void playheadTimeChanged(const QString &playheadTime)
void totalTimeChanged(const QString &totalTime)
void playbackSpeedChanged(qreal playbackSpeed)
void setLink(LogReplayLink *link)
void setPercentComplete(qreal percentComplete) const
void setIsPlaying(bool isPlaying) const
void linkChanged(LogReplayLink *link)