private void UpdateFriendsArtists(bool randomizeList) { FriendsArtistsRequest request = new FriendsArtistsRequest( randomizeList, new FriendsArtistsRequest.FriendsArtistsRequestHandler(OnUpdateFriendsArtistsCompleted)); _lastRequest = request; ascrobbler.AddRequest(request); }
private void UpdateRandomTracks() { RandomTracksRequest request = new RandomTracksRequest( new RandomTracksRequest.RandomTracksRequestHandler(OnUpdateRandomTracksCompleted)); _lastRequest = request; ascrobbler.AddRequest(request); }
private void UpdateSimilarArtists(string _trackArtist) { if (_trackArtist == null) { return; } if (_trackArtist != string.Empty) { SimilarArtistRequest request2 = new SimilarArtistRequest( _trackArtist, _useSimilarRandom, new SimilarArtistRequest.SimilarArtistRequestHandler(OnUpdateSimilarArtistsCompleted)); _lastRequest = request2; ascrobbler.AddRequest(request2); } }
private void UpdateNeighboursArtists(bool randomizeList) { NeighboursArtistsRequest request = new NeighboursArtistsRequest( randomizeList, new NeighboursArtistsRequest.NeighboursArtistsRequestHandler(OnUpdateNeighboursArtistsCompleted)); _lastRequest = request; ascrobbler.AddRequest(request); }
/// <summary> /// Updates the artist info for the current track playing. /// The artist info is fetched asynchronously by adding a request onto the request queue of the AudioScrobblerUtils /// class. The response will be received via callback by a delegate (OnUpdateArtistInfoCompleted). /// </summary> private void UpdateArtistInfo() { string CurrentArtist = CleanTagString(CurrentTrackTag.Artist); if (_doArtistLookups) { if (CurrentTrackTag == null) { return; } if (CurrentTrackTag.Artist == string.Empty) { Log.Warn("GUIMusicPlayingNow: current tag invalid for artist info lookup. File: {0}", g_Player.CurrentFile); return; } ArtistInfoRequest request = new ArtistInfoRequest( CurrentArtist, new ArtistInfoRequest.ArtistInfoRequestHandler(OnUpdateArtistInfoCompleted) ); _lastArtistRequest = request; InfoScrobbler.AddRequest(request); } else { // if internet lookups are disabled just attempt to load local thumb DoUpdateArtistInfo(null, null); } }
/// <summary> /// Updates the "similar tags" info for the current track playing. /// The tag info is fetched asynchronously by adding a request onto the request queue of the AudioScrobblerUtils /// class. The response will be received via callback by a delegate (OnUpdateSimilarTrackInfoCompleted). /// </summary> private void UpdateSimilarTrackInfo() { string CurrentArtist = CleanTagString(CurrentTrackTag.Artist); string CurrentTrack = CleanTagString(CurrentTrackTag.Title); if (_doTrackTagLookups) { if (CurrentTrackTag == null) { return; } if (CurrentTrackTag.Artist == string.Empty || CurrentTrackTag.Title == string.Empty) { Log.Warn("GUIMusicPlayingNow: current tag invalid for tag info lookup. File: {0}", g_Player.CurrentFile); return; } if (LblBestSimilarTracks != null) { LblBestSimilarTracks.Visible = false; } TagInfoRequest request = new TagInfoRequest( CurrentArtist, CurrentTrack, true, false, true, new TagInfoRequest.TagInfoRequestHandler(OnUpdateSimilarTrackInfoCompleted) ); _lastTagRequest = request; InfoScrobbler.AddRequest(request); } }
private void OnUpdateXspfPlaylistCompleted(ScrobblerUtilsRequest aRequest, List<Song> aSongList, string aPlaylistName, bool aPlayNow) { if (aSongList.Count > 0) { PlaylistUpdateSuccess(aSongList, aPlaylistName, aPlayNow); } else { PlaylistUpdateError(aPlayNow); } }
/// <summary> /// Removes a request from the request queue. /// </summary> /// <param name="request">ScrobblerUtilsRequest to remove from the queue</param> /// <returns></returns> public void RemoveRequest(ScrobblerUtilsRequest request) { if (request != null) { lock (_queueMutex) _requestQueue.Remove(request); } }
private void UpdateArtistInfo(string _trackArtist) { if (_trackArtist == null) { return; } if (_trackArtist != String.Empty) { ArtistInfoRequest request = new ArtistInfoRequest( _trackArtist, new ArtistInfoRequest.ArtistInfoRequestHandler(OnUpdateArtistCoverCompleted)); _lastArtistCoverRequest = request; InfoScrobbler.AddRequest(request); SimilarArtistRequest request2 = new SimilarArtistRequest( _trackArtist, false, new SimilarArtistRequest.SimilarArtistRequestHandler(OnUpdateSimilarArtistsCompleted)); _lastSimilarArtistRequest = request2; _similarArtistCache.Clear(); InfoScrobbler.AddRequest(request2); } }
private void UpdateTrackTagsInfo(string _trackArtist, string _trackTitle) { TagsForTrackRequest request = new TagsForTrackRequest( _trackArtist, _trackTitle, new TagsForTrackRequest.TagsForTrackRequestHandler(OnUpdateTrackTagsInfoCompleted)); _lastTrackTagRequest = request; _trackTagsCache.Clear(); InfoScrobbler.AddRequest(request); }
private void UpdateUsersTags(string _serviceUser) { UsersTagsRequest request = new UsersTagsRequest( _serviceUser, new UsersTagsRequest.UsersTagsRequestHandler(OnUpdateUsersTagsCompleted)); _lastUsersTagsRequest = request; InfoScrobbler.AddRequest(request); }
private void UpdateUsersTopArtists(string _serviceUser) { GeneralFeedRequest request = new GeneralFeedRequest( lastFMFeed.topartists, _serviceUser, new GeneralFeedRequest.GeneralFeedRequestHandler(OnUpdateUsersTopArtistsCompleted)); _lastUsersTopArtistsRequest = request; InfoScrobbler.AddRequest(request); }
private void UpdateXspfPlaylistAndStartPlayback(object aStartPlayback) { GUIWaitCursor.Show(); Log.Debug("GUIRadioLastFM: Update XSPF Playlist now..."); XspfPlaylistRequest request = new XspfPlaylistRequest( true, @"http://ws.audioscrobbler.com/radio/xspf.php?sk=" + AudioscrobblerBase.RadioSession + "&discovery=" + Convert.ToString(LastFMStation.DiscoveryEnabledInt) + "&desktop=" + AudioscrobblerBase.ClientFakeVersion, (bool)aStartPlayback, new XspfPlaylistRequest.XspfPlaylistRequestHandler(OnUpdateXspfPlaylistCompleted)); _lastRadioPlaylistRequest = request; InfoScrobbler.AddRequest(request); }
private void UpdateUnheardTracks() { UnheardTracksRequest request = new UnheardTracksRequest( new UnheardTracksRequest.UnheardTracksRequestHandler(OnUpdateUnheardTracksCompleted)); _lastRequest = request; ascrobbler.AddRequest(request); }
/// <summary> /// Updates the album info for the current track playing. /// The album info is fetched asynchronously by adding a request onto the request queue of the AudioScrobblerUtils /// class. The response will be received via callback by a delegate (OnUpdateAlbumInfoCompleted). /// </summary> private void UpdateAlbumInfo() { string CurrentArtist = CleanTagString(CurrentTrackTag.Artist); string CurrentAlbum = CleanTagString(CurrentTrackTag.Album); if (_doAlbumLookups) { if (CurrentTrackTag == null) { return; } if (CurrentTrackTag.Artist == string.Empty || CurrentTrackTag.Album == string.Empty) { Log.Warn("GUIMusicPlayingNow: current tag invalid for album info lookup. File: {0}", g_Player.CurrentFile); return; } AlbumInfoRequest request = new AlbumInfoRequest( CurrentArtist, CurrentAlbum, true, true, new AlbumInfoRequest.AlbumInfoRequestHandler(OnUpdateAlbumInfoCompleted) ); _lastAlbumRequest = request; InfoScrobbler.AddRequest(request); } }
private void UpdateFavoriteTracks() { FavoriteTracksRequest request = new FavoriteTracksRequest( new FavoriteTracksRequest.FavoriteTracksRequestHandler(OnUpdateFavoriteTracksCompleted)); _lastRequest = request; ascrobbler.AddRequest(request); }
/// <summary> /// Adds a request to the request queue. /// Also starts the request processing thread if it's not running. /// </summary> /// <param name="request">ScrobblerUtilsRequest to add to the queue</param> public void AddRequest(ScrobblerUtilsRequest request) { if (request != null) { lock (_queueMutex) { // Add request to the request queue _requestQueue.Add(request); // Start queue processing if not already busy if (!_running) { _running = true; GlobalServiceProvider.Get<IThreadPool>().Add(delegate() { ScrobblerUtilsRequest req; while (_requestQueue.Count > 0) { lock (_queueMutex) { req = _requestQueue[0]; _requestQueue.Remove(req); } req.PerformRequest(); } lock (_queueMutex) _running = false; }, "ScrobblerUtilsRequest", QueuePriority.High, ThreadPriority.Normal); } } } }