Exemple #1
0
char *search_str_list()
{
	size_t tracks = sp_search_num_tracks(search);
	size_t albums = sp_search_num_albums(search);
	size_t playlists = sp_search_num_playlists(search);
	size_t size = API_MESSAGE_LEN*(albums+tracks);
	char *ret = malloc(size);
	ret[0] = '\0';
	int i;
	for(i=0; i<tracks; ++i)
	{
		num_pre(ret + strlen(ret), size, i, track_to_str,
				sp_search_track(search, i));
		strncat(ret + strlen(ret), "\n", size);
	}
	for(; i<(tracks+albums); ++i)
	{
		num_pre(ret + strlen(ret), size, i, album_to_str,
				sp_search_album(search, i-tracks));
		strncat(ret + strlen(ret), "\n", size);
	}
	for(; i<(tracks+albums+playlists); ++i)
	{
		num_pre(ret + strlen(ret), size, i, playlist_to_str,
				sp_search_playlist(search, i-tracks-albums));
		strncat(ret + strlen(ret), "\n", size);
	}

	return ret;
}
Exemple #2
0
void search_for_tracks_at(sp_session *session, char *buf, size_t len, size_t i, bool (*f)(sp_track *))
{
	if(search == NULL)
	{
		return;
	}
	buf[0] = '\0';
	if(search_is_track(i) && sp_track_is_loaded(sp_search_track(search, i)))
	{
		f(sp_search_track(search, i));
		if(buf != NULL)
		{
			track_to_str(buf, len, sp_search_track(search, i));
		}
	}
	if(search_is_album(i) && sp_album_is_loaded(sp_search_album(search, i-sp_search_num_tracks(search))))
	{
		sp_albumbrowse_create(session, sp_search_album(search, i-sp_search_num_tracks(search))
				,on_albumbrowse_complete, f);
		if(buf != NULL)
		{
			album_to_str(buf, len, sp_search_album(search, i-sp_search_num_tracks(search)));
		}
	}
	if(search_is_playlist(i))
	{
		sp_playlist *pl = sp_search_playlist(search, 
					i-sp_search_num_tracks(search)-sp_search_num_albums(search));
		if(sp_playlist_is_loaded(pl))
		{
			int j;
			for(j = 0; j < sp_playlist_num_tracks(pl); ++j)
			{
				f(sp_playlist_track(pl, j));
			}
			if(buf != NULL)
			{
				playlist_to_str(buf, len, pl);
			}
		}
	}
}
void QSpotifySearch::populatePlaylists(sp_search *search)
{
    m_playlistResults->clear();
    if (m_enablePreview)
        m_playlistResultsPreview->clear();

    if (search) {
        int c = sp_search_num_playlists(search);
        for (int i = 0; i < c; ++i) {
            auto playlist = std::shared_ptr<QSpotifyPlaylistSearchEntry>(
                        new QSpotifyPlaylistSearchEntry(sp_search_playlist_name(search, i), sp_search_playlist(search, i)),
                        [] (QSpotifyPlaylistSearchEntry *pl) {pl->deleteLater();});
            playlist->init();
            m_playlistResults->appendRow(playlist);
            if(m_enablePreview && i < m_numPreviewItems)
                m_playlistResultsPreview->appendRow(playlist);
        }
    }
}
Exemple #4
0
Playlist Search::playlistAt(int index) const
{
    return isValid() ? Playlist(sp_search_playlist(handle(), index)) : Playlist();
}