aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Input/ffmpeg/ffmpegmetadatamodel.h')
-rw-r--r--src/plugins/Input/ffmpeg/ffmpegmetadatamodel.h35
1 files changed, 34 insertions, 1 deletions
diff --git a/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.h b/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.h
index 518960401..b198655ed 100644
--- a/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.h
+++ b/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.h
@@ -21,17 +21,50 @@
#ifndef FFMPEGMETADATAMODEL_H
#define FFMPEGMETADATAMODEL_H
+#include <taglib/apefile.h>
+#include <taglib/apetag.h>
+#include <taglib/tfilestream.h>
#include <qmmp/metadatamodel.h>
class FFmpegMetaDataModel : public MetaDataModel
{
public:
- explicit FFmpegMetaDataModel(const QString &path);
+ explicit FFmpegMetaDataModel(const QString &path, bool readOnly);
~FFmpegMetaDataModel();
+ QList<TagModel *> tags() const override;
QPixmap cover() const override;
+ QString coverPath() const override;
+ QString cue() const;
+ void setCue(const QString &content);
+ void removeCue();
private:
QPixmap m_pixmap;
+ QList<TagModel* > m_tags;
+ TagLib::APE::Tag *m_tag;
+ TagLib::APE::File *m_file = nullptr;
+ TagLib::FileStream *m_stream = nullptr;
+ QString m_path;
+};
+
+class ApeTagModel : public TagModel
+{
+public:
+ ApeTagModel(TagLib::APE::File *file);
+ ~ApeTagModel();
+ QString name() const override;
+ QList<Qmmp::MetaData> keys() const override;
+ QString value(Qmmp::MetaData key) const override;
+ void setValue(Qmmp::MetaData key, const QString &value) override;
+ bool exists() const override;
+ void create() override;
+ void remove() override;
+ void save() override;
+
+private:
+ TagLib::APE::File *m_file;
+ bool m_strip = false;
+
};
#endif // FFMPEGMETADATAMODEL_H