diff options
Diffstat (limited to 'indexerwidget.h')
-rw-r--r-- | indexerwidget.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/indexerwidget.h b/indexerwidget.h new file mode 100644 index 0000000..9fab07a --- /dev/null +++ b/indexerwidget.h @@ -0,0 +1,57 @@ +#ifndef INDEXERWIDGET_H +#define INDEXERWIDGET_H + +#include <QWidget> +#include <QThread> +#include <QMutex> + +#include "taglib/fileref.h" + +class QTextEdit; +class BeetReader; +struct BeetObject; + +class IndexerWidget : public QWidget { + Q_OBJECT + public: + explicit IndexerWidget(QWidget *parent = 0); + + public slots: + void startIndexing(); + void stopIndexing(); + void addToLog(QString msg); + + private: + QTextEdit *mLog; + BeetReader *mReader; + +}; + +class BeetReader : public QThread { + Q_OBJECT + public: + explicit BeetReader(); + virtual void run(); + void cancel(); + + signals: + void message(const QString &msg); + void processed(BeetObject &obj); + + private: + QString toQString(TagLib::String string); + QMutex mCancelMx; + bool mCanceled; +}; + +struct BeetObject { + QString artist; + QString album; + quint16 year; + QString genre; + quint16 pos; + QString title; + QString fullpath; +}; + +#endif // INDEXERWIDGET_H |