public void AddCallbacks(PlaylistContainerListener listener, object userdata) { IntPtr nativeUserdata = ListenerTable.PutListener(this._handle, listener, userdata); var callbacks = PlaylistContainerDelegates.CallbacksPtr; Console.WriteLine("sp_playlistcontainer_add_callbacks({0}, {1}, {2})", this._handle, callbacks, nativeUserdata); NativeMethods.sp_playlistcontainer_add_callbacks(this._handle, callbacks, nativeUserdata); }
public void RemoveCallbacks(PlaylistContainerListener 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 = PlaylistContainerDelegates.CallbacksPtr; NativeMethods.sp_playlistcontainer_remove_callbacks(this._handle, callbacks, nativeUserdata); ListenerTable.RemoveListener(this._handle, listener, userdata); }