[banshee] Dap.MassStorage: Add FolderSeparator property to devices
- From: AndrÃs Aragoneses <aaragoneses src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [banshee] Dap.MassStorage: Add FolderSeparator property to devices
- Date: Sun, 22 Jan 2012 15:37:36 +0000 (UTC)
commit dd1917cade76804d35d04e40f06cb39356936be3
Author: William Witt <william witt-family net>
Date: Sun Jan 22 15:31:57 2012 +0000
Dap.MassStorage: Add FolderSeparator property to devices
Fetch FolderSeparator from .mpi file or from
.is_audio_player file (expect either "DOS" or nothing)
in the hardware layer, and add a property for its
value in MassStorageDevice class.
This is part of the fix for bgo#587964.
.../DeviceMediaCapabilities.cs | 20 ++++++++++++++++++--
.../Banshee.Hardware/IDeviceMediaCapabilities.cs | 1 +
.../Banshee.Dap.MassStorage/MassStorageDevice.cs | 16 ++++++++++++++++
3 files changed, 35 insertions(+), 2 deletions(-)
---
diff --git a/src/Backends/Banshee.Gio/Banshee.Hardware.Gio/DeviceMediaCapabilities.cs b/src/Backends/Banshee.Gio/Banshee.Hardware.Gio/DeviceMediaCapabilities.cs
index e4c1611..43d744f 100644
--- a/src/Backends/Banshee.Gio/Banshee.Hardware.Gio/DeviceMediaCapabilities.cs
+++ b/src/Backends/Banshee.Gio/Banshee.Hardware.Gio/DeviceMediaCapabilities.cs
@@ -95,6 +95,10 @@ namespace Banshee.Hardware.Gio
}
}
+ public char FolderSeparator {
+ get { return mpi.FolderSeparator; }
+ }
+
public bool IsType (string type)
{
@@ -170,6 +174,8 @@ namespace Banshee.Hardware.Gio
get; private set;
}
+ public char FolderSeparator { get; private set; }
+
public string[] AccessProtocols {
get; private set;
}
@@ -218,8 +224,17 @@ namespace Banshee.Hardware.Gio
}
}
- if (mpi_file.HasGroup (PlaylistGroup) && mpi_file.HasKey (PlaylistGroup, "Formats")) {
- PlaylistFormats = mpi_file.GetStringList (PlaylistGroup, "Formats") ?? new string [] {};
+ if (mpi_file.HasGroup (PlaylistGroup)) {
+ if (mpi_file.HasKey (PlaylistGroup, "Formats")) {
+ PlaylistFormats = mpi_file.GetStringList (PlaylistGroup, "Formats") ?? new string [] {};
+ }
+
+ if (mpi_file.HasKey (PlaylistGroup, "FolderSeparator")) {
+ string folder_separator = mpi_file.GetString (PlaylistGroup, "FolderSeparator");
+ if (folder_separator == "DOS") {
+ FolderSeparator = '\\';
+ }
+ }
}
if (mpi_file.HasGroup (DeviceGroup) && mpi_file.HasKey (DeviceGroup, "AccessProtocols")) {
@@ -236,6 +251,7 @@ namespace Banshee.Hardware.Gio
OutputFormats = new string[] {};
PlaylistFormats = new string[] {};
AccessProtocols = new string[] {};
+ FolderSeparator = '/';
}
}
}
diff --git a/src/Core/Banshee.Services/Banshee.Hardware/IDeviceMediaCapabilities.cs b/src/Core/Banshee.Services/Banshee.Hardware/IDeviceMediaCapabilities.cs
index 3f3de49..874ff6e 100644
--- a/src/Core/Banshee.Services/Banshee.Hardware/IDeviceMediaCapabilities.cs
+++ b/src/Core/Banshee.Services/Banshee.Hardware/IDeviceMediaCapabilities.cs
@@ -42,6 +42,7 @@ namespace Banshee.Hardware
string [] PlaylistFormats { get; }
string PlaylistPath { get; }
string [] PlaybackMimeTypes { get; }
+ char FolderSeparator { get; }
bool IsType (string type);
}
}
diff --git a/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageDevice.cs b/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageDevice.cs
index 351ed70..2da4448 100644
--- a/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageDevice.cs
+++ b/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageDevice.cs
@@ -122,6 +122,13 @@ namespace Banshee.Dap.MassStorage
playlist_formats = MergeValues ("playlist_formats", config, DefaultPlaylistFormats);
playlist_path = GetPreferredValue ("playlist_path", config, DefaultPlaylistPath);
folder_depth = GetPreferredValue ("folder_depth", config, DefaultFolderDepth);
+
+ string preferred_folder_separator = GetPreferredValue ("folder_separator", config, DefaultFolderSeparator);
+ if (preferred_folder_separator == "\\" || preferred_folder_separator == "DOS") {
+ folder_separator = '\\';
+ } else {
+ folder_separator = '/';
+ }
}
private string[] MergeValues (string key, IDictionary<string, string[]> config, string[] defaultValues)
@@ -200,6 +207,15 @@ namespace Banshee.Dap.MassStorage
get { return FolderDepth; }
}
+ protected virtual string DefaultFolderSeparator {
+ get { return null; }
+ }
+
+ private char folder_separator;
+ public virtual char FolderSeparator {
+ get { return folder_separator; }
+ }
+
protected virtual string [] DefaultAudioFolders {
get { return new string[0]; }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]