MythTV master
metaiotaglib.h
Go to the documentation of this file.
1#ifndef METAIOTAGLIB_H_
2#define METAIOTAGLIB_H_
3
4// libmythmetadata
5#include "metaio.h"
6#include "musicmetadata.h"
7
8// Taglib
9#include <taglib/tfile.h>
10
17{
18 public:
19 MetaIOTagLib(void) = default;
20 ~MetaIOTagLib(void) override = default;
21
22 bool write(const QString &filename, MusicMetadata* mdata) override = 0; // MetaIO
23 MusicMetadata* read(const QString &filename) override = 0; // MetaIO
24
25 protected:
26 static std::chrono::milliseconds getTrackLength(TagLib::File *file);
27 std::chrono::milliseconds getTrackLength(const QString &filename) override; // MetaIO
28 void ReadGenericMetadata(TagLib::Tag *tag, MusicMetadata *metadata);
29 static void WriteGenericMetadata(TagLib::Tag *tag, const MusicMetadata *metadata);
30};
31
32#endif
Base for Taglib metadata classes.
Definition: metaiotaglib.h:17
MusicMetadata * read(const QString &filename) override=0
Reads MusicMetadata from a file.
MetaIOTagLib(void)=default
bool write(const QString &filename, MusicMetadata *mdata) override=0
Writes all metadata back to a file.
~MetaIOTagLib(void) override=default
Definition: metaio.h:18
virtual std::chrono::milliseconds getTrackLength(const QString &filename)=0
#define META_PUBLIC
Definition: mythmetaexp.h:9