public void AddCallbacks(PlaylistListener listener, object userdata) { IntPtr nativeUserdata = ListenerTable.PutListener(this._handle, listener, userdata); var callbacks = PlaylistDelegates.CallbacksPtr; NativeMethods.sp_playlist_add_callbacks(this._handle, callbacks, nativeUserdata); }
public void RemoveCallbacks(PlaylistListener listener, object userdata) { IntPtr nativeUserdata; if (!ListenerTable.TryGetNativeUserdata(this._handle, listener, userdata, out nativeUserdata)) { throw new ArgumentException("Playlist.RemoveCallbacks: No callback registered for userdata"); } var callbacks = PlaylistDelegates.CallbacksPtr; NativeMethods.sp_playlist_remove_callbacks(this._handle, callbacks, nativeUserdata); ListenerTable.RemoveListener(this._handle, listener, userdata); }