Author: philippr
Date: Sun Jan 20 20:10:58 2008
New Revision: 609
URL: http://svn.gnome.org/viewvc/brasero?rev=609&view=rev

Log:
        Added support for ISO level 3 in session importing (= support multi 
extent files)

        * src/burn-iso-field.c: (brasero_iso9660_get_733_val):
        * src/burn-iso-field.h:
        * src/burn-iso9660.c: (brasero_iso9660_read_directory_records):
        * src/burn-volume.h:



Modified:
   branches/brasero_0_7/ChangeLog
   branches/brasero_0_7/src/burn-iso-field.c
   branches/brasero_0_7/src/burn-iso-field.h
   branches/brasero_0_7/src/burn-iso9660.c
   branches/brasero_0_7/src/burn-volume.h

Modified: branches/brasero_0_7/src/burn-iso-field.c
==============================================================================
--- branches/brasero_0_7/src/burn-iso-field.c   (original)
+++ branches/brasero_0_7/src/burn-iso-field.c   Sun Jan 20 20:10:58 2008
@@ -26,12 +26,12 @@
 
 #include "burn-iso-field.h"
 
-gint32
+guint32
 brasero_iso9660_get_733_val (guchar *buffer)
 {
-       gint32 *ptr;
+       guint32 *ptr;
 
-       ptr = (gint32*) buffer;
+       ptr = (guint32*) buffer;
 
        return GINT32_FROM_LE (*ptr);
 }

Modified: branches/brasero_0_7/src/burn-iso-field.h
==============================================================================
--- branches/brasero_0_7/src/burn-iso-field.h   (original)
+++ branches/brasero_0_7/src/burn-iso-field.h   Sun Jan 20 20:10:58 2008
@@ -32,7 +32,7 @@
 {
 #endif
 
-gint32
+guint32
 brasero_iso9660_get_733_val (guchar *buffer);
 
 #ifdef __cplusplus

Modified: branches/brasero_0_7/src/burn-iso9660.c
==============================================================================
--- branches/brasero_0_7/src/burn-iso9660.c     (original)
+++ branches/brasero_0_7/src/burn-iso9660.c     Sun Jan 20 20:10:58 2008
@@ -524,6 +524,22 @@
                                goto error;
 
                        entry->parent = parent;
+
+                       /* check that we don't have another file record for the
+                        * same file (usually files > 4G). It always follows
+                        * its sibling */
+                       if (parent->specific.dir.children) {
+                               BraseroVolFile *last;
+
+                               last = parent->specific.dir.children->data;
+                               if (!last->isdir && !strcmp 
(BRASERO_VOLUME_FILE_NAME (last), BRASERO_VOLUME_FILE_NAME (entry))) {
+                                       last->specific.file.size_bytes += 
entry->specific.file.size_bytes;
+                                       ctx->data_blocks += 
ISO9660_BYTES_TO_BLOCKS (entry->specific.file.size_bytes);
+                                       brasero_volume_file_free (entry);
+                                       BRASERO_BURN_LOG ("Multi extent file");
+                                       continue;
+                               }
+                       }
                        parent->specific.dir.children = g_list_prepend 
(parent->specific.dir.children, entry);
                        ctx->data_blocks += ISO9660_BYTES_TO_BLOCKS 
(entry->specific.file.size_bytes);
                }

Modified: branches/brasero_0_7/src/burn-volume.h
==============================================================================
--- branches/brasero_0_7/src/burn-volume.h      (original)
+++ branches/brasero_0_7/src/burn-volume.h      Sun Jan 20 20:10:58 2008
@@ -47,7 +47,7 @@
 
        struct {
                gint address_block;
-               gint size_bytes;
+               guint64 size_bytes;
        } file;
 
        struct {
_______________________________________________
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