banshee r3479 - in trunk/banshee: . build src/Clients/Nereid/Nereid src/Core/Banshee.Services src/Core/Banshee.Services/Banshee.Library src/Core/Banshee.Services/Banshee.ServiceStack src/Extensions src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio src/Extensions/Banshee.NowPlaying src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue src/Extensions/Banshee.PlayQueue/Resources src/Libraries/Hyena.Gui



Author: abock
Date: Tue Mar 18 21:52:07 2008
New Revision: 3479
URL: http://svn.gnome.org/viewvc/banshee?rev=3479&view=rev

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

    * src/Clients/Nereid/Nereid/PlayerInterface.cs: Hide the view container
    when the source doesn't support custom contents or has a track model

    * src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs:
    * src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs:
    * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
    Fix up the source ordering to allow for some play

    * src/Core/Banshee.Services/Banshee.ServiceStack/ServiceManager.cs:
    Changed the argument to have MA spew its guts to --debug-addins

    * src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs:
    Changed to reflect the Nereid source contents properties and hide the
    source contents header since it's pointless for Last.fm

    * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs:
    * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs:
    Stubbed out the basics for the new 'Now Playing' source that will be used
    to display video, visualizations, and other data related to the currently
    playing track

    * src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs:
    Basic placeholder GdkWindow to be used to render video



Added:
   trunk/banshee/src/Extensions/Banshee.NowPlaying/   (props changed)
   trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/
   trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying.addin.xml
   trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying.mdp
   trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs
   trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs
   trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs
   trunk/banshee/src/Extensions/Banshee.NowPlaying/Makefile.am
Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/build/build.environment.mk
   trunk/banshee/configure.ac
   trunk/banshee/src/Clients/Nereid/Nereid/PlayerInterface.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.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.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs
   trunk/banshee/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs
   trunk/banshee/src/Extensions/Banshee.PlayQueue/Resources/Banshee.PlayQueue.addin.xml
   trunk/banshee/src/Extensions/Extensions.mds
   trunk/banshee/src/Extensions/Makefile.am
   trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Gui.mdp

Modified: trunk/banshee/build/build.environment.mk
==============================================================================
--- trunk/banshee/build/build.environment.mk	(original)
+++ trunk/banshee/build/build.environment.mk	Tue Mar 18 21:52:07 2008
@@ -123,7 +123,7 @@
 REF_EXTENSION_NOTIFICATIONAREA = $(LINK_BANSHEE_THICKCLIENT_DEPS)
 REF_EXTENSION_PLAYQUEUE = $(LINK_BANSHEE_THICKCLIENT_DEPS)
 REF_EXTENSION_LASTFM = $(LINK_BANSHEE_THICKCLIENT_DEPS) $(LINK_MONO_MEDIA) $(LINK_LASTFM) $(LINK_LASTFM_GUI)
-REF_EXTENSION_SKINS = $(LINK_BANSHEE_THICKCLIENT_DEPS)
+REF_EXTENSION_NOWPLAYING = $(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	Tue Mar 18 21:52:07 2008
@@ -153,6 +153,7 @@
 src/Extensions/Banshee.Lastfm/Makefile
 src/Extensions/Banshee.MultimediaKeys/Makefile
 src/Extensions/Banshee.NotificationArea/Makefile
+src/Extensions/Banshee.NowPlaying/Makefile
 src/Extensions/Banshee.PlayQueue/Makefile
 ])
 

Modified: trunk/banshee/src/Clients/Nereid/Nereid/PlayerInterface.cs
==============================================================================
--- trunk/banshee/src/Clients/Nereid/Nereid/PlayerInterface.cs	(original)
+++ trunk/banshee/src/Clients/Nereid/Nereid/PlayerInterface.cs	Tue Mar 18 21:52:07 2008
@@ -297,9 +297,10 @@
             }
 
             // Connect the source models to the views if possible
-            if (source.Properties.Contains ("NereidSourceContents")) {
-                view_container.Content = source.Properties.Get<ISourceContents> ("NereidSourceContents");
+            if (source.Properties.Contains ("Nereid.SourceContents")) {
+                view_container.Content = source.Properties.Get<ISourceContents> ("Nereid.SourceContents");
                 view_container.Content.SetSource (source);
+                view_container.Show ();
             } else if (source is ITrackModelSource) {
                 if (composite_view.TrackModel != null) {
                     composite_view.TrackModel.Reloaded -= HandleTrackModelReloaded;
@@ -307,6 +308,7 @@
                 composite_view.SetSource (source);
                 composite_view.TrackModel.Reloaded += HandleTrackModelReloaded;
                 view_container.Content = composite_view;
+                view_container.Show ();
             } else if (source is Hyena.Data.IObjectListModel) {
                 if (object_view == null) {
                     object_view = new ObjectListSourceContents ();
@@ -314,8 +316,14 @@
                 
                 view_container.Content = object_view;
                 view_container.Content.SetSource (source);
+                view_container.Show ();
+            } else {
+                view_container.Hide ();
             }
             
+            view_container.Header.Visible = source.Properties.Contains ("Nereid.SourceContents.HeaderVisible") ?
+                source.Properties.Get<bool> ("Nereid.SourceContents.HeaderVisible") : true;
+            
             UpdateStatusBar ();
             view_container.SearchEntry.Ready = true;
         }

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs	Tue Mar 18 21:52:07 2008
@@ -34,7 +34,7 @@
 {
     public class MusicLibrarySource : LibrarySource
     {
-        public MusicLibrarySource () : base (Catalog.GetString ("Music Library"), "Library", 1)
+        public MusicLibrarySource () : base (Catalog.GetString ("Music Library"), "Library", 20)
         {
             Properties.SetStringList ("Icon.Name", "audio-x-generic", "source-library");
         }

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs	Tue Mar 18 21:52:07 2008
@@ -34,7 +34,7 @@
 {
     public class VideoLibrarySource : LibrarySource
     {
-        public VideoLibrarySource () : base (Catalog.GetString ("Video Library"), "VideoLibrary", 2)
+        public VideoLibrarySource () : base (Catalog.GetString ("Video Library"), "VideoLibrary", 30)
         {
             Properties.SetStringList ("Icon.Name", "video-x-generic", "video", "source-library");
         }

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	Tue Mar 18 21:52:07 2008
@@ -74,7 +74,7 @@
             AddinManager.Initialize (ApplicationContext.CommandLine.Contains ("uninstalled") 
                 ? "." : Paths.ApplicationData);
             
-            IProgressStatus monitor = ApplicationContext.CommandLine.Contains ("mono-addins-progress")
+            IProgressStatus monitor = ApplicationContext.CommandLine.Contains ("debug-addins")
                 ? new ConsoleProgressStatus (true)
                 : null;
         

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	Tue Mar 18 21:52:07 2008
@@ -129,6 +129,8 @@
     <File name="Banshee.Collection.Database/DatabaseAlbumInfo.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.Sources/SourceMessage.cs" subtype="Code" buildaction="Compile" />
     <File name="Banshee.Sources/MessageAction.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Library/MusicLibrarySource.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.Library/VideoLibrarySource.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	Tue Mar 18 21:52:07 2008
@@ -41,8 +41,8 @@
 	Banshee.Library/LibraryImportManager.cs \
 	Banshee.Library/LibrarySource.cs \
 	Banshee.Library/MusicLibrarySource.cs \
-	Banshee.Library/VideoLibrarySource.cs \
 	Banshee.Library/ThreadPoolImportSource.cs \
+	Banshee.Library/VideoLibrarySource.cs \
 	Banshee.MediaEngine/IEqualizer.cs \
 	Banshee.MediaEngine/IPlayerEngineService.cs \
 	Banshee.MediaEngine/NullPlayerEngine.cs \

Modified: trunk/banshee/src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs
==============================================================================
--- trunk/banshee/src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs	(original)
+++ trunk/banshee/src/Extensions/Banshee.Lastfm/Banshee.Lastfm.Radio/LastfmSource.cs	Tue Mar 18 21:52:07 2008
@@ -100,7 +100,8 @@
             Properties.SetString ("SourcePropertiesActionLabel", Catalog.GetString ("Edit Last.fm Settings"));
 
             // FIXME this is temporary until we split the GUI part from the non-GUI part
-            Properties.Set<ISourceContents> ("NereidSourceContents", new LastfmSourceContents ());
+            Properties.Set<ISourceContents> ("Nereid.SourceContents", new LastfmSourceContents ());
+            Properties.Set<bool> ("Nereid.SourceContents.HeaderVisible", false);
 
             actions = new LastfmActions (this);
 

Added: trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying.addin.xml
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying.addin.xml	Tue Mar 18 21:52:07 2008
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Addin 
+    id="Banshee.NowPlaying"
+    version="1.0"
+    compatVersion="1.0"
+    copyright="Â 2008 Novell Inc. Licensed under the MIT X11 license."
+    name="Now Playing"
+    category="Sources"
+    description="Adds a source that displays video and visualizations, along with other aggregated data about the currently playing track."
+    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.NowPlaying.NowPlayingSource"/>
+  </Extension>
+
+</Addin>

Added: trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying.mdp
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying.mdp	Tue Mar 18 21:52:07 2008
@@ -0,0 +1,38 @@
+<Project name="Banshee.NowPlaying" fileversion="2.0" language="C#" clr-version="Net_2_0" ctype="DotNetProject">
+  <Configurations active="Debug">
+    <Configuration name="Debug" ctype="DotNetProjectConfiguration">
+      <Output directory="../../../bin" assemblyKeyFile="." assembly="Banshee.NowPlaying" />
+      <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.NowPlaying.addin.xml" subtype="Code" buildaction="EmbedAsResource" />
+    <File name="Banshee.NowPlaying" subtype="Directory" buildaction="Compile" />
+    <File name="Banshee.NowPlaying/NowPlayingSource.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.NowPlaying/NowPlayingInterface.cs" subtype="Code" buildaction="Compile" />
+    <File name="Banshee.NowPlaying/VideoDisplay.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" />
+  </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

Added: trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs	Tue Mar 18 21:52:07 2008
@@ -0,0 +1,77 @@
+//
+// NowPlayingInterface.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.Unix;
+using Gtk;
+
+using Banshee.Sources;
+using Banshee.Gui;
+using Banshee.Sources.Gui;
+
+namespace Banshee.NowPlaying
+{
+    public class NowPlayingInterface : VBox, ISourceContents
+    {   
+        private NowPlayingSource source;
+        private VideoDisplay video_display;
+        
+        public NowPlayingInterface ()
+        {
+            video_display = new VideoDisplay ();
+            video_display.Show ();
+            
+            PackStart (video_display, true, true, 0);
+        }
+        
+#region ISourceContents
+        
+        public bool SetSource (ISource src)
+        {
+            this.source = source as NowPlayingSource;
+            return this.source != null;
+        }
+
+        public ISource Source {
+            get { return source; }
+        }
+
+        public void ResetSource ()
+        {
+            source = null;
+        }
+
+        public Widget Widget {
+            get { return this; }
+        }
+        
+#endregion
+
+    }
+}

Added: trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs	Tue Mar 18 21:52:07 2008
@@ -0,0 +1,63 @@
+//
+// NowPlayingSource.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.Unix;
+using Gtk;
+
+using Banshee.Sources;
+using Banshee.Sources.Gui;
+using Banshee.ServiceStack;
+
+namespace Banshee.NowPlaying
+{
+    public class NowPlayingSource : Source, IDisposable
+    {       
+        public NowPlayingSource () : base ("now-playing", Catalog.GetString ("Now Playing"), 0)
+        {
+            Properties.SetString ("Icon.Name", "media-playback-start");
+            Properties.Set<ISourceContents> ("Nereid.SourceContents", new NowPlayingInterface ());
+            Properties.Set<bool> ("Nereid.SourceContents.HeaderVisible", false);
+            
+            ServiceManager.SourceManager.AddSource (this);
+        }
+        
+        public void Dispose ()
+        {
+        }
+        
+#region Source Overrides
+
+        public override int Count {
+            get { return 0; }
+        }
+
+#endregion
+
+    }
+}

Added: trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/VideoDisplay.cs	Tue Mar 18 21:52:07 2008
@@ -0,0 +1,129 @@
+//
+// VideoDisplay.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 Gtk;
+
+using Banshee.Gui;
+
+namespace Banshee.NowPlaying
+{   
+    public class VideoDisplay : Gtk.Widget
+    {
+        private Gdk.Pixbuf idle_pixbuf;
+    
+        public VideoDisplay ()
+        {
+        }
+        
+        protected override void OnRealized ()
+        {
+            WidgetFlags |= WidgetFlags.Realized;
+            
+            Gdk.WindowAttr attributes = new Gdk.WindowAttr ();
+            attributes.WindowType = Gdk.WindowType.Child;
+            attributes.X = Allocation.X;
+            attributes.Y = Allocation.Y;
+            attributes.Width = Allocation.Width;
+            attributes.Height = Allocation.Height;
+            attributes.Visual = Visual;
+            attributes.Wclass = Gdk.WindowClass.InputOutput;
+            attributes.Colormap = Colormap;
+            attributes.EventMask = (int)(
+                Gdk.EventMask.VisibilityNotifyMask |
+                Gdk.EventMask.ExposureMask |
+                Gdk.EventMask.PointerMotionMask |
+                Gdk.EventMask.EnterNotifyMask |
+                Gdk.EventMask.LeaveNotifyMask |
+                Events);
+            
+            Gdk.WindowAttributesType attributes_mask = 
+                Gdk.WindowAttributesType.X | 
+                Gdk.WindowAttributesType.Y | 
+                Gdk.WindowAttributesType.Visual | 
+                Gdk.WindowAttributesType.Colormap;
+                
+            GdkWindow = new Gdk.Window (Parent.GdkWindow, attributes, attributes_mask);
+            GdkWindow.UserData = Handle;
+            
+            GdkWindow.SetBackPixmap (null, false);
+            Style = Style.Attach (GdkWindow);
+        }
+        
+        protected override void OnUnrealized ()
+        {
+            WidgetFlags ^= WidgetFlags.Realized;
+            GdkWindow.UserData = IntPtr.Zero;
+            GdkWindow.Destroy ();
+        }
+
+        protected override void OnMapped ()
+        {
+            WidgetFlags |= WidgetFlags.Mapped;
+            GdkWindow.Show ();
+        }
+        
+        protected override void OnUnmapped ()
+        {
+            WidgetFlags ^= WidgetFlags.Mapped;
+            GdkWindow.Hide ();
+        }
+        
+        protected override void OnSizeAllocated (Gdk.Rectangle allocation)
+        {
+            base.OnSizeAllocated (allocation);
+            
+            if (IsRealized) {
+                GdkWindow.MoveResize (allocation);
+            }
+            
+            QueueDraw ();
+        }
+        
+        protected override bool OnExposeEvent (Gdk.EventExpose evnt)
+        {
+            if (!Visible || !IsMapped || GdkWindow == null) {
+                return true;
+            }
+            
+            if (idle_pixbuf == null) {
+                idle_pixbuf = IconThemeUtils.LoadIcon (128, "media-player-banshee");
+            }
+            
+            if (idle_pixbuf == null) {
+                return true;
+            }
+            
+            GdkWindow.DrawPixbuf (Style.BackgroundGC (StateType.Normal), idle_pixbuf, 0, 0, 
+                (Allocation.Width - idle_pixbuf.Width) / 2, (Allocation.Height - idle_pixbuf.Height) / 2, 
+                idle_pixbuf.Width, idle_pixbuf.Height, Gdk.RgbDither.Normal, 0, 0);
+            
+            return true;
+        }
+    }
+}

Added: trunk/banshee/src/Extensions/Banshee.NowPlaying/Makefile.am
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Extensions/Banshee.NowPlaying/Makefile.am	Tue Mar 18 21:52:07 2008
@@ -0,0 +1,14 @@
+ASSEMBLY = Banshee.NowPlaying
+TARGET = library
+LINK = $(REF_EXTENSION_NOWPLAYING)
+INSTALL_DIR = $(EXTENSIONS_INSTALL_DIR)
+
+SOURCES =  \
+	Banshee.NowPlaying/NowPlayingInterface.cs \
+	Banshee.NowPlaying/NowPlayingSource.cs \
+	Banshee.NowPlaying/VideoDisplay.cs
+
+RESOURCES = Banshee.NowPlaying.addin.xml
+
+include $(top_srcdir)/build/build.mk
+

Modified: trunk/banshee/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs
==============================================================================
--- trunk/banshee/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs	(original)
+++ trunk/banshee/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs	Tue Mar 18 21:52:07 2008
@@ -58,7 +58,7 @@
         {
             BindToDatabase ();
             
-            Order = 0;
+            Order = 10;
             Properties.SetString ("Icon.Name", "source-playlist");
             Properties.SetString ("RemoveTracksActionLabel", Catalog.GetString ("Remove From Play Queue"));
             

Modified: trunk/banshee/src/Extensions/Banshee.PlayQueue/Resources/Banshee.PlayQueue.addin.xml
==============================================================================
--- trunk/banshee/src/Extensions/Banshee.PlayQueue/Resources/Banshee.PlayQueue.addin.xml	(original)
+++ trunk/banshee/src/Extensions/Banshee.PlayQueue/Resources/Banshee.PlayQueue.addin.xml	Tue Mar 18 21:52:07 2008
@@ -1,4 +1,15 @@
-<Addin id="Banshee.PlayQueue">
+<?xml version="1.0" encoding="utf-8"?>
+<Addin 
+    id="Banshee.PlayQueue"
+    version="1.0"
+    compatVersion="1.0"
+    copyright="Â 2008 Novell Inc. Licensed under the MIT X11 license."
+    name="Play Queue"
+    category="Sources"
+    description="Adds a source that acts as a queue of playing tracks. When the queue is populated, all playback happens from the queue in a forced order."
+    author="Aaron Bockover"
+    url="http://banshee-project.org/";
+    defaultEnabled="true">
 
   <Dependencies>
     <Addin id="Banshee.Services" version="1.0"/>

Modified: trunk/banshee/src/Extensions/Extensions.mds
==============================================================================
--- trunk/banshee/src/Extensions/Extensions.mds	(original)
+++ trunk/banshee/src/Extensions/Extensions.mds	Tue Mar 18 21:52:07 2008
@@ -5,17 +5,20 @@
       <Entry build="True" name="Banshee.MultimediaKeys" configuration="Debug" />
       <Entry build="True" name="Banshee.PlayQueue" configuration="Debug" />
       <Entry build="False" name="Banshee.Lastfm" configuration="Debug" />
+      <Entry build="True" name="Banshee.NowPlaying" configuration="Debug" />
     </Configuration>
   </Configurations>
   <StartMode startupentry="Banshee.NotificationArea" single="True">
     <Execute type="None" entry="Banshee.NotificationArea" />
     <Execute type="None" entry="Banshee.DapCore" />
     <Execute type="None" entry="Banshee.Dap.MassStorage" />
+    <Execute type="None" entry="Banshee.NowPlaying" />
   </StartMode>
   <Entries>
     <Entry filename="Banshee.NotificationArea/Banshee.NotificationArea.mdp" />
     <Entry filename="Banshee.MultimediaKeys/Banshee.MultimediaKeys.mdp" />
     <Entry filename="Banshee.PlayQueue/Banshee.PlayQueue.mdp" />
     <Entry filename="Banshee.Lastfm/Banshee.Lastfm.mdp" />
+    <Entry filename="Banshee.NowPlaying/Banshee.NowPlaying.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	Tue Mar 18 21:52:07 2008
@@ -2,6 +2,7 @@
 	Banshee.Lastfm \
 	Banshee.MultimediaKeys \
 	Banshee.NotificationArea \
+	Banshee.NowPlaying \
 	Banshee.PlayQueue
 
 MAINTAINERCLEANFILES = Makefile.in

Modified: trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Gui.mdp
==============================================================================
--- trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Gui.mdp	(original)
+++ trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Gui.mdp	Tue Mar 18 21:52:07 2008
@@ -58,7 +58,7 @@
     <File name="Hyena.Widgets/AnimatedHBox.cs" subtype="Code" buildaction="Compile" />
     <File name="Hyena.Widgets/AnimatedVBox.cs" subtype="Code" buildaction="Compile" />
     <File name="Hyena.Widgets/AnimatedWidget.cs" subtype="Code" buildaction="Compile" />
-    <File name="Hyena.Gui.Theatrics/AnimationHelper.cs" subtype="Code" buildaction="Compile" />
+    <File name="Hyena.Gui.Theatrics/Choreographer.cs" subtype="Code" buildaction="Compile" />
   </Contents>
   <References>
     <ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />



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