MythTV
master
mythtv
libs
libmythmetadata
metaio.h
Go to the documentation of this file.
1
#ifndef METAIO_H_
2
#define METAIO_H_
3
4
// POSIX C headers
5
#include <unistd.h>
6
#include <fcntl.h>
7
#include <sys/stat.h>
8
9
// QT
10
#include <QString>
11
12
// libmythmetadata
13
#include "
musicmetadata.h
"
14
15
static
constexpr
const
char
*
MYTH_MUSICBRAINZ_ALBUMARTIST_UUID
{
"89ad4ac3-39f7-470e-963a-56509c546377"
};
16
17
class
META_PUBLIC
MetaIO
18
{
19
public
:
20
MetaIO
();
21
virtual
~MetaIO
(
void
) =
default
;
22
30
virtual
bool
write
(
const
QString &
filename
,
MusicMetadata
* mdata) = 0;
31
38
virtual
bool
writeVolatileMetadata
([[maybe_unused]]
const
QString &
filename
,
39
[[maybe_unused]]
MusicMetadata
* mdata)
40
{
41
return
false
;
42
}
43
50
virtual
MusicMetadata
*
read
(
const
QString &
filename
) = 0;
51
57
virtual
bool
supportsEmbeddedImages
(
void
)
58
{
59
return
false
;
60
}
61
68
virtual
AlbumArtList
getAlbumArtList
([[maybe_unused]]
const
QString &
filename
)
69
{
70
return
{};
71
}
72
73
virtual
bool
writeAlbumArt
([[maybe_unused]]
const
QString &
filename
,
74
[[maybe_unused]]
const
AlbumArtImage
*albumart)
75
{
76
return
false
;
77
}
78
79
virtual
bool
removeAlbumArt
([[maybe_unused]]
const
QString &
filename
,
80
[[maybe_unused]]
const
AlbumArtImage
*albumart)
81
{
82
return
false
;
83
}
84
85
virtual
bool
changeImageType
([[maybe_unused]]
const
QString &
filename
,
86
[[maybe_unused]]
const
AlbumArtImage
*albumart,
87
[[maybe_unused]]
ImageType
newType)
88
{
89
return
false
;
90
}
91
92
virtual
QImage *
getAlbumArt
([[maybe_unused]]
const
QString &
filename
,
93
[[maybe_unused]]
ImageType
type
)
94
{
95
return
nullptr
;
96
}
97
108
void
readFromFilename(
const
QString &
filename
, QString &artist,
109
QString &album, QString &title, QString &genre,
110
int
&tracknum);
111
119
MusicMetadata
* readFromFilename(
const
QString &
filename
,
bool
blnLength =
false
);
120
121
void
readFromFilename(
MusicMetadata
*metadata);
122
123
virtual
bool
TagExists
([[maybe_unused]]
const
QString &
filename
)
124
{
125
return
false
;
126
}
127
137
static
MetaIO
*createTagger(
const
QString &
filename
);
138
147
static
MusicMetadata
*readMetadata(
const
QString &
filename
);
148
158
static
MusicMetadata
*getMetadata(
const
QString &
filename
);
159
160
static
const
QString
kValidFileExtensions
;
161
162
protected
:
163
void
saveTimeStamps(
void
);
164
void
restoreTimeStamps(
void
);
165
166
virtual
std::chrono::milliseconds
getTrackLength
(
const
QString &
filename
) = 0;
167
168
QString
m_filename
;
169
QString
m_filenameFormat
;
170
171
struct
stat
m_fileinfo
{};
172
};
173
174
#endif
175
AlbumArtImage
Definition:
musicmetadata.h:40
MetaIO
Definition:
metaio.h:18
MetaIO::changeImageType
virtual bool changeImageType(const QString &filename, const AlbumArtImage *albumart, ImageType newType)
Definition:
metaio.h:85
MetaIO::write
virtual bool write(const QString &filename, MusicMetadata *mdata)=0
Writes all metadata back to a file.
MetaIO::read
virtual MusicMetadata * read(const QString &filename)=0
Reads MusicMetadata from a file.
MetaIO::m_filenameFormat
QString m_filenameFormat
Definition:
metaio.h:169
MetaIO::~MetaIO
virtual ~MetaIO(void)=default
MetaIO::kValidFileExtensions
static const QString kValidFileExtensions
Definition:
metaio.h:160
MetaIO::writeAlbumArt
virtual bool writeAlbumArt(const QString &filename, const AlbumArtImage *albumart)
Definition:
metaio.h:73
MetaIO::getAlbumArt
virtual QImage * getAlbumArt(const QString &filename, ImageType type)
Definition:
metaio.h:92
MetaIO::m_filename
QString m_filename
Definition:
metaio.h:168
MetaIO::getTrackLength
virtual std::chrono::milliseconds getTrackLength(const QString &filename)=0
MetaIO::TagExists
virtual bool TagExists(const QString &filename)
Definition:
metaio.h:123
MetaIO::supportsEmbeddedImages
virtual bool supportsEmbeddedImages(void)
Does the tag support embedded cover art.
Definition:
metaio.h:57
MetaIO::removeAlbumArt
virtual bool removeAlbumArt(const QString &filename, const AlbumArtImage *albumart)
Definition:
metaio.h:79
MetaIO::writeVolatileMetadata
virtual bool writeVolatileMetadata(const QString &filename, MusicMetadata *mdata)
Writes rating and playcount back to a file.
Definition:
metaio.h:38
MetaIO::getAlbumArtList
virtual AlbumArtList getAlbumArtList(const QString &filename)
Reads the list of embedded images in the tag.
Definition:
metaio.h:68
MusicMetadata
Definition:
musicmetadata.h:81
MYTH_MUSICBRAINZ_ALBUMARTIST_UUID
static constexpr const char * MYTH_MUSICBRAINZ_ALBUMARTIST_UUID
Definition:
metaio.h:15
musicmetadata.h
ImageType
ImageType
Definition:
musicmetadata.h:29
AlbumArtList
QList< AlbumArtImage * > AlbumArtList
Definition:
musicmetadata.h:56
META_PUBLIC
#define META_PUBLIC
Definition:
mythmetaexp.h:9
build_compdb.filename
filename
Definition:
build_compdb.py:21
hardwareprofile.getLink.type
type
Definition:
getLink.py:56
MetaIO::m_fileinfo
Definition:
metaio.h:171
Generated on Fri Oct 3 2025 03:16:18 for MythTV by
1.9.4