Merged in f5soh/librepilot/update_credits (pull request #529)
[librepilot.git] / ground / gcs / src / plugins / logging / logginggadgetwidget.h
blobf07f20304881dbe875e09315fa37dc60274e3371
1 /**
2 ******************************************************************************
4 * @file logginggadgetwidget.h
5 * @author The LibrePilot Project, http://www.librepilot.org Copyright (C) 2018.
6 * The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
7 * @addtogroup GCSPlugins GCS Plugins
8 * @{
9 * @addtogroup LoggingGadgetPlugin Logging Gadget Plugin
10 * @{
11 * @brief A gadget to control playback of a GCS log.
12 *****************************************************************************/
14 * This program is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License as published by
16 * the Free Software Foundation; either version 3 of the License, or
17 * (at your option) any later version.
19 * This program is distributed in the hope that it will be useful, but
20 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
21 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 * for more details.
24 * You should have received a copy of the GNU General Public License along
25 * with this program; if not, write to the Free Software Foundation, Inc.,
26 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
29 #ifndef LoggingGADGETWIDGET_H_
30 #define LoggingGADGETWIDGET_H_
32 #include "loggingplugin.h"
34 #include "extensionsystem/pluginmanager.h"
35 #include "scope/scopeplugin.h"
36 #include "scope/scopegadgetfactory.h"
38 #include <QWidget>
40 class Ui_Logging;
41 class QTimer;
43 class LoggingGadgetWidget : public QWidget {
44 Q_OBJECT
46 public:
47 LoggingGadgetWidget(QWidget *parent = 0);
48 ~LoggingGadgetWidget();
49 void setPlugin(LoggingPlugin *p);
51 protected slots:
52 void stateChanged(LoggingPlugin::State state);
53 void setBeginAndEndTimes(quint32 startTimeStamp, quint32 endTimeStamp);
54 void setPlaybackPosition(quint32 positionTimeStamp);
55 void playButtonAction();
56 void pauseButtonAction();
57 void stopButtonAction();
58 void enableWidgets();
59 void disableWidgets();
60 void sliderMoved(int);
61 void sliderAction();
63 signals:
64 void resumeReplay(quint32 positionTimeStamp);
65 void pauseReplay();
66 void pauseReplayAndResetPosition();
68 private:
69 Ui_Logging *m_logging;
70 LoggingPlugin *loggingPlugin;
71 ScopeGadgetFactory *scpPlugin;
72 QTimer sliderActionDelay;
74 void updatePositionLabel(quint32 positionTimeStamp);
77 #endif /* LoggingGADGETWIDGET_H_ */