/** * Print the given track title together with some trivial metadata * * @param track The track object */ void print_track(sp_track *track) { int duration = sp_track_duration(track); char url[256]; sp_link *l; #if WIN32 printf(" %s ", sp_track_is_starred(track) ? "*" : " "); #else printf(" %s ", sp_track_is_starred(track) ? "★" : "☆"); #endif printf("Track %s [%d:%02d] has %d artist(s), %d%% popularity", sp_track_name(track), duration / 60000, (duration / 1000) / 60, sp_track_num_artists(track), sp_track_popularity(track)); if(sp_track_disc(track)) printf(", %d on disc %d", sp_track_index(track), sp_track_disc(track)); printf("\n"); l = sp_link_create_from_track(track, 0); sp_link_as_string(l, url, sizeof(url)); printf("\t\t%s\n", url); sp_link_release(l); }
// Loads a track and assumes that the metadata is available static void load_and_play_track(sp_session *session, sp_track *track) { sp_session_player_load(session, track); if (s_play_after_loaded) play_track(session, track); (sp_track_is_starred(session, track)) ? on_starred() : on_unstarred(); call_static_void_method("onPrepared"); }
int cmd_playlist(int argc, char **argv) { int index, i; sp_track *track; sp_playlist *playlist; sp_playlistcontainer *pc = sp_session_playlistcontainer(g_session); if (argc < 1) { printf("playlist [playlist index]\n"); return 0; } index = atoi(argv[1]); if (index < 0 || index > sp_playlistcontainer_num_playlists(pc)) { printf("invalid index\n"); return 0; } playlist = sp_playlistcontainer_playlist(pc, index); printf("Playlist %s by %s%s%s\n", sp_playlist_name(playlist), sp_user_display_name(sp_playlist_owner(playlist)), sp_playlist_is_collaborative(playlist) ? " (collaborative)" : "", sp_playlist_has_pending_changes(playlist) ? " with pending changes" : "" ); for (i = 0; i < sp_playlist_num_tracks(playlist); ++i) { track = sp_playlist_track(playlist, i); printf("%d. %c %s%s %s\n", i, sp_track_is_starred(g_session, track) ? '*' : ' ', sp_track_is_local(g_session, track) ? "local" : " ", sp_track_is_autolinked(g_session, track) ? "autolinked" : " ", sp_track_name(track)); } return 1; }
gboolean track_set_starred(sp_track* track){ if(sp_track_is_starred(g_session, track)){ return (sp_track_set_starred(g_session, &track, 1, FALSE) == SP_ERROR_OK); } else{ return (sp_track_set_starred(g_session, &track, 1, TRUE) == SP_ERROR_OK); } }
static PyObject * Track_starred(Track * self, PyObject *args, PyObject *kwds) { int set; PyObject *bset = NULL; Session *session; static char *kwlist[] = { "session", "set", NULL }; if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!|O!", kwlist, &SessionType, &session, &PyBool_Type, &bset)) return NULL; if (bset) { set = (bset == Py_True); sp_track_set_starred(session->_session, (sp_track * const*)&(self->_track), 1, set); } return (PyObject *)PyBool_FromLong((long) sp_track_is_starred(session->_session, self->_track)); }
gboolean is_track_starred(sp_track* track){ return (sp_track_is_starred(g_session, track)); }
// Loads a track and assumes that the metadata is available static void load_and_play_track(sp_session *session, sp_track *track) { sp_session_player_load(session, track); if (s_play_after_loaded) play_track(session, track); (sp_track_is_starred(session, track)) ? on_starred() : on_unstarred(); }
bool isStarred(list<int> int_params, list<string> string_params, sp_session *session, sp_track *track) { return sp_track_is_starred(session, track); }