Qmmp
/usr/src/RPM/BUILD/qmmp-0.11-svn/src/qmmp/output.h
00001 
00002 // Copyright (c) 2000-2001 Brad Hughes <bhughes@trolltech.com>
00003 //
00004 // Use, modification and distribution is allowed without limitation,
00005 // warranty, or liability of any kind.
00006 //
00007 
00008 #ifndef OUTPUT_H
00009 #define OUTPUT_H
00010 
00011 #include <QList>
00012 #include <QIODevice>
00013 #include <QMap>
00014 #include "outputfactory.h"
00015 #include "audioparameters.h"
00016 #include "channelmap.h"
00017 
00018 class QTimer;
00019 class QmmpSettings;
00020 class QmmpPluginCache;
00021 
00026 class Output
00027 {
00028 public:
00032     Output();
00036     virtual ~Output();
00045     virtual bool initialize(quint32 freq, ChannelMap map, Qmmp::AudioFormat format) = 0;
00049     virtual qint64 latency() = 0;
00059     virtual qint64 writeAudio(unsigned char *data, qint64 maxSize) = 0;
00064     virtual void drain() = 0;
00069     virtual void reset() = 0;
00073     virtual void suspend();
00077     virtual void resume();
00083     virtual void setMetaData(const QMap<Qmmp::MetaData, QString> &metaData);
00087     AudioParameters audioParameters() const;
00091     quint32 sampleRate() const;
00095     int channels() const;
00099     const ChannelMap channelMap() const;
00103     Qmmp::AudioFormat format() const;
00107     int sampleSize() const;
00112     static Output *create();
00116     static QList<OutputFactory*> factories();
00121     static QString file(OutputFactory *factory);
00125     static void setCurrentFactory(OutputFactory* factory);
00129     static OutputFactory *currentFactory();
00130 
00131 protected:
00138     void configure(quint32 freq, ChannelMap map, Qmmp::AudioFormat format);
00139 
00140 private:
00141     quint32 m_frequency;
00142     ChannelMap m_chan_map;
00143     Qmmp::AudioFormat m_format;
00144     int m_sample_size;
00145     static void loadPlugins();
00146     static QList<QmmpPluginCache*> *m_cache;
00147 };
00148 
00149 
00150 #endif // OUTPUT_H
 All Classes Functions Variables Enumerations Enumerator