1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-13 20:48:42 +01:00
LibrePilot/ground/openpilotgcs/src/plugins/logging/logfile.h

66 lines
1.2 KiB
C++

#ifndef LOGFILE_H
#define LOGFILE_H
#include <QIODevice>
#include <QTime>
#include <QTimer>
#include <QMutexLocker>
#include <QDebug>
#include <QBuffer>
#include "uavobjectmanager.h"
#include <math.h>
class LogFile : public QIODevice {
Q_OBJECT
public:
explicit LogFile(QObject *parent = 0);
qint64 bytesAvailable() const;
qint64 bytesToWrite()
{
return file.bytesToWrite();
};
bool open(OpenMode mode);
void setFileName(QString name)
{
file.setFileName(name);
};
void close();
qint64 writeData(const char *data, qint64 dataSize);
qint64 readData(char *data, qint64 maxlen);
bool startReplay();
bool stopReplay();
public slots:
void setReplaySpeed(double val)
{
playbackSpeed = val;
qDebug() << "Playback speed is now" << playbackSpeed;
};
void pauseReplay();
void resumeReplay();
protected slots:
void timerFired();
signals:
void readReady();
void replayStarted();
void replayFinished();
protected:
QByteArray dataBuffer;
QTimer timer;
QTime myTime;
QFile file;
qint32 lastTimeStamp;
qint32 lastPlayed;
QMutex mutex;
int timeOffset;
double playbackSpeed;
};
#endif // LOGFILE_H