示例#1
0
static void playlistcontainer_loaded(sp_playlistcontainer *pc, void *userdata) {
  syslog(LOG_DEBUG, "playlistcontainer_loaded\n");
  sp_session *session = userdata;
  struct state *state = sp_session_userdata(session);

  sp_playlistcontainer_remove_callbacks(pc, &playlistcontainer_callbacks, session);

  state->http = evhttp_new(state->event_base);
  evhttp_set_timeout(state->http, 60);
  evhttp_set_gencb(state->http, &handle_request, state);

  // Bind HTTP server
  int bind = evhttp_bind_socket(state->http, state->http_host,
                                state->http_port);

  if (bind == -1) {
    syslog(LOG_WARNING, "Could not bind HTTP server socket to %s:%d",
           state->http_host, state->http_port);
    sp_session_logout(session);
    return;
  }

  syslog(LOG_DEBUG, "HTTP server listening on %s:%d", state->http_host,
         state->http_port);
}
QSpotifyPlaylistContainer::~QSpotifyPlaylistContainer()
{
    g_containerObjects.remove(m_container);
    sp_playlistcontainer_remove_callbacks(m_container, m_callbacks, 0);
    qDeleteAll(m_playlists);
    sp_playlistcontainer_release(m_container);
    delete m_callbacks;
}
示例#3
0
static void playlistcontainer_dispatch(sp_playlistcontainer *pc, void *userdata) {
  struct playlistcontainer_handler *handler = userdata;
  sp_playlistcontainer_remove_callbacks(pc,
                                        handler->playlistcontainer_callbacks,
                                        handler);
  handler->callback(pc, handler->request, handler->userdata);
  free(handler);
}
void PlayListContainer::Unload() {
    if (container_) {
        sp_playlistcontainer_callbacks callbacks;
        GetCallbacks(&callbacks);
        sp_playlistcontainer_remove_callbacks(container_, &callbacks, this);
        container_ = NULL;
        playlists_.clear();
        loading_ = false;
    }
}
/**
  logout
  if clearPlaylists, also unset all loaded playlists
  otherwise, just remove callbacks and release
  **/
void SpotifySession::logout(bool clearPlaylists )
{
    if ( m_loggedIn ) {
        if ( clearPlaylists )
            m_SpotifyPlaylists->unsetAllLoaded();

        sp_playlistcontainer_remove_callbacks( m_container, &SpotifyCallbacks::containerCallbacks, this);
        sp_playlistcontainer_release( m_container );
        sp_session_logout( m_session );
    }

}
示例#6
0
static void playlistcontainer_loaded(sp_playlistcontainer *pc, void *userdata) {
  syslog(LOG_DEBUG, "playlistcontainer_loaded\n");
  sp_session *session = userdata;
  struct state *state = sp_session_userdata(session);

  sp_playlistcontainer_remove_callbacks(pc, &playlistcontainer_callbacks, session);

  state->http = evhttp_new(state->event_base);
  evhttp_set_timeout(state->http, 60);
  evhttp_set_gencb(state->http, &handle_request, state);

  // TODO(liesen): Make address and port configurable
  if (evhttp_bind_socket(state->http, "0.0.0.0", 1337) == -1) {
    syslog(LOG_WARNING, "Could not bind HTTP server socket");
    sp_session_logout(session);
  }
}
示例#7
0
static void playlistcontainer_complete(sp_playlistcontainer *pc, void *userdata)
{
	spotify_object *p = (spotify_object*)userdata;
	p->playlistcontainer = pc;
	sp_playlistcontainer_remove_callbacks(pc, &playlistcontainer_callbacks, userdata);
}
SpotifyPlaylistContainer::~SpotifyPlaylistContainer() {
	sp_playlistcontainer_remove_callbacks(playlistContainer, &playlistCallbacks,
	nullptr);
}
示例#9
0
static void playlistcontainer_complete(sp_playlistcontainer *pc, void *userdata)
{
	sp_playlistcontainer_remove_callbacks(pc, &playlistcontainer_callbacks, userdata);
}