banshee r3854 - in trunk/banshee: . build build/m4/banshee src/Core/Banshee.Core/Banshee.Base src/Core/Banshee.Services src/Core/Banshee.Services/Banshee.MediaEngine src/Core/Banshee.Services/Banshee.Sources src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod src/Extensions src/Extensions/Banshee.BooScript src/Extensions/Banshee.BooScript/Banshee.BooScript src/Extensions/Banshee.BooScript/Resources src/Extensions/Banshee.Podcasting src/Extensions/Template src/Libraries/Hyena/Hyena.CommandLine src/Libraries/Migo
- From: abock svn gnome org
- To: svn-commits-list gnome org
- Subject: banshee r3854 - in trunk/banshee: . build build/m4/banshee src/Core/Banshee.Core/Banshee.Base src/Core/Banshee.Services src/Core/Banshee.Services/Banshee.MediaEngine src/Core/Banshee.Services/Banshee.Sources src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod src/Extensions src/Extensions/Banshee.BooScript src/Extensions/Banshee.BooScript/Banshee.BooScript src/Extensions/Banshee.BooScript/Resources src/Extensions/Banshee.Podcasting src/Extensions/Template src/Libraries/Hyena/Hyena.CommandLine src/Libraries/Migo
- Date: Thu, 1 May 2008 02:56:55 +0100 (BST)
Author: abock
Date: Thu May 1 01:56:55 2008
New Revision: 3854
URL: http://svn.gnome.org/viewvc/banshee?rev=3854&view=rev
Log:
2008-04-30 Aaron Bockover <abock gnome org>
* build/build.environment.mk:
* build/m4/banshee/boo.m4:
* configure.ac: Build stuff for the BooScript extension
* src/Core/Banshee.Core/Banshee.Base/Paths.cs: Added GetTempFileName
* src/Core/Banshee.Services/Banshee.MediaEngine/TranscoderService.cs:
Use the new Paths.GetTempFileName
* src/Core/Banshee.Services/Banshee.Sources/DurationStatusFormatters.cs:
Created a new collection that holds formatter handlers and add our
default formatters; this allows scripts and extensions can add their own
* src/Core/Banshee.Services/Banshee.Sources/Source.cs: Move the default
duration formatters into DurationStatusFormatters and create a static
instance of that collection to use for sources
* src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodTrackInfo.cs:
* src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs: Small progress
on syncing, not much
* src/Libraries/Hyena/Hyena.CommandLine/CommandLineParser.cs: Require
arguments taking value to have the --arg=value form on the command line
and treat all non -- starting arguments as 'files'
* src/Extensions/Banshee.BooScript/Banshee.BooScript.addin.xml:
* src/Extensions/Banshee.BooScript/Banshee.BooScript/BooScriptService.cs:
Ported the Boo scripting support from old Banshee
* src/Extensions/Banshee.BooScript/Resources/duration-status-formats.boo:
* src/Extensions/Banshee.BooScript/Resources/filename-transform.boo:
The first two Boo scripts that work on the new Banshee
Added:
trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/DurationStatusFormatters.cs
trunk/banshee/src/Extensions/Banshee.BooScript/
trunk/banshee/src/Extensions/Banshee.BooScript/Banshee.BooScript/
trunk/banshee/src/Extensions/Banshee.BooScript/Banshee.BooScript.addin.xml
trunk/banshee/src/Extensions/Banshee.BooScript/Banshee.BooScript.mdp
trunk/banshee/src/Extensions/Banshee.BooScript/Banshee.BooScript/BooScriptService.cs
trunk/banshee/src/Extensions/Banshee.BooScript/Makefile.am
trunk/banshee/src/Extensions/Banshee.BooScript/Resources/
trunk/banshee/src/Extensions/Banshee.BooScript/Resources/duration-status-formats.boo
trunk/banshee/src/Extensions/Banshee.BooScript/Resources/filename-transform.boo
Modified:
trunk/banshee/ChangeLog
trunk/banshee/build/build.environment.mk
trunk/banshee/build/m4/banshee/boo.m4
trunk/banshee/configure.ac
trunk/banshee/src/Core/Banshee.Core/Banshee.Base/Paths.cs
trunk/banshee/src/Core/Banshee.Services/Banshee.MediaEngine/TranscoderService.cs
trunk/banshee/src/Core/Banshee.Services/Banshee.Services.mdp
trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/Source.cs
trunk/banshee/src/Core/Banshee.Services/Makefile.am
trunk/banshee/src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs
trunk/banshee/src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodTrackInfo.cs
trunk/banshee/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.mdp
trunk/banshee/src/Extensions/Extensions.mds
trunk/banshee/src/Extensions/Makefile.am
trunk/banshee/src/Extensions/Template/Template.mdp
trunk/banshee/src/Libraries/Hyena/Hyena.CommandLine/CommandLineParser.cs
trunk/banshee/src/Libraries/Migo/Migo.mdp
Modified: trunk/banshee/build/build.environment.mk
==============================================================================
--- trunk/banshee/build/build.environment.mk (original)
+++ trunk/banshee/build/build.environment.mk Thu May 1 01:56:55 2008
@@ -22,39 +22,14 @@
LINK_DBUS = $(NDESK_DBUS_LIBS)
LINK_TAGLIB = $(TAGLIB_SHARP_LIBS)
LINK_IPOD = $(IPODSHARP_LIBS)
+LINK_BOO = $(BOO_LIBS)
LINK_MONO_ADDINS_DEPS = $(MONO_ADDINS_LIBS)
LINK_MONO_ADDINS_SETUP_DEPS = $(MONO_ADDINS_SETUP_LIBS)
LINK_MONO_ADDINS_GUI_DEPS = $(MONO_ADDINS_GUI_LIBS)
-# Internal directories/libraries
-
DIR_BIN = $(top_builddir)/bin
-# Libraries
-#
-#DIR_BOO = $(DIR_LIBRARIES)/Boo
-#if EXTERNAL_BOO
-#LINK_BOO = $(BOO_LIBS)
-#else
-#LINK_BOO = \
-# -r:$(DIR_BOO)/Boo.Lang.dll \
-# -r:$(DIR_BOO)/Boo.Lang.Compiler.dll \
-# -r:$(DIR_BOO)/Boo.Lang.Interpreter.dll
-#endif
-#
-#DIR_BOOBUDDY = $(DIR_LIBRARIES)/BooBuddy
-#MONO_BASE_PATH += $(DIR_BOOBUDDY)
-#REF_BOOBUDDY = $(LINK_GTK) $(LINK_BOO)
-#LINK_BOOBUDDY = -r:$(DIR_BOOBUDDY)/BooBuddy.dll
-#LINK_BOOBUDDY_DEPS = $(REF_BOOBUDDY) $(LINK_BOOBUDDY)
-#
-#DIR_GNOME_KEYRING = $(DIR_LIBRARIES)/Gnome.Keyring
-#MONO_BASE_PATH += $(DIR_GNOME_KEYRING)
-#REF_GNOME_KEYRING = $(LINK_DBUS) $(LINK_MONO_POSIX)
-#LINK_GNOME_KEYRING = -r:$(DIR_GNOME_KEYRING)/Gnome.Keyring.dll
-#LINK_GNOME_KEYRING_DEPS = $(REF_GNOME_KEYRING) $(LINK_GNOME_KEYRING)
-
# Hyena
REF_HYENA = $(LINK_SYSTEM) $(LINK_SQLITE) $(LINK_MONO_POSIX)
LINK_HYENA = -r:$(DIR_BIN)/Hyena.dll
@@ -94,15 +69,7 @@
LINK_MUSICBRAINZ = -r:$(DIR_BIN)/MusicBrainz.dll
LINK_MUSICBRAINZ_DEPS = $(REF_MUSICBRAINZ) $(LINK_MUSICBRAINZ)
-#DIR_MUSICBRAINZ = $(DIR_LIBRARIES)/MusicBrainz
-#MONO_BASE_PATH += $(DIR_MUSICBRAINZ)
-#REF_MUSICBRAINZ = $(LINK_SYSTEM)
-#LINK_MUSICBRAINZ = -r:$(DIR_MUSICBRAINZ)/MusicBrainz.dll
-#LINK_MUSICBRAINZ_DEPS = $(REF_MUSICBRAINZ) $(LINK_MUSICBRAINZ)
-
-
# Core
-
REF_BANSHEE_CORE = $(LINK_HYENA_DEPS) $(LINK_MONO_POSIX) $(LINK_GLIB) \
$(LINK_DBUS) $(LINK_TAGLIB) $(LINK_MONO_ADDINS_DEPS)
LINK_BANSHEE_CORE = -r:$(DIR_BIN)/Banshee.Core.dll
@@ -141,6 +108,7 @@
# Extensions
REF_EXTENSION_AUDIOCD = $(LINK_BANSHEE_THICKCLIENT_DEPS) $(LINK_MUSICBRAINZ_DEPS)
REF_EXTENSION_BOOKMARKS = $(LINK_BANSHEE_THICKCLIENT_DEPS)
+REF_EXTENSION_BOOSCRIPT = $(LINK_BANSHEE_THICKCLIENT_DEPS) $(LINK_BOO)
REF_EXTENSION_DAAP = $(LINK_BANSHEE_THICKCLIENT_DEPS) $(LINK_ICSHARP_ZIP_LIB) $(LINK_MONO_ZEROCONF)
REF_EXTENSION_MULTIMEDIAKEYS = $(LINK_BANSHEE_SERVICES_DEPS)
REF_EXTENSION_NOTIFICATIONAREA = $(LINK_BANSHEE_THICKCLIENT_DEPS)
Modified: trunk/banshee/build/m4/banshee/boo.m4
==============================================================================
--- trunk/banshee/build/m4/banshee/boo.m4 (original)
+++ trunk/banshee/build/m4/banshee/boo.m4 Thu May 1 01:56:55 2008
@@ -1,25 +1,6 @@
AC_DEFUN([BANSHEE_CHECK_BOO],
[
- PKG_CHECK_MODULES(BOO, boo >= 0.7.6, have_booc="yes", have_booc="no")
- if test "x$have_booc" = "xyes"; then
- AC_PATH_PROG(BOOC, booc, no)
- AM_CONDITIONAL(HAVE_BOOC, test ! "x$BOOC" = "xno")
- AC_SUBST(BOOC)
- else
- AC_MSG_RESULT([no])
- AM_CONDITIONAL(HAVE_BOOC, false)
- fi
-
- AC_ARG_ENABLE(external_boo, AC_HELP_STRING([--enable-external-boo],
- [Use external Boo instead of the bundled one]),
- enable_external_boo="yes", enable_external_boo="no")
-
- if test "x$enable_external_boo" = "xyes"; then
- PKG_CHECK_MODULES(BOO, boo >= 0.7.6)
- AC_SUBST(BOO_LIBS)
- AM_CONDITIONAL(EXTERNAL_BOO, true)
- else
- AM_CONDITIONAL(EXTERNAL_BOO, false)
- fi
+ PKG_CHECK_MODULES(BOO, boo >= 0.7.6, enable_boo="yes", enable_boo="no")
+ AC_SUBST(BOO_LIBS)
])
Modified: trunk/banshee/configure.ac
==============================================================================
--- trunk/banshee/configure.ac (original)
+++ trunk/banshee/configure.ac Thu May 1 01:56:55 2008
@@ -58,6 +58,9 @@
dnl notify-sharp library
BANSHEE_CHECK_NOTIFY_SHARP
+dnl Boo
+BANSHEE_CHECK_BOO
+
dnl Monodoc (optional through --disable-docs)
SHAMROCK_CHECK_MONODOC
@@ -155,6 +158,7 @@
src/Extensions/Makefile
src/Extensions/Banshee.AudioCd/Makefile
src/Extensions/Banshee.Bookmarks/Makefile
+src/Extensions/Banshee.BooScript/Makefile
src/Extensions/Banshee.Daap/Makefile
src/Extensions/Banshee.Lastfm/Makefile
src/Extensions/Banshee.MultimediaKeys/Makefile
@@ -183,6 +187,7 @@
DAAP Support: ${enable_daap} (unstable)
Podcast Support: ${enable_podcast} (unstable)
+ Boo Scripting: ${enable_boo}
"
if test -d ${expanded_libdir}/${PACKAGE}; then
echo "WARNING: An existing Banshee install is in ${expanded_libdir}/${PACKAGE}"
Modified: trunk/banshee/src/Core/Banshee.Core/Banshee.Base/Paths.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Core/Banshee.Base/Paths.cs (original)
+++ trunk/banshee/src/Core/Banshee.Core/Banshee.Base/Paths.cs Thu May 1 01:56:55 2008
@@ -35,7 +35,34 @@
namespace Banshee.Base
{
public class Paths
- {
+ {
+ public static string GetTempFileName (string dir)
+ {
+ return GetTempFileName (dir, null);
+ }
+
+ public static string GetTempFileName (string dir, string extension)
+ {
+ return GetTempFileName (new DirectoryInfo (dir), extension);
+ }
+
+ public static string GetTempFileName (DirectoryInfo dir, string extension)
+ {
+ string path = null;
+
+ if (dir == null || !dir.Exists) {
+ throw new DirectoryNotFoundException ();
+ }
+
+ do {
+ string guid = Guid.NewGuid ().ToString ();
+ string file = extension == null ? guid : String.Format ("{0}.{1}", guid, extension);
+ path = Path.Combine (dir.FullName, file);
+ } while (File.Exists (path));
+
+ return path;
+ }
+
public static string Combine (string first, params string [] components)
{
if (String.IsNullOrEmpty (first)) {
Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.MediaEngine/TranscoderService.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.MediaEngine/TranscoderService.cs (original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.MediaEngine/TranscoderService.cs Thu May 1 01:56:55 2008
@@ -53,7 +53,8 @@
public TrackTranscodedHandler Handler;
public TranscodeCancelledHandler CancelledHandler;
- public TranscodeContext (TrackInfo track, SafeUri out_uri, ProfileConfiguration config, TrackTranscodedHandler handler, TranscodeCancelledHandler cancelledHandler)
+ public TranscodeContext (TrackInfo track, SafeUri out_uri, ProfileConfiguration config,
+ TrackTranscodedHandler handler, TranscodeCancelledHandler cancelledHandler)
{
Track = track;
OutUri = out_uri;
@@ -100,10 +101,10 @@
}
private static string cache_dir = Paths.Combine (Paths.ApplicationCache, "transcoder");
- private static uint count = 0;
+
public static SafeUri GetTempUriFor (string extension)
{
- return new SafeUri (Paths.Combine (cache_dir, String.Format ("{0}.{1}", count++, extension)));
+ return new SafeUri (Paths.GetTempFileName (cache_dir, extension));
}
private ITranscoder Transcoder {
@@ -126,7 +127,7 @@
get {
if (user_job == null) {
user_job = new BatchUserJob (Catalog.GetString("Converting {0} of {1}"), Catalog.GetString("Initializing"), "encode");
- user_job.CancelMessage = Catalog.GetString("Files are currently being converted to another format. Would you like to stop this?");
+ user_job.CancelMessage = Catalog.GetString ("Files are currently being converted to another format. Would you like to stop this?");
user_job.CanCancel = true;
user_job.DelayShow = true;
user_job.CancelRequested += OnCancelRequested;
@@ -148,7 +149,6 @@
}
if (transcoder != null) {
- Console.WriteLine ("transcoder.Finish");
transcoder.Finish ();
transcoder = null;
}
@@ -166,12 +166,14 @@
}
}
- public void Enqueue (TrackInfo track, ProfileConfiguration config, TrackTranscodedHandler handler, TranscodeCancelledHandler cancelledHandler)
+ public void Enqueue (TrackInfo track, ProfileConfiguration config,
+ TrackTranscodedHandler handler, TranscodeCancelledHandler cancelledHandler)
{
Enqueue (track, GetTempUriFor (config.Profile.OutputFileExtension), config, handler, cancelledHandler);
}
- public void Enqueue (TrackInfo track, SafeUri out_uri, ProfileConfiguration config, TrackTranscodedHandler handler, TranscodeCancelledHandler cancelledHandler)
+ public void Enqueue (TrackInfo track, SafeUri out_uri, ProfileConfiguration config,
+ TrackTranscodedHandler handler, TranscodeCancelledHandler cancelledHandler)
{
bool start = false;
lock (queue) {
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 Thu May 1 01:56:55 2008
@@ -161,6 +161,12 @@
<File name="Banshee.Library/LibraryLocationPreference.cs" subtype="Code" buildaction="Compile" />
<File name="Banshee.Preferences/VoidPreference.cs" subtype="Code" buildaction="Compile" />
<File name="Banshee.Hardware/ICustomDeviceProvider.cs" subtype="Code" buildaction="Compile" />
+ <File name="Banshee.Collection.Database/DatabaseTrackModelCache.cs" subtype="Code" buildaction="Compile" />
+ <File name="Banshee.Collection.Database/DatabaseTrackModelProvider.cs" subtype="Code" buildaction="Compile" />
+ <File name="Banshee.Collection.Database/IDatabaseTrackModelCache.cs" subtype="Code" buildaction="Compile" />
+ <File name="Banshee.Collection.Database/IDatabaseTrackModelProvider.cs" subtype="Code" buildaction="Compile" />
+ <File name="Banshee.ServiceStack/IDelayedInitializeService.cs" subtype="Code" buildaction="Compile" />
+ <File name="Banshee.Sources/DurationStatusFormatters.cs" subtype="Code" buildaction="Compile" />
</Contents>
<References>
<ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Added: trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/DurationStatusFormatters.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/DurationStatusFormatters.cs Thu May 1 01:56:55 2008
@@ -0,0 +1,94 @@
+//
+// DurationStatusFormatters.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 System.Text;
+using System.Collections.Generic;
+using Mono.Unix;
+
+using Hyena;
+
+namespace Banshee.Sources
+{
+ public delegate void DurationStatusFormatHandler (StringBuilder builder, TimeSpan span);
+
+ public class DurationStatusFormatters : List<DurationStatusFormatHandler>
+ {
+ public DurationStatusFormatters ()
+ {
+ Add (AwesomeConciseFormatter);
+ Add (AnnoyingPreciseFormatter);
+ Add (ConfusingPreciseFormatter);
+ }
+
+ public static void AwesomeConciseFormatter (StringBuilder builder, TimeSpan span)
+ {
+ if (span.Days > 0) {
+ double days = span.Days + (span.Hours / 24.0);
+ builder.AppendFormat (Catalog.GetPluralString ("{0} day", "{0} days",
+ StringUtil.DoubleToPluralInt (days)), StringUtil.FormatDouble (days));
+ } else if (span.Hours > 0) {
+ double hours = span.Hours + (span.Minutes / 60.0);
+ builder.AppendFormat (Catalog.GetPluralString ("{0} hour", "{0} hours",
+ StringUtil.DoubleToPluralInt (hours)), StringUtil.FormatDouble (hours));
+ } else {
+ double minutes = span.Minutes + (span.Seconds / 60.0);
+ builder.AppendFormat (Catalog.GetPluralString ("{0} minute", "{0} minutes",
+ StringUtil.DoubleToPluralInt (minutes)), StringUtil.FormatDouble (minutes));
+ }
+ }
+
+ public static void AnnoyingPreciseFormatter (StringBuilder builder, TimeSpan span)
+ {
+ if (span.Days > 0) {
+ builder.AppendFormat (Catalog.GetPluralString ("{0} day", "{0} days", span.Days), span.Days);
+ builder.Append (", ");
+ }
+
+ if (span.Hours > 0) {
+ builder.AppendFormat(Catalog.GetPluralString ("{0} hour", "{0} hours", span.Hours), span.Hours);
+ builder.Append (", ");
+ }
+
+ builder.AppendFormat (Catalog.GetPluralString ("{0} minute", "{0} minutes", span.Minutes), span.Minutes);
+ builder.Append (", ");
+ builder.AppendFormat (Catalog.GetPluralString ("{0} second", "{0} seconds", span.Seconds), span.Seconds);
+ }
+
+ public static void ConfusingPreciseFormatter (StringBuilder builder, TimeSpan span)
+ {
+ if (span.Days > 0) {
+ builder.AppendFormat ("{0}:{1:00}:", span.Days, span.Hours);
+ } else if (span.Hours > 0) {
+ builder.AppendFormat ("{0}:", span.Hours);
+ }
+
+ builder.AppendFormat ("{0:00}:{1:00}", span.Minutes, span.Seconds);
+ }
+ }
+}
Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/Source.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/Source.cs (original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/Source.cs Thu May 1 01:56:55 2008
@@ -521,9 +521,22 @@
}
public virtual int FilteredCount { get { return Count; } }
+
+ public virtual string TrackModelPath {
+ get { return null; }
+ }
+
+#endregion
+
+#region Status Message Stuff
+
+ private static DurationStatusFormatters duration_status_formatters = new DurationStatusFormatters ();
+ public static DurationStatusFormatters DurationStatusFormatters {
+ get { return duration_status_formatters; }
+ }
protected virtual int StatusFormatsCount {
- get { return 3; }
+ get { return duration_status_formatters.Count; }
}
protected virtual int CurrentStatusFormat {
@@ -553,49 +566,9 @@
builder.AppendFormat (Catalog.GetPluralString ("{0} item", "{0} items", count), count);
- if (this is IDurationAggregator) {
+ if (this is IDurationAggregator && StatusFormatsCount > 0) {
builder.Append (", ");
-
- TimeSpan span = (this as IDurationAggregator).Duration;
- int format = CurrentStatusFormat;
-
- if (format == 0) {
- if (span.Days > 0) {
- double days = span.Days + (span.Hours / 24.0);
- builder.AppendFormat (Catalog.GetPluralString ("{0} day", "{0} days",
- StringUtil.DoubleToPluralInt (days)), StringUtil.FormatDouble (days));
- } else if (span.Hours > 0) {
- double hours = span.Hours + (span.Minutes / 60.0);
- builder.AppendFormat (Catalog.GetPluralString ("{0} hour", "{0} hours",
- StringUtil.DoubleToPluralInt (hours)), StringUtil.FormatDouble (hours));
- } else {
- double minutes = span.Minutes + (span.Seconds / 60.0);
- builder.AppendFormat (Catalog.GetPluralString ("{0} minute", "{0} minutes",
- StringUtil.DoubleToPluralInt (minutes)), StringUtil.FormatDouble (minutes));
- }
- } else if (format == 1) {
- if (span.Days > 0) {
- builder.AppendFormat (Catalog.GetPluralString ("{0} day", "{0} days", span.Days), span.Days);
- builder.Append (", ");
- }
-
- if (span.Hours > 0) {
- builder.AppendFormat(Catalog.GetPluralString ("{0} hour", "{0} hours", span.Hours), span.Hours);
- builder.Append (", ");
- }
-
- builder.AppendFormat (Catalog.GetPluralString ("{0} minute", "{0} minutes", span.Minutes), span.Minutes);
- builder.Append (", ");
- builder.AppendFormat (Catalog.GetPluralString ("{0} second", "{0} seconds", span.Seconds), span.Seconds);
- } else if (format == 2) {
- if (span.Days > 0) {
- builder.AppendFormat ("{0}:{1:00}:", span.Days, span.Hours);
- } else if (span.Hours > 0) {
- builder.AppendFormat ("{0}:", span.Hours);
- }
-
- builder.AppendFormat ("{0:00}:{1:00}", span.Minutes, span.Seconds);
- }
+ duration_status_formatters[CurrentStatusFormat] (builder, ((IDurationAggregator)this).Duration);
}
if (this is IFileSizeAggregator) {
@@ -609,6 +582,8 @@
return builder.ToString ();
}
+#endregion
+
string IService.ServiceName {
get { return String.Format ("{0}{1}", DBusServiceManager.MakeDBusSafeString (Name), "Source"); }
}
@@ -622,12 +597,5 @@
}
}
}
-
- public virtual string TrackModelPath {
- get { return null; }
- }
-
-#endregion
-
}
}
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 Thu May 1 01:56:55 2008
@@ -142,6 +142,7 @@
Banshee.SmartPlaylist/Migrator.cs \
Banshee.SmartPlaylist/SmartPlaylistSource.cs \
Banshee.Sources/DatabaseSource.cs \
+ Banshee.Sources/DurationStatusFormatters.cs \
Banshee.Sources/ErrorSource.cs \
Banshee.Sources/IDiskUsageReporter.cs \
Banshee.Sources/IDurationAggregator.cs \
Modified: trunk/banshee/src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs
==============================================================================
--- trunk/banshee/src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs (original)
+++ trunk/banshee/src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodSource.cs Thu May 1 01:56:55 2008
@@ -28,6 +28,7 @@
using System;
using System.IO;
+using System.Collections.Generic;
using IPod;
@@ -297,6 +298,9 @@
#endregion
#region Syncing
+
+ private Queue<IpodTrackInfo> tracks_to_add = new Queue<IpodTrackInfo> ();
+ // private Queue<IpodTrackInfo> track_to_remove = new Queue<IpodTrackInfo> ();
public override bool IsReadOnly {
get { return ipod_device.IsReadOnly; }
@@ -318,8 +322,17 @@
protected override void AddTrackToDevice (DatabaseTrackInfo track, SafeUri fromUri)
{
- if (track.PrimarySourceId == DbId) {
- return;
+ lock (this) {
+ if (track.PrimarySourceId == DbId) {
+ return;
+ }
+
+ IpodTrackInfo ipod_track = new IpodTrackInfo (track);
+ ipod_track.Uri = fromUri;
+ ipod_track.PrimarySource = this;
+ ipod_track.Save (false);
+
+ tracks_to_add.Enqueue (ipod_track);
}
}
Modified: trunk/banshee/src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodTrackInfo.cs
==============================================================================
--- trunk/banshee/src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodTrackInfo.cs (original)
+++ trunk/banshee/src/Dap/Banshee.Dap.Ipod/Banshee.Dap.Ipod/IpodTrackInfo.cs Thu May 1 01:56:55 2008
@@ -53,7 +53,7 @@
CanSaveToDatabase = true;
}
- public IpodTrackInfo (TrackInfo track, IPod.TrackDatabase database)
+ public IpodTrackInfo (TrackInfo track)
{
if (track is IpodTrackInfo) {
this.track = ((IpodTrackInfo)track).IpodTrack;
Added: trunk/banshee/src/Extensions/Banshee.BooScript/Banshee.BooScript.addin.xml
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Extensions/Banshee.BooScript/Banshee.BooScript.addin.xml Thu May 1 01:56:55 2008
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Addin
+ id="Banshee.BooScript"
+ version="1.0"
+ compatVersion="1.0"
+ copyright="Â 2008 Novell Inc. Licensed under the MIT X11 license."
+ name="Boo Scripting"
+ category="Developers"
+ description="The Boo Scripting plugin allows users to quickly customize and extend Banshee through the Boo programming language."
+ author="Aaron Bockover"
+ url="http://banshee-project.org/"
+ defaultEnabled="false">
+
+ <Dependencies>
+ <Addin id="Banshee.Services" version="1.0"/>
+ </Dependencies>
+
+ <Extension path="/Banshee/ServiceManager/Service">
+ <Service class="Banshee.BooScript.BooScriptService"/>
+ </Extension>
+
+</Addin>
Added: trunk/banshee/src/Extensions/Banshee.BooScript/Banshee.BooScript.mdp
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Extensions/Banshee.BooScript/Banshee.BooScript.mdp Thu May 1 01:56:55 2008
@@ -0,0 +1,35 @@
+<Project name="Banshee.BooScript" fileversion="2.0" UseParentDirectoryAsNamespace="True" language="C#" clr-version="Net_2_0" ctype="DotNetProject">
+ <Configurations active="Debug">
+ <Configuration name="Debug" ctype="DotNetProjectConfiguration">
+ <Output directory="../../../bin" assemblyKeyFile="." assembly="Banshee.BooScript" />
+ <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.BooScript.addin.xml" subtype="Code" buildaction="EmbedAsResource" />
+ <File name="Banshee.BooScript/BooScriptService.cs" subtype="Code" buildaction="Compile" />
+ <File name="Resources/duration-status-formats.boo" subtype="Code" buildaction="EmbedAsResource" />
+ <File name="Resources/filename-transform.boo" subtype="Code" buildaction="EmbedAsResource" />
+ </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="Gac" localcopy="True" refto="Boo.Lang, Version=2.0.0.0, Culture=neutral, PublicKeyToken=32c39770e9a21a67" />
+ <ProjectReference type="Gac" localcopy="True" refto="Boo.Lang.Compiler, Version=2.0.0.0, Culture=neutral, PublicKeyToken=32c39770e9a21a67" />
+ <ProjectReference type="Gac" localcopy="True" refto="Boo.Lang.Interpreter, Version=2.0.0.0, Culture=neutral, PublicKeyToken=32c39770e9a21a67" />
+ <ProjectReference type="Gac" localcopy="True" refto="Boo.Lang.Parser, Version=2.0.0.0, Culture=neutral, PublicKeyToken=32c39770e9a21a67" />
+ </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.BooScript/Banshee.BooScript/BooScriptService.cs
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Extensions/Banshee.BooScript/Banshee.BooScript/BooScriptService.cs Thu May 1 01:56:55 2008
@@ -0,0 +1,128 @@
+//
+// BooScriptService.cs
+//
+// Author:
+// Aaron Bockover <abockover novell com>
+//
+// Copyright (C) 2006-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 System.IO;
+using System.Reflection;
+
+using Boo.Lang.Compiler;
+using Boo.Lang.Compiler.IO;
+using Boo.Lang.Compiler.Pipelines;
+using Boo.Lang.Interpreter;
+
+using Hyena;
+using Banshee.Base;
+using Banshee.ServiceStack;
+
+namespace Banshee.BooScript
+{
+ public class BooScriptService : IExtensionService
+ {
+ private static string scripts_directory = Path.Combine (Paths.ApplicationData, "boo-scripts");
+
+ private bool initialized;
+
+ void IExtensionService.Initialize ()
+ {
+ lock (this) {
+ if (initialized) {
+ return;
+ }
+
+ Directory.CreateDirectory (scripts_directory);
+
+ if (ApplicationContext.CommandLine.Contains ("run-scripts")) {
+ foreach (string file in ApplicationContext.CommandLine.Files) {
+ if (Path.GetExtension (file) == ".boo") {
+ RunBooScript (file);
+ }
+ }
+ }
+
+ foreach (string file in Directory.GetFiles (scripts_directory, "*.boo")) {
+ RunBooScript (file);
+ }
+
+ initialized = true;
+ }
+ }
+
+ public void Dispose ()
+ {
+ }
+
+#region Boo Scripting Engine
+
+ private void RunBooScript (string file)
+ {
+ uint timer_id = Log.DebugTimerStart ();
+
+ BooCompiler compiler = new BooCompiler ();
+ compiler.Parameters.Ducky = true;
+ compiler.Parameters.Pipeline = new CompileToMemory ();
+ compiler.Parameters.Input.Add (new FileInput (file));
+
+ foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies ()) {
+ compiler.Parameters.References.Add (assembly);
+ }
+
+ CompilerContext context = compiler.Run ();
+
+ if (context.GeneratedAssembly == null) {
+ foreach (CompilerError error in context.Errors) {
+ Log.Warning (String.Format ("BooScript: compiler error: {0} ({1})",
+ error.ToString (), file), false);
+ }
+
+ return;
+ }
+
+ try {
+ Type script_module = context.GeneratedAssembly.GetTypes ()[0];
+
+ if (script_module == null) {
+ Log.Warning (String.Format ("BooScript: could not find module in script ({0})", file), false);
+ return;
+ }
+
+ MethodInfo main_entry = script_module.Assembly.EntryPoint;
+ main_entry.Invoke (null, new object[main_entry.GetParameters ().Length]);
+
+ Log.DebugTimerPrint (timer_id, "BooScript: compiled and invoked: {0}");
+ } catch (Exception e) {
+ Log.Exception ("BooScript: scripted failed", e);
+ }
+ }
+
+#endregion
+
+ string IService.ServiceName {
+ get { return "BooScriptService"; }
+ }
+ }
+}
Added: trunk/banshee/src/Extensions/Banshee.BooScript/Makefile.am
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Extensions/Banshee.BooScript/Makefile.am Thu May 1 01:56:55 2008
@@ -0,0 +1,13 @@
+ASSEMBLY = Banshee.BooScript
+TARGET = library
+LINK = $(REF_EXTENSION_BOOSCRIPT)
+
+SOURCES = Banshee.BooScript/BooScriptService.cs
+
+RESOURCES = \
+ Banshee.BooScript.addin.xml \
+ Resources/duration-status-formats.boo \
+ Resources/filename-transform.boo
+
+include $(top_srcdir)/build/build.mk
+
Added: trunk/banshee/src/Extensions/Banshee.BooScript/Resources/duration-status-formats.boo
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Extensions/Banshee.BooScript/Resources/duration-status-formats.boo Thu May 1 01:56:55 2008
@@ -0,0 +1,30 @@
+# Â 2006-2008 Novell Inc. Licensed under the MIT X11 license.
+# Written by Aaron Bockover <abockover novell com>
+#
+# This script demonstrates how to override the default formatting
+# options for the duration segment of source status messages.
+#
+# There is no limit to the number of formatters. Users will be
+# able to cycle between all of them in the UI.
+
+import System
+import System.Text
+import Banshee.Sources
+
+formatters = Source.DurationStatusFormatters
+
+# We hate all of the crappy Banshee default duration
+# formatter since they are for normal earthlings
+formatters.Clear ()
+
+# Now add our own so we can actually make use of the data
+formatters.Add ({ builder as StringBuilder, span as TimeSpan |
+ builder.Append ("${span.TotalMilliseconds}ms")
+})
+
+formatters.Add ({ builder as StringBuilder, span as TimeSpan |
+ builder.Append ("${span.Ticks} ticks")
+})
+
+# Actually, they do have one that isn't *too* bad
+formatters.Add (DurationStatusFormatters.ConfusingPreciseFormatter)
Added: trunk/banshee/src/Extensions/Banshee.BooScript/Resources/filename-transform.boo
==============================================================================
--- (empty file)
+++ trunk/banshee/src/Extensions/Banshee.BooScript/Resources/filename-transform.boo Thu May 1 01:56:55 2008
@@ -0,0 +1,13 @@
+# Â 2006-2008 Novell Inc. Licensed under the MIT X11 license.
+# Written by Aaron Bockover <abockover novell com>
+#
+# This script changes the formatting of any filenames that Banshee
+# will create while managing your library (i.e. CD ripping)
+#
+# The provided pattern transforms all filenames to lower case,
+# removes any non-digit/alpha characters, and replaces spaces
+# with underscores for the UNIX diehard.
+
+Banshee.Base.FileNamePattern.Filter = { songpath as string |
+ @/[ ]+/.Replace (@/[^0-9A-Za-z\/ ]+/.Replace (songpath, "").ToLower (), "_")
+}
Modified: trunk/banshee/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.mdp
==============================================================================
--- trunk/banshee/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.mdp (original)
+++ trunk/banshee/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.mdp Thu May 1 01:56:55 2008
@@ -15,7 +15,6 @@
<File name="Banshee.Podcasting/PodcastCore_Interface.cs" subtype="Code" buildaction="Compile" />
<File name="Banshee.Podcasting/PodcastImportManager.cs" subtype="Code" buildaction="Compile" />
<File name="Banshee.Podcasting/PodcastService.cs" subtype="Code" buildaction="Compile" />
- <File name="Banshee.Podcasting.Data/PodcastFeed.cs" subtype="Code" buildaction="Compile" />
<File name="Banshee.Podcasting.Data/PodcastItem.cs" subtype="Code" buildaction="Compile" />
<File name="Banshee.Podcasting.Gui/DownloadManager/DownloadManagerInterface.cs" subtype="Code" buildaction="Compile" />
<File name="Banshee.Podcasting.Gui/DownloadManager/DownloadUserJob.cs" subtype="Code" buildaction="Compile" />
Modified: trunk/banshee/src/Extensions/Extensions.mds
==============================================================================
--- trunk/banshee/src/Extensions/Extensions.mds (original)
+++ trunk/banshee/src/Extensions/Extensions.mds Thu May 1 01:56:55 2008
@@ -11,6 +11,7 @@
<Entry build="True" name="Banshee.Daap" configuration="Debug" />
<Entry build="True" name="Banshee.Podcasting" configuration="Debug" />
<Entry build="True" name="Banshee.Sample" configuration="Debug" />
+ <Entry build="True" name="Banshee.BooScript" configuration="Debug" />
</Configuration>
</Configurations>
<StartMode startupentry="Banshee.Daap" single="True">
@@ -24,6 +25,7 @@
<Execute type="None" entry="Banshee.AudioCd" />
<Execute type="None" entry="Banshee.Podcasting" />
<Execute type="None" entry="Banshee.Sample" />
+ <Execute type="None" entry="Banshee.BooScript" />
</StartMode>
<Entries>
<Entry filename="Banshee.Daap/Banshee.Daap.mdp" />
@@ -36,5 +38,6 @@
<Entry filename="Banshee.AudioCd/Banshee.AudioCd.mdp" />
<Entry filename="Banshee.Podcasting/Banshee.Podcasting.mdp" />
<Entry filename="Banshee.Sample/Banshee.Sample.mdp" />
+ <Entry filename="Banshee.BooScript/Banshee.BooScript.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 Thu May 1 01:56:55 2008
@@ -1,6 +1,7 @@
SUBDIRS = \
Banshee.AudioCd \
Banshee.Bookmarks \
+ Banshee.BooScript \
Banshee.Daap \
Banshee.Lastfm \
Banshee.MultimediaKeys \
Modified: trunk/banshee/src/Extensions/Template/Template.mdp
==============================================================================
--- trunk/banshee/src/Extensions/Template/Template.mdp (original)
+++ trunk/banshee/src/Extensions/Template/Template.mdp Thu May 1 01:56:55 2008
@@ -1,4 +1,4 @@
-<Project name="@EXTENSION_NAME@" fileversion="2.0" language="C#" clr-version="Net_2_0" ctype="DotNetProject">
+<Project name="@EXTENSION_NAME@" fileversion="2.0" UseParentDirectoryAsNamespace="True" language="C#" clr-version="Net_2_0" ctype="DotNetProject">
<Configurations active="Debug">
<Configuration name="Debug" ctype="DotNetProjectConfiguration">
<Output directory="../../../bin" assemblyKeyFile="." assembly="@EXTENSION_NAME@" />
Modified: trunk/banshee/src/Libraries/Hyena/Hyena.CommandLine/CommandLineParser.cs
==============================================================================
--- trunk/banshee/src/Libraries/Hyena/Hyena.CommandLine/CommandLineParser.cs (original)
+++ trunk/banshee/src/Libraries/Hyena/Hyena.CommandLine/CommandLineParser.cs Thu May 1 01:56:55 2008
@@ -79,11 +79,8 @@
if (eq_offset > 1) {
value = name.Substring (eq_offset + 1);
name = name.Substring (0, eq_offset);
- } else if (i < arguments.Length - 1 && !IsOption (arguments[i + 1])) {
- value = arguments[i + 1];
- i++;
}
-
+
if (parsed_arguments.ContainsKey (name)) {
parsed_arguments[name] = value;
} else {
Modified: trunk/banshee/src/Libraries/Migo/Migo.mdp
==============================================================================
--- trunk/banshee/src/Libraries/Migo/Migo.mdp (original)
+++ trunk/banshee/src/Libraries/Migo/Migo.mdp Thu May 1 01:56:55 2008
@@ -34,35 +34,13 @@
<File name="Migo/Migo.Syndication/EventArgs/FeedEventArgs.cs" subtype="Code" buildaction="Compile" />
<File name="Migo/Migo.Syndication/EventArgs/FeedItemCountChangedEventArgs.cs" subtype="Code" buildaction="Compile" />
<File name="Migo/Migo.Syndication/EventArgs/FeedItemEventArgs.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/TablesManagers/EnclosuresTableManager.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/TablesManagers/FeedsTableManager.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/TablesManagers/ItemsTableManager.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/Utilities/DatabaseManager.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/Utilities/DataUtility.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/Utilities/DbDefines.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/Utilities/QueuedDbCommand.cs" subtype="Code" buildaction="Compile" />
<File name="Migo/Migo.Syndication/Migo.Syndication.Data/Utilities/Rfc822DateTime.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/Utilities/SQLiteUtility.cs" subtype="Code" buildaction="Compile" />
<File name="Migo/Migo.Syndication/Migo.Syndication.Data/Utilities/XmlUtils.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/Db/DataWrapper.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/Db/FeedDataWrapper.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/Db/FeedEnclosureDataWrapper.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/Db/FeedItemDataWrapper.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/Rss/RssFeedEnclosureWrapper.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/Rss/RssFeedItemWrapper.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/Rss/RssFeedWrapper.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/IFeedEnclosureWrapper.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/IFeedItemWrapper.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/Migo.Syndication.Data/Wrappers/IFeedWrapper.cs" subtype="Code" buildaction="Compile" />
<File name="Migo/Migo.Syndication/Feed.cs" subtype="Code" buildaction="Compile" />
<File name="Migo/Migo.Syndication/FeedEnclosure.cs" subtype="Code" buildaction="Compile" />
<File name="Migo/Migo.Syndication/FeedItem.cs" subtype="Code" buildaction="Compile" />
<File name="Migo/Migo.Syndication/FeedsManager.cs" subtype="Code" buildaction="Compile" />
<File name="Migo/Migo.Syndication/FeedUpdateTask.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/IFeed.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/IFeedEnclosure.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/IFeedItem.cs" subtype="Code" buildaction="Compile" />
- <File name="Migo/Migo.Syndication/IFeedsManager.cs" subtype="Code" buildaction="Compile" />
<File name="Migo/Migo.TaskCore/AsyncCommandQueue/AsyncCommandQueue.cs" subtype="Code" buildaction="Compile" />
<File name="Migo/Migo.TaskCore/AsyncCommandQueue/CommandDelegate.cs" subtype="Code" buildaction="Compile" />
<File name="Migo/Migo.TaskCore/AsyncCommandQueue/CommandWrapper.cs" subtype="Code" buildaction="Compile" />
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]