示例#1
0
        public IAsyncResult BeginArtistBrowse(Artist artist, ArtistBrowseType browseType, AsyncCallback userCallback, object state)
        {
            AsyncArtistBrowseResult result = new AsyncArtistBrowseResult(userCallback, state);

            LibSpotify.sp_artistbrowse_create_r(Handle, artist.Handle, browseType, result.HandleBrowseComplete, IntPtr.Zero);
            return(result);
        }
示例#2
0
 public static ArtistBrowse Create(SpotifySession session, Artist artist, ArtistBrowseType type, ArtistBrowseComplete callback, object userdata)
 {
     IntPtr listenerToken = ListenerTable.PutUniqueObject(callback, userdata);
     IntPtr ptr = NativeMethods.sp_artistbrowse_create(session._handle, artist._handle, type, ArtistBrowseCompleteDelegate, listenerToken);
     ArtistBrowse browse = BrowseTable.GetUniqueObject(ptr);
     browse.ListenerToken = listenerToken;
     return browse;
 }
示例#3
0
        public static ArtistBrowse Create(SpotifySession session, Artist artist, ArtistBrowseType type, ArtistBrowseComplete callback, object userdata)
        {
            IntPtr       listenerToken = ListenerTable.PutUniqueObject(callback, userdata);
            IntPtr       ptr           = NativeMethods.sp_artistbrowse_create(session._handle, artist._handle, type, ArtistBrowseCompleteDelegate, listenerToken);
            ArtistBrowse browse        = BrowseTable.GetUniqueObject(ptr);

            browse.ListenerToken = listenerToken;
            return(browse);
        }
示例#4
0
        public static Task<IArtistBrowse> BrowseAsync(
            this ISession session,
            IArtist artist,
            ArtistBrowseType type,
            object userState = null)
        {
            var tcs = new TaskCompletionSource<IArtistBrowse>();

            var browse = session.Browse(artist, type, userState);
            browse.Completed += (sender, args) => tcs.SetResult(browse);
            return tcs.Task;
        }
示例#5
0
        public IArtistBrowse Browse(IArtist artist, ArtistBrowseType browseType, object userData = null)
        {
            if (!(artist is INativeObject))
            {
                throw new ArgumentException("Invalid type");
            }

            AssertHandle();

            var browse = new NativeArtistBrowse(this, artist.GetHandle(), browseType);

            browse.Initialize();
            return(browse);
        }
示例#6
0
        public static Task <IArtistBrowse> BrowseAsync(
            this ISession session,
            IArtist artist,
            ArtistBrowseType type,
            object userState = null)
        {
            var tcs = new TaskCompletionSource <IArtistBrowse>();

            var browse = session.Browse(artist, type, userState);

            if (browse.IsComplete)
            {
                tcs.SetResult(browse);
            }

            browse.Completed += (sender, args) => tcs.SetResult(browse);
            return(tcs.Task);
        }
示例#7
0
 public NativeArtistBrowse(ISession session, IntPtr artistToBrowse, ArtistBrowseType browseType)
     : base(session, IntPtr.Zero)
 {
     _artistToBrowse = artistToBrowse;
     _browseType = browseType;
 }
示例#8
0
 public static IArtistBrowse Browse(this IArtist artist, ArtistBrowseType browseType, object userData = null)
 {
     return(artist.Session.Browse(artist, browseType, userData));
 }
示例#9
0
 public static IArtistBrowse Browse(this IArtist artist, ArtistBrowseType browseType, object userData = null)
 {
     return artist.Session.Browse(artist, browseType, userData);
 }
示例#10
0
        public IArtistBrowse Browse(IArtist artist, ArtistBrowseType browseType, object userData = null)
        {
            if (!(artist is INativeObject))
            {
                throw new ArgumentException("Invalid type");
            }

            AssertHandle();

            var browse = new NativeArtistBrowse(this, artist.GetHandle(), browseType);
            browse.Initialize();
            return browse;
        }
示例#11
0
 public Task <ArtistBrowse> BrowseAristAsync(Artist artist, ArtistBrowseType browseType, object state)
 {
     return(Task.Factory.FromAsync <Artist, ArtistBrowseType, ArtistBrowse>(BeginArtistBrowse, EndArtistBrowse,
                                                                            artist, browseType, state));
 }
示例#12
0
 internal static extern IntPtr sp_artistbrowse_create(IntPtr sessionPtr, IntPtr artistPtr, ArtistBrowseType type, ArtistBrowseCompleteCallback callback, IntPtr userDataPtr);
示例#13
0
 public NativeArtistBrowse(ISession session, IntPtr artistToBrowse, ArtistBrowseType browseType)
     : base(session, IntPtr.Zero)
 {
     _artistToBrowse = artistToBrowse;
     _browseType     = browseType;
 }
示例#14
0
 internal static extern IntPtr sp_artistbrowse_create(IntPtr sessionPtr, IntPtr artistPtr, ArtistBrowseType type, ArtistBrowseCompleteCallback callback, IntPtr userDataPtr);