22 #ifndef QAV_AUDIOOUTPUTBACKEND_H 23 #define QAV_AUDIOOUTPUTBACKEND_H 25 #include <QtCore/QObject> 41 static QStringList defaultPriority();
48 virtual QString name()
const = 0;
49 virtual bool open() = 0;
50 virtual bool close() = 0;
51 virtual bool write(
const QByteArray& data) = 0;
52 virtual bool play() = 0;
53 virtual bool flush() {
return false;}
54 virtual bool clear() {
return false;}
76 BytesCallback = 1 << 1,
77 CountCallback = 1 << 2,
82 WritableBytes = 1 << 7,
86 virtual void onCallback();
106 virtual bool setVolume(qreal value) { Q_UNUSED(value);
return false;}
108 virtual bool setMute(
bool value =
true) { Q_UNUSED(value);
return false;}
119 void volumeReported(qreal value);
120 void muteReported(
bool value);
122 template<
class C>
static bool Register(AudioOutputBackendId
id,
const char* name) {
return Register(
id, create<C>, name);}
130 static AudioOutputBackendId* next(AudioOutputBackendId*
id = 0);
131 static const char* name(AudioOutputBackendId
id);
132 static AudioOutputBackendId id(
const char* name);
136 static bool Register(AudioOutputBackendId
id, AudioOutputBackendCreator,
const char *name);
138 AudioOutput::DeviceFeatures m_features;
142 #endif //QAV_AUDIOOUTPUTBACKEND_H virtual bool isSupported(AudioFormat::ChannelLayout) const
Definition: AudioOutputBackend.h:57
int buffer_size
Definition: AudioOutputBackend.h:38
AudioOutput::DeviceFeatures supportedFeatures()
Definition: AudioOutputBackend.h:99
int buffer_count
Definition: AudioOutputBackend.h:39
virtual bool setVolume(qreal value)
setVolume Set volume by backend api.
Definition: AudioOutputBackend.h:106
virtual int getOffset()
Definition: AudioOutputBackend.h:95
#define Q_AV_PRIVATE_EXPORT
Definition: QtAV_Global.h:43
Definition: AudioOutput.h:45
virtual bool clear()
Definition: AudioOutputBackend.h:54
virtual bool isSupported(const AudioFormat &format) const
Definition: AudioOutputBackend.h:55
virtual ~AudioOutputBackend()
Definition: AudioOutputBackend.h:47
virtual bool isSupported(AudioFormat::SampleFormat) const
Definition: AudioOutputBackend.h:56
virtual int getOffsetByBytes()
Definition: AudioOutputBackend.h:96
virtual int getPlayedCount()
Definition: AudioOutputBackend.h:88
AudioOutput * audio
Definition: AudioOutputBackend.h:36
virtual qreal getVolume() const
Definition: AudioOutputBackend.h:107
virtual bool getMute() const
Definition: AudioOutputBackend.h:109
virtual AudioFormat::ChannelLayout preferredChannelLayout() const
preferredChannelLayout
Definition: AudioOutputBackend.h:68
bool available
Definition: AudioOutputBackend.h:37
Definition: AudioOutputBackend.h:32
virtual bool setMute(bool value=true)
Definition: AudioOutputBackend.h:108
virtual int getWritableBytes()
Definition: AudioOutputBackend.h:97
AudioFormat format
Definition: AudioOutputBackend.h:40
AudioOutput ao; ao.setAudioFormat(fmt); ao.open(); while (has_data) { data = read_data(ao->bufferSize...
Definition: AudioDecoder.h:31
virtual int getPlayedBytes()
getPlayedBytes reimplement this if bufferControl() is PlayedBytes.
Definition: AudioOutputBackend.h:94
BufferControl
The BufferControl enum Used to adapt to different audio playback backend.
Definition: AudioOutputBackend.h:73
static bool Register(AudioOutputBackendId id, const char *name)
Definition: AudioOutputBackend.h:122
int AudioOutputBackendId
Definition: AudioOutputBackend.h:31
virtual AudioFormat::SampleFormat preferredSampleFormat() const
preferredSampleFormat
Definition: AudioOutputBackend.h:63
virtual bool flush()
Definition: AudioOutputBackend.h:53