diff options
Diffstat (limited to 'lib/decoder.h')
| -rw-r--r-- | lib/decoder.h | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/lib/decoder.h b/lib/decoder.h deleted file mode 100644 index 97a3e1da6..000000000 --- a/lib/decoder.h +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright (c) 2000-2001 Brad Hughes <bhughes@trolltech.com> -// -// Use, modification and distribution is allowed without limitation, -// warranty, or liability of any kind. -// - -#ifndef DECODER_H -#define DECODER_H - -#include <QThread> -#include <QList> -#include <QMutex> -#include <QWaitCondition> -#include <QObject> -#include <QStringList> - -#include "filetag.h" - -class QObject; -class QIODevice; - -class Decoder; -class DecoderFactory; -class Buffer; -class Recycler; -class Output; -class Visualization; -class Effect; - - - -class DecoderState -{ -public: - enum Type { Decoding, Stopped, Finished, Info, Error }; - - DecoderState(const DecoderState &st) - : m_error_msg(0), m_tag(0) - { - m_type = st.type(); - if (m_type == Info) - m_tag = new FileTag(*st.tag()); - else if (m_type == Error) - m_error_msg = new QString(*st.errorMessage()); - } - - - DecoderState(Type t) - : m_type(t), m_error_msg(0), m_tag(0) -{} - - DecoderState(const QString &e) - : m_type(Error), m_tag(0) - { - m_error_msg = new QString(e); - } - - DecoderState() - : m_type(Stopped), m_error_msg(0), m_tag(0) - {} - - DecoderState(const FileTag &tag) - : m_type(Info), m_error_msg(0), m_tag(0) - { - m_tag = new FileTag(tag); - } - - ~DecoderState() - { - if (m_error_msg) - delete m_error_msg; - if (m_tag) - delete m_tag; - } - - const QString *errorMessage() const - { - return m_error_msg; - } - const Type &type() const - { - return m_type; - } - const FileTag *tag() const - { - return m_tag; - } - -private: - Type m_type; - const QString *m_error_msg; - FileTag *m_tag; -}; - - - -class Decoder : public QThread -{ - Q_OBJECT -public: - Decoder(QObject *parent, DecoderFactory *d, - QIODevice *i, Output *o); - virtual ~Decoder(); - - // Standard Decoder API - virtual bool initialize() = 0; - virtual double lengthInSeconds() = 0; - virtual void seek(double) = 0; - virtual void stop() = 0; - - DecoderFactory *factory() const - { - return fctry; - } - - QIODevice *input() - { - return in; - } - Output *output() - { - return m_output; - } - - QMutex *mutex() - { - return &mtx; - } - QWaitCondition *cond() - { - return &cnd; - } - - void setBlockSize(unsigned int sz) - { - blksize = sz; - } - - unsigned int blockSize() const - { - return blksize; - } - ulong produceSound(char *data, ulong output_bytes, ulong bitrate, int nch); - void setEQ(int bands[10], int preamp); - void setEQEnabled(bool on) - { - m_useEQ = on; - }; - - // static methods - static QStringList all(); - static bool supports(const QString &); - //static void registerFactory(DecoderFactory *); - static Decoder *create(QObject *, const QString &, QIODevice *, Output *); - static DecoderFactory *findByPath(const QString&); - static DecoderFactory *findByMime(const QString&); - static DecoderFactory *findByContent(QIODevice *); - static FileTag *createTag(const QString&); - static QString filter(); - static QStringList nameFilters(); - static QList<DecoderFactory*> *decoderFactories(); - static QStringList decoderFiles(); - -signals: - void stateChanged(const DecoderState&); - -protected: - void configure(long freq, int channels, int prec, int bitrate); - void dispatch(DecoderState::Type); - void dispatch(const DecoderState&); - void dispatch(const FileTag&); - void error(const QString&); - -private: - DecoderFactory *fctry; - - QList <Effect*> m_effects; - QIODevice *in; - Output *m_output; - - QMutex mtx; - QWaitCondition cnd; - - uint blksize; - bool m_eqInited; - bool m_useEQ; - -}; - -#endif // DECODER_H |
