示例#1
0
文件: spotify.c 项目: theodoor/spop
int playlist_get_offline_download_completed(sp_playlist* pl) {
    return sp_playlist_get_offline_download_completed(g_session, pl);
}
示例#2
0
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;
}