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.

Reply via email to