コード例 #1
0
        private void initCallbacks()
        {
            this.fn_container_loaded_delegate = new container_loaded_delegate(this.container_loaded);
            this.fn_playlist_added_delegate = new playlist_added_delegate(this.playlist_added);
            this.fn_playlist_moved_delegate = new playlist_moved_delegate(this.playlist_moved);
            this.fn_playlist_removed_delegate = new playlist_removed_delegate(this.playlist_removed);

            libspotify.sp_playlistcontainer_callbacks callbacks = new libspotify.sp_playlistcontainer_callbacks();
            callbacks.container_loaded = Marshal.GetFunctionPointerForDelegate(this.fn_container_loaded_delegate);
            callbacks.playlist_added = Marshal.GetFunctionPointerForDelegate(this.fn_playlist_added_delegate);
            callbacks.playlist_moved = Marshal.GetFunctionPointerForDelegate(this.fn_playlist_moved_delegate);
            callbacks.playlist_removed = Marshal.GetFunctionPointerForDelegate(this.fn_playlist_removed_delegate);

            _callbacksPtr = Marshal.AllocHGlobal(Marshal.SizeOf(callbacks));
            Marshal.StructureToPtr(callbacks, _callbacksPtr, true);

            libspotify.sp_playlistcontainer_add_callbacks(_containerPtr, _callbacksPtr, IntPtr.Zero);

            return;
        }
コード例 #2
0
        private void AddCallbacks()
        {
            _containerLoadedDelegate = PlayListContainerLoaded;
            _playlistAddedDelegate = PlaylistAdded;
            _playlistMovedDelegate = PlaylistMoved;
            _playlistRemovedDelegate = PlaylistRemoved;

            var playlistcontainerCallbacks = new libspotify.sp_playlistcontainer_callbacks
            {
                container_loaded = Marshal.GetFunctionPointerForDelegate(_containerLoadedDelegate),
                playlist_added = Marshal.GetFunctionPointerForDelegate(_playlistAddedDelegate),
                playlist_moved = Marshal.GetFunctionPointerForDelegate(_playlistMovedDelegate),
                playlist_removed = Marshal.GetFunctionPointerForDelegate(_playlistRemovedDelegate)
            };

            _callbacksPtr = Marshal.AllocHGlobal(Marshal.SizeOf((object) playlistcontainerCallbacks));
            Marshal.StructureToPtr(playlistcontainerCallbacks, _callbacksPtr, true);
            libspotify.sp_playlistcontainer_add_callbacks(PlaylistContainerPtr, _callbacksPtr, IntPtr.Zero);
        }