test_sdk/hw/gtl_hw_audio.h

49 lines
1.1 KiB
C++

#ifndef AUDIO_H
#define AUDIO_H
#include <QMediaDevices>
#include <QAudioDevice>
#include <QAudioSource>
#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