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/QLoggingCategory>
4#include <QtCore/QPointer>
5#include <QtQmlIntegration/QtQmlIntegration>
6
7#include "LogReplayLink.h"
8
9Q_DECLARE_LOGGING_CATEGORY(LogReplayLinkControllerLog)
10
11class LogReplayLinkController : public QObject
12{
13 Q_OBJECT
14 QML_ELEMENT
15 Q_PROPERTY(LogReplayLink *link READ link WRITE setLink NOTIFY linkChanged)
16 Q_PROPERTY(bool isPlaying READ isPlaying WRITE setIsPlaying NOTIFY isPlayingChanged)
17 Q_PROPERTY(qreal percentComplete READ percentComplete WRITE setPercentComplete NOTIFY percentCompleteChanged)
18 Q_PROPERTY(QString totalTime MEMBER _totalTime NOTIFY totalTimeChanged)
19 Q_PROPERTY(QString playheadTime MEMBER _playheadTime NOTIFY playheadTimeChanged)
20 Q_PROPERTY(qreal playbackSpeed MEMBER _playbackSpeed NOTIFY playbackSpeedChanged)
21
22public:
23 explicit LogReplayLinkController(QObject *parent = nullptr);
25
26 LogReplayLink *link() const { return _link; }
27 void setLink(LogReplayLink *link);
28
29 bool isPlaying() const { return _isPlaying; }
30 void setIsPlaying(bool isPlaying) const;
31
32 qreal percentComplete() const { return _percentComplete; }
33 void setPercentComplete(qreal percentComplete) const;
34
35signals:
36 void isPlayingChanged(bool isPlaying);
38 void percentCompleteChanged(qreal percentComplete);
39 void playbackSpeedChanged(qreal playbackSpeed);
40 void playheadTimeChanged(const QString &playheadTime);
41 void totalTimeChanged(const QString &totalTime);
42
43private slots:
44 void _currentLogTimeSecs(uint32_t secs);
45 void _linkDisconnected() { setLink(nullptr); }
46 void _logFileStats(uint32_t logDurationSecs);
47 void _playbackAtEnd();
48 void _playbackPaused();
49 void _playbackPercentCompleteChanged(qreal percentComplete);
50 void _playbackStarted();
51
52private:
53 static QString _secondsToHMS(uint32_t seconds);
54
55 bool _isPlaying = false;
56 qreal _percentComplete = 0;
57 uint32_t _playheadSecs = 0;
58 qreal _playbackSpeed = 1;
59 QString _playheadTime;
60 QString _totalTime;
61 QPointer<LogReplayLink> _link;
62};
Q_DECLARE_LOGGING_CATEGORY(AndroidSerialLog)
void percentCompleteChanged(qreal percentComplete)
void isPlayingChanged(bool isPlaying)
void playheadTimeChanged(const QString &playheadTime)
void totalTimeChanged(const QString &totalTime)
void playbackSpeedChanged(qreal playbackSpeed)
void linkChanged(LogReplayLink *link)