#ifndef LOGFILE_H #define LOGFILE_H #include #include #include #include #include #include #include "uavobjectmanager.h" #include 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