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; }
bool search_is_playlist(size_t i) { if(sp_search_num_tracks(search)+sp_search_num_albums(search) <= i && i < (sp_search_num_tracks(search)+sp_search_num_albums(search)+sp_search_num_playlists(search))) { return 1; } return 0; }
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); } } }
int Search::playlistCount() const { return isValid() ? sp_search_num_playlists(handle()) : 0; }