Changeset View
Changeset View
Standalone View
Standalone View
src/musicaudiotrack.cpp
Show All 14 Lines | |||||
15 | * along with this program. If not, see <https://www.gnu.org/licenses/>. | 15 | * along with this program. If not, see <https://www.gnu.org/licenses/>. | ||
16 | */ | 16 | */ | ||
17 | 17 | | |||
18 | #include "musicaudiotrack.h" | 18 | #include "musicaudiotrack.h" | ||
19 | 19 | | |||
20 | #include <QDateTime> | 20 | #include <QDateTime> | ||
21 | #include <QDebug> | 21 | #include <QDebug> | ||
22 | #include <utility> | 22 | #include <utility> | ||
23 | #include <QSharedData> | ||||
23 | 24 | | |||
24 | class MusicAudioTrackPrivate | 25 | class MusicAudioTrackPrivate : public QSharedData | ||
25 | { | 26 | { | ||
26 | public: | 27 | public: | ||
27 | 28 | | |||
28 | MusicAudioTrackPrivate() = default; | 29 | MusicAudioTrackPrivate() = default; | ||
29 | 30 | | |||
30 | MusicAudioTrackPrivate(bool aValid, QString aId, QString aParentId, | 31 | MusicAudioTrackPrivate(bool aValid, QString aId, QString aParentId, | ||
31 | QString aTitle, QString aArtist, QString aAlbumName, QString aAlbumArtist, | 32 | QString aTitle, QString aArtist, QString aAlbumName, QString aAlbumArtist, | ||
32 | int aTrackNumber, int aDiscNumber, QTime aDuration, QUrl aResourceURI, | 33 | int aTrackNumber, int aDiscNumber, QTime aDuration, QUrl aResourceURI, | ||
33 | QDateTime fileModificationTime, QUrl aAlbumCover, int rating, | 34 | QDateTime fileModificationTime, QUrl aAlbumCover, int rating, | ||
34 | bool aIsSingleDiscAlbum, QString aGenre, QString aComposer, | 35 | bool aIsSingleDiscAlbum, QString aGenre, QString aComposer, | ||
35 | QString aLyricist) | 36 | QString aLyricist) | ||
36 | : mId(std::move(aId)), mParentId(std::move(aParentId)), mTitle(std::move(aTitle)), mArtist(std::move(aArtist)), | 37 | : QSharedData(), mId(std::move(aId)), mParentId(std::move(aParentId)), | ||
38 | mTitle(std::move(aTitle)), mArtist(std::move(aArtist)), | ||||
37 | mAlbumName(std::move(aAlbumName)), mAlbumArtist(std::move(aAlbumArtist)), | 39 | mAlbumName(std::move(aAlbumName)), mAlbumArtist(std::move(aAlbumArtist)), | ||
38 | mGenre(std::move(aGenre)), mComposer(std::move(aComposer)), mLyricist(std::move(aLyricist)), | 40 | mGenre(std::move(aGenre)), mComposer(std::move(aComposer)), mLyricist(std::move(aLyricist)), | ||
39 | mResourceURI(std::move(aResourceURI)), | 41 | mResourceURI(std::move(aResourceURI)), | ||
40 | mAlbumCover(std::move(aAlbumCover)), | 42 | mAlbumCover(std::move(aAlbumCover)), | ||
41 | mFileModificationTime(std::move(fileModificationTime)), mDuration(aDuration), | 43 | mFileModificationTime(std::move(fileModificationTime)), mDuration(aDuration), | ||
42 | mTrackNumber(aTrackNumber), mDiscNumber(aDiscNumber), mRating(rating), | 44 | mTrackNumber(aTrackNumber), mDiscNumber(aDiscNumber), mRating(rating), | ||
43 | mIsValid(aValid), mIsSingleDiscAlbum(aIsSingleDiscAlbum) | 45 | mIsValid(aValid), mIsSingleDiscAlbum(aIsSingleDiscAlbum) | ||
44 | { | 46 | { | ||
▲ Show 20 Lines • Show All 46 Lines • ▼ Show 20 Line(s) | |||||
91 | int mRating = -1; | 93 | int mRating = -1; | ||
92 | 94 | | |||
93 | bool mIsValid = false; | 95 | bool mIsValid = false; | ||
94 | 96 | | |||
95 | bool mIsSingleDiscAlbum = true; | 97 | bool mIsSingleDiscAlbum = true; | ||
96 | 98 | | |||
97 | }; | 99 | }; | ||
98 | 100 | | |||
99 | MusicAudioTrack::MusicAudioTrack() : d(std::make_unique<MusicAudioTrackPrivate>()) | 101 | MusicAudioTrack::MusicAudioTrack() : d(new MusicAudioTrackPrivate()) | ||
100 | { | 102 | { | ||
101 | } | 103 | } | ||
102 | 104 | | |||
103 | MusicAudioTrack::MusicAudioTrack(bool aValid, QString aId, QString aParentId, QString aTitle, QString aArtist, QString aAlbumName, | 105 | MusicAudioTrack::MusicAudioTrack(bool aValid, QString aId, QString aParentId, QString aTitle, QString aArtist, QString aAlbumName, | ||
104 | QString aAlbumArtist, int aTrackNumber, int aDiscNumber, QTime aDuration, QUrl aResourceURI, | 106 | QString aAlbumArtist, int aTrackNumber, int aDiscNumber, QTime aDuration, QUrl aResourceURI, | ||
105 | const QDateTime &fileModificationTime, QUrl aAlbumCover, int rating, bool aIsSingleDiscAlbum, | 107 | const QDateTime &fileModificationTime, QUrl aAlbumCover, int rating, bool aIsSingleDiscAlbum, | ||
106 | QString aGenre, QString aComposer, QString aLyricist) | 108 | QString aGenre, QString aComposer, QString aLyricist) | ||
107 | : d(std::make_unique<MusicAudioTrackPrivate>(aValid, std::move(aId), std::move(aParentId), | 109 | : d(new MusicAudioTrackPrivate(aValid, std::move(aId), std::move(aParentId), | ||
108 | std::move(aTitle), std::move(aArtist), | 110 | std::move(aTitle), std::move(aArtist), | ||
109 | std::move(aAlbumName), std::move(aAlbumArtist), | 111 | std::move(aAlbumName), std::move(aAlbumArtist), | ||
110 | aTrackNumber, aDiscNumber, aDuration, | 112 | aTrackNumber, aDiscNumber, aDuration, | ||
111 | std::move(aResourceURI), fileModificationTime, | 113 | std::move(aResourceURI), fileModificationTime, | ||
112 | std::move(aAlbumCover), rating, | 114 | std::move(aAlbumCover), rating, | ||
113 | aIsSingleDiscAlbum, std::move(aGenre), | 115 | aIsSingleDiscAlbum, std::move(aGenre), | ||
114 | std::move(aComposer), std::move(aLyricist))) | 116 | std::move(aComposer), std::move(aLyricist))) | ||
115 | { | 117 | { | ||
116 | } | 118 | } | ||
117 | 119 | | |||
118 | MusicAudioTrack::MusicAudioTrack(MusicAudioTrack &&other) noexcept | 120 | MusicAudioTrack::MusicAudioTrack(MusicAudioTrack &&other) noexcept = default; | ||
119 | { | | |||
120 | d.swap(other.d); | | |||
121 | } | | |||
122 | 121 | | |||
123 | MusicAudioTrack::MusicAudioTrack(const MusicAudioTrack &other) : d(std::make_unique<MusicAudioTrackPrivate>(*other.d)) | 122 | MusicAudioTrack::MusicAudioTrack(const MusicAudioTrack &other) = default; | ||
124 | { | | |||
125 | } | | |||
126 | 123 | | |||
127 | MusicAudioTrack::~MusicAudioTrack() | 124 | MusicAudioTrack::~MusicAudioTrack() | ||
128 | = default; | 125 | = default; | ||
129 | 126 | | |||
130 | MusicAudioTrack& MusicAudioTrack::operator=(MusicAudioTrack &&other) noexcept | 127 | MusicAudioTrack& MusicAudioTrack::operator=(MusicAudioTrack &&other) noexcept = default; | ||
131 | { | | |||
132 | if (this != &other) { | | |||
133 | d.reset(); | | |||
134 | d.swap(other.d); | | |||
135 | } | | |||
136 | | ||||
137 | return *this; | | |||
138 | } | | |||
139 | | ||||
140 | MusicAudioTrack& MusicAudioTrack::operator=(const MusicAudioTrack &other) | | |||
141 | { | | |||
142 | if (this != &other) { | | |||
143 | (*d) = (*other.d); | | |||
144 | } | | |||
145 | 128 | | |||
146 | return *this; | 129 | MusicAudioTrack& MusicAudioTrack::operator=(const MusicAudioTrack &other) = default; | ||
147 | } | | |||
148 | 130 | | |||
149 | bool MusicAudioTrack::operator <(const MusicAudioTrack &other) const | 131 | bool MusicAudioTrack::operator <(const MusicAudioTrack &other) const | ||
150 | { | 132 | { | ||
151 | return d->mDiscNumber < other.d->mDiscNumber || | 133 | return d->mDiscNumber < other.d->mDiscNumber || | ||
152 | (d->mDiscNumber == other.d->mDiscNumber && d->mTrackNumber < other.d->mTrackNumber); | 134 | (d->mDiscNumber == other.d->mDiscNumber && d->mTrackNumber < other.d->mTrackNumber); | ||
153 | } | 135 | } | ||
154 | 136 | | |||
155 | bool MusicAudioTrack::operator ==(const MusicAudioTrack &other) const | 137 | bool MusicAudioTrack::operator ==(const MusicAudioTrack &other) const | ||
▲ Show 20 Lines • Show All 50 Lines • ▼ Show 20 Line(s) | 187 | { | |||
206 | d->mAlbumId = value; | 188 | d->mAlbumId = value; | ||
207 | } | 189 | } | ||
208 | 190 | | |||
209 | qulonglong MusicAudioTrack::albumId() const | 191 | qulonglong MusicAudioTrack::albumId() const | ||
210 | { | 192 | { | ||
211 | return d->mAlbumId; | 193 | return d->mAlbumId; | ||
212 | } | 194 | } | ||
213 | 195 | | |||
214 | void MusicAudioTrack::setId(const QString &value) const | 196 | void MusicAudioTrack::setId(const QString &value) | ||
215 | { | 197 | { | ||
216 | d->mId = value; | 198 | d->mId = value; | ||
217 | } | 199 | } | ||
218 | 200 | | |||
219 | QString MusicAudioTrack::id() const | 201 | QString MusicAudioTrack::id() const | ||
220 | { | 202 | { | ||
221 | return d->mId; | 203 | return d->mId; | ||
222 | } | 204 | } | ||
223 | 205 | | |||
224 | void MusicAudioTrack::setParentId(const QString &value) const | 206 | void MusicAudioTrack::setParentId(const QString &value) | ||
225 | { | 207 | { | ||
226 | d->mParentId = value; | 208 | d->mParentId = value; | ||
227 | } | 209 | } | ||
228 | 210 | | |||
229 | QString MusicAudioTrack::parentId() const | 211 | QString MusicAudioTrack::parentId() const | ||
230 | { | 212 | { | ||
231 | return d->mParentId; | 213 | return d->mParentId; | ||
232 | } | 214 | } | ||
233 | 215 | | |||
234 | void MusicAudioTrack::setTitle(const QString &value) const | 216 | void MusicAudioTrack::setTitle(const QString &value) | ||
235 | { | 217 | { | ||
236 | d->mTitle = value; | 218 | d->mTitle = value; | ||
237 | } | 219 | } | ||
238 | 220 | | |||
239 | QString MusicAudioTrack::title() const | 221 | QString MusicAudioTrack::title() const | ||
240 | { | 222 | { | ||
241 | return d->mTitle; | 223 | return d->mTitle; | ||
242 | } | 224 | } | ||
243 | 225 | | |||
244 | void MusicAudioTrack::setArtist(const QString &value) const | 226 | void MusicAudioTrack::setArtist(const QString &value) | ||
245 | { | 227 | { | ||
246 | d->mArtist = value; | 228 | d->mArtist = value; | ||
247 | } | 229 | } | ||
248 | 230 | | |||
249 | QString MusicAudioTrack::artist() const | 231 | QString MusicAudioTrack::artist() const | ||
250 | { | 232 | { | ||
251 | return d->mArtist; | 233 | return d->mArtist; | ||
252 | } | 234 | } | ||
253 | 235 | | |||
254 | void MusicAudioTrack::setAlbumName(const QString &value) const | 236 | void MusicAudioTrack::setAlbumName(const QString &value) | ||
255 | { | 237 | { | ||
256 | d->mAlbumName = value; | 238 | d->mAlbumName = value; | ||
257 | } | 239 | } | ||
258 | 240 | | |||
259 | QString MusicAudioTrack::albumName() const | 241 | QString MusicAudioTrack::albumName() const | ||
260 | { | 242 | { | ||
261 | return d->mAlbumName; | 243 | return d->mAlbumName; | ||
262 | } | 244 | } | ||
263 | 245 | | |||
264 | void MusicAudioTrack::setAlbumArtist(const QString &value) const | 246 | void MusicAudioTrack::setAlbumArtist(const QString &value) | ||
265 | { | 247 | { | ||
266 | d->mAlbumArtist = value; | 248 | d->mAlbumArtist = value; | ||
267 | } | 249 | } | ||
268 | 250 | | |||
269 | QString MusicAudioTrack::albumArtist() const | 251 | QString MusicAudioTrack::albumArtist() const | ||
270 | { | 252 | { | ||
271 | return (d->mAlbumArtist.isEmpty() ? d->mArtist : d->mAlbumArtist); | 253 | return (d->mAlbumArtist.isEmpty() ? d->mArtist : d->mAlbumArtist); | ||
272 | } | 254 | } | ||
273 | 255 | | |||
274 | bool MusicAudioTrack::isValidAlbumArtist() const | 256 | bool MusicAudioTrack::isValidAlbumArtist() const | ||
275 | { | 257 | { | ||
276 | return !d->mAlbumArtist.isEmpty(); | 258 | return !d->mAlbumArtist.isEmpty(); | ||
277 | } | 259 | } | ||
278 | 260 | | |||
279 | void MusicAudioTrack::setAlbumCover(const QUrl &value) const | 261 | void MusicAudioTrack::setAlbumCover(const QUrl &value) | ||
280 | { | 262 | { | ||
281 | d->mAlbumCover = value; | 263 | d->mAlbumCover = value; | ||
282 | } | 264 | } | ||
283 | 265 | | |||
284 | QUrl MusicAudioTrack::albumCover() const | 266 | QUrl MusicAudioTrack::albumCover() const | ||
285 | { | 267 | { | ||
286 | return d->mAlbumCover; | 268 | return d->mAlbumCover; | ||
287 | } | 269 | } | ||
288 | 270 | | |||
289 | void MusicAudioTrack::setGenre(const QString &value) const | 271 | void MusicAudioTrack::setGenre(const QString &value) | ||
290 | { | 272 | { | ||
291 | d->mGenre = value; | 273 | d->mGenre = value; | ||
292 | } | 274 | } | ||
293 | 275 | | |||
294 | QString MusicAudioTrack::genre() const | 276 | QString MusicAudioTrack::genre() const | ||
295 | { | 277 | { | ||
296 | return d->mGenre; | 278 | return d->mGenre; | ||
297 | } | 279 | } | ||
298 | 280 | | |||
299 | void MusicAudioTrack::setComposer(const QString &value) const | 281 | void MusicAudioTrack::setComposer(const QString &value) | ||
300 | { | 282 | { | ||
301 | d->mComposer = value; | 283 | d->mComposer = value; | ||
302 | } | 284 | } | ||
303 | 285 | | |||
304 | QString MusicAudioTrack::composer() const | 286 | QString MusicAudioTrack::composer() const | ||
305 | { | 287 | { | ||
306 | return d->mComposer; | 288 | return d->mComposer; | ||
307 | } | 289 | } | ||
308 | 290 | | |||
309 | void MusicAudioTrack::setLyricist(const QString &value) const | 291 | void MusicAudioTrack::setLyricist(const QString &value) | ||
310 | { | 292 | { | ||
311 | d->mLyricist = value; | 293 | d->mLyricist = value; | ||
312 | } | 294 | } | ||
313 | 295 | | |||
314 | QString MusicAudioTrack::lyricist() const | 296 | QString MusicAudioTrack::lyricist() const | ||
315 | { | 297 | { | ||
316 | return d->mLyricist; | 298 | return d->mLyricist; | ||
317 | } | 299 | } | ||
318 | 300 | | |||
319 | void MusicAudioTrack::setComment(const QString &value) const | 301 | void MusicAudioTrack::setComment(const QString &value) | ||
320 | { | 302 | { | ||
321 | d->mComment = value; | 303 | d->mComment = value; | ||
322 | } | 304 | } | ||
323 | 305 | | |||
324 | QString MusicAudioTrack::comment() const | 306 | QString MusicAudioTrack::comment() const | ||
325 | { | 307 | { | ||
326 | return d->mComment; | 308 | return d->mComment; | ||
327 | } | 309 | } | ||
▲ Show 20 Lines • Show All 83 Lines • ▼ Show 20 Line(s) | 392 | { | |||
411 | d->mResourceURI = value; | 393 | d->mResourceURI = value; | ||
412 | } | 394 | } | ||
413 | 395 | | |||
414 | const QUrl &MusicAudioTrack::resourceURI() const | 396 | const QUrl &MusicAudioTrack::resourceURI() const | ||
415 | { | 397 | { | ||
416 | return d->mResourceURI; | 398 | return d->mResourceURI; | ||
417 | } | 399 | } | ||
418 | 400 | | |||
419 | void MusicAudioTrack::setRating(int value) const | 401 | void MusicAudioTrack::setRating(int value) | ||
420 | { | 402 | { | ||
421 | d->mRating = value; | 403 | d->mRating = value; | ||
422 | } | 404 | } | ||
423 | 405 | | |||
424 | int MusicAudioTrack::rating() const | 406 | int MusicAudioTrack::rating() const | ||
425 | { | 407 | { | ||
426 | return d->mRating; | 408 | return d->mRating; | ||
427 | } | 409 | } | ||
Show All 16 Lines |