Move src to src/lib, include to src/include, test to src/test.
[deb_shairplay.git] / AirTV-Qt / audiooutput.h
CommitLineData
2340bcd3
JVH
1#ifndef AUDIOOUTPUT_H
2#define AUDIOOUTPUT_H
3
4#include <QObject>
5#include <QIODevice>
6#include <QByteArray>
7#include <QAudioFormat>
8#include <QAudioDeviceInfo>
9#include <QAudioOutput>
10#include <QIODevice>
11
12class AudioOutput : public QIODevice
13{
14 Q_OBJECT
15public:
16 explicit AudioOutput(QObject *parent = 0);
17 bool init(int bits, int channels, int samplerate);
18 bool setDevice(QAudioDeviceInfo deviceInfo);
19
20 void start();
21 void setVolume(float volume);
22 void output(const char *data, int datalen);
23 void flush();
24 void stop();
25
26 qint64 readData(char *data, qint64 maxlen);
27 qint64 writeData(const char *data, qint64 len);
28 qint64 bytesAvailable() const;
29 bool isSequential() const;
30
31private:
32 void reinit();
33
34private:
35 bool m_initialized;
36 QByteArray m_buffer;
37 QAudioFormat m_format;
38 QAudioDeviceInfo m_deviceInfo;
39 QAudioOutput* m_output;
40 float m_volume;
41
42signals:
43
44public slots:
45
46private slots:
47 void notified();
48 void stateChanged(QAudio::State state);
49};
50
51#endif // AUDIOOUTPUT_H