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 \
_______________________________________________
SVN-commits-list mailing list (read only)
http://mail.gnome.org/mailman/listinfo/svn-commits-list

Want to limit the commits to a few modules? Go to above URL, log in to edit 
your options and select the modules ('topics') you want.
Module maintainer? It is possible to set the reply-to to your development 
mailing list. Email [EMAIL PROTECTED] if interested.

Reply via email to