MythTV  master
metaioflacvorbis.h
Go to the documentation of this file.
1 #ifndef METAIOFLACVORBIS_H_
2 #define METAIOFLACVORBIS_H_
3 
4 // libmythmetadata
5 #include "metaiotaglib.h"
6 #include "musicmetadata.h"
7 
8 // Taglib
9 #include <flacfile.h>
10 
11 using TagLib::Tag;
12 using TagLib::String;
13 
22 {
23 public:
24  MetaIOFLACVorbis(void) = default;
25  ~MetaIOFLACVorbis(void) override = default;
26 
27  bool write(const QString &filename, MusicMetadata* mdata) override; // MetaIOTagLib
28  bool writeAlbumArt(const QString &filename, const AlbumArtImage *albumart) override; // MetaIO
29  bool removeAlbumArt(const QString &filename, const AlbumArtImage *albumart) override; // MetaIO
30 
31  MusicMetadata* read(const QString &filename) override; // MetaIOTagLib
32  AlbumArtList getAlbumArtList(const QString &filename) override; // MetaIO
33  QImage *getAlbumArt(const QString &filename, ImageType type) override; // MetaIO
34 
35  bool supportsEmbeddedImages(void) override { return true; } // MetaIO
36 
37  bool changeImageType(const QString &filename, const AlbumArtImage *albumart,
38  ImageType newType) override; // MetaIO
39 
40  bool TagExists(const QString &filename) override; // MetaIO
41 
42 private:
43  static TagLib::FLAC::File *OpenFile(const QString &filename);
44  static TagLib::FLAC::Picture *getPictureFromFile(TagLib::FLAC::File *flacfile,
45  ImageType type);
46  static TagLib::FLAC::Picture::Type PictureTypeFromImageType(ImageType itype);
47  static QString getExtFromMimeType(const QString &mimeType);
48 };
49 
50 #endif
MetaIO::changeImageType
virtual bool changeImageType([[maybe_unused]] const QString &filename, [[maybe_unused]] const AlbumArtImage *albumart, [[maybe_unused]] ImageType newType)
Definition: metaio.h:86
MetaIOFLACVorbis::supportsEmbeddedImages
bool supportsEmbeddedImages(void) override
Does the tag support embedded cover art.
Definition: metaioflacvorbis.h:35
MetaIO::TagExists
virtual bool TagExists([[maybe_unused]] const QString &filename)
Definition: metaio.h:124
MetaIOTagLib::write
bool write(const QString &filename, MusicMetadata *mdata) override=0
Writes all metadata back to a file.
MusicMetadata
Definition: musicmetadata.h:80
MetaIOTagLib::read
MusicMetadata * read(const QString &filename) override=0
Reads MusicMetadata from a file.
MetaIO::removeAlbumArt
virtual bool removeAlbumArt([[maybe_unused]] const QString &filename, [[maybe_unused]] const AlbumArtImage *albumart)
Definition: metaio.h:80
MetaIO::getAlbumArt
virtual QImage * getAlbumArt([[maybe_unused]] const QString &filename, [[maybe_unused]] ImageType type)
Definition: metaio.h:93
MetaIOTagLib
Base for Taglib metadata classes.
Definition: metaiotaglib.h:20
metaiotaglib.h
AlbumArtList
QList< AlbumArtImage * > AlbumArtList
Definition: musicmetadata.h:56
MetaIO::getAlbumArtList
virtual AlbumArtList getAlbumArtList([[maybe_unused]] const QString &filename)
Reads the list of embedded images in the tag.
Definition: metaio.h:69
MetaIOFLACVorbis
Read and write Vorbis (Xiph) tags in a FLAC file.
Definition: metaioflacvorbis.h:21
AlbumArtImage
Definition: musicmetadata.h:39
build_compdb.filename
filename
Definition: build_compdb.py:21
META_PUBLIC
#define META_PUBLIC
Definition: mythmetaexp.h:9
ImageType
ImageType
Definition: musicmetadata.h:28
musicmetadata.h
MetaIO::writeAlbumArt
virtual bool writeAlbumArt([[maybe_unused]] const QString &filename, [[maybe_unused]] const AlbumArtImage *albumart)
Definition: metaio.h:74