00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef INPUTSOURCE_H
00022 #define INPUTSOURCE_H
00023
00024 #include <QObject>
00025 #include <QString>
00026 #include <QStringList>
00027 #include <QIODevice>
00028 #include "inputsourcefactory.h"
00029
00033 class InputSource : public QObject
00034 {
00035 Q_OBJECT
00036 public:
00042 InputSource(const QString &url, QObject *parent = 0);
00047 virtual QIODevice *ioDevice() = 0;
00052 virtual bool initialize() = 0;
00056 virtual bool isReady() = 0;
00060 const QString url() const;
00064 qint64 offset() const;
00068 void setOffset(qint64 offset);
00075 static InputSource *create(const QString &url, QObject *parent = 0);
00079 static QList<InputSourceFactory *> *factories();
00083 static QStringList files();
00084
00085 signals:
00090 void ready(InputSource *s);
00091
00092 private:
00093 QString m_url;
00094 qint64 m_offset;
00095 static void checkFactories();
00096 static QList<InputSourceFactory*> *m_factories;
00097 static QStringList m_files;
00098 };
00099
00100 #endif // INPUTSOURCE_H