static void handle_user_request(struct evhttp_request *request, char *action, const char *canonical_username, sp_session *session) { if (action == NULL) { evhttp_send_error(request, HTTP_BADREQUEST, "Bad Request"); return; } int http_method = evhttp_request_get_command(request); switch (http_method) { case EVHTTP_REQ_GET: if (strncmp(action, "playlists", 9) == 0) { sp_playlistcontainer *pc = sp_session_publishedcontainer_for_user_create( session, canonical_username); if (sp_playlistcontainer_is_loaded(pc)) { get_user_playlists(pc, request, session); } else { register_playlistcontainer_callbacks(pc, request, &get_user_playlists, &playlistcontainer_loaded_callbacks, session); } } else if (strncmp(action, "starred", 7) == 0) { sp_playlist *playlist = sp_session_starred_for_user_create(session, canonical_username); if (sp_playlist_is_loaded(playlist)) { get_playlist(playlist, request, session); } else { register_playlist_callbacks(playlist, request, &get_playlist, &playlist_state_changed_callbacks, session); } } break; case EVHTTP_REQ_PUT: case EVHTTP_REQ_POST: if (strncmp(action, "inbox", 5) == 0) { put_user_inbox(canonical_username, request, session); } break; default: evhttp_send_error(request, HTTP_BADREQUEST, "Bad Request"); break; } }
void __stdcall SpotifyGuiController::container_loaded(sp_playlistcontainer *pc, void *userdata) { SpotifyGuiController *instance = (SpotifyGuiController *)userdata; SpotifyUserData *sp_userdata = (SpotifyUserData *)instance->spotify_userdata; if (instance->logWin) instance->logWin->addRow(TEXT("Playlist Container Loaded...")); //il playlist container e' caricato, posso assegnare alle playlist le callbacks if (pc != sp_userdata->container) return; ///error... if (!sp_playlistcontainer_is_loaded(sp_userdata->container)) return; //aspettare.... instance->RefreshPlaylistContainer(); }
void SpotifyGuiController::RefreshPlaylistContainer() { SpotifyUserData *data = (SpotifyUserData *)spotify_userdata; if ( !data->container) return ; if ( sp_playlistcontainer_is_loaded(data->container) ) { int n_plist = sp_playlistcontainer_num_playlists(data->container); for ( int np = 0 ; np < n_plist ; np++ ) { sp_playlist *plist = sp_playlistcontainer_playlist(data->container, np); AddPlaylist(plist); } } }
PHP_METHOD(Spotify, initPlaylistContainer) { int timeout = 0; spotify_object *p = (spotify_object*)zend_object_store_get_object(getThis() TSRMLS_CC); if (p->playlistcontainer != NULL) { RETURN_TRUE; } p->playlistcontainer = sp_session_playlistcontainer(p->session); sp_playlistcontainer_add_callbacks(p->playlistcontainer, &playlistcontainer_callbacks, p); while (!sp_playlistcontainer_is_loaded(p->playlistcontainer)) { sp_session_process_events(p->session, &timeout); } sp_playlistcontainer_add_ref(p->playlistcontainer); RETURN_TRUE; }
bool QSpotifyPlaylistContainer::isLoaded() { return sp_playlistcontainer_is_loaded(m_container); }