#include <QPixmap>
#include <QFile>
-#include <QThread>
-#include <QMutex>
#include <QDomElement>
+#include <QFuture>
#include <KUrl>
class ClipManager;
-
-
-class MyThread : public QThread
-{
- Q_OBJECT
-public:
- virtual void run();
- void init(KUrl url, QString target, double frame, double frameLength, int frequency, int channels, int arrayWidth);
- bool isWorking();
- bool stop_me;
-
-private:
- QFile f;
- KUrl m_url;
- double m_frame;
- double m_frameLength;
- int m_frequency;
- int m_channels;
- int m_arrayWidth;
- bool m_isWorking;
-
-signals:
- void audioThumbProgress(const int);
- void audioThumbOver();
-};
-
class KThumb: public QObject
{
Q_OBJECT public:
void removeAudioThumb();
void getAudioThumbs(int channel, double frame, double frameLength, int arrayWidth);
static QPixmap getImage(KUrl url, int frame, int width, int height);
- static QPixmap getFrame(Mlt::Producer *producer, int framepos, int width, int height);
+ static QImage getFrame(Mlt::Producer *producer, int framepos, int width, int height);
private slots:
- void slotAudioThumbProgress(const int progress);
void slotAudioThumbOver();
+ void slotCreateAudioThumbs();
private:
- MyThread audioThumbProducer;
+ QFuture<void> m_audioThumbProducer;
KUrl m_url;
QString m_thumbFile;
double m_dar;
Mlt::Producer *m_producer;
ClipManager *m_clipManager;
QString m_id;
+ QList <int> m_requestedThumbs;
+ QFuture<void> m_future;
+ QFile m_audioThumbFile;
+ bool m_stopAudioThumbs;
+ double m_frame;
+ double m_frameLength;
+ int m_frequency;
+ int m_channels;
+ int m_arrayWidth;
+ void doGetThumbs();
signals:
- void thumbReady(int, QPixmap);
+ void thumbReady(int, QImage);
void mainThumbReady(const QString &, QPixmap);
void audioThumbReady(QMap <int, QMap <int, QByteArray> >);
};