banshee r4458 - in trunk/banshee: . src/Backends/Banshee.GStreamer/Banshee.GStreamer src/Core/Banshee.Core/Banshee.Collection src/Core/Banshee.Services/Banshee.Collection.Database src/Core/Banshee.Services/Banshee.MediaEngine src/Core/Banshee.Services/Banshee.Streaming src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod
- From: gburt svn gnome org
- To: svn-commits-list gnome org
- Subject: banshee r4458 - in trunk/banshee: . src/Backends/Banshee.GStreamer/Banshee.GStreamer src/Core/Banshee.Core/Banshee.Collection src/Core/Banshee.Services/Banshee.Collection.Database src/Core/Banshee.Services/Banshee.MediaEngine src/Core/Banshee.Services/Banshee.Streaming src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod
- Date: Wed, 3 Sep 2008 23:23:50 +0000 (UTC)
Author: gburt
Date: Wed Sep 3 23:23:50 2008
New Revision: 4458
URL: http://svn.gnome.org/viewvc/banshee?rev=4458&view=rev
Log:
2008-09-03 Gabriel Burt <gabriel burt gmail com>
* src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Add a bunch of
properties (model, color, firmware, etc) to the properties dialog. When
loading tracks, don't fail entirely if there is an exception on one.
Improve how/when the name is retrieved off the device, and set as
Activatable so the new Sync UI is visible.
* src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
Don't automatically save in the PlaybackError setter (BGO #539696).
* src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs: Add a
SavePlaybackError method that sets it and then saves it.
* src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs:
* src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
* src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs: Use
the new SavePlaybackError method.
* configure.ac: Remove remote audio/moonlight from the echo since they're
not yet finished/usable.
Modified:
trunk/banshee/ChangeLog
trunk/banshee/configure.ac
trunk/banshee/src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs
trunk/banshee/src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs
trunk/banshee/src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs
trunk/banshee/src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs
trunk/banshee/src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs
Modified: trunk/banshee/configure.ac
==============================================================================
--- trunk/banshee/configure.ac (original)
+++ trunk/banshee/configure.ac Wed Sep 3 23:23:50 2008
@@ -215,16 +215,16 @@
Karma: ${enable_karmasharp}
DAAP Support: ${enable_daap}
- Remote Audio: ${enable_remote_audio}
Podcast Support: ${enable_podcast}
Boo Scripting: ${enable_boo}
X11 Video Support: ${have_xvidmode}
- Moonlight Effects: ${enable_moonlight}
Unit Tests: ${do_tests} (requires nunit >= ${NUNIT_REQUIRED})
"
# Unfinished, unstable, under development components:
+# Moonlight Effects: ${enable_moonlight}
+# Remote Audio: ${enable_remote_audio}
# MediaWeb: ${enable_mediaweb}
# Torrent Podcasts:${enable_torrent}
Modified: trunk/banshee/src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs
==============================================================================
--- trunk/banshee/src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs (original)
+++ trunk/banshee/src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs Wed Sep 3 23:23:50 2008
@@ -264,7 +264,7 @@
if (CurrentTrack != null) {
switch (domain_code) {
case GstResourceError.NotFound:
- CurrentTrack.PlaybackError = StreamPlaybackError.ResourceNotFound;
+ CurrentTrack.SavePlaybackError (StreamPlaybackError.ResourceNotFound);
break;
default:
break;
@@ -277,7 +277,7 @@
if (CurrentTrack != null) {
switch (domain_code) {
case GstStreamError.CodecNotFound:
- CurrentTrack.PlaybackError = StreamPlaybackError.CodecNotFound;
+ CurrentTrack.SavePlaybackError (StreamPlaybackError.CodecNotFound);
break;
default:
break;
@@ -290,7 +290,7 @@
if (CurrentTrack != null) {
switch (domain_code) {
case GstCoreError.MissingPlugin:
- CurrentTrack.PlaybackError = StreamPlaybackError.CodecNotFound;
+ CurrentTrack.SavePlaybackError (StreamPlaybackError.CodecNotFound);
break;
default:
break;
Modified: trunk/banshee/src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs (original)
+++ trunk/banshee/src/Core/Banshee.Core/Banshee.Collection/TrackInfo.cs Wed Sep 3 23:23:50 2008
@@ -387,6 +387,14 @@
set { playback_error = value; }
}
+ public void SavePlaybackError (StreamPlaybackError value)
+ {
+ if (PlaybackError != value) {
+ PlaybackError = value;
+ Save ();
+ }
+ }
+
private bool can_save_to_database = true;
public bool CanSaveToDatabase {
get { return can_save_to_database; }
Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs (original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs Wed Sep 3 23:23:50 2008
@@ -535,7 +535,6 @@
}
playback_error = value;
- Save ();
}
}
Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs (original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs Wed Sep 3 23:23:50 2008
@@ -196,10 +196,10 @@
if (CurrentTrack != null) {
if (args.Event == PlayerEvent.Error
&& CurrentTrack.PlaybackError == StreamPlaybackError.None) {
- CurrentTrack.PlaybackError = StreamPlaybackError.Unknown;
+ CurrentTrack.SavePlaybackError (StreamPlaybackError.Unknown);
} else if (args.Event == PlayerEvent.Iterate
&& CurrentTrack.PlaybackError != StreamPlaybackError.None) {
- CurrentTrack.PlaybackError = StreamPlaybackError.None;
+ CurrentTrack.SavePlaybackError (StreamPlaybackError.None);
}
}
Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs (original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs Wed Sep 3 23:23:50 2008
@@ -152,10 +152,10 @@
stream_uris.Add(new SafeUri(uri));
}
} catch(System.Net.WebException) {
- PlaybackError = StreamPlaybackError.ResourceNotFound;
+ SavePlaybackError (StreamPlaybackError.ResourceNotFound);
} catch(Exception e) {
Console.WriteLine(e);
- PlaybackError = StreamPlaybackError.ResourceNotFound;
+ SavePlaybackError (StreamPlaybackError.ResourceNotFound);
}
}
Modified: trunk/banshee/src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs
==============================================================================
--- trunk/banshee/src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs (original)
+++ trunk/banshee/src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs Wed Sep 3 23:23:50 2008
@@ -78,10 +78,22 @@
if (ipod_device == null) {
throw new InvalidDeviceException ();
}
-
+
name_path = Path.Combine (Path.GetDirectoryName (ipod_device.TrackDatabasePath), "BansheeIPodName");
-
+ Name = GetDeviceName ();
+
Initialize ();
+
+ AddDapProperty (Catalog.GetString ("Color"), ipod_device.ModelInfo.ShellColor);
+ AddDapProperty (Catalog.GetString ("Generation"), ipod_device.ModelInfo.Generation.ToString ());
+ AddDapProperty (Catalog.GetString ("Produced on"), ipod_device.ProductionInfo.DisplayDate);
+ AddDapProperty (Catalog.GetString ("Firmware"), ipod_device.FirmwareVersion);
+
+ string [] capabilities = new string [ipod_device.ModelInfo.Capabilities.Count];
+ ipod_device.ModelInfo.Capabilities.CopyTo (capabilities, 0);
+ AddDapProperty (Catalog.GetString ("Capabilities"), String.Join (", ", capabilities));
+ AddDapProperty (Catalog.GetString ("Supports cover art"), ipod_device.ModelInfo.AlbumArtSupported ? Catalog.GetString ("Yes") : Catalog.GetString ("No"));
+ AddDapProperty (Catalog.GetString ("Supports photos"), ipod_device.ModelInfo.PhotosSupported ? Catalog.GetString ("Yes") : Catalog.GetString ("No"));
}
public override void Dispose ()
@@ -135,7 +147,7 @@
}
}
database_supported = true;
- ThreadAssist.ProxyToMain (delegate { DestroyUnsupportedView (); });
+ ThreadAssist.ProxyToMain (DestroyUnsupportedView);
} catch (DatabaseReadException e) {
Log.Exception ("Could not read iPod database", e);
ipod_device.LoadTrackDatabase (true);
@@ -151,6 +163,8 @@
}
database_loaded = true;
+
+ Name = GetDeviceName ();
}
private int CountMusicFiles ()
@@ -178,16 +192,20 @@
}
tracks_map.Clear ();
-
+
if (database_supported || (ipod_device.HasTrackDatabase &&
ipod_device.ModelInfo.DeviceClass == "shuffle")) {
foreach (Track ipod_track in ipod_device.TrackDatabase.Tracks) {
- IpodTrackInfo track = new IpodTrackInfo (ipod_track);
- track.PrimarySource = this;
- track.Save (false);
- tracks_map.Add (track.TrackId, track);
+ try {
+ IpodTrackInfo track = new IpodTrackInfo (ipod_track);
+ track.PrimarySource = this;
+ track.Save (false);
+ tracks_map.Add (track.TrackId, track);
+ } catch (Exception e) {
+ Log.Exception (e);
+ }
}
- }
+ }
/*else {
BuildDatabaseUnsupportedWidget ();
@@ -289,50 +307,34 @@
Log.Exception (e);
}
- this.name = null;
ipod_device.Name = name;
base.Rename (name);
}
- private string name;
- public override string Name {
- get {
- if (name != null) {
- return name;
- }
-
- if (File.Exists (name_path)) {
- using (StreamReader reader = new StreamReader (name_path, System.Text.Encoding.Unicode)) {
- name = reader.ReadLine ();
- }
- }
-
- if (String.IsNullOrEmpty (name) && database_loaded && database_supported) {
- name = ipod_device.Name;
- }
-
- if (!String.IsNullOrEmpty (name)) {
- return name;
- } else if (ipod_device.PropertyExists ("volume.label")) {
- name = ipod_device.GetPropertyString ("volume.label");
- } else if (ipod_device.PropertyExists ("info.product")) {
- name = ipod_device.GetPropertyString ("info.product");
- } else {
- name = ((IDevice)ipod_device).Name ?? "iPod";
+ private string GetDeviceName ()
+ {
+ string name = null;
+ if (File.Exists (name_path)) {
+ using (StreamReader reader = new StreamReader (name_path, System.Text.Encoding.Unicode)) {
+ name = reader.ReadLine ();
}
+ }
+
+ if (String.IsNullOrEmpty (name) && database_loaded && database_supported) {
+ name = ipod_device.Name;
+ }
- try {
- return name;
- } finally {
- if (!database_loaded) {
- name = null;
- }
- }
+ if (!String.IsNullOrEmpty (name)) {
+ return name;
+ } else if (ipod_device.PropertyExists ("volume.label")) {
+ name = ipod_device.GetPropertyString ("volume.label");
+ } else if (ipod_device.PropertyExists ("info.product")) {
+ name = ipod_device.GetPropertyString ("info.product");
+ } else {
+ name = ((IDevice)ipod_device).Name ?? "iPod";
}
- }
-
- public override bool CanActivate {
- get { return unsupported_view != null; }
+
+ return name;
}
public override bool CanRename {
@@ -453,20 +455,24 @@
private void PerformSyncThread ()
{
- while (true) {
- sync_thread_wait.WaitOne ();
- if (sync_thread_dispose) {
- break;
+ try {
+ while (true) {
+ sync_thread_wait.WaitOne ();
+ if (sync_thread_dispose) {
+ break;
+ }
+
+ PerformSyncThreadCycle ();
}
- PerformSyncThreadCycle ();
- }
-
- lock (sync_mutex) {
- sync_thread_dispose = false;
- sync_thread_wait.Close ();
- sync_thread_wait = null;
- sync_thread = null;
+ lock (sync_mutex) {
+ sync_thread_dispose = false;
+ sync_thread_wait.Close ();
+ sync_thread_wait = null;
+ sync_thread = null;
+ }
+ } catch (Exception e) {
+ Log.Exception (e);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]