예제 #1
0
        // There are so many "Changed" Events. I wonder if using PropertyChange is more appropriate.
        // public event PropertyChangedEventHandler PropertyChanged;

        #endregion

        internal Playlist(IntPtr handle, bool preIncremented = true)
            : base(handle, LibSpotify.sp_playlist_add_ref_r, LibSpotify.sp_playlist_release_r, preIncremented)
        {
            _callbacks = new LibSpotify.sp_playlist_callbacks();
            _callbacks.description_changed         = OnDescriptionChanged;
            _callbacks.image_changed               = OnImageChanged;
            _callbacks.playlist_metadata_updated   = OnMetadataUpdated;
            _callbacks.playlist_renamed            = OnRenamed;
            _callbacks.playlist_state_changed      = OnStateChanged;
            _callbacks.playlist_update_in_progress = OnUpdateInProgress;
            _callbacks.subscribers_changed         = OnSubscribersChanged;
            _callbacks.track_created_changed       = OnCreatedChanged;
            _callbacks.track_message_changed       = OnMessageChanged;
            _callbacks.track_seen_changed          = OnSeenChanged;
            _callbacks.tracks_added   = OnTracksAdded;
            _callbacks.tracks_moved   = OnTracksMoved;
            _callbacks.tracks_removed = OnTracksRemoved;

            ThrowHelper.ThrowIfError(LibSpotify.sp_playlist_add_callbacks_r(Handle, ref _callbacks, IntPtr.Zero));
        }