void MythPandora::RecvMessage(const char* message) { if (!strcmp(message, "New Song")) { MythPianoService* service = GetMythPianoService(); if (service->GetCurrentSong()) { m_songText->SetText(QString(service->GetCurrentSong()->title)); m_artistText->SetText(QString(service->GetCurrentSong()->artist)); m_albumText->SetText(QString(service->GetCurrentSong()->album)); m_playTimeText->SetText(QString("0:00")); // kick off cover art load if (m_coverArtFetcher) delete m_coverArtFetcher; if (m_coverArtTempFile) delete m_coverArtTempFile; m_coverArtFetcher = new QHttp(); connect(m_coverArtFetcher, SIGNAL(done(bool)), this, SLOT(coverArtFetched())); QUrl u(service->GetCurrentSong()->coverArt); QHttp::ConnectionMode conn_mode = QHttp::ConnectionModeHttp; m_coverArtFetcher->setHost(u.host(), conn_mode, 80); QByteArray path = QUrl::toPercentEncoding(u.path(), "!$&'()*+,;=:@/"); m_coverArtFetcher->get(path); }
void MythPianod::Refresh() { MythPianoService* service = GetMythPianoService(); if (service->GetCurrentSong().size()) { if(service->SongChanged()) { m_songText->SetText(QString(service->GetCurrentSong()["Title"].c_str())); m_artistText->SetText(QString(service->GetCurrentSong()["Artist"].c_str())); m_albumText->SetText(QString(service->GetCurrentSong()["Album"].c_str())); m_stationText->SetText(QString(service->GetCurrentStation().c_str())); // kick off cover art load if (m_coverArtFetcher) delete m_coverArtFetcher; if (m_coverArtTempFile) delete m_coverArtTempFile; m_coverArtFetcher = new QHttp(); connect(m_coverArtFetcher, SIGNAL(done(bool)), this, SLOT(coverArtFetched())); QUrl u(service->GetCurrentSong()["CoverArt"].c_str()); QHttp::ConnectionMode conn_mode = QHttp::ConnectionModeHttp; m_coverArtFetcher->setHost(u.host(), conn_mode, 80); QByteArray path = QUrl::toPercentEncoding(u.path(), "!$&'()*+,;=:@/"); m_coverArtFetcher->get(path); } string played, duration; service->GetTimes(&played, &duration); string rating = service->GetCurrentSong()["Rating"]; if(rating == "good" || rating == "good artistseed") { m_ratingText->SetText(QString("This song makes me warm and fuzzy inside!")); } else if(rating == "bad") { m_ratingText->SetText(QString("Terrible song! Make it stop! Ahhh...")); } else if(rating == "neutral" || rating == "neutral artistseed") { m_ratingText->SetText(QString("Can't put my finger on this song yet...")); } else { cout<<"unknown rating: " << rating << endl; } if(played == "Intertrack") { QString time_string("00:00 / 00:00 Loading next track..."); m_playTimeText->SetText(time_string); } else { QString time_string((played + " / " + duration).c_str()); m_playTimeText->SetText(time_string); } }
MythPandora::~MythPandora() { MythPianoService* service = GetMythPianoService(); service->RemoveMessageListener(this); service->StopPlayback(); if (m_coverArtTempFile) delete m_coverArtTempFile; if (m_coverArtFetcher) delete m_coverArtFetcher; }
MythPianod::~MythPianod() { MythPianoService* service = GetMythPianoService(); service->RemoveMessageListener(this); service->StopPlayerThread(); if (m_coverArtTempFile) delete m_coverArtTempFile; if (m_coverArtFetcher) delete m_coverArtFetcher; }