File indexing completed on 2024-06-09 04:48:43

0001 /**
0002  * SPDX-FileCopyrightText: 2022-2023 Bart De Vries <bart@mogwai.be>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005  */
0006 
0007 #include "metadata.h"
0008 #include "metadatalogging.h"
0009 
0010 #include <QTimer>
0011 
0012 MetaData::MetaData(QObject *parent)
0013     : QObject(parent)
0014 {
0015     qCDebug(MetaDataLog) << "MetaData::MetaData begin";
0016     connect(this, &MetaData::titleChanged, this, &MetaData::signalMetaDataChanged);
0017     connect(this, &MetaData::artistChanged, this, &MetaData::signalMetaDataChanged);
0018     connect(this, &MetaData::albumChanged, this, &MetaData::signalMetaDataChanged);
0019     connect(this, &MetaData::artworkUrlChanged, this, &MetaData::signalMetaDataChanged);
0020 }
0021 
0022 QString MetaData::title() const
0023 {
0024     qCDebug(MetaDataLog) << "MetaData::title()";
0025     return m_title;
0026 }
0027 
0028 QString MetaData::artist() const
0029 {
0030     qCDebug(MetaDataLog) << "MetaData::artist()";
0031     return m_artist;
0032 }
0033 
0034 QString MetaData::album() const
0035 {
0036     qCDebug(MetaDataLog) << "MetaData::album()";
0037     return m_album;
0038 }
0039 
0040 QUrl MetaData::artworkUrl() const
0041 {
0042     qCDebug(MetaDataLog) << "MetaData::artworkUrl()";
0043     return m_artworkUrl;
0044 }
0045 
0046 void MetaData::setTitle(const QString &title)
0047 {
0048     qCDebug(MetaDataLog) << "MetaData::setTitle(" << title << ")";
0049     if (title != m_title) {
0050         m_title = title;
0051         Q_EMIT titleChanged(title);
0052     }
0053 }
0054 
0055 void MetaData::setArtist(const QString &artist)
0056 {
0057     qCDebug(MetaDataLog) << "MetaData::setArtist(" << artist << ")";
0058     if (artist != m_artist) {
0059         m_artist = artist;
0060         Q_EMIT artistChanged(artist);
0061     }
0062 }
0063 
0064 void MetaData::setAlbum(const QString &album)
0065 {
0066     qCDebug(MetaDataLog) << "MetaData::setAlbum(" << album << ")";
0067     if (album != m_album) {
0068         m_album = album;
0069         Q_EMIT albumChanged(album);
0070     }
0071 }
0072 
0073 void MetaData::setArtworkUrl(const QUrl &artworkUrl)
0074 {
0075     qCDebug(MetaDataLog) << "MetaData::setArtworkUrl(" << artworkUrl << ")";
0076     if (artworkUrl != m_artworkUrl) {
0077         m_artworkUrl = artworkUrl;
0078         Q_EMIT artworkUrlChanged(artworkUrl);
0079     }
0080 }
0081 
0082 void MetaData::clear()
0083 {
0084     qCDebug(MetaDataLog) << "MetaData::clear()";
0085     m_title.clear();
0086     m_artist.clear();
0087     m_album.clear();
0088     m_artworkUrl.clear();
0089     Q_EMIT titleChanged(m_title);
0090     Q_EMIT artistChanged(m_artist);
0091     Q_EMIT albumChanged(m_album);
0092     Q_EMIT artworkUrlChanged(m_artworkUrl);
0093 }
0094 
0095 void MetaData::signalMetaDataChanged()
0096 {
0097     QTimer::singleShot(0, this, [this]() {
0098         Q_EMIT metaDataChanged(this);
0099     });
0100 }