def __init__(self, session, uri=None, sp_playlist=None, add_ref=True): super(Playlist, self).__init__() assert uri or sp_playlist, 'uri or sp_playlist is required' self._session = session if uri is not None: playlist = spotify.Link(self._session, uri).as_playlist() if playlist is None: raise spotify.Error( 'Failed to get playlist from Spotify URI: %r' % uri) sp_playlist = playlist._sp_playlist session._cache[sp_playlist] = self add_ref = True if add_ref: lib.sp_playlist_add_ref(sp_playlist) self._sp_playlist = ffi.gc(sp_playlist, lib.sp_playlist_release) self._sp_playlist_callbacks = None # Make sure we remove callbacks in __del__() using the same lib as we # added callbacks with. self._lib = lib
def __init__(self, session, sp_playlist, index): self._session = session lib.sp_playlist_add_ref(sp_playlist) self._sp_playlist = ffi.gc(sp_playlist, lib.sp_playlist_release) self._index = index
def __init__(self, session, uri=None, sp_playlist=None, add_ref=True): super(Playlist, self).__init__() assert uri or sp_playlist, 'uri or sp_playlist is required' self._session = session if uri is not None: playlist = spotify.Link(self._session, uri).as_playlist() if playlist is None: raise spotify.Error( 'Failed to get playlist from Spotify URI: %r' % uri) sp_playlist = playlist._sp_playlist session._cache[sp_playlist] = self add_ref = True if add_ref: lib.sp_playlist_add_ref(sp_playlist) self._sp_playlist = ffi.gc(sp_playlist, lib.sp_playlist_release) self._sp_playlist_callbacks = _PlaylistCallbacks.get_struct() lib.sp_playlist_add_callbacks( self._sp_playlist, self._sp_playlist_callbacks, ffi.NULL) # Make sure we remove callbacks in __del__() using the same lib as we # added callbacks with. self._lib = lib
def __init__(self, session, sp_playlistcontainer, sp_playlist): self._session = session lib.sp_playlistcontainer_add_ref(sp_playlistcontainer) self._sp_playlistcontainer = ffi.gc(sp_playlistcontainer, lib.sp_playlistcontainer_release) lib.sp_playlist_add_ref(sp_playlist) self._sp_playlist = ffi.gc(sp_playlist, lib.sp_playlist_release) self._num_tracks = 0 self._sp_tracks_len = 0 self._get_more_tracks()