banshee r5171 - in trunk/banshee: . src/Core/Banshee.Services src/Core/Banshee.Services/Banshee.Playlists.Formats



Author: blorentz
Date: Sun Mar 29 12:54:27 2009
New Revision: 5171
URL: http://svn.gnome.org/viewvc/banshee?rev=5171&view=rev

Log:
2009-03-29  Bertrand Lorentz  <bertrand lorentz gmail com>

	* src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistParser.cs:
	* src/Core/Banshee.Services/Banshee.Playlists.Formats/AsfReferencePlaylistFormat.cs:
	* src/Core/Banshee.Services/Banshee.Services.csproj:
	* src/Core/Banshee.Services/Makefile.am: Patch from FÃlix Velasco
	adding support for ASF reference playlists, with small changes by me
	(BGO #545646).



Added:
   trunk/banshee/src/Core/Banshee.Services/Banshee.Playlists.Formats/AsfReferencePlaylistFormat.cs
Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistParser.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Services.csproj
   trunk/banshee/src/Core/Banshee.Services/Makefile.am

Added: trunk/banshee/src/Core/Banshee.Services/Banshee.Playlists.Formats/AsfReferencePlaylistFormat.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Playlists.Formats/AsfReferencePlaylistFormat.cs	Sun Mar 29 12:54:27 2009
@@ -0,0 +1,83 @@
+//
+// AsfReferencePlaylistFormat.cs
+//
+// Author:
+//   FÃlix Velasco <felix velasco gmail com>
+//
+// Copyright (C) 2009 FÃlix Velasco
+//
+// 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.IO;
+using System.Collections.Generic;
+
+using Mono.Unix;
+
+using Banshee.Base;
+using Banshee.Sources;
+
+namespace Banshee.Playlists.Formats
+{
+    public class AsfReferencePlaylistFormat : PlaylistFormatBase
+    {
+        public static readonly PlaylistFormatDescription FormatDescription = new PlaylistFormatDescription (
+            typeof (AsfReferencePlaylistFormat), MagicHandler, Catalog.GetString ("Windows Media ASX"),
+            "", new string [] {"video/x-ms-asx", "video/asx", "video/x-ms-asf"});
+        
+        public static bool MagicHandler (StreamReader reader)
+        {
+            try {
+                return reader.ReadLine ().Equals ("[reference]", StringComparison.CurrentCultureIgnoreCase);
+            } catch {
+                return false;
+            }
+        }
+
+        public AsfReferencePlaylistFormat ()
+        {
+        }
+
+        public override void Load (StreamReader reader, bool validateHeader)
+        {
+            string line;
+            Dictionary<string, object> element = AddElement ();
+
+            while ((line = reader.ReadLine()) != null) {
+                if (line.StartsWith ("ref01", StringComparison.CurrentCultureIgnoreCase) ||
+                    line.StartsWith ("ref1", StringComparison.CurrentCultureIgnoreCase)) {
+                    string uri_aux = line.Substring (line.IndexOf ("=") + 1).Trim ();
+
+                    if (uri_aux.StartsWith ("http", StringComparison.CurrentCultureIgnoreCase))
+                        uri_aux = "mmsh" + uri_aux.Substring (4);
+
+                    element["uri"] = ResolveUri (uri_aux);
+                    break;
+                }
+            }
+        }
+
+        public override void Save (Stream stream, ITrackModelSource source)
+        {
+            throw new NotImplementedException ();
+        }
+    }
+}

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistParser.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistParser.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistParser.cs	Sun Mar 29 12:54:27 2009
@@ -42,6 +42,7 @@
             M3uPlaylistFormat.FormatDescription,
             PlsPlaylistFormat.FormatDescription,
             AsxPlaylistFormat.FormatDescription,
+            AsfReferencePlaylistFormat.FormatDescription,
             XspfPlaylistFormat.FormatDescription
         };
         

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Services.csproj
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Services.csproj	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Services.csproj	Sun Mar 29 12:54:27 2009
@@ -252,6 +252,8 @@
     <Compile Include="Banshee.Preferences\SourcePage.cs" />
     <Compile Include="Banshee.ServiceStack\DbIteratorJob.cs" />
     <Compile Include="Banshee.Sources\SourceSortType.cs" />
+    <Compile Include="Banshee.Library\LibraryLocationPreference.cs" />
+    <Compile Include="Banshee.Playlists.Formats\AsfReferencePlaylistFormat.cs" />
   </ItemGroup>
   <ItemGroup>
     <EmbeddedResource Include="Banshee.Services.addin.xml" />

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	Sun Mar 29 12:54:27 2009
@@ -124,6 +124,7 @@
 	Banshee.Playlist/AbstractPlaylistSource.cs \
 	Banshee.Playlist/PlaylistFileUtil.cs \
 	Banshee.Playlist/PlaylistSource.cs \
+	Banshee.Playlists.Formats/AsfReferencePlaylistFormat.cs \
 	Banshee.Playlists.Formats/AsxPlaylistFormat.cs \
 	Banshee.Playlists.Formats/InvalidPlaylistException.cs \
 	Banshee.Playlists.Formats/IPlaylistFormat.cs \



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