banshee r3730 - in trunk/banshee: . build src/Core/Banshee.Services/Banshee.MediaEngine src/Extensions src/Extensions/Banshee.Sample



Author: abock
Date: Wed Apr  9 21:01:20 2008
New Revision: 3730
URL: http://svn.gnome.org/viewvc/banshee?rev=3730&view=rev

Log:
2008-04-09  Aaron Bockover  <abock gnome org>

    * build/build.environment.mk:
    * configure.ac: Set up the sample extension in the build

    * src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs:
    Added a new TrackIntercept event that allows objects to stop the
    player engine from opening a trac

    * src/Extensions/Banshee.Sample/: Set up a quick sample extension to help
    new developers; it sort of breaks things right now, but I'll fix that soon



Added:
   trunk/banshee/src/Extensions/Banshee.Sample/
   trunk/banshee/src/Extensions/Banshee.Sample/Banshee.Sample.addin.xml
   trunk/banshee/src/Extensions/Banshee.Sample/Banshee.Sample.mdp
Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/build/build.environment.mk
   trunk/banshee/configure.ac
   trunk/banshee/src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs
   trunk/banshee/src/Extensions/Extensions.mds
   trunk/banshee/src/Extensions/Makefile.am

Modified: trunk/banshee/build/build.environment.mk
==============================================================================
--- trunk/banshee/build/build.environment.mk	(original)
+++ trunk/banshee/build/build.environment.mk	Wed Apr  9 21:01:20 2008
@@ -146,6 +146,7 @@
 REF_EXTENSION_LASTFM = $(LINK_BANSHEE_THICKCLIENT_DEPS) $(LINK_MONO_MEDIA) $(LINK_LASTFM) $(LINK_LASTFM_GUI)
 REF_EXTENSION_NOWPLAYING = $(LINK_BANSHEE_THICKCLIENT_DEPS)
 REF_EXTENSION_PODCASTING = $(LINK_MIGO_DEPS) $(LINK_BANSHEE_THICKCLIENT_DEPS)
+REF_EXTENSION_SAMPLE = $(LINK_BANSHEE_THICKCLIENT_DEPS)
 
 # Build rules
 # Ignoring 0278 due to a bug in gmcs: 

Modified: trunk/banshee/configure.ac
==============================================================================
--- trunk/banshee/configure.ac	(original)
+++ trunk/banshee/configure.ac	Wed Apr  9 21:01:20 2008
@@ -175,6 +175,7 @@
 src/Extensions/Banshee.NowPlaying/Makefile
 src/Extensions/Banshee.PlayQueue/Makefile
 src/Extensions/Banshee.Podcasting/Makefile
+src/Extensions/Banshee.Sample/Makefile
 ])
 
 if test "x${enable_daap}" = "xyes"; then

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	Wed Apr  9 21:01:20 2008
@@ -45,6 +45,8 @@
 
 namespace Banshee.MediaEngine
 {
+    public delegate bool TrackInterceptHandler (TrackInfo track);
+
     public class PlayerEngineService : IInitializeService, IRequiredService, IPlayerEngineService, IDisposable
     {   
         private List<PlayerEngine> engines = new List<PlayerEngine> ();
@@ -57,6 +59,7 @@
         public event PlayerEngineEventHandler EventChanged;
         public event PlayerEngineStateHandler StateChanged;
         public event EventHandler PlayWhenIdleRequest;
+        public event TrackInterceptHandler TrackIntercept;
         
         private event DBusPlayerEngineEventHandler dbus_event_changed;
         event DBusPlayerEngineEventHandler IPlayerEngineService.EventChanged {
@@ -242,9 +245,25 @@
             }
         }
         
+        private bool OnTrackIntercept (TrackInfo track)
+        {
+            TrackInterceptHandler handler = TrackIntercept;
+            if (handler == null) {
+                return false;
+            }
+            
+            bool handled = false;
+            
+            foreach (TrackInterceptHandler single_handler in handler.GetInvocationList ()) {
+                handled |= single_handler (track);
+            }
+            
+            return handled;
+        }
+        
         public void Open (TrackInfo track)
         {
-            if (!track.CanPlay) {
+            if (!track.CanPlay || OnTrackIntercept (track)) {
                 return;
             }
                
@@ -263,7 +282,7 @@
         
         public void OpenPlay (TrackInfo track)
         {
-            if (!track.CanPlay) {
+            if (!track.CanPlay || OnTrackIntercept (track)) {
                 return;
             }
         

Added: trunk/banshee/src/Extensions/Banshee.Sample/Banshee.Sample.addin.xml
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Extensions/Banshee.Sample/Banshee.Sample.addin.xml	Wed Apr  9 21:01:20 2008
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Addin 
+    id="Banshee.Sample"
+    version="1.0"
+    compatVersion="1.0"
+    copyright="Â 2008 Novell Inc. Licensed under the MIT X11 license."
+    name="Sample"
+    category="Sources"
+    description="A sample source useful to developers."
+    author="Aaron Bockover"
+    url="http://banshee-project.org/";
+    defaultEnabled="true">
+
+  <Dependencies>
+    <Addin id="Banshee.Services" version="1.0"/>
+    <Addin id="Banshee.ThickClient" version="1.0"/>
+  </Dependencies>
+
+  <Extension path="/Banshee/SourceManager/Source">
+    <Source class="Banshee.Sample.SampleSource"/>
+  </Extension>
+
+</Addin>

Added: trunk/banshee/src/Extensions/Banshee.Sample/Banshee.Sample.mdp
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Extensions/Banshee.Sample/Banshee.Sample.mdp	Wed Apr  9 21:01:20 2008
@@ -0,0 +1,37 @@
+<Project name="Banshee.Sample" fileversion="2.0" UseParentDirectoryAsNamespace="True" language="C#" clr-version="Net_2_0" ctype="DotNetProject">
+  <Configurations active="Debug">
+    <Configuration name="Debug" ctype="DotNetProjectConfiguration">
+      <Output directory="../../../bin" assemblyKeyFile="." assembly="Banshee.Sample" />
+      <Build debugmode="True" target="Library" />
+      <Execution runwithwarnings="True" consolepause="True" runtime="MsNet" clr-version="Net_2_0" />
+      <CodeGeneration compiler="Mcs" warninglevel="4" optimize="True" unsafecodeallowed="False" generateoverflowchecks="True" generatexmldocumentation="False" ctype="CSharpCompilerParameters" />
+    </Configuration>
+  </Configurations>
+  <Contents>
+    <File name="Banshee.Sample.addin.xml" subtype="Code" buildaction="EmbedAsResource" />
+    <File name="Banshee.Sample/SampleSource.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Sample/SampleSourceInterface.cs" subtype="Code" buildaction="Compile" />
+  </Contents>
+  <References>
+    <ProjectReference type="Project" localcopy="True" refto="Banshee.Core" />
+    <ProjectReference type="Project" localcopy="True" refto="Banshee.Services" />
+    <ProjectReference type="Project" localcopy="True" refto="Hyena" />
+    <ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+    <ProjectReference type="Project" localcopy="True" refto="Hyena.Gui" />
+    <ProjectReference type="Project" localcopy="True" refto="Banshee.Widgets" />
+    <ProjectReference type="Project" localcopy="True" refto="Banshee.ThickClient" />
+    <ProjectReference type="Gac" localcopy="True" refto="gtk-sharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+    <ProjectReference type="Gac" localcopy="True" refto="Mono.Posix, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
+    <ProjectReference type="Gac" localcopy="True" refto="gdk-sharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+    <ProjectReference type="Gac" localcopy="True" refto="Mono.Cairo, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
+  </References>
+  <MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="True" RelativeMakefileName="./Makefile.am">
+    <BuildFilesVar Sync="True" Name="SOURCES" />
+    <DeployFilesVar />
+    <ResourcesVar Sync="True" Name="RESOURCES" />
+    <OthersVar />
+    <GacRefVar />
+    <AsmRefVar />
+    <ProjectRefVar />
+  </MonoDevelop.Autotools.MakefileInfo>
+</Project>
\ No newline at end of file

Modified: trunk/banshee/src/Extensions/Extensions.mds
==============================================================================
--- trunk/banshee/src/Extensions/Extensions.mds	(original)
+++ trunk/banshee/src/Extensions/Extensions.mds	Wed Apr  9 21:01:20 2008
@@ -10,6 +10,7 @@
       <Entry build="True" name="Banshee.AudioCd" configuration="Debug" />
       <Entry build="True" name="Banshee.Daap" configuration="Debug" />
       <Entry build="True" name="Banshee.Podcasting" configuration="Debug" />
+      <Entry build="True" name="Banshee.Sample" configuration="Debug" />
     </Configuration>
   </Configurations>
   <StartMode startupentry="Banshee.Daap" single="True">
@@ -22,6 +23,7 @@
     <Execute type="None" entry="Banshee.Bookmarks" />
     <Execute type="None" entry="Banshee.AudioCd" />
     <Execute type="None" entry="Banshee.Podcasting" />
+    <Execute type="None" entry="Banshee.Sample" />
   </StartMode>
   <Entries>
     <Entry filename="Banshee.Daap/Banshee.Daap.mdp" />
@@ -33,5 +35,6 @@
     <Entry filename="Banshee.Bookmarks/Banshee.Bookmarks.mdp" />
     <Entry filename="Banshee.AudioCd/Banshee.AudioCd.mdp" />
     <Entry filename="Banshee.Podcasting/Banshee.Podcasting.mdp" />
+    <Entry filename="Banshee.Sample/Banshee.Sample.mdp" />
   </Entries>
 </Combine>
\ No newline at end of file

Modified: trunk/banshee/src/Extensions/Makefile.am
==============================================================================
--- trunk/banshee/src/Extensions/Makefile.am	(original)
+++ trunk/banshee/src/Extensions/Makefile.am	Wed Apr  9 21:01:20 2008
@@ -7,6 +7,7 @@
 	Banshee.NotificationArea \
 	Banshee.NowPlaying \
 	Banshee.PlayQueue \
-	Banshee.Podcasting
+	Banshee.Podcasting \
+	Banshee.Sample
 
 MAINTAINERCLEANFILES = Makefile.in



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