#ifndef AUDIO_H #define AUDIO_H #include #include #include #include "hw/gtl_hw_device.h" #include "hw/gtl_hw_generator_analog_input.h" #include "hw/gtl_hw_audio_input_device.h" #include "hw_global.h" namespace gtl { namespace hw { class audio : public device { Q_OBJECT public: explicit HW_EXPORT audio(int channels = 0, QAudioFormat::SampleFormat sample_format = QAudioFormat::Unknown, QObject *parent = nullptr); virtual ~audio(); virtual QString type() const override; virtual bool start(QString id, qreal rate) override; virtual bool stop() override; private: virtual void run() override; private: QAudioFormat::SampleFormat _sample_format; QAudioSource* _audio_input; QAudioFormat _format; audio_input_device *_audio_device; protected slots: virtual void save(QDomElement& root_element); virtual void load(const QDomElement& root_element); }; } } #endif // AUDIO_H