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 }