/** * Callback for libspotify * * @param result The toplist result object that is now done * @param userdata The opaque pointer given to sp_toplistbrowse_create() */ static void got_toplist(sp_toplistbrowse *result, void *userdata) { int i; json_t *json = json_object(); json_t *toplist = json_object(); json_object_set_new(json, "toplist", toplist); json_t *results = json_array(); json_object_set_new(toplist, "result", results); // We print from all types. Only one of the loops will acually yield anything. for(i = 0; i < sp_toplistbrowse_num_artists(result); i++) json_array_append_new(results, get_artist(sp_toplistbrowse_artist(result, i))); for(i = 0; i < sp_toplistbrowse_num_albums(result); i++) json_array_append_new(results, get_album(sp_toplistbrowse_album(result, i))); for(i = 0; i < sp_toplistbrowse_num_tracks(result); i++) json_array_append_new(results, get_track(sp_toplistbrowse_track(result, i))); cmd_sendresponse(json, 200); sp_toplistbrowse_release(result); cmd_done(); }
static void lookup_cd_info (char *device, album_info_t *album) { MbDisc disc; MbQuery q; MbReleaseFilter f; MbResultList results; MbRelease release; char discid[100]; int num_albums; memset(album, 1, sizeof(*album)); disc = mb_read_disc(device); if (!disc) { fprintf(stderr, "unable to identify disc.\n"); exit(1); } mb_disc_get_id(disc, discid, 100); fprintf(stderr, "got disc id: %s\n\n", discid); q = mb_query_new(NULL, NULL); f = mb_release_filter_new(); mb_release_filter_disc_id(f, discid); results = mb_query_get_releases(q,f); mb_release_filter_free(f); mb_query_free(q); if (!results) { fprintf(stderr, "no results found\n"); exit(1); } num_albums = mb_result_list_get_size(results); if (num_albums < 1) { char buf[256]; mb_get_submission_url(disc, 0, 0, buf, sizeof(buf)); fprintf(stderr, "nothing in musicbrainz for this one. add it via: %s\n", buf); exit(1); } if (num_albums > 1) { fprintf(stderr, "multiple albums!!! picking the last one\n"); } release = mb_result_list_get_release(results, num_albums-1); get_album(release, &album->album_id, &album->title, &album->disc_number); album->release_date = get_release_date(release); get_album_artist( release, &album->artist_id, &album->artist, &album->artist_sortname ); get_tracks(release, album); /* musicbrainz_t mb; char buf[256]; int num_albums; mb = mb_New(); mb_SetDevice(mb, device); mb_UseUTF8(mb, TRUE); #ifdef MB_DEBUG mb_SetDebug(mb, TRUE); #endif memset(album, 1, sizeof(*album)); if (!mb_Query(mb, MBQ_GetCDInfo)) { mb_GetQueryError(mb, buf, sizeof(buf)); fprintf(stderr, "unable to query cd: %s\n", buf); exit(1); } num_albums = mb_GetResultInt(mb, MBE_GetNumAlbums); if (num_albums < 1) { fprintf(stderr, "nothing in musicbrainz for this one. TODO add url\n"); exit(1); } if (num_albums > 1) { fprintf(stderr, "multiple albums!!! picking the last one\n"); } mb_Select1(mb, MBS_SelectAlbum, num_albums); get_album(mb, &album->album_id, &album->title, &album->disc_number); album->release_date = get_release_date(mb); get_album_artist( mb, &album->artist_id, &album->artist, &album->artist_sortname ); get_tracks(mb, album); mb_Delete(mb); */ }