kwave  18.07.70
RecordDevice.h
Go to the documentation of this file.
1 /*************************************************************************
2  RecordDevice.h - base class for audio recording devices
3  -------------------
4  begin : Wed Sep 17 2003
5  copyright : (C) 2003 by Thomas Eschenbacher
6  email : Thomas.Eschenbacher@gmx.de
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef RECORD_DEVICE_H
19 #define RECORD_DEVICE_H
20 
21 #include "config.h"
22 
23 #include <errno.h>
24 
25 #include <QByteArray>
26 #include <QList>
27 #include <QString>
28 #include <QStringList>
29 
30 #include "libkwave/ByteOrder.h"
31 #include "libkwave/Compression.h"
32 #include "libkwave/SampleFormat.h"
33 #include "libkwave/String.h"
34 
35 namespace Kwave
36 {
38  {
39  public:
40 
43 
45  virtual ~RecordDevice() {}
46 
57  virtual QString open(const QString &dev) = 0;
58 
66  virtual int read(QByteArray &buffer, unsigned int offset) = 0;
67 
69  virtual int close() = 0;
70 
72  virtual QStringList supportedDevices() = 0;
73 
75  virtual QString fileFilter() { return _(""); }
76 
85  virtual int detectTracks(unsigned int &min, unsigned int &max) = 0;
86 
95  virtual int setTracks(unsigned int &tracks) = 0;
96 
98  virtual int tracks() = 0;
99 
101  virtual QList<double> detectSampleRates() = 0;
102 
110  virtual int setSampleRate(double &new_rate) = 0;
111 
113  virtual double sampleRate() = 0;
114 
119  virtual QList<Kwave::Compression::Type> detectCompressions() = 0;
120 
127  virtual int setCompression(Kwave::Compression::Type new_compression) = 0;
128 
131 
137  virtual QList<unsigned int> supportedBits() = 0;
138 
143  virtual int setBitsPerSample(unsigned int new_bits) = 0;
144 
149  virtual int bitsPerSample() = 0;
150 
155  virtual QList<Kwave::SampleFormat::Format> detectSampleFormats() = 0;
156 
163  virtual int setSampleFormat(Kwave::SampleFormat::Format new_format) = 0;
164 
167 
169  virtual Kwave::byte_order_t endianness() = 0;
170 
171  };
172 }
173 
174 #endif /* RECORD_DEVICE_H */
175 
176 //***************************************************************************
177 //***************************************************************************
virtual QString open(const QString &dev)=0
byte_order_t
Definition: ByteOrder.h:25
Definition: App.h:33
virtual QString fileFilter()
Definition: RecordDevice.h:75
virtual QList< unsigned int > supportedBits()=0
virtual int read(QByteArray &buffer, unsigned int offset)=0
virtual int setSampleRate(double &new_rate)=0
virtual int bitsPerSample()=0
virtual int setTracks(unsigned int &tracks)=0
virtual int setCompression(Kwave::Compression::Type new_compression)=0
virtual int detectTracks(unsigned int &min, unsigned int &max)=0
virtual QList< Kwave::Compression::Type > detectCompressions()=0
virtual QStringList supportedDevices()=0
virtual QList< double > detectSampleRates()=0
virtual int setBitsPerSample(unsigned int new_bits)=0
virtual QList< Kwave::SampleFormat::Format > detectSampleFormats()=0
virtual double sampleRate()=0
virtual Kwave::Compression::Type compression()=0
virtual ~RecordDevice()
Definition: RecordDevice.h:45
virtual Kwave::SampleFormat::Format sampleFormat()=0
#define _(m)
Definition: memcpy.c:66
virtual int close()=0
virtual int tracks()=0
virtual int setSampleFormat(Kwave::SampleFormat::Format new_format)=0
virtual Kwave::byte_order_t endianness()=0