Revision: 1722
          http://gtkpod.svn.sourceforge.net/gtkpod/?rev=1722&view=rev
Author:   teuf
Date:     2007-10-07 04:33:30 -0700 (Sun, 07 Oct 2007)

Log Message:
-----------
* src/itdb_device.c: (itdb_device_requires_checksum):
* src/itdb_itunesdb.c: (write_db_checksum):
* src/itdb_private.h: add an itdb_device_requires_checksum function so 
that we only error out because of checksum writing issues on ipods which 
require a checksum. Ideally, we should restore the old file when there is
a fatal checksum writing error, but libgpod isn't currently doing that

Modified Paths:
--------------
    libgpod/trunk/ChangeLog
    libgpod/trunk/src/itdb_device.c
    libgpod/trunk/src/itdb_itunesdb.c
    libgpod/trunk/src/itdb_private.h

Modified: libgpod/trunk/ChangeLog
===================================================================
--- libgpod/trunk/ChangeLog     2007-10-07 08:29:53 UTC (rev 1721)
+++ libgpod/trunk/ChangeLog     2007-10-07 11:33:30 UTC (rev 1722)
@@ -1,3 +1,12 @@
+2007-10-07  Christophe Fergeau  <[EMAIL PROTECTED]>
+
+       * src/itdb_device.c: (itdb_device_requires_checksum):
+       * src/itdb_itunesdb.c: (write_db_checksum):
+       * src/itdb_private.h: add an itdb_device_requires_checksum function so 
+       that we only error out because of checksum writing issues on ipods 
which 
+       require a checksum. Ideally, we should restore the old file when there 
is
+       a fatal checksum writing error, but libgpod isn't currently doing that
+
 2007-10-05  Christophe Fergeau  <[EMAIL PROTECTED]>
 
        * src/itdb_sha1.c: (generate_key): move cryptic calculations 

Modified: libgpod/trunk/src/itdb_device.c
===================================================================
--- libgpod/trunk/src/itdb_device.c     2007-10-07 08:29:53 UTC (rev 1721)
+++ libgpod/trunk/src/itdb_device.c     2007-10-07 11:33:30 UTC (rev 1722)
@@ -1061,3 +1061,25 @@
     }
     return g_ascii_strtoull (fwid, NULL, 16);
 }
+
+G_GNUC_INTERNAL gboolean itdb_device_requires_checksum (Itdb_Device *device) 
+{
+    const Itdb_IpodInfo *info;
+
+    if (device == NULL) {
+        return FALSE;
+    }
+
+    info = itdb_device_get_ipod_info (device);
+    if (info == NULL) {
+        return FALSE;
+    }
+    switch (info->ipod_generation) {
+        case ITDB_IPOD_GENERATION_CLASSIC_1: 
+            return TRUE;
+        case ITDB_IPOD_GENERATION_NANO_3:
+            return TRUE;
+        default:
+            return FALSE;
+    }
+}

Modified: libgpod/trunk/src/itdb_itunesdb.c
===================================================================
--- libgpod/trunk/src/itdb_itunesdb.c   2007-10-07 08:29:53 UTC (rev 1721)
+++ libgpod/trunk/src/itdb_itunesdb.c   2007-10-07 11:33:30 UTC (rev 1722)
@@ -4867,9 +4867,9 @@
     unsigned char *itdb_data;
     unsigned char *checksum;
     gsize len;
-
+    
     fwid = itdb_device_get_firewire_id (fexp->itdb->device);
-    if (fwid == 0) {
+    if ((fwid == 0) && (itdb_device_requires_checksum (fexp->itdb->device))) {
        g_set_error (error, 0, -1, "Couldn't find the iPod firewire ID");
        return FALSE;
     }

Modified: libgpod/trunk/src/itdb_private.h
===================================================================
--- libgpod/trunk/src/itdb_private.h    2007-10-07 08:29:53 UTC (rev 1721)
+++ libgpod/trunk/src/itdb_private.h    2007-10-07 11:33:30 UTC (rev 1722)
@@ -156,4 +156,5 @@
 G_GNUC_INTERNAL guint64 device_time_time_t_to_mac (Itdb_Device *device,
                                                 time_t timet);
 G_GNUC_INTERNAL gint itdb_musicdirs_number_by_mountpoint (const gchar 
*mountpoint);
+G_GNUC_INTERNAL gboolean itdb_device_requires_checksum (Itdb_Device *device);
 #endif


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to