[banshee] Dap.MassStorage: M3U playlist support for DOS folder separator
- From: AndrÃs Aragoneses <aaragoneses src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [banshee] Dap.MassStorage: M3U playlist support for DOS folder separator
- Date: Sun, 22 Jan 2012 15:45:23 +0000 (UTC)
commit 52b5657c5e6a893d99e66febd0b49ed9ed2cdf19
Author: William Witt <william witt-family net>
Date: Sun Jan 22 15:43:54 2012 +0000
Dap.MassStorage: M3U playlist support for DOS folder separator
Updates PlaylistFormat to include a FolderSeparator property, and
adds DOS folder separator support to M3U playlists.
Fixes bgo#587964.
.../Banshee.Playlists.Formats/IPlaylistFormat.cs | 1 +
.../Banshee.Playlists.Formats/M3uPlaylistFormat.cs | 9 ++++++++-
.../PlaylistFormatBase.cs | 2 ++
.../Banshee.Dap.MassStorage/MassStorageSource.cs | 1 +
4 files changed, 12 insertions(+), 1 deletions(-)
---
diff --git a/src/Core/Banshee.Services/Banshee.Playlists.Formats/IPlaylistFormat.cs b/src/Core/Banshee.Services/Banshee.Playlists.Formats/IPlaylistFormat.cs
index a8076e5..98d8114 100644
--- a/src/Core/Banshee.Services/Banshee.Playlists.Formats/IPlaylistFormat.cs
+++ b/src/Core/Banshee.Services/Banshee.Playlists.Formats/IPlaylistFormat.cs
@@ -46,5 +46,6 @@ namespace Banshee.Playlists.Formats
Uri BaseUri { get; set; }
string Title { get; set; }
+ char FolderSeparator { get; set; }
}
}
diff --git a/src/Core/Banshee.Services/Banshee.Playlists.Formats/M3uPlaylistFormat.cs b/src/Core/Banshee.Services/Banshee.Playlists.Formats/M3uPlaylistFormat.cs
index 480d996..d7ac56d 100644
--- a/src/Core/Banshee.Services/Banshee.Playlists.Formats/M3uPlaylistFormat.cs
+++ b/src/Core/Banshee.Services/Banshee.Playlists.Formats/M3uPlaylistFormat.cs
@@ -40,6 +40,9 @@ namespace Banshee.Playlists.Formats
{
public class M3uPlaylistFormat : PlaylistFormatBase
{
+ private const char DosFolderSeparator = '\\';
+ private const char UnixFolderSeparator = '/';
+
public static readonly PlaylistFormatDescription FormatDescription = new PlaylistFormatDescription(
typeof(M3uPlaylistFormat), MagicHandler, Catalog.GetString("MPEG Version 3.0 Extended (*.m3u)"),
"m3u", new string [] {"audio/x-mpegurl", "audio/m3u", "audio/mpeg-url"});
@@ -122,7 +125,11 @@ namespace Banshee.Playlists.Formats
}
writer.WriteLine("#EXTINF:{0},{1} - {2}", duration, track.DisplayArtistName, track.DisplayTrackTitle);
- writer.WriteLine(ExportUri(track.Uri));
+ string trackpath = ExportUri (track.Uri);
+ if (FolderSeparator == DosFolderSeparator) {
+ trackpath = trackpath.Replace (UnixFolderSeparator, DosFolderSeparator);
+ }
+ writer.WriteLine( trackpath );
}
}
}
diff --git a/src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistFormatBase.cs b/src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistFormatBase.cs
index 6ff3e44..d84b89c 100644
--- a/src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistFormatBase.cs
+++ b/src/Core/Banshee.Services/Banshee.Playlists.Formats/PlaylistFormatBase.cs
@@ -132,5 +132,7 @@ namespace Banshee.Playlists.Formats
get { return title; }
set { title = value; }
}
+
+ public virtual char FolderSeparator { get; set; }
}
}
diff --git a/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs b/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs
index 3b274f7..3e23b30 100644
--- a/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs
+++ b/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs
@@ -330,6 +330,7 @@ namespace Banshee.Dap.MassStorage
from.Reload ();
if (playlist_format == null) {
playlist_format = Activator.CreateInstance (PlaylistTypes[0].Type) as PlaylistFormatBase;
+ playlist_format.FolderSeparator = MediaCapabilities.FolderSeparator;
}
SafeUri playlist_path = new SafeUri (System.IO.Path.Combine (
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]