banshee r4011 - in trunk/banshee: . src/Clients/Halie/Halie src/Core/Banshee.Services src/Core/Banshee.Services/Banshee.ServiceStack src/Extensions src/Extensions/Banshee.CoverArt src/Extensions/Banshee.Podcasting/Banshee.Podcasting



Author: abock
Date: Wed May 28 19:11:31 2008
New Revision: 4011
URL: http://svn.gnome.org/viewvc/banshee?rev=4011&view=rev

Log:
2008-05-28  Aaron Bockover  <abock gnome org>

    * src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs:
    Listen to the new DBusCommandService

    * src/Clients/Halie/Halie/Client.cs: Proxy files to the DBusCommandService

    * src/Core/Banshee.Services/Banshee.ServiceStack/DBusCommandService.cs:
    A light weight remote object that raises events for command line arguments
    and files that can be pushed into it

    * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
    Register the DBusCommandService

    * src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs:
    Use InternalName



Added:
   trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/DBusCommandService.cs
Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/src/Clients/Halie/Halie/Client.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Services.mdp
   trunk/banshee/src/Core/Banshee.Services/Makefile.am
   trunk/banshee/src/Extensions/Banshee.CoverArt/Banshee.CoverArt.mdp
   trunk/banshee/src/Extensions/Banshee.CoverArt/Makefile.am
   trunk/banshee/src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs
   trunk/banshee/src/Extensions/Makefile.am

Modified: trunk/banshee/src/Clients/Halie/Halie/Client.cs
==============================================================================
--- trunk/banshee/src/Clients/Halie/Halie/Client.cs	(original)
+++ trunk/banshee/src/Clients/Halie/Halie/Client.cs	Wed May 28 19:11:31 2008
@@ -54,6 +54,15 @@
             }
             
             HandlePlayerCommands ();
+            HandleFiles ();
+        }
+        
+        private static void HandleFiles ()
+        {
+            DBusCommandService command = DBusServiceManager.FindInstance<DBusCommandService> ("/DBusCommandService");
+            foreach (string file in ApplicationContext.CommandLine.Files) {
+                command.PushFile (file);
+            }
         }
         
         private static void HandlePlayerCommands ()

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/Application.cs	Wed May 28 19:11:31 2008
@@ -75,7 +75,7 @@
         {
             Banshee.Base.PlatformHacks.TrapMonoJitSegv ();
             
-            Catalog.Init ("banshee-1", System.IO.Path.Combine (
+            Catalog.Init (Application.InternalName, System.IO.Path.Combine (
                 Banshee.Base.Paths.InstalledApplicationDataRoot, "locale"));
 
             ServiceManager.Run ();

Added: trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/DBusCommandService.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.ServiceStack/DBusCommandService.cs	Wed May 28 19:11:31 2008
@@ -0,0 +1,71 @@
+//
+// DBusCommandService.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 NDesk.DBus;
+
+namespace Banshee.ServiceStack
+{
+    public delegate void DBusCommandHandler (string argument, object value, bool isFile);
+
+    [Interface ("org.bansheeproject.Banshee.CommandService")]
+    public class DBusCommandService : MarshalByRefObject, IDBusExportable
+    {
+        public event DBusCommandHandler ArgumentPushed;
+        
+        public DBusCommandService ()
+        {
+        }
+        
+        public void PushArgument (string argument, object value)
+        {
+            OnArgumentPushed (argument, value, false);
+        }
+        
+        public void PushFile (string file)
+        {
+            OnArgumentPushed (file, String.Empty, true);
+        }
+        
+        private void OnArgumentPushed (string argument, object value, bool isFile)
+        {
+            DBusCommandHandler handler = ArgumentPushed;
+            if (handler != null) {
+                handler (argument, value, isFile);
+            }
+        }
+        
+        IDBusExportable IDBusExportable.Parent {
+            get { return null; }
+        }
+        
+        string IService.ServiceName {
+            get { return "DBusCommandService"; }
+        }
+    }
+}

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	Wed May 28 19:11:31 2008
@@ -62,6 +62,7 @@
         static ServiceManager ()
         {
             RegisterService<DBusServiceManager> ();
+            RegisterService<DBusCommandService> ();
             RegisterService<BansheeDbConnection> ();
             RegisterService<Banshee.Preferences.PreferenceService> ();
             RegisterService<SourceManager> ();

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	Wed May 28 19:11:31 2008
@@ -170,6 +170,7 @@
     <File name="Banshee.Playlists.Formats/Tests/PlaylistFormatTests.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.Collection/IFilterListModel.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.ServiceStack/DBusConnection.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.ServiceStack/DBusCommandService.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/Makefile.am
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Makefile.am	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Makefile.am	Wed May 28 19:11:31 2008
@@ -125,6 +125,7 @@
 	Banshee.ServiceStack/Application.cs \
 	Banshee.ServiceStack/BatchUserJob.cs \
 	Banshee.ServiceStack/Client.cs \
+	Banshee.ServiceStack/DBusCommandService.cs \
 	Banshee.ServiceStack/DBusConnection.cs \
 	Banshee.ServiceStack/DBusServiceManager.cs \
 	Banshee.ServiceStack/IDBusExportable.cs \

Modified: trunk/banshee/src/Extensions/Banshee.CoverArt/Banshee.CoverArt.mdp
==============================================================================
--- trunk/banshee/src/Extensions/Banshee.CoverArt/Banshee.CoverArt.mdp	(original)
+++ trunk/banshee/src/Extensions/Banshee.CoverArt/Banshee.CoverArt.mdp	Wed May 28 19:11:31 2008
@@ -9,9 +9,9 @@
   </Configurations>
   <Contents>
     <File name="Banshee.CoverArt.addin.xml" subtype="Code" buildaction="EmbedAsResource" />
-    <File name="CoverArtService.cs" subtype="Code" buildaction="Compile" />
     <File name="Resources/CoverArtMenu.xml" subtype="Code" buildaction="EmbedAsResource" />
-    <File name="CoverArtJob.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.CoverArt/CoverArtJob.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.CoverArt/CoverArtService.cs" subtype="Code" buildaction="Compile" />
   </Contents>
   <References>
     <ProjectReference type="Project" localcopy="True" refto="Banshee.Core" />

Modified: trunk/banshee/src/Extensions/Banshee.CoverArt/Makefile.am
==============================================================================
--- trunk/banshee/src/Extensions/Banshee.CoverArt/Makefile.am	(original)
+++ trunk/banshee/src/Extensions/Banshee.CoverArt/Makefile.am	Wed May 28 19:11:31 2008
@@ -4,8 +4,8 @@
 INSTALL_DIR = $(EXTENSIONS_INSTALL_DIR)
 
 SOURCES =  \
-	CoverArtJob.cs \
-	CoverArtService.cs
+	Banshee.CoverArt/CoverArtJob.cs \
+	Banshee.CoverArt/CoverArtService.cs
 
 RESOURCES =  \
 	Banshee.CoverArt.addin.xml \

Modified: trunk/banshee/src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs
==============================================================================
--- trunk/banshee/src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs	(original)
+++ trunk/banshee/src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs	Wed May 28 19:11:31 2008
@@ -86,6 +86,7 @@
             feeds_manager.FeedManager.FeedsChanged += OnFeedsChanged;
 
             ServiceManager.PlayerEngine.ConnectEvent (OnPlayerEvent, PlayerEvent.StateChange);
+            ServiceManager.Get<DBusCommandService> ().ArgumentPushed += OnCommandLineArgument;
 
             InitializeInterface ();
         }
@@ -202,6 +203,7 @@
             }
             
             ServiceManager.PlayerEngine.DisconnectEvent (OnPlayerEvent);
+            ServiceManager.Get<DBusCommandService> ().ArgumentPushed -= OnCommandLineArgument;
 
             if (download_manager_iface != null) {
                 download_manager_iface.Dispose ();                
@@ -226,6 +228,15 @@
             }
         }
         
+        private void OnCommandLineArgument (string argument, object value, bool isFile)
+        {
+            if (!isFile) {
+                return;
+            }
+            
+            // TODO: Handle podcast URIs
+        }
+        
         private void RefreshArtworkFor (Feed feed)
         {
             if (feed.LastDownloadTime != DateTime.MinValue)

Modified: trunk/banshee/src/Extensions/Makefile.am
==============================================================================
--- trunk/banshee/src/Extensions/Makefile.am	(original)
+++ trunk/banshee/src/Extensions/Makefile.am	Wed May 28 19:11:31 2008
@@ -2,6 +2,7 @@
 	Banshee.AudioCd \
 	Banshee.Bookmarks \
 	Banshee.BooScript \
+	Banshee.CoverArt \
 	Banshee.Daap \
 	Banshee.Lastfm \
 	Banshee.MiniMode \



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