// 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)); }