Example #1
0
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);
		}
	}
}
Example #4
0
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);
}