banshee r3204 - in trunk/banshee: . src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage src/Dap/Banshee.DapCore src/Dap/Banshee.DapCore/Banshee.DapCore



Author: alanmc
Date: Sun Feb 10 19:18:25 2008
New Revision: 3204
URL: http://svn.gnome.org/viewvc/banshee?rev=3204&view=rev

Log:
Added the async class for Dap access

Added:
   trunk/banshee/src/Dap/Banshee.DapCore/Banshee.DapCore/AsyncDevice.cs
Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/Device.cs
   trunk/banshee/src/Dap/Banshee.DapCore/Banshee.DapCore.mdp
   trunk/banshee/src/Dap/Banshee.DapCore/Makefile.am

Modified: trunk/banshee/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/Device.cs
==============================================================================
--- trunk/banshee/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/Device.cs	(original)
+++ trunk/banshee/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/Device.cs	Sun Feb 10 19:18:25 2008
@@ -30,7 +30,7 @@
 using Banshee.Collection;
 
 namespace Banshee.Dap.MassStorage {
-    public class Device : AbstractDevice {
+    public class Device  { //: AbstractDevice {
 		/*
 		public override void DownloadTrack (TrackInfo track, string destination)
 		{

Modified: trunk/banshee/src/Dap/Banshee.DapCore/Banshee.DapCore.mdp
==============================================================================
--- trunk/banshee/src/Dap/Banshee.DapCore/Banshee.DapCore.mdp	(original)
+++ trunk/banshee/src/Dap/Banshee.DapCore/Banshee.DapCore.mdp	Sun Feb 10 19:18:25 2008
@@ -10,11 +10,13 @@
   <Contents>
     <File name="Banshee.DapCore/DapCore.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.DapCore/HalCore.cs" subtype="Code" buildaction="Compile" />
-    <File name="Banshee.DapCore/IDeviceClass.cs" subtype="Code" buildaction="Compile" />
     <File name="hal-sharp/Device.cs" subtype="Code" buildaction="Compile" />
     <File name="hal-sharp/Manager.cs" subtype="Code" buildaction="Compile" />
     <File name="hal-sharp/Volume.cs" subtype="Code" buildaction="Compile" />
-    <File name="Resources/Banshee.DapCore.addin.xml" subtype="Code" buildaction="EmbedAsResource" />
+    <File name="Banshee.DapCore/AbstractDevice.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.DapCore/IDevice.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.DapCore.addin.xml" subtype="Code" buildaction="EmbedAsResource" />
+    <File name="Banshee.DapCore/AsyncDevice.cs" subtype="Code" buildaction="Compile" />
   </Contents>
   <References>
     <ProjectReference type="Project" localcopy="True" refto="Banshee.Core" />

Added: trunk/banshee/src/Dap/Banshee.DapCore/Banshee.DapCore/AsyncDevice.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Dap/Banshee.DapCore/Banshee.DapCore/AsyncDevice.cs	Sun Feb 10 19:18:25 2008
@@ -0,0 +1,114 @@
+// AsyncDevice.cs created with MonoDevelop
+// User: alan at 18:20Â10/02/2008
+//
+// To change standard headers go to Edit->Preferences->Coding->Standard Headers
+//
+
+using System;
+using System.Threading;
+
+namespace Banshee.Dap
+{
+	public class AsyncDevice : AbstractDevice
+	{
+		private IDevice device;
+		
+		public override bool CanSetName {
+			get { return device.CanSetName; }
+		}
+
+		public override bool CanSetOwner {
+			get { return device.CanSetOwner; }
+		}
+
+		public override string Name {
+			get { return device.Name; }
+			set { device.Name = value; }
+		}
+
+		public override string Owner {
+			get { return device.Owner; }
+			set { device.Owner = value; }
+		}
+
+		public override ulong Capacity {
+			get { return device.Capacity; }
+		}
+
+		public override ulong FreeSpace {
+			get { return device.FreeSpace; }
+		}
+
+		public override bool IsReadOnly {
+			get { return device.IsReadOnly; }
+		}
+
+		public override bool IsPlaybackSupported {
+			get { return device.IsPlaybackSupported; }
+		}
+
+		
+		public AsyncDevice(IDevice device)
+		{
+			this.device = device;
+			device.Ejected += delegate { RaiseEjected(); };
+			device.Initialized += delegate { RaiseInitialized(); };
+			device.MetadataUpdated += delegate { RaiseMetadataUpdated(); };
+			device.TrackDownloaded += delegate { RaiseTrackDownloaded(); };
+			device.TrackRemoved += delegate { RaiseTrackRemoved(); };
+			device.TracksLoaded += delegate { RaiseTracksLoaded(); };
+			device.TrackUploaded += delegate { RaiseTrackUploaded(); };
+		}
+
+		public override void Dispose ()
+		{
+			device.Dispose();
+		}
+
+		public override void DownloadTrack (Banshee.Collection.TrackInfo track, string destination)
+		{
+			ThreadPool.QueueUserWorkItem(delegate {
+				device.DownloadTrack(track, destination);
+			});
+		}
+
+		public override void LoadTracks ()
+		{
+			ThreadPool.QueueUserWorkItem(delegate {
+				device.LoadTracks();
+			});
+		}
+
+		public override void RemoveTrack (Banshee.Collection.TrackInfo track)
+		{
+			ThreadPool.QueueUserWorkItem(delegate {
+				device.RemoveTrack(track);
+			});
+		}
+
+		public override void UpdateMetadata (Banshee.Collection.TrackInfo track)
+		{
+			device.UpdateMetadata(track);
+		}
+
+		public override void UploadTrack (Banshee.Collection.TrackInfo track)
+		{
+			ThreadPool.QueueUserWorkItem(delegate {
+				device.UpdateMetadata(track);
+			});
+			
+		}
+
+		public override void Eject ()
+		{
+			ThreadPool.QueueUserWorkItem(delegate {
+				device.Eject();
+			});
+		}
+
+		public override bool Initialize (global::Hal.Device halDevice)
+		{
+			return device.Initialize(halDevice);
+		}
+	}
+}

Modified: trunk/banshee/src/Dap/Banshee.DapCore/Makefile.am
==============================================================================
--- trunk/banshee/src/Dap/Banshee.DapCore/Makefile.am	(original)
+++ trunk/banshee/src/Dap/Banshee.DapCore/Makefile.am	Sun Feb 10 19:18:25 2008
@@ -4,6 +4,7 @@
 
 SOURCES =  \
 	Banshee.DapCore/AbstractDevice.cs \
+	Banshee.DapCore/AsyncDevice.cs \
 	Banshee.DapCore/DapCore.cs \
 	Banshee.DapCore/HalCore.cs \
 	Banshee.DapCore/IDevice.cs \



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]