commit 35a356d1e9c15e031e19077fe965a5e4bb7e5ae3
Author: Alan McGovern <a...@slacker.site>
Date:   Wed Jun 9 18:49:59 2010 +0100

    Correctly compare items when trying to decide if they're in the list or not.
    
    Signed-off-by: Nathaniel McCallum <nathan...@natemccallum.com>

 bindings/mono/libgpod-sharp/GPodBase.cs |    5 +++++
 bindings/mono/libgpod-sharp/GPodList.cs |    7 ++-----
 bindings/mono/libgpod-sharp/ITDB.cs     |    6 ++++++
 3 files changed, 13 insertions(+), 5 deletions(-)
---
diff --git a/bindings/mono/libgpod-sharp/GPodBase.cs 
b/bindings/mono/libgpod-sharp/GPodBase.cs
index d1840d3..cae4e7e 100644
--- a/bindings/mono/libgpod-sharp/GPodBase.cs
+++ b/bindings/mono/libgpod-sharp/GPodBase.cs
@@ -47,6 +47,7 @@ namespace GPod {
        }*/
        
        interface IGPodBase {
+               IntPtr Native { get; }
                void SetBorrowed(bool borrowed);
        }
 
@@ -91,6 +92,10 @@ namespace GPod {
                        get { return HandleRef.ToIntPtr (Handle); }
                }
                
+               IntPtr IGPodBase.Native {
+                       get { return Native; }
+               }
+               
                public    HandleRef Handle;
                protected bool          Borrowed;
                
diff --git a/bindings/mono/libgpod-sharp/GPodList.cs 
b/bindings/mono/libgpod-sharp/GPodList.cs
index e18fd1f..df553c0 100644
--- a/bindings/mono/libgpod-sharp/GPodList.cs
+++ b/bindings/mono/libgpod-sharp/GPodList.cs
@@ -55,16 +55,13 @@ namespace GPod {
                IEnumerator IEnumerable.GetEnumerator() { return 
GetEnumerator(); }
 
                public bool Contains(T item) {
-                       foreach (object o in list)
-                               if (o.Equals(item))
-                                       return true;
-                       return false;
+                       return IndexOf (item) != -1;
                }
                
                public int IndexOf(T item) {
                        int i = 0;
                        foreach (T t in this) {
-                               if (t.Equals(item))
+                               if (object.ReferenceEquals (t, item) || 
t.Native == item.Native)
                                        return i;
                                i++;
                        }
diff --git a/bindings/mono/libgpod-sharp/ITDB.cs 
b/bindings/mono/libgpod-sharp/ITDB.cs
index 4b49dcb..8392a16 100644
--- a/bindings/mono/libgpod-sharp/ITDB.cs
+++ b/bindings/mono/libgpod-sharp/ITDB.cs
@@ -108,6 +108,12 @@ namespace GPod {
                        return res;
                }
                
+               public static string GetLocalPath (string mountPoint, Track 
track)
+               {
+                       string ipodPath = track.IpodPath.Replace (":", 
"/").Substring (1);
+                       return System.IO.Path.Combine (mountPoint, ipodPath);
+               }
+               
                public static string GetDestFileName (string mountpoint, string 
localFile)
                {
                        //  itdb_cp_get_dest_filename (HandleRef track, string 
mountpoint, string filename, ref IntPtr error);

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
gtkpod-cvs2 mailing list
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to