31 #include "Utils/MetaData/LibraryItem.h"
32 #include "Utils/MetaData/RadioMode.h"
33 #include "Utils/MetaData/Genre.h"
34 #include "Utils/Library/Sortorder.h"
35 #include "Utils/Pimpl.h"
52 explicit MetaData (
const QString& path);
60 QString title()
const;
61 void setTitle(
const QString& title);
63 QString artist()
const;
64 void setArtist(
const QString& artist);
65 ArtistId artistId()
const;
66 void setArtistId(ArtistId
id);
68 QString album()
const;
69 void setAlbum(
const QString& album);
70 AlbumId albumId()
const;
71 void setAlbumId(AlbumId
id);
73 const QString& comment()
const;
74 void setComment(
const QString& comment);
76 QString filepath()
const;
77 QString setFilepath(QString filepath,
RadioMode mode=RadioMode::Undefined);
79 ArtistId albumArtistId()
const;
80 QString albumArtist()
const;
81 bool hasAlbumArtist()
const;
83 void setAlbumArtist(
const QString& albumArtist, ArtistId
id=-1);
84 void setAlbumArtistId(ArtistId
id);
86 void setRadioStation(
const QString& url,
const QString& name=QString());
87 QString radioStation()
const;
88 QString radioStationName()
const;
95 bool operator==(
const MetaData& md)
const;
96 bool operator!=(
const MetaData& md)
const;
97 bool isEqual(
const MetaData& md)
const;
98 bool isEqualDeep(
const MetaData& md)
const;
102 bool hasGenre(
const Genre& genre)
const;
103 bool removeGenre(
const Genre& genre);
104 bool addGenre(
const Genre& genre);
106 void setGenres(
const QStringList& genres);
108 void setCreatedDate(uint64_t t);
109 uint64_t createdDate()
const;
110 QDateTime createdDateTime()
const;
112 void setModifiedDate(uint64_t t);
113 uint64_t modifiedDate()
const;
114 QDateTime modifiedDateTime()
const;
116 QString genresToString()
const;
117 QStringList genresToList()
const;
119 QString toString()
const;
121 static QVariant toVariant(
const MetaData& md);
122 static bool fromVariant(
const QVariant& v,
MetaData& md);
124 Disc discnumber()
const;
125 void setDiscnumber(
const Disc& value);
127 Disc discCount()
const;
128 void setDiscCount(
const Disc& value);
130 Bitrate bitrate()
const;
131 void setBitrate(
const Bitrate& value);
133 TrackNum trackNumber()
const;
134 void setTrackNumber(
const uint16_t& value);
137 void setYear(
const uint16_t& value);
139 Filesize filesize()
const;
140 void setFilesize(
const Filesize& value);
142 Rating rating()
const;
143 void setRating(
const Rating& value);
145 MilliSeconds durationMs()
const;
146 void setDurationMs(
const MilliSeconds& value);
148 bool isExtern()
const;
149 void setExtern(
bool value);
151 bool isDisabled()
const;
152 void setDisabled(
bool value);
154 LibraryId libraryId()
const;
155 void setLibraryid(
const LibraryId& value);
158 void setId(
const TrackID& value);
161 QHash<GenreID, Genre>& genrePool()
const;
164 #ifndef MetaDataDeclared
166 #define MetaDataDeclared