/** * Print the given album browse result and as much information as possible * * @param browse The browse result */ static void print_albumbrowse(sp_albumbrowse *browse) { int i; printf("Album browse of \"%s\" (%d)\n", sp_album_name(sp_albumbrowse_album(browse)), sp_album_year(sp_albumbrowse_album(browse))); for (i = 0; i < sp_albumbrowse_num_copyrights(browse); ++i) printf(" Copyright: %s\n", sp_albumbrowse_copyright(browse, i)); printf(" Tracks: %d\n", sp_albumbrowse_num_tracks(browse)); printf(" Review: %.60s...\n", sp_albumbrowse_review(browse)); puts(""); for (i = 0; i < sp_albumbrowse_num_tracks(browse); ++i) print_track(sp_albumbrowse_track(browse, i)); puts(""); }
void SpotifyClient::SendSearchResponse(sp_search* result) { // Take the request out of the queue spotify_pb::SearchRequest req = pending_searches_.take(result); // Prepare the response spotify_pb::SpotifyMessage message; spotify_pb::SearchResponse* response = message.mutable_search_response(); *response->mutable_request() = req; // Check for errors sp_error error = sp_search_error(result); if (error != SP_ERROR_OK) { response->set_error(sp_error_message(error)); handler_->SendMessage(message); sp_search_release(result); return; } // Get the list of tracks from the search int count = sp_search_num_tracks(result); for (int i=0 ; i<count ; ++i) { sp_track* track = sp_search_track(result, i); ConvertTrack(track, response->add_result()); } // Get the albums from the search. All these should be resolved by now. QList<sp_albumbrowse*> browses = pending_search_album_browses_.take(result); foreach (sp_albumbrowse* browse, browses) { sp_album* album = sp_albumbrowse_album(browse); spotify_pb::Album* msg = response->add_album(); ConvertAlbum(album, msg->mutable_metadata()); ConvertAlbumBrowse(browse, msg->mutable_metadata()); // Add all tracks const int tracks = sp_albumbrowse_num_tracks(browse); for (int i=0 ; i<tracks ; ++i) { ConvertTrack(sp_albumbrowse_track(browse, i), msg->add_track()); } sp_albumbrowse_release(browse); }