MythTV
master
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
(
void
)
21
: m_filenameFormat(
gCoreContext
->GetSetting(
"NonID3FileNameFormat"
).toUpper()) {};
22
virtual
~
MetaIO
(
void
) =
default
;
23
31
virtual
bool
write
(
const
QString &
filename
,
MusicMetadata
* mdata) = 0;
32
39
virtual
bool
writeVolatileMetadata
(
const
QString &
filename
,
MusicMetadata
* mdata)
40
{
41
// These are here so that the parameters can be documented
42
// with doxygen.
43
(void)
filename
;
44
(void) mdata;
45
return
false
;
46
}
47
54
virtual
MusicMetadata
*
read
(
const
QString &
filename
) = 0;
55
61
virtual
bool
supportsEmbeddedImages
(
void
)
62
{
63
return
false
;
64
}
65
72
virtual
AlbumArtList
getAlbumArtList
(
const
QString &
filename
)
73
{
74
(void)
filename
;
75
return
{};
76
}
77
78
virtual
bool
writeAlbumArt
(
const
QString &
filename
,
79
const
AlbumArtImage
*albumart)
80
{
81
(void)
filename
;
82
(void)albumart;
83
return
false
;
84
}
85
86
virtual
bool
removeAlbumArt
(
const
QString &
filename
,
87
const
AlbumArtImage
*albumart)
88
{
89
(void)
filename
;
90
(void)albumart;
91
return
false
;
92
}
93
94
virtual
bool
changeImageType
(
const
QString &
filename
,
95
const
AlbumArtImage
*albumart,
96
ImageType
newType)
97
{
98
(void)
filename
;
99
(void)albumart;
100
(void)newType;
101
return
false
;
102
}
103
104
virtual
QImage *
getAlbumArt
(
const
QString &
filename
,
ImageType
type
)
105
{
106
(void)
filename
;
107
(void)
type
;
108
return
nullptr
;
109
}
110
121
void
readFromFilename(
const
QString &
filename
, QString &artist,
122
QString &album, QString &title, QString &genre,
123
int
&tracknum);
124
132
MusicMetadata
* readFromFilename(
const
QString &
filename
,
bool
blnLength =
false
);
133
134
void
readFromFilename(
MusicMetadata
*metadata);
135
136
virtual
bool
TagExists
(
const
QString &
filename
)
137
{
138
(void)
filename
;
139
return
false
;
140
}
141
151
static
MetaIO
*createTagger(
const
QString &
filename
);
152
161
static
MusicMetadata
*readMetadata(
const
QString &
filename
);
162
172
static
MusicMetadata
*getMetadata(
const
QString &
filename
);
173
174
static
const
QString
kValidFileExtensions
;
175
176
protected
:
177
void
saveTimeStamps(
void
);
178
void
restoreTimeStamps(
void
);
179
180
virtual
std::chrono::milliseconds getTrackLength(
const
QString &
filename
) = 0;
181
182
QString
m_filename
;
183
QString
m_filenameFormat
;
184
185
struct
stat
m_fileinfo
{};
186
};
187
188
#endif
189
MetaIO::getAlbumArt
virtual QImage * getAlbumArt(const QString &filename, ImageType type)
Definition:
metaio.h:104
discid.disc.read
def read(device=None, features=[])
Definition:
disc.py:35
mythburn.write
def write(text, progress=True)
Definition:
mythburn.py:308
MetaIO
Definition:
metaio.h:17
MetaIO::m_filename
QString m_filename
Definition:
metaio.h:182
MetaIO::writeAlbumArt
virtual bool writeAlbumArt(const QString &filename, const AlbumArtImage *albumart)
Definition:
metaio.h:78
MusicMetadata
Definition:
musicmetadata.h:80
MetaIO::changeImageType
virtual bool changeImageType(const QString &filename, const AlbumArtImage *albumart, ImageType newType)
Definition:
metaio.h:94
MetaIO::supportsEmbeddedImages
virtual bool supportsEmbeddedImages(void)
Does the tag support embedded cover art.
Definition:
metaio.h:61
MetaIO::MetaIO
MetaIO(void)
Definition:
metaio.h:20
hardwareprofile.getLink.type
type
Definition:
getLink.py:57
MetaIO::m_fileinfo
Definition:
metaio.h:185
MetaIO::removeAlbumArt
virtual bool removeAlbumArt(const QString &filename, const AlbumArtImage *albumart)
Definition:
metaio.h:86
gCoreContext
MythCoreContext * gCoreContext
This global variable contains the MythCoreContext instance for the app.
Definition:
mythcorecontext.cpp:54
MetaIO::getAlbumArtList
virtual AlbumArtList getAlbumArtList(const QString &filename)
Reads the list of embedded images in the tag.
Definition:
metaio.h:72
AlbumArtList
QList< AlbumArtImage * > AlbumArtList
Definition:
musicmetadata.h:56
MetaIO::writeVolatileMetadata
virtual bool writeVolatileMetadata(const QString &filename, MusicMetadata *mdata)
Writes rating and playcount back to a file.
Definition:
metaio.h:39
MYTH_MUSICBRAINZ_ALBUMARTIST_UUID
static constexpr const char * MYTH_MUSICBRAINZ_ALBUMARTIST_UUID
Definition:
metaio.h:15
AlbumArtImage
Definition:
musicmetadata.h:39
MetaIO::TagExists
virtual bool TagExists(const QString &filename)
Definition:
metaio.h:136
build_compdb.filename
filename
Definition:
build_compdb.py:21
MetaIO::kValidFileExtensions
static const QString kValidFileExtensions
Definition:
metaio.h:174
META_PUBLIC
#define META_PUBLIC
Definition:
mythmetaexp.h:9
MetaIO::m_filenameFormat
QString m_filenameFormat
Definition:
metaio.h:183
ImageType
ImageType
Definition:
musicmetadata.h:28
musicmetadata.h
Generated on Mon Jun 5 2023 03:21:12 for MythTV by
1.8.17