banshee r3444 - in trunk/banshee: . src/Core/Banshee.Core/Resources src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler
- From: gburt svn gnome org
- To: svn-commits-list gnome org
- Subject: banshee r3444 - in trunk/banshee: . src/Core/Banshee.Core/Resources src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler
- Date: Thu, 13 Mar 2008 17:11:39 +0000 (GMT)
Author: gburt
Date: Thu Mar 13 17:11:39 2008
New Revision: 3444
URL: http://svn.gnome.org/viewvc/banshee?rev=3444&view=rev
Log:
2008-03-13 Gabriel Burt <gabriel burt gmail com>
* src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs:
Patch from Alexander Hixon fixing the Audioscrobbler now-playing delay
issue, properly listens for the account being updated to update
links/actions.
* src/Core/Banshee.Core/Resources/contributors.xml: Add Michael Monreal to
Artists.
Modified:
trunk/banshee/ChangeLog
trunk/banshee/src/Core/Banshee.Core/Resources/contributors.xml
trunk/banshee/src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs
Modified: trunk/banshee/src/Core/Banshee.Core/Resources/contributors.xml
==============================================================================
--- trunk/banshee/src/Core/Banshee.Core/Resources/contributors.xml (original)
+++ trunk/banshee/src/Core/Banshee.Core/Resources/contributors.xml Thu Mar 13 17:11:39 2008
@@ -51,5 +51,6 @@
<!-- Artists have their own markup because of the GtkAboutBox design -->
<artist>Garrett LeSage</artist>
<artist>Jakub Steiner</artist>
+ <artist>Michael Monreal</artist>
<artist>Ryan Collier</artist>
</people>
Modified: trunk/banshee/src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs
==============================================================================
--- trunk/banshee/src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs (original)
+++ trunk/banshee/src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Audioscrobbler/AudioscrobblerService.cs Thu Mar 13 17:11:39 2008
@@ -65,6 +65,8 @@
private Account account;
private bool queued; /* if current_track has been queued */
+ private bool now_playing_sent = false; /* self explanitory :) */
+ private int iterate_countdown = 4 * 4; /* number of times to wait for iterate event before sending now playing */
private DateTime song_start_time;
private TrackInfo last_track;
@@ -97,6 +99,11 @@
connection.UpdateNetworkState (args.Connected);
};
+ // Update the Visit action menu item if we update our account info
+ LastfmCore.Account.Updated += delegate (object o, EventArgs args) {
+ actions["AudioscrobblerVisitAction"].Sensitive = LastfmCore.Account.UserName != null && LastfmCore.Account.CryptedPassword != null;
+ };
+
ServiceManager.PlayerEngine.EventChanged += OnPlayerEngineEventChanged;
action_service = ServiceManager.Get<InterfaceActionService> ("InterfaceActionService");
@@ -232,14 +239,8 @@
song_start_time = DateTime.Now;
last_track = ServiceManager.PlayerEngine.CurrentTrack;
queued = false;
-
- // Queue as now playing
- if (last_track != null && last_track.Duration.TotalSeconds > 30 &&
- (actions["AudioscrobblerEnableAction"] as ToggleAction).Active) {
-
- connection.NowPlaying (last_track.ArtistName, last_track.TrackTitle,
- last_track.AlbumTitle, last_track.Duration.TotalSeconds, last_track.TrackNumber);
- }
+ now_playing_sent = false;
+ iterate_countdown = 4 * 4; /* we get roughly 4 events/sec */
break;
@@ -248,11 +249,26 @@
break;
case PlayerEngineEvent.Iterate:
+ // Queue as now playing
+ if (!now_playing_sent && iterate_countdown == 0) {
+ if (last_track != null && last_track.Duration.TotalSeconds > 30 &&
+ (actions["AudioscrobblerEnableAction"] as ToggleAction).Active) {
+
+ connection.NowPlaying (last_track.ArtistName, last_track.TrackTitle,
+ last_track.AlbumTitle, last_track.Duration.TotalSeconds, last_track.TrackNumber);
+ }
+
+ now_playing_sent = true;
+ } else if (iterate_countdown > 0) {
+ iterate_countdown --;
+ }
+
st.IncreasePosition ();
break;
case PlayerEngineEvent.EndOfStream:
Queue (ServiceManager.PlayerEngine.CurrentTrack);
+ iterate_countdown = 4 * 4;
break;
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]