63 lines
1.3 KiB
C++
63 lines
1.3 KiB
C++
#ifndef RECORDER_H
|
|
#define RECORDER_H
|
|
|
|
#include <QObject>
|
|
#include <QFile>
|
|
|
|
#include "core/gtl_device.h"
|
|
#include "core/gtl_analog_data.h"
|
|
|
|
#include "hw_global.h"
|
|
|
|
namespace gtl
|
|
{
|
|
namespace hw
|
|
{
|
|
class HW_EXPORT recorder : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit recorder(const std::vector<gtl::analog_data*> &ad, qreal time, QString comment, QString dir, QString file_name, QString extension, QObject *parent = nullptr);
|
|
virtual ~recorder();
|
|
|
|
void start();
|
|
void stop();
|
|
|
|
bool is_success() const;
|
|
|
|
qreal time() const;
|
|
QString path() const;
|
|
|
|
private:
|
|
quint64 _samples;
|
|
quint64 _size;
|
|
|
|
private:
|
|
void get_state(QJsonObject & root, gtl::data_model_node* node);
|
|
|
|
protected:
|
|
std::vector<gtl::analog_data*> _ad;
|
|
QDataStream* _stream;
|
|
QFile* _file;
|
|
gtl::device* _device;
|
|
QString _path;
|
|
|
|
protected:
|
|
virtual void write(qreal value);
|
|
virtual void finish_writing(){};
|
|
|
|
|
|
signals:
|
|
void finished();
|
|
void progress(qreal);
|
|
|
|
|
|
private slots:
|
|
void device_recieved_data();
|
|
|
|
};
|
|
}
|
|
}
|
|
|
|
#endif // RECORDER_H
|