Author: gburt Date: Tue Feb 12 00:25:50 2008 New Revision: 3228 URL: http://svn.gnome.org/viewvc/banshee?rev=3228&view=rev
Log: 2008-02-11 Gabriel Burt <[EMAIL PROTECTED]> * build/build.environment.mk: Add System.Web to Lastfm deps. * src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs: Fix broken build; Xspf is now in Mono.Media. * src/Libraries/Lastfm/Last.FM.mdp: Rename. * src/Libraries/Lastfm/Lastfm/Account.cs: Add Updated event. * src/Extensions/Banshee.Lastfm/Banshee.Lastfm/Connection.cs: * src/Libraries/Lastfm/Makefile.am: * src/Libraries/Lastfm/Lastfm/Connection.cs: Move Connection class out of extension, pull out Banshee dependencies. * src/Libraries/Mono.Media/Playlists.Xspf/LinkEntry.cs: * src/Libraries/Mono.Media/Playlists.Xspf/MetaEntry.cs: * src/Libraries/Mono.Media/Playlists.Xspf/Playlist.cs: * src/Libraries/Mono.Media/Playlists.Xspf/Track.cs: * src/Libraries/Mono.Media/Playlists.Xspf/W3CDateTime.cs: * src/Libraries/Mono.Media/Playlists.Xspf/XmlUtil.cs: * src/Libraries/Mono.Media/Playlists.Xspf/XspfBaseObject.cs: Fix headers and namespaces. Added: trunk/banshee/src/Libraries/Lastfm/Lastfm.mdp (props changed) - copied unchanged from r3226, /trunk/banshee/src/Libraries/Lastfm/Last.FM.mdp trunk/banshee/src/Libraries/Lastfm/Lastfm/Connection.cs - copied, changed from r3226, /trunk/banshee/src/Extensions/Banshee.Lastfm/Banshee.Lastfm/Connection.cs Removed: trunk/banshee/src/Extensions/Banshee.Lastfm/Banshee.Lastfm/Connection.cs trunk/banshee/src/Libraries/Lastfm/Last.FM.mdp Modified: trunk/banshee/ChangeLog trunk/banshee/build/build.environment.mk trunk/banshee/src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs trunk/banshee/src/Libraries/Lastfm/Lastfm/Account.cs trunk/banshee/src/Libraries/Lastfm/Makefile.am trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/LinkEntry.cs trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/MetaEntry.cs trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/Playlist.cs trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/Track.cs trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/W3CDateTime.cs trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/XmlUtil.cs trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/XspfBaseObject.cs Modified: trunk/banshee/build/build.environment.mk ============================================================================== --- trunk/banshee/build/build.environment.mk (original) +++ trunk/banshee/build/build.environment.mk Tue Feb 12 00:25:50 2008 @@ -8,6 +8,7 @@ # External libraries to link against, generated from configure LINK_SYSTEM = -r:System +LINK_SYSTEM_WEB = -r:System.Web LINK_SQLITE = -r:System.Data -r:Mono.Data.Sqlite LINK_CAIRO = -r:Mono.Cairo LINK_MONO_POSIX = -r:Mono.Posix @@ -49,11 +50,11 @@ #LINK_GNOME_KEYRING = -r:$(DIR_GNOME_KEYRING)/Gnome.Keyring.dll #LINK_GNOME_KEYRING_DEPS = $(REF_GNOME_KEYRING) $(LINK_GNOME_KEYRING) # -REF_LASTFM = $(LINK_SYSTEM) +REF_LASTFM = $(LINK_SYSTEM) $(LINK_SYSTEM_WEB) $(LINK_MONO_MEDIA) $(LINK_MONO_POSIX) LINK_LASTFM = -r:$(DIR_BIN)/Lastfm.dll LINK_LASTFM_DEPS = $(REF_LASTFM) $(LINK_LASTFM) -REF_LASTFM_GUI = $(LINK_MONO_POSIX) $(LINK_GLIB) $(LINK_GTK) $(LINK_LASTFM_DEPS) +REF_LASTFM_GUI = $(LINK_GLIB) $(LINK_GTK) $(LINK_LASTFM_DEPS) LINK_LASTFM_GUI = -r:$(DIR_BIN)/Lastfm.Gui.dll LINK_LASTFM_GUI_DEPS = $(REF_LASTFM_GUI) $(LINK_LASTFM_GUI) Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs ============================================================================== --- trunk/banshee/src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs (original) +++ trunk/banshee/src/Core/Banshee.Services/Banshee.Streaming/RadioTrackInfo.cs Tue Feb 12 00:25:50 2008 @@ -30,11 +30,12 @@ using System.Threading; using System.Collections.Generic; +using Playlists.Xspf; + using Banshee.Base; using Banshee.Collection; using Banshee.ServiceStack; using Banshee.Playlists.Formats; -using Banshee.Playlists.Formats.Xspf; namespace Banshee.Streaming { Modified: trunk/banshee/src/Libraries/Lastfm/Lastfm/Account.cs ============================================================================== --- trunk/banshee/src/Libraries/Lastfm/Lastfm/Account.cs (original) +++ trunk/banshee/src/Libraries/Lastfm/Lastfm/Account.cs Tue Feb 12 00:25:50 2008 @@ -36,6 +36,8 @@ { public abstract class Account { + public event EventHandler Updated; + private string username; public string Username { get { return username; } @@ -48,7 +50,7 @@ set { password = value; } } - public string Md5Password { + public string CryptedPassword { get { return password == null ? null : Md5Encode (password); } set { password = value; } } @@ -81,10 +83,22 @@ shash.Append (hash[i].ToString ("x2")); } + return shash.ToString (); } - public abstract void Save (); + public virtual void Save () + { + OnUpdated (); + } + + protected void OnUpdated () + { + EventHandler handler = Updated; + if (handler != null) { + handler (this, EventArgs.Empty); + } + } } } Copied: trunk/banshee/src/Libraries/Lastfm/Lastfm/Connection.cs (from r3226, /trunk/banshee/src/Extensions/Banshee.Lastfm/Banshee.Lastfm/Connection.cs) ============================================================================== --- /trunk/banshee/src/Extensions/Banshee.Lastfm/Banshee.Lastfm/Connection.cs (original) +++ trunk/banshee/src/Libraries/Lastfm/Lastfm/Connection.cs Tue Feb 12 00:25:50 2008 @@ -1,30 +1,30 @@ -/*************************************************************************** - * Connection.cs - * - * Copyright (C) 2007 Novell, Inc. - * Written by Gabriel Burt <[EMAIL PROTECTED]> - ****************************************************************************/ - -/* THIS FILE IS LICENSED UNDER THE MIT LICENSE AS OUTLINED IMMEDIATELY BELOW: - * - * 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. - */ +// +// Connection.cs +// +// Authors: +// Gabriel Burt <[EMAIL PROTECTED]> +// +// Copyright (C) 2007-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.Collections; @@ -38,11 +38,9 @@ using Mono.Unix; -using Banshee.Base; -using Banshee.Playlists.Formats.Xspf; -using Last.FM; +using Playlists.Xspf; -namespace Banshee.Lastfm +namespace Lastfm { public class ConnectionStateChangedArgs : EventArgs { @@ -83,29 +81,26 @@ public event StateChangedHandler StateChanged; private ConnectionState state; + private string user_agent; private string session; - private string username; - private string md5_password; private string base_url; private string base_path; - private string station; private string info_message; - private bool subscriber; private bool connect_requested = false; + private bool network_connected = false; - private static Connection instance; private static Regex station_error_regex = new Regex ("error=(\\d+)", RegexOptions.Compiled); - // Properties + private Account account; + public Account Account { + get { return account; } + } + private bool subscriber; public bool Subscriber { get { return subscriber; } } - public string Username { - get { return username; } - } - public ConnectionState State { get { return state; } @@ -114,7 +109,7 @@ return; state = value; - LogCore.Instance.PushDebug (String.Format ("Last.fm State Changed to {0}", state), null, false); + //LogCore.Instance.PushDebug (String.Format ("Last.fm State Changed to {0}", state), null, false); StateChangedHandler handler = StateChanged; if (handler != null) { handler (this, new ConnectionStateChangedArgs (state)); @@ -126,37 +121,25 @@ get { return state == ConnectionState.Connected; } } + private string station; public string Station { get { return station; } } - public static Connection Instance { - get { - if (instance == null) - instance = new Connection (); - return instance; - } - } - - // Public Methods - - private Connection () + public Connection (Account account, string user_agent) { + this.account = account; + this.user_agent = user_agent; + Initialize (); - username = Last.FM.Account.Username; - md5_password = Last.FM.Account.Md5Password; State = ConnectionState.Disconnected; - Banshee.Base.NetworkDetect.Instance.StateChanged += HandleNetworkStateChanged; - Last.FM.Account.LoginRequestFinished += HandleKeyringEvent; - Last.FM.Account.LoginCommitFinished += HandleKeyringEvent; + + account.Updated += HandleAccountUpdated; } public void Dispose () { - Banshee.Base.NetworkDetect.Instance.StateChanged -= HandleNetworkStateChanged; - Last.FM.Account.LoginRequestFinished -= HandleKeyringEvent; - Last.FM.Account.LoginCommitFinished -= HandleKeyringEvent; - instance = null; + account.Updated -= HandleAccountUpdated; } public void Connect () @@ -165,13 +148,12 @@ if (State == ConnectionState.Connecting || State == ConnectionState.Connected) return; - if (username == null || md5_password == null) { + if (account.Username == null || account.CryptedPassword == null) { State = ConnectionState.NoAccount; - Last.FM.Account.RequestLogin (); return; } - if (!Globals.Network.Connected) { + if (!network_connected) { State = ConnectionState.NoNetwork; return; } @@ -181,14 +163,14 @@ Handshake (); } - public bool Love (TrackInfo track) { return PostTrackRequest ("loveTrack", track); } - public bool UnLove (TrackInfo track) { return PostTrackRequest ("unLoveTrack", track); } - public bool Ban (TrackInfo track) { return PostTrackRequest ("banTrack", track); } - public bool UnBan (TrackInfo track) { return PostTrackRequest ("unBanTrack", track); } + public bool Love (string artist, string title) { return PostTrackRequest ("loveTrack", artist, title); } + public bool UnLove (string artist, string title) { return PostTrackRequest ("unLoveTrack", artist, title); } + public bool Ban (string artist, string title) { return PostTrackRequest ("banTrack", artist, title); } + public bool UnBan (string artist, string title) { return PostTrackRequest ("unBanTrack", artist, title); } public StationError ChangeStationTo (string station) { - lock (instance) { + lock (this) { if (Station == station) return StationError.None; @@ -218,7 +200,7 @@ public Playlist LoadPlaylistFor (string station) { - lock (instance) { + lock (this) { if (station != Station) return null; @@ -227,11 +209,11 @@ Stream stream = null; Console.WriteLine ("StationSource Loading: {0}", url); try { - stream = Connection.Instance.GetXspfStream (new SafeUri (url)); + stream = GetXspfStream (url); pl.Load (stream); - LogCore.Instance.PushDebug (String.Format ("Adding {0} Tracks to Last.fm Station {1}", pl.TrackCount, station), null); + //LogCore.Instance.PushDebug (String.Format ("Adding {0} Tracks to Last.fm Station {1}", pl.TrackCount, station), null); } catch (System.Net.WebException e) { - LogCore.Instance.PushWarning ("Error Loading Last.fm Station", e.Message, false); + //LogCore.Instance.PushWarning ("Error Loading Last.fm Station", e.Message, false); return null; } catch (Exception e) { string body = "Unable to get body"; @@ -240,10 +222,10 @@ body = strm.ReadToEnd (); } } catch {} - LogCore.Instance.PushWarning ( + /*LogCore.Instance.PushWarning ( "Error loading station", String.Format ("Exception:\n{0}\n\nResponse Body:\n{1}", e.ToString (), body), false - ); + );*/ return null; } @@ -259,24 +241,16 @@ base_url = base_path = session = station = info_message = null; } - private void HandleKeyringEvent (AccountEventArgs args) + private void HandleAccountUpdated (object o, EventArgs args) { - if (args.Success) { - if (Account.Username != username || Account.Md5Password != md5_password) { - username = Last.FM.Account.Username; - md5_password = Last.FM.Account.Md5Password; - - State = ConnectionState.Disconnected; - Connect (); - } - } else { - LogCore.Instance.PushWarning ("Failed to Get Last.fm Account From Keyring", "", false); - } + State = ConnectionState.Disconnected; + Connect (); } - private void HandleNetworkStateChanged (object sender, NetworkStateChangedArgs args) + public void UpdateNetworkState (bool connected) { - if (args.Connected) { + network_connected = connected; + if (connected) { if (State == ConnectionState.NoNetwork) { Connect (); } @@ -290,36 +264,36 @@ private void Handshake () { - ThreadAssist.Spawn (delegate { + //ThreadAssist.Spawn (delegate { try { Stream stream = Get (String.Format ( "http://ws.audioscrobbler.com/radio/handshake.php?version={0}&platform={1}&username={2}&passwordmd5={3}&language={4}&session=324234", "1.1.1", "linux", // FIXME - username, md5_password, + account.Username, account.CryptedPassword, "en" // FIXME )); // Set us as connecting, assuming the connection attempt wasn't changed out from under us if (ParseHandshake (new StreamReader (stream).ReadToEnd ()) && session != null) { State = ConnectionState.Connected; - LogCore.Instance.PushDebug (String.Format ("Logged into Last.fm as {0}", Username), null, false); + //LogCore.Instance.PushDebug (String.Format ("Logged into Last.fm as {0}", Username), null, false); return; } } catch (Exception e) { - LogCore.Instance.PushDebug ("Error in Last.fm Handshake", e.ToString (), false); + //LogCore.Instance.PushDebug ("Error in Last.fm Handshake", e.ToString (), false); } // Must not have parsed correctly Initialize (); if (State == ConnectionState.Connecting) State = ConnectionState.Disconnected; - }); + //}); } private bool ParseHandshake (string content) { - LogCore.Instance.PushDebug ("Got Last.fm Handshake Response", content, false); + //LogCore.Instance.PushDebug ("Got Last.fm Handshake Response", content, false); string [] lines = content.Split (new Char[] {'\n'}); foreach (string line in lines) { string [] opts = line.Split (new Char[] {'='}); @@ -329,11 +303,11 @@ if (opts[1].ToLower () == "failed") { session = null; State = ConnectionState.InvalidAccount; - LogCore.Instance.PushWarning ( + /*LogCore.Instance.PushWarning ( Catalog.GetString ("Failed to Login to Last.fm"), Catalog.GetString ("Either your username or password is invalid."), false - ); + );*/ return false; } @@ -372,12 +346,13 @@ private HttpStatusCode Post (string uri, string body) { - if (!Globals.Network.Connected) { - throw new NetworkUnavailableException (); + if (!network_connected) { + //throw new NetworkUnavailableException (); + return HttpStatusCode.RequestTimeout; } HttpWebRequest request = (HttpWebRequest) WebRequest.Create (uri); - request.UserAgent = Banshee.Web.Browser.UserAgent; + request.UserAgent = user_agent; //Banshee.Web.Browser.UserAgent; request.Timeout = 10000; request.Method = "POST"; request.KeepAlive = false; @@ -396,27 +371,28 @@ return response.StatusCode; } - private Stream GetXspfStream (SafeUri uri) + private Stream GetXspfStream (string uri) { return Get (uri, "application/xspf+xml"); } private Stream Get (string uri) { - return Get (new SafeUri (uri), null); + return Get (uri, null); } - private Stream Get (SafeUri uri, string accept) + private Stream Get (string uri, string accept) { - if (!Globals.Network.Connected) { - throw new NetworkUnavailableException (); + if (!network_connected) { + //throw new NetworkUnavailableException (); + return null; } - HttpWebRequest request = (HttpWebRequest) WebRequest.Create (uri.AbsoluteUri); + HttpWebRequest request = (HttpWebRequest) WebRequest.Create (uri); if (accept != null) { request.Accept = accept; } - request.UserAgent = Banshee.Web.Browser.UserAgent; + request.UserAgent = user_agent; //Banshee.Web.Browser.UserAgent; request.Timeout = 10000; request.KeepAlive = false; request.AllowAutoRedirect = true; @@ -481,9 +457,9 @@ // XML-RPC foo - private bool PostTrackRequest (string method, TrackInfo track) + private bool PostTrackRequest (string method, string artist, string title) { - return PostXmlRpc (LastFMXmlRpcRequest (method).AddStringParams (track.Artist, track.Title)); + return PostXmlRpc (LastFMXmlRpcRequest (method).AddStringParams (artist, title)); } private bool PostXmlRpc (LameXmlRpcRequest request) @@ -502,8 +478,8 @@ private LameXmlRpcRequest LastFMXmlRpcRequest (string method) { string time = UnixTime (); - string auth_hash = Last.FM.Account.Md5Encode (md5_password + time); - return new LameXmlRpcRequest (method).AddStringParams (username, time, auth_hash); + string auth_hash = Account.Md5Encode (account.CryptedPassword + time); + return new LameXmlRpcRequest (method).AddStringParams (account.Username, time, auth_hash); } protected class LameXmlRpcRequest Modified: trunk/banshee/src/Libraries/Lastfm/Makefile.am ============================================================================== --- trunk/banshee/src/Libraries/Lastfm/Makefile.am (original) +++ trunk/banshee/src/Libraries/Lastfm/Makefile.am Tue Feb 12 00:25:50 2008 @@ -4,7 +4,8 @@ SOURCES = \ Lastfm/Account.cs \ - Lastfm/Browser.cs + Lastfm/Browser.cs \ + Lastfm/Connection.cs include $(top_srcdir)/build/build.mk Modified: trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/LinkEntry.cs ============================================================================== --- trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/LinkEntry.cs (original) +++ trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/LinkEntry.cs Tue Feb 12 00:25:50 2008 @@ -1,34 +1,34 @@ -/*************************************************************************** - * LinkEntry.cs - * - * Copyright (C) 2006 Novell, Inc. - * Written by Aaron Bockover <[EMAIL PROTECTED]> - ****************************************************************************/ - -/* THIS FILE IS LICENSED UNDER THE MIT LICENSE AS OUTLINED IMMEDIATELY BELOW: - * - * 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. - */ +// +// LinkEntry.cs +// +// Authors: +// Aaron Bockover <[EMAIL PROTECTED]> +// +// Copyright (C) 2006 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; -namespace Banshee.Playlists.Formats.Xspf +namespace Playlists.Xspf { public struct LinkEntry { Modified: trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/MetaEntry.cs ============================================================================== --- trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/MetaEntry.cs (original) +++ trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/MetaEntry.cs Tue Feb 12 00:25:50 2008 @@ -1,34 +1,34 @@ -/*************************************************************************** - * MetaEntry.cs - * - * Copyright (C) 2006 Novell, Inc. - * Written by Aaron Bockover <[EMAIL PROTECTED]> - ****************************************************************************/ +// +// MetaEntry.cs +// +// Authors: +// Aaron Bockover <[EMAIL PROTECTED]> +// +// Copyright (C) 2006 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. +// -/* THIS FILE IS LICENSED UNDER THE MIT LICENSE AS OUTLINED IMMEDIATELY BELOW: - * - * 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; -namespace Banshee.Playlists.Formats.Xspf +namespace Playlists.Xspf { public struct MetaEntry { Modified: trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/Playlist.cs ============================================================================== --- trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/Playlist.cs (original) +++ trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/Playlist.cs Tue Feb 12 00:25:50 2008 @@ -1,30 +1,30 @@ -/*************************************************************************** - * Playlist.cs - * - * Copyright (C) 2006 Novell, Inc. - * Written by Aaron Bockover <[EMAIL PROTECTED]> - ****************************************************************************/ - -/* THIS FILE IS LICENSED UNDER THE MIT LICENSE AS OUTLINED IMMEDIATELY BELOW: - * - * 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. - */ +// +// Playlist.cs +// +// Authors: +// Aaron Bockover <[EMAIL PROTECTED]> +// +// Copyright (C) 2006 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; @@ -32,7 +32,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; -namespace Banshee.Playlists.Formats.Xspf +namespace Playlists.Xspf { public class Playlist : XspfBaseObject { Modified: trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/Track.cs ============================================================================== --- trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/Track.cs (original) +++ trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/Track.cs Tue Feb 12 00:25:50 2008 @@ -1,37 +1,37 @@ -/*************************************************************************** - * Track.cs - * - * Copyright (C) 2006 Novell, Inc. - * Written by Aaron Bockover <[EMAIL PROTECTED]> - ****************************************************************************/ - -/* THIS FILE IS LICENSED UNDER THE MIT LICENSE AS OUTLINED IMMEDIATELY BELOW: - * - * 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. - */ +// +// Track.cs +// +// Authors: +// Aaron Bockover <[EMAIL PROTECTED]> +// +// Copyright (C) 2006 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.Xml; using System.Collections.Generic; using System.Collections.ObjectModel; -namespace Banshee.Playlists.Formats.Xspf +namespace Playlists.Xspf { public class Track : XspfBaseObject { Modified: trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/W3CDateTime.cs ============================================================================== --- trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/W3CDateTime.cs (original) +++ trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/W3CDateTime.cs Tue Feb 12 00:25:50 2008 @@ -1,7 +1,35 @@ +// +// W3CDateTime.cs +// +// Authors: +// Aaron Bockover <[EMAIL PROTECTED]> +// +// Copyright (C) 2006 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.RegularExpressions; -namespace Banshee.Playlists.Formats.Xspf +namespace Playlists.Xspf { public struct W3CDateTime: IComparable { Modified: trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/XmlUtil.cs ============================================================================== --- trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/XmlUtil.cs (original) +++ trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/XmlUtil.cs Tue Feb 12 00:25:50 2008 @@ -1,36 +1,36 @@ -/*************************************************************************** - * XmlUtil.cs - * - * Copyright (C) 2006 Novell, Inc. - * Written by Aaron Bockover <[EMAIL PROTECTED]> - ****************************************************************************/ - -/* THIS FILE IS LICENSED UNDER THE MIT LICENSE AS OUTLINED IMMEDIATELY BELOW: - * - * 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. - */ +// +// XmlUtil.cs +// +// Authors: +// Aaron Bockover <[EMAIL PROTECTED]> +// +// Copyright (C) 2006 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.Xml; using System.Collections.Generic; -namespace Banshee.Playlists.Formats.Xspf +namespace Playlists.Xspf { internal static class XmlUtil { Modified: trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/XspfBaseObject.cs ============================================================================== --- trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/XspfBaseObject.cs (original) +++ trunk/banshee/src/Libraries/Mono.Media/Playlists.Xspf/XspfBaseObject.cs Tue Feb 12 00:25:50 2008 @@ -1,37 +1,37 @@ -/*************************************************************************** - * XspfBaseObject.cs - * - * Copyright (C) 2006 Novell, Inc. - * Written by Aaron Bockover <[EMAIL PROTECTED]> - ****************************************************************************/ - -/* THIS FILE IS LICENSED UNDER THE MIT LICENSE AS OUTLINED IMMEDIATELY BELOW: - * - * 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. - */ +// +// XspfBaseObject.cs +// +// Authors: +// Aaron Bockover <[EMAIL PROTECTED]> +// +// Copyright (C) 2006 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.Xml; using System.Collections.Generic; using System.Collections.ObjectModel; -namespace Banshee.Playlists.Formats.Xspf +namespace Playlists.Xspf { public abstract class XspfBaseObject { _______________________________________________ SVN-commits-list mailing list (read only) http://mail.gnome.org/mailman/listinfo/svn-commits-list Want to limit the commits to a few modules? Go to above URL, log in to edit your options and select the modules ('topics') you want. Module maintainer? It is possible to set the reply-to to your development mailing list. Email [EMAIL PROTECTED] if interested.