Esempio n. 1
0
 private void UpdateFriendsArtists(bool randomizeList)
 {
   FriendsArtistsRequest request = new FriendsArtistsRequest(
     randomizeList,
     new FriendsArtistsRequest.FriendsArtistsRequestHandler(OnUpdateFriendsArtistsCompleted));
   _lastRequest = request;
   ascrobbler.AddRequest(request);
 }
Esempio n. 2
0
 private void UpdateRandomTracks()
 {
   RandomTracksRequest request = new RandomTracksRequest(
     new RandomTracksRequest.RandomTracksRequestHandler(OnUpdateRandomTracksCompleted));
   _lastRequest = request;
   ascrobbler.AddRequest(request);
 }
Esempio n. 3
0
 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);
   }
 }
Esempio n. 4
0
 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);
      }
    }
Esempio n. 7
0
 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);
   }
 }
Esempio n. 9
0
    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);
      }
    }
Esempio n. 10
0
 private void UpdateTrackTagsInfo(string _trackArtist, string _trackTitle)
 {
   TagsForTrackRequest request = new TagsForTrackRequest(
     _trackArtist,
     _trackTitle,
     new TagsForTrackRequest.TagsForTrackRequestHandler(OnUpdateTrackTagsInfoCompleted));
   _lastTrackTagRequest = request;
   _trackTagsCache.Clear();
   InfoScrobbler.AddRequest(request);
 }
Esempio n. 11
0
 private void UpdateUsersTags(string _serviceUser)
 {
   UsersTagsRequest request = new UsersTagsRequest(
     _serviceUser,
     new UsersTagsRequest.UsersTagsRequestHandler(OnUpdateUsersTagsCompleted));
   _lastUsersTagsRequest = request;
   InfoScrobbler.AddRequest(request);
 }
Esempio n. 12
0
 private void UpdateUsersTopArtists(string _serviceUser)
 {
   GeneralFeedRequest request = new GeneralFeedRequest(
     lastFMFeed.topartists,
     _serviceUser,
     new GeneralFeedRequest.GeneralFeedRequestHandler(OnUpdateUsersTopArtistsCompleted));
   _lastUsersTopArtistsRequest = request;
   InfoScrobbler.AddRequest(request);
 }
Esempio n. 13
0
 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);
 }
Esempio n. 14
0
 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);
   }
 }
Esempio n. 16
0
 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);
          }
        }
      }
    }