mirror of
https://github.com/spalencsar/bearwave.git
synced 2026-07-07 14:44:16 +02:00
Fix ICY metadata stream parsing for Qt6
This commit is contained in:
@@ -16,6 +16,9 @@ BearPlayer::BearPlayer(QObject *parent)
|
||||
m_coverArtFetcher = new CoverArtFetcher(this);
|
||||
connect(m_coverArtFetcher, &CoverArtFetcher::coverUrlReady, this, &BearPlayer::onCoverUrlReady);
|
||||
|
||||
m_icyReader = new IcyReader(this);
|
||||
connect(m_icyReader, &IcyReader::metaDataReceived, this, &BearPlayer::onIcyMetaDataReceived);
|
||||
|
||||
connect(m_mediaPlayer, &QMediaPlayer::playbackStateChanged,
|
||||
this, &BearPlayer::onPlaybackStateChanged);
|
||||
connect(m_mediaPlayer, &QMediaPlayer::mediaStatusChanged,
|
||||
@@ -56,6 +59,7 @@ void BearPlayer::playUrl(const QString &url, const QString &name)
|
||||
|
||||
m_mediaPlayer->setSource(QUrl(url));
|
||||
m_mediaPlayer->play();
|
||||
m_icyReader->start(url);
|
||||
|
||||
qDebug() << "Playing:" << name << url;
|
||||
}
|
||||
@@ -63,6 +67,7 @@ void BearPlayer::playUrl(const QString &url, const QString &name)
|
||||
void BearPlayer::stop()
|
||||
{
|
||||
m_mediaPlayer->stop();
|
||||
m_icyReader->stop();
|
||||
m_currentStationName.clear();
|
||||
m_lastName.clear();
|
||||
m_lastUrl.clear();
|
||||
@@ -145,6 +150,19 @@ void BearPlayer::onCoverUrlReady(const QString &url)
|
||||
}
|
||||
}
|
||||
|
||||
void BearPlayer::onIcyMetaDataReceived(const QString &artist, const QString &title)
|
||||
{
|
||||
if (m_currentTrackArtist == artist && m_currentTrackTitle == title) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_currentTrackArtist = artist;
|
||||
m_currentTrackTitle = title;
|
||||
m_currentCoverArtUrl.clear();
|
||||
m_coverArtFetcher->fetch(artist, title);
|
||||
emit trackInfoChanged();
|
||||
}
|
||||
|
||||
QString BearPlayer::currentNowPlaying() const
|
||||
{
|
||||
if (!m_currentTrackArtist.isEmpty() && !m_currentTrackTitle.isEmpty()) {
|
||||
|
||||
Reference in New Issue
Block a user