#ifndef KTHUMB_H
#define KTHUMB_H
-#include <qobject.h>
-#include <qpixmap.h>
-#include <qfile.h>
-#include <qthread.h>
+#include <QPixmap>
+#include <QFile>
+#include <QThread>
+#include <QMutex>
+#include <QDomElement>
-#include <kurl.h>
+#include <KUrl>
#include <mlt++/Mlt.h>
namespace Mlt {
- class Miracle;
- class Consumer;
- class Producer;
- class Frame;
- class Profile;
+class Miracle;
+class Consumer;
+class Producer;
+class Frame;
+class Profile;
};
class ClipManager;
-class MyThread : public QThread {
- public:
- virtual void run();
- void init(QObject *parent, 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;
- QObject *m_parent;
- };
+class MyThread : public QThread {
+ Q_OBJECT
+public:
+ virtual void run();
+ void init(QObject *parent, 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;
+ QObject *m_parent;
-class KThumb:public QObject {
- Q_OBJECT public:
+signals:
+ void audioThumbProgress(const int);
+ void audioThumbOver();
+};
+
+class KThumb: public QObject {
+Q_OBJECT public:
- KThumb(ClipManager *clipManager, KUrl url, int width, int height, QObject * parent = 0, const char *name = 0);
+ KThumb(ClipManager *clipManager, KUrl url, const QString &id, QObject * parent = 0, const char *name = 0);
~KThumb();
+ void setProducer(Mlt::Producer *producer);
+ void askForAudioThumbs(const QString &id);
+ bool hasProducer() const;
public slots:
- void extractImage( int frame, int frame2);
- static QPixmap getImage(KUrl url, int width, int height);
-/* void getImage(KUrl url, int frame, int width, int height);
- void getThumbs(KUrl url, int startframe, int endframe, int width, int height);*/
- void stopAudioThumbs();
- void removeAudioThumb();
- void getAudioThumbs(int channel, double frame, double frameLength, int arrayWidth);
-
-protected:
- virtual void customEvent ( QEvent * event );
+ void extractImage(int frame, int frame2);
+ QPixmap extractImage(int frame, int width, int height);
+ void updateClipUrl(KUrl url);
+ static QPixmap getImage(KUrl url, int width, int height);
+// static QPixmap getImage(QDomElement xml, int frame, int width, int height);
+ /* void getImage(KUrl url, int frame, int width, int height);
+ void getThumbs(KUrl url, int startframe, int endframe, int width, int height);*/
+ void stopAudioThumbs();
+ 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);
+
+private slots:
+ void slotAudioThumbProgress(const int progress);
+ void slotAudioThumbOver();
private:
- MyThread thumbProducer;
- KUrl m_url;
- QString m_thumbFile;
- int m_width;
- int m_height;
- Mlt::Profile *m_profile;
- ClipManager *m_clipManager;
+ MyThread audioThumbProducer;
+ KUrl m_url;
+ QString m_thumbFile;
+ double m_dar;
+ Mlt::Producer *m_producer;
+ ClipManager *m_clipManager;
+ QString m_id;
+ int m_mainFrame;
signals:
- void thumbReady(int frame, QPixmap pm);
- void audioThumbReady(QMap <int, QMap <int, QByteArray> >);
+ void thumbReady(int, QPixmap);
+ void mainThumbReady(const QString &, QPixmap);
+ void audioThumbReady(QMap <int, QMap <int, QByteArray> >);
};
#endif