banshee r3569 - in trunk/banshee: . src/Core/Banshee.Services src/Core/Banshee.Services/Banshee.Database src/Core/Banshee.Services/Banshee.Hardware src/Core/Banshee.Services/Banshee.MediaEngine src/Core/Banshee.Services/Banshee.PlaybackController src/Core/Banshee.Services/Banshee.ServiceStack src/Core/Banshee.Services/Banshee.Sources



Author: abock
Date: Thu Mar 27 22:05:19 2008
New Revision: 3569
URL: http://svn.gnome.org/viewvc/banshee?rev=3569&view=rev

Log:
2008-03-27  Aaron Bockover  <abock gnome org>

    * src/Core/Banshee.Services/Banshee.Hardware/HardwareManager.cs: Stubbed
    the base hardware manager service out; load extension managers from MA

    * src/Core/Banshee.Services/Banshee.Hardware/IBlockDevice.cs:
    * src/Core/Banshee.Services/Banshee.Hardware/IDevice.cs:
    * src/Core/Banshee.Services/Banshee.Hardware/IHardwareManager.cs:
    * src/Core/Banshee.Services/Banshee.Hardware/IVolume.cs: Stubbed some
    basic hardware related interfaces

    * src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs:
    * src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs:
    * src/Core/Banshee.Services/Banshee.ServiceStack/UserJobManager.cs:
    * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
    * src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs:
    Implement IRequiredService since we can't survive without these

    * src/Core/Banshee.Services/Banshee.ServiceStack/IRequiredService.cs:
    Services that are important enough to cause startup to fail if they cannot
    be started should implement IRequiredService

    * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
    Do not bail if a core service throws an exception that is not an
    IRequiredService



Added:
   trunk/banshee/src/Core/Banshee.Services/Banshee.Hardware/
   trunk/banshee/src/Core/Banshee.Services/Banshee.Hardware/HardwareManager.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Hardware/IBlockDevice.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Hardware/IDevice.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Hardware/IHardwareManager.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Hardware/IVolume.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/IRequiredService.cs
Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/UserJobManager.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Services.mdp
   trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs
   trunk/banshee/src/Core/Banshee.Services/Makefile.am

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs	Thu Mar 27 22:05:19 2008
@@ -40,7 +40,7 @@
 
 namespace Banshee.Database
 {
-    public sealed class BansheeDbConnection : HyenaSqliteConnection, IInitializeService
+    public sealed class BansheeDbConnection : HyenaSqliteConnection, IInitializeService, IRequiredService
     {
         private BansheeDbFormatMigrator migrator;
 

Added: trunk/banshee/src/Core/Banshee.Services/Banshee.Hardware/HardwareManager.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Hardware/HardwareManager.cs	Thu Mar 27 22:05:19 2008
@@ -0,0 +1,66 @@
+//
+// HardwareManager.cs
+//
+// Author:
+//   Aaron Bockover <abockover novell com>
+//
+// Copyright (C) 2008 Novell, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using Mono.Addins;
+using Hyena;
+
+using Banshee.ServiceStack;
+
+namespace Banshee.Hardware
+{
+    public sealed class HardwareManager : IService, IHardwareManager
+    {
+        private IHardwareManager manager;
+        
+        public HardwareManager ()
+        {
+            foreach (TypeExtensionNode node in AddinManager.GetExtensionNodes ("/Banshee/Platform/HardwareManager")) {
+                try {
+                    if (manager != null) {
+                        throw new Exception (String.Format (
+                            "A HardwareManager has already been loaded ({0}). Only one can be loaded.", 
+                            manager.GetType ().FullName));
+                    }
+                    
+                    manager = (IHardwareManager)node.CreateInstance (typeof (IHardwareManager));
+                } catch (Exception e) {
+                    Log.Warning ("Hardware manager extension failed to load", e.Message);
+                }
+            }
+            
+            if (manager == null) {
+                throw new Exception ("No HardwareManager extensions could be loaded. Hardware support will be disabled.");
+            }
+        }
+             
+        string IService.ServiceName {
+            get { return "HardwareManager"; }
+        }   
+    }
+}

Added: trunk/banshee/src/Core/Banshee.Services/Banshee.Hardware/IBlockDevice.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Hardware/IBlockDevice.cs	Thu Mar 27 22:05:19 2008
@@ -0,0 +1,39 @@
+//
+// IBlockDevice.cs
+//
+// Author:
+//   Aaron Bockover <abockover novell com>
+//
+// Copyright (C) 2008 Novell, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections.Generic;
+
+namespace Banshee.Hardware
+{
+    public interface IBlockDevice : IDevice, IEnumerable<IVolume>
+    {
+        int VolumeCount { get; }
+        IEnumerable<IVolume> Volumes { get; }
+    }
+}

Added: trunk/banshee/src/Core/Banshee.Services/Banshee.Hardware/IDevice.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Hardware/IDevice.cs	Thu Mar 27 22:05:19 2008
@@ -0,0 +1,40 @@
+//
+// IDevice.cs
+//
+// Author:
+//   Aaron Bockover <abockover novell com>
+//
+// Copyright (C) 2008 Novell, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+namespace Banshee.Hardware
+{
+    public interface IDevice
+    {
+        string Uuid { get; }
+        string DeviceNode { get; }
+        string Name { get; }
+        IDevice Parent { get; }
+    }
+}

Added: trunk/banshee/src/Core/Banshee.Services/Banshee.Hardware/IHardwareManager.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Hardware/IHardwareManager.cs	Thu Mar 27 22:05:19 2008
@@ -0,0 +1,36 @@
+//
+// HardwareManager.cs
+//
+// Author:
+//   Aaron Bockover <abockover novell com>
+//
+// Copyright (C) 2008 Novell, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+namespace Banshee.Hardware
+{
+    public interface IHardwareManager
+    {
+    }
+}

Added: trunk/banshee/src/Core/Banshee.Services/Banshee.Hardware/IVolume.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Hardware/IVolume.cs	Thu Mar 27 22:05:19 2008
@@ -0,0 +1,41 @@
+//
+// IBlockDevice.cs
+//
+// Author:
+//   Aaron Bockover <abockover novell com>
+//
+// Copyright (C) 2008 Novell, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+namespace Banshee.Hardware
+{
+    public interface IVolume : IDevice
+    {
+        string MountPoint { get; }
+        bool IsMounted { get; }
+        ulong Capacity { get; }
+        ulong Available { get; }
+        new IBlockDevice Parent { get; }
+    }
+}

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	Thu Mar 27 22:05:19 2008
@@ -45,7 +45,7 @@
 
 namespace Banshee.MediaEngine
 {
-    public class PlayerEngineService : IService, IPlayerEngineService
+    public class PlayerEngineService : IRequiredService, IPlayerEngineService
     {   
         private List<PlayerEngine> engines = new List<PlayerEngine> ();
         private PlayerEngine active_engine;

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.PlaybackController/PlaybackControllerService.cs	Thu Mar 27 22:05:19 2008
@@ -39,7 +39,7 @@
 
 namespace Banshee.PlaybackController
 {
-    public class PlaybackControllerService : IService, ICanonicalPlaybackController, IPlaybackControllerExportable
+    public class PlaybackControllerService : IRequiredService, ICanonicalPlaybackController, IPlaybackControllerExportable
     {
         private enum Direction
         {

Added: trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/IRequiredService.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/IRequiredService.cs	Thu Mar 27 22:05:19 2008
@@ -0,0 +1,36 @@
+//
+// IRequiredService.cs
+//
+// Author:
+//   Aaron Bockover <abockover novell com>
+//
+// Copyright (C) 2008 Novell, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+namespace Banshee.ServiceStack
+{
+    public interface IRequiredService : IService
+    {
+    }
+}

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs	Thu Mar 27 22:05:19 2008
@@ -68,6 +68,7 @@
             RegisterService<ImportSourceManager> ();
             RegisterService<LibraryImportManager> ();
             RegisterService<UserJobManager> ();
+            RegisterService<Banshee.Hardware.HardwareManager> ();
             
             AddinManager.Initialize (ApplicationContext.CommandLine.Contains ("uninstalled") 
                 ? "." : Paths.ApplicationData);
@@ -94,21 +95,32 @@
                 uint cumulative_timer_id = Log.InformationTimerStart ();
                 
                 foreach (Type type in service_types) {
-                    uint timer_id = Log.DebugTimerStart (); 
-                    IService service = (IService)Activator.CreateInstance (type);
-                    RegisterService (service);
+                    IService service = null;
                     
-                    Log.DebugTimerPrint (timer_id, String.Format (
-                        "Core service started ({0}, {{0}})", service.ServiceName));
-                    
-                    OnServiceStarted (service);
-                    
-                    if (service is IDisposable) {
-                        dispose_services.Push (service);
-                    }
+                    try {
+                        uint timer_id = Log.DebugTimerStart ();
+                        service = (IService)Activator.CreateInstance (type);
+                        RegisterService (service);
+                        
+                        Log.DebugTimerPrint (timer_id, String.Format (
+                            "Core service started ({0}, {{0}})", service.ServiceName));
+                        
+                        OnServiceStarted (service);
+                        
+                        if (service is IDisposable) {
+                            dispose_services.Push (service);
+                        }
 
-                    if (service is IInitializeService) {
-                        ((IInitializeService)service).Initialize ();
+                        if (service is IInitializeService) {
+                            ((IInitializeService)service).Initialize ();
+                        }
+                    } catch (Exception e) {
+                        if (service is IRequiredService) {
+                            throw;
+                        }
+                        
+                        Log.Warning (String.Format ("Service `{0}' not started: {1}", type.FullName, 
+                            e.InnerException != null ? e.InnerException.Message : e.Message));
                     }
                 }
                 

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/UserJobManager.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/UserJobManager.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/UserJobManager.cs	Thu Mar 27 22:05:19 2008
@@ -31,7 +31,7 @@
 
 namespace Banshee.ServiceStack
 {
-    public class UserJobManager : IService, IEnumerable<IUserJob>
+    public class UserJobManager : IRequiredService, IEnumerable<IUserJob>
     {
         private List<IUserJob> user_jobs = new List<IUserJob> ();
         

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Services.mdp
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Services.mdp	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Services.mdp	Thu Mar 27 22:05:19 2008
@@ -131,6 +131,13 @@
     <File name="Banshee.Library/VideoLibrarySource.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.ServiceStack/Client.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.Collection.Database/DatabaseArtistInfo.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Hardware" subtype="Directory" buildaction="Compile" />
+    <File name="Banshee.Hardware/HardwareManager.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Hardware/IDevice.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Hardware/IBlockDevice.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Hardware/IVolume.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Hardware/IHardwareManager.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.ServiceStack/IRequiredService.cs" subtype="Code" buildaction="Compile" />
   </Contents>
   <References>
     <ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/SourceManager.cs	Thu Mar 27 22:05:19 2008
@@ -49,7 +49,7 @@
         public int Position;
     }
     
-    public class SourceManager : ISourceManager, IDisposable
+    public class SourceManager : ISourceManager, IRequiredService, IDisposable
     {
         private List<Source> sources = new List<Source>();
         private Source active_source;

Modified: trunk/banshee/src/Core/Banshee.Services/Makefile.am
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Makefile.am	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Makefile.am	Thu Mar 27 22:05:19 2008
@@ -35,6 +35,11 @@
 	Banshee.Equalizer/EqualizerManager.cs \
 	Banshee.Equalizer/EqualizerSetting.cs \
 	Banshee.Equalizer/EqualizerSettingEvent.cs \
+	Banshee.Hardware/HardwareManager.cs \
+	Banshee.Hardware/IBlockDevice.cs \
+	Banshee.Hardware/IDevice.cs \
+	Banshee.Hardware/IHardwareManager.cs \
+	Banshee.Hardware/IVolume.cs \
 	Banshee.Library/HomeDirectoryImportSource.cs \
 	Banshee.Library/IImportSource.cs \
 	Banshee.Library/ImportSourceManager.cs \
@@ -97,6 +102,7 @@
 	Banshee.ServiceStack/IDBusExportable.cs \
 	Banshee.ServiceStack/IExtensionService.cs \
 	Banshee.ServiceStack/IInitializeService.cs \
+	Banshee.ServiceStack/IRequiredService.cs \
 	Banshee.ServiceStack/IService.cs \
 	Banshee.ServiceStack/IUserJob.cs \
 	Banshee.ServiceStack/ServiceManager.cs \



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