test_sdk/hw/gtl_hw_recorder.h

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