int playlist_get_offline_download_completed(sp_playlist* pl) { return sp_playlist_get_offline_download_completed(g_session, pl); }
int cmd_playlist_offline(int argc, char **argv) { sp_link *plink; sp_playlist *pl; int on; if (argc == 2 && !strcmp(argv[1], "status")) { printf("Offline status\n"); printf(" %d tracks to sync\n", sp_offline_tracks_to_sync(g_session)); printf(" %d offline playlists in total\n", sp_offline_num_playlists(g_session)); return 1; } if (argc != 3) { printf("offline status | <playlist uri> <on|off>\n"); return 1; } plink = sp_link_create_from_string(argv[1]); if (!plink) { fprintf(stderr, "%s is not a spotify link\n", argv[1]); return -1; } if (sp_link_type(plink) != SP_LINKTYPE_PLAYLIST) { fprintf(stderr, "%s is not a playlist link\n", argv[1]); sp_link_release(plink); return -1; } pl = sp_playlist_create(g_session, plink); if (argc == 3) { if (!strcasecmp(argv[2], "on")) on = 1; else if (!strcasecmp(argv[2], "off")) on = 0; else { fprintf(stderr, "Invalid mode: %s\n", argv[2]); return -1; } sp_playlist_set_offline_mode(g_session, pl, on); } else { sp_playlist_offline_status s; s = sp_playlist_get_offline_status(g_session, pl); printf("Offline status for %s (%s)\n", argv[1], sp_playlist_name(pl)); printf(" Status: %s\n", offlinestatus[s]); if (s == SP_PLAYLIST_OFFLINE_STATUS_DOWNLOADING) printf(" %d%% Complete\n", sp_playlist_get_offline_download_completed(g_session, pl)); } sp_playlist_release(pl); sp_link_release(plink); return 1; }