#ifndef RECORDER_H #define RECORDER_H #include #include #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 &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 _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