Beispiel #1
0
/**
 * 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();
}
Beispiel #2
0
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();
    }
}