48 explicit MetaData(
const QString& path);
49 MetaData(
const MetaData& other);
50 MetaData(MetaData&& other)
noexcept;
51 MetaData& operator=(
const MetaData& md);
52 MetaData& operator=(MetaData&& md)
noexcept;
56 [[nodiscard]] QString title()
const;
57 void setTitle(
const QString& title);
59 [[nodiscard]] QString artist()
const;
60 void setArtist(
const QString& artist);
61 [[nodiscard]] ArtistId artistId()
const;
62 void setArtistId(ArtistId
id);
64 [[nodiscard]] QString album()
const;
65 void setAlbum(
const QString& album);
66 [[nodiscard]] AlbumId albumId()
const;
67 void setAlbumId(AlbumId
id);
69 [[nodiscard]]
const QString& comment()
const;
70 void setComment(
const QString& comment);
72 [[nodiscard]] QString filepath()
const;
73 [[nodiscard]] HashValue filepathHash()
const;
74 QString setFilepath(
const QString& filepath,
RadioMode mode = RadioMode::Undefined);
76 [[nodiscard]] ArtistId albumArtistId()
const;
77 [[nodiscard]] QString albumArtist()
const;
79 void setAlbumArtist(
const QString& albumArtist, ArtistId
id = -1);
80 void setAlbumArtistId(ArtistId
id);
82 void setRadioStation(
const QString& url,
const QString& name = QString());
83 [[nodiscard]] QString radioStation()
const;
84 [[nodiscard]] QString radioStationName()
const;
86 [[nodiscard]]
RadioMode radioMode()
const;
89 [[nodiscard]]
bool isUpdatable()
const;
90 void setUpdateable(
bool b);
92 [[nodiscard]]
bool isValid()
const;
94 bool operator==(
const MetaData& other)
const;
95 bool operator!=(
const MetaData& other)
const;
96 [[nodiscard]]
bool isEqual(
const MetaData& other)
const;
97 [[nodiscard]]
bool isEqualDeep(
const MetaData& md)
const;
101 [[nodiscard]]
bool hasGenre(
const Genre& genre)
const;
102 bool removeGenre(
const Genre& genre);
103 bool addGenre(
const Genre& genre);
105 void setGenres(
const QStringList& newGenres);
107 void setCreatedDate(uint64_t t);
108 [[nodiscard]] uint64_t createdDate()
const;
109 [[nodiscard]] QDateTime createdDateTime()
const;
111 void setModifiedDate(uint64_t t);
112 [[nodiscard]] uint64_t modifiedDate()
const;
113 [[nodiscard]] QDateTime modifiedDateTime()
const;
115 [[nodiscard]] QString genresToString()
const;
116 [[nodiscard]] QStringList genresToList()
const;
118 [[nodiscard]] Disc discnumber()
const;
119 void setDiscnumber(
const Disc& value);
121 [[nodiscard]] Disc discCount()
const;
122 void setDiscCount(
const Disc& value);
124 [[nodiscard]] Bitrate bitrate()
const;
125 void setBitrate(
const Bitrate& value);
127 [[nodiscard]] TrackNum trackNumber()
const;
128 void setTrackNumber(
const uint16_t& value);
130 [[nodiscard]] Year year()
const;
131 void setYear(
const uint16_t& value);
133 [[nodiscard]] Filesize filesize()
const;
134 void setFilesize(
const Filesize& value);
136 [[nodiscard]] Rating rating()
const;
137 void setRating(
const Rating& value);
139 [[nodiscard]] MilliSeconds durationMs()
const;
140 void setDurationMs(
const MilliSeconds& value);
142 [[nodiscard]]
bool isExtern()
const;
143 void setExtern(
bool value);
145 [[nodiscard]]
bool isDisabled()
const;
146 void setDisabled(
bool value);
148 [[nodiscard]] LibraryId libraryId()
const;
149 void setLibraryid(
const LibraryId& value);
151 [[nodiscard]] TrackID id()
const;
152 void setId(
const TrackID& value);
154 [[nodiscard]]
static QString getTitleFromFilepath(
const QString& filepath);