Qmmp
Loading...
Searching...
No Matches
output.h
1
2// Copyright (c) 2000-2001 Brad Hughes <bhughes@trolltech.com>
3//
4// Use, modification and distribution is allowed without limitation,
5// warranty, or liability of any kind.
6//
7
8#ifndef OUTPUT_H
9#define OUTPUT_H
10
11#include <QList>
12#include <QIODevice>
13#include <QMap>
14#include "outputfactory.h"
15#include "audioparameters.h"
16#include "trackinfo.h"
17#include "channelmap.h"
18
19class QTimer;
20class QmmpSettings;
21class QmmpPluginCache;
22
27class QMMP_EXPORT Output
28{
29public:
37 virtual ~Output();
46 virtual bool initialize(quint32 freq, ChannelMap map, Qmmp::AudioFormat format) = 0;
50 virtual qint64 latency() = 0;
60 virtual qint64 writeAudio(unsigned char *data, qint64 maxSize) = 0;
65 virtual void drain() = 0;
70 virtual void reset() = 0;
74 virtual void suspend();
78 virtual void resume();
84 virtual void setTrackInfo(const TrackInfo &info);
92 quint32 sampleRate() const;
96 int channels() const;
100 const ChannelMap &channelMap() const;
108 int sampleSize() const;
113 static Output *create();
117 static QList<OutputFactory*> factories();
122 static QString file(const OutputFactory *factory);
126 static void setCurrentFactory(const OutputFactory* factory);
131
132protected:
139 void configure(quint32 freq, ChannelMap map, Qmmp::AudioFormat format);
140
141private:
142 quint32 m_frequency = 0;
143 ChannelMap m_chan_map;
145 int m_sample_size = 0;
146 static void loadPlugins();
147 static QList<QmmpPluginCache*> *m_cache;
148};
149
150
151#endif // OUTPUT_H
The AudioParameters class keeps information about audio settings.
Definition audioparameters.h:32
This class represents audio channel mapping.
Definition channelmap.h:31
Output plugin interface (output factory).
Definition outputfactory.h:48
The Output class provides the base interface class of audio outputs.
Definition output.h:28
Qmmp::AudioFormat format() const
virtual void reset()=0
virtual void setTrackInfo(const TrackInfo &info)
virtual bool initialize(quint32 freq, ChannelMap map, Qmmp::AudioFormat format)=0
static OutputFactory * currentFactory()
const ChannelMap & channelMap() const
quint32 sampleRate() const
virtual void drain()=0
int channels() const
static QString file(const OutputFactory *factory)
virtual void resume()
virtual ~Output()
virtual qint64 writeAudio(unsigned char *data, qint64 maxSize)=0
static void setCurrentFactory(const OutputFactory *factory)
static QList< OutputFactory * > factories()
void configure(quint32 freq, ChannelMap map, Qmmp::AudioFormat format)
virtual void suspend()
int sampleSize() const
virtual qint64 latency()=0
AudioParameters audioParameters() const
static Output * create()
AudioFormat
Definition qmmp.h:115
@ PCM_UNKNOWN
Definition qmmp.h:116
The QmmpSettings class provides access to global settings.
Definition qmmpsettings.h:36
The TrackInfo class stores metadata and other information about track.
Definition trackinfo.h:32