banshee r5171 - in trunk/banshee: . src/Core/Banshee.Services src/Core/Banshee.Services/Banshee.Playlists.Formats
- From: blorentz svn gnome org
- To: svn-commits-list gnome org
- Subject: banshee r5171 - in trunk/banshee: . src/Core/Banshee.Services src/Core/Banshee.Services/Banshee.Playlists.Formats
- Date: Sun, 29 Mar 2009 12:54:28 +0000 (UTC)
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]