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
- From: abock svn gnome org
- To: svn-commits-list gnome org
- Subject: 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
- Date: Wed, 28 May 2008 19:11:31 +0000 (UTC)
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]