#ifndef PLAYER_H #define PLAYER_H #include "hw_global.h" #include "hw/gtl_hw_device.h" #include "hw/gtl_hw_generator_analog_input.h" #include "hw/gtl_hw_player_file.h" namespace gtl { namespace hw { class HW_EXPORT player : public device { Q_OBJECT public: player(QObject* parent = nullptr); virtual QString type() const override; virtual bool start(QString id, qreal rate) override; // virtual virtual void save(QDomElement& root_element) override; player_file* file() const; private: virtual void run() override; bool get_data(int &idx, int& samples, bool is_cyclic, std::back_insert_iterator>); qreal total_time(); private: player_file* _file; bool _is_suspended; bool _is_cyclic; qreal _time; qreal _pos; qreal _speed_factor; int _sampling; std::vector> _ranges_indices; std::vector _buffer_tmp; public slots: virtual void get_parameter(int idx, QVariant &value) override; virtual void set_parameter(int idx, const QVariant &value) override; }; } } #endif // PLAYER_H