/** * Callback for libspotify * * @param browse The browse result object that is now done * @param userdata The opaque pointer given to sp_albumbrowse_create() */ static void browse_album_callback(sp_albumbrowse *browse, void *userdata) { if (sp_albumbrowse_error(browse) == SP_ERROR_OK) print_albumbrowse(browse); else fprintf(stderr, "Failed to browse album: %s\n", sp_error_message(sp_albumbrowse_error(browse))); sp_albumbrowse_release(browse); cmd_done(); }
void QSpotifyAlbumBrowse::processData() { if (m_sp_albumbrowse) { if (sp_albumbrowse_error(m_sp_albumbrowse) != SP_ERROR_OK) return; m_albumTracks = new QSpotifyTrackList; int c = sp_albumbrowse_num_tracks(m_sp_albumbrowse); for (int i = 0; i < c; ++i) { sp_track *track = sp_albumbrowse_track(m_sp_albumbrowse, i); QSpotifyTrack *qtrack = new QSpotifyTrack(track, m_albumTracks); m_albumTracks->m_tracks.append(qtrack); connect(qtrack, SIGNAL(isStarredChanged()), this, SIGNAL(isStarredChanged())); connect(QSpotifySession::instance()->user()->starredList(), SIGNAL(tracksAdded(QVector<sp_track*>)), qtrack, SLOT(onStarredListTracksAdded(QVector<sp_track*>))); connect(QSpotifySession::instance()->user()->starredList(), SIGNAL(tracksRemoved(QVector<sp_track*>)), qtrack, SLOT(onStarredListTracksRemoved(QVector<sp_track*>))); if (qtrack->artists() != m_album->artist()) m_hasMultipleArtists = true; } m_review = QString::fromUtf8(sp_albumbrowse_review(m_sp_albumbrowse)).split(QLatin1Char('\n'), QString::SkipEmptyParts); if (m_review.isEmpty()) m_review << QLatin1String("No review available"); m_busy = false; emit busyChanged(); emit tracksChanged(); } }