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; }
/** 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 ); } }
PHP_METHOD(Spotify, __destruct) { spotify_object *obj = (spotify_object*)zend_object_store_get_object(getThis() TSRMLS_CC); int timeout = 0; if (obj->playlistcontainer != NULL) { sp_playlistcontainer_release(obj->playlistcontainer); } do { sp_session_process_events(obj->session, &timeout); } while (timeout == 0); sp_session_logout(obj->session); timeout = 0; do { sp_session_process_events(obj->session, &timeout); } while (!obj->is_logged_out || timeout == 0); efree(obj->key_data); }