Initial commit
[camargo/neiasound.git] / src / nSoundStream.h
1 #ifndef NSOUNDSTREAM_H
2 #define NSOUNDSTREAM_H
3
4 #include <QObject>
5 #include "nSoundFormat.h"
6
7 class nSoundBag;
8
9 class nSoundStream : public QObject
10 {
11     Q_OBJECT
12     Q_PROPERTY(int channels READ channels)
13     Q_PROPERTY(quint64 frames READ frames)
14     Q_PROPERTY(int frequency READ frequency)
15     Q_PROPERTY(nSoundFormat format READ format)
16     Q_PROPERTY(bool suggestStreaming READ suggestStreaming)
17 public:
18     explicit nSoundStream(QObject *parent = 0);
19
20     virtual quint64 frames()=0;
21     virtual int channels()=0;
22     virtual int frequency()=0;
23
24     virtual nSoundBag * createSoundBag(QObject * parent = 0);
25     virtual nSoundFormat format() = 0;
26     virtual bool suggestStreaming() = 0;
27
28     virtual void rewind() = 0;
29     virtual quint64 read(void* data, unsigned long frames) = 0;
30 signals:
31
32 public slots:
33
34 };
35
36 #endif // NSOUNDSTREAM_H