[Goodies-commits] r5360 - xfburn/trunk/xfburn

David Mohr squisher at xfce.org
Fri Sep 5 06:39:28 CEST 2008


Author: squisher
Date: 2008-09-05 04:39:27 +0000 (Fri, 05 Sep 2008)
New Revision: 5360

Modified:
   xfburn/trunk/xfburn/xfburn-audio-composition.c
   xfburn/trunk/xfburn/xfburn-audio-disc-usage.c
   xfburn/trunk/xfburn/xfburn-data-disc-usage.c
   xfburn/trunk/xfburn/xfburn-disc-usage.c
   xfburn/trunk/xfburn/xfburn-disc-usage.h
   xfburn/trunk/xfburn/xfburn-global.h
Log:
Adding length to audio CDs. NOTE: avail. space displayed is less than what's really there

Modified: xfburn/trunk/xfburn/xfburn-audio-composition.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-audio-composition.c	2008-09-04 22:57:18 UTC (rev 5359)
+++ xfburn/trunk/xfburn/xfburn-audio-composition.c	2008-09-05 04:39:27 UTC (rev 5360)
@@ -847,18 +847,19 @@
     GtkTreeIter iter;
     
     if (gtk_tree_model_get_iter (model, &iter, path)) {
-      GtkTreeIter parent, iter_temp;
-      guint64 size = 0;
+      //GtkTreeIter parent, iter_temp;
+      int secs = 0;
       
-      gtk_tree_model_get (model, &iter, AUDIO_COMPOSITION_COLUMN_SIZE, &size, -1);
-      xfburn_disc_usage_sub_size (XFBURN_DISC_USAGE (priv->disc_usage), size);
+      gtk_tree_model_get (model, &iter, AUDIO_COMPOSITION_COLUMN_LENGTH, &secs, -1);
+      xfburn_disc_usage_sub_size (XFBURN_DISC_USAGE (priv->disc_usage), secs);
 
+      /*
       iter_temp = iter;
       while (gtk_tree_model_iter_parent (model, &parent, &iter_temp)) {
         guint64 old_size;
         gchar *humansize = NULL;
 
-        /* updates parent directories size */
+        // updates parent directories size
         gtk_tree_model_get (model, &parent, AUDIO_COMPOSITION_COLUMN_SIZE, &old_size, -1);
 
         humansize = xfburn_humanreadable_filesize (old_size - size);
@@ -869,6 +870,7 @@
 
         g_free (humansize);
       }
+      */
       
       gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
     }
@@ -1149,7 +1151,8 @@
 
   if ((stat (path, &s) == 0)) {
     gchar *basename = NULL;
-    //gchar *humansize = NULL;
+    gchar *humanlength = NULL;
+    int secs = 0;
     GtkTreePath *tree_path = NULL;
     gboolean ret;
 
@@ -1263,7 +1266,9 @@
         gtk_tree_store_append (GTK_TREE_STORE (model), iter, NULL);
       gdk_threads_leave ();
 
-      //humansize = xfburn_humanreadable_filesize (s.st_size);
+      /* (filesize - header_size) / bytes_per_seconds */
+      secs = (s.st_size - 44) / PCM_BYTES_PER_SECS;
+      humanlength = g_strdup_printf ("%2d:%2d", secs / 60, secs % 60);
 
       if (priv->n_tracks == 99) {
         gdk_threads_enter ();
@@ -1276,14 +1281,18 @@
       gtk_tree_store_set (GTK_TREE_STORE (model), iter,
                           AUDIO_COMPOSITION_COLUMN_POS, ++priv->n_tracks,
                           AUDIO_COMPOSITION_COLUMN_CONTENT, name,
-                          AUDIO_COMPOSITION_COLUMN_SIZE, (guint64) s.st_size, AUDIO_COMPOSITION_COLUMN_PATH, path,
-                          AUDIO_COMPOSITION_COLUMN_HUMANLENGTH, "00:00",
+                          AUDIO_COMPOSITION_COLUMN_SIZE, (guint64) s.st_size,
+                          AUDIO_COMPOSITION_COLUMN_PATH, path,
+                          AUDIO_COMPOSITION_COLUMN_LENGTH, secs,
+                          AUDIO_COMPOSITION_COLUMN_HUMANLENGTH, humanlength,
                           AUDIO_COMPOSITION_COLUMN_ARTIST, "",
                           AUDIO_COMPOSITION_COLUMN_TITLE, "",
                           AUDIO_COMPOSITION_COLUMN_TYPE, AUDIO_COMPOSITION_TYPE_RAW, -1);
       gdk_threads_leave ();
 
-      xfburn_disc_usage_add_size (XFBURN_DISC_USAGE (priv->disc_usage), s.st_size);
+      g_free (humanlength);
+
+      xfburn_disc_usage_add_size (XFBURN_DISC_USAGE (priv->disc_usage), secs);
       ret = TRUE;
     }
     //g_free (humansize);
@@ -1614,6 +1623,7 @@
       GtkTreeRowReference *reference = NULL;
       AudioCompositionEntryType type;
       guint64 size = 0;
+      int secs = 0;
       
       reference = (GtkTreeRowReference *) row->data;
     
@@ -1639,17 +1649,20 @@
 
       gtk_tree_model_get_iter (model, &iter_src, path_src);
       gtk_tree_model_get (model, &iter_src, AUDIO_COMPOSITION_COLUMN_TYPE, &type,
-                          AUDIO_COMPOSITION_COLUMN_SIZE, &size, -1);
+                                            AUDIO_COMPOSITION_COLUMN_LENGTH, &secs,
+                                            AUDIO_COMPOSITION_COLUMN_SIZE, &size, -1);
       
       /* copy entry */
       if ((iter = copy_entry_to (composition, &iter_src, iter_prev, position)) != NULL) {
         GtkTreePath *path_parent = gtk_tree_path_copy (path_src);
         
-        if (dc->action == GDK_ACTION_MOVE) {       
+        if (dc->action == GDK_ACTION_MOVE) {
           /* remove source entry */
+          /*
+           * This shouldn't be able to happen anymore w/o folders
           if (gtk_tree_path_up (path_parent) && path_where_insert && 
               !gtk_tree_path_is_descendant (path_where_insert, path_parent)) {
-            /* update parent size and humansize */
+            // update parent size and humansize
             GtkTreeIter iter_parent;          
             guint64 old_size;
             
@@ -1659,10 +1672,11 @@
             gtk_tree_store_set (GTK_TREE_STORE (model), &iter_parent, 
                                 AUDIO_COMPOSITION_COLUMN_SIZE, old_size - size, -1);
           }
-        
+          */
           gtk_tree_store_remove (GTK_TREE_STORE (model), &iter_src);
+
         } else {
-          xfburn_disc_usage_add_size (XFBURN_DISC_USAGE (priv->disc_usage), size);
+          xfburn_disc_usage_add_size (XFBURN_DISC_USAGE (priv->disc_usage), secs);
         }
         
         gtk_tree_path_free (path_parent);

Modified: xfburn/trunk/xfburn/xfburn-audio-disc-usage.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-audio-disc-usage.c	2008-09-04 22:57:18 UTC (rev 5359)
+++ xfburn/trunk/xfburn/xfburn-audio-disc-usage.c	2008-09-05 04:39:27 UTC (rev 5360)
@@ -49,19 +49,15 @@
 
 XfburnDiscLabels audiodiscsizes[] = {
   {
-  200 *1024 * 1024, "200MB CD"},
+  200 *1024 * 1024 / PCM_BYTES_PER_SECS, "200MB / 19min CD"},
   {
-  681984000, "650MB CD"},
+  681984000 / PCM_BYTES_PER_SECS, "650MB / 69min CD"},
   {
-  737280000, "700MB CD"},
+  737280000 / PCM_BYTES_PER_SECS, "700MB / 69min CD"},
   {
-  829440000, "800MB CD"},
+  829440000 / PCM_BYTES_PER_SECS, "800MB / 78min CD"},
   {
-  912384000, "900MB CD"},
-  {
-  G_GINT64_CONSTANT(0x1182a0000), "4.3GB DVD"}, /* 4 700 372 992 */
-  {
-  G_GINT64_CONSTANT(0x1fd3e0000), "7.9GB DVD"}, /* 8 543 666 176 */
+  912384000 / PCM_BYTES_PER_SECS, "900MB / 86min CD"},
 };
 
 /*******************************/
@@ -105,6 +101,9 @@
   pklass = XFBURN_DISC_USAGE_CLASS(klass);
   
   pklass->labels = parent_class->labels = audiodiscsizes;
+  pklass->num_labels = parent_class->num_labels = G_N_ELEMENTS (audiodiscsizes);
+  //DBG ("labels @ %p", pklass);
+  //DBG ("num_labels @ %p = %d", &(pklass->num_labels), G_N_ELEMENTS (audiodiscsizes));
   pklass->update_size = parent_class->update_size = xfburn_audio_disc_usage_update_size;
   pklass->can_burn = parent_class->can_burn = can_burn;
 }
@@ -120,7 +119,7 @@
 xfburn_audio_disc_usage_update_size (XfburnDiscUsage * disc_usage)
 {
   gfloat fraction;
-  gchar *size;
+  gchar *len;
 
   fraction = disc_usage->size / audiodiscsizes[gtk_combo_box_get_active (GTK_COMBO_BOX (disc_usage->combo))].size;
   if (fraction > 1.0)
@@ -131,13 +130,13 @@
   gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (disc_usage->progress_bar), fraction > 1.0 ? 1.0 : fraction);
 
   if (xfburn_settings_get_boolean ("human-readable-units", TRUE))
-    size = xfburn_humanreadable_filesize ((guint64) disc_usage->size);
+    len = g_strdup_printf ("%02llu:%02llus", ((guint64) disc_usage->size) / 60, ((guint64) disc_usage->size) % 60);
   else
-    size = g_strdup_printf ("%.0lf B", disc_usage->size);
+    len = g_strdup_printf ("%.0lf secs", disc_usage->size);
 
-  gtk_progress_bar_set_text (GTK_PROGRESS_BAR (disc_usage->progress_bar), size);
+  gtk_progress_bar_set_text (GTK_PROGRESS_BAR (disc_usage->progress_bar), len);
 
-  g_free (size);
+  g_free (len);
 }
 
 static gboolean

Modified: xfburn/trunk/xfburn/xfburn-data-disc-usage.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-data-disc-usage.c	2008-09-04 22:57:18 UTC (rev 5359)
+++ xfburn/trunk/xfburn/xfburn-data-disc-usage.c	2008-09-05 04:39:27 UTC (rev 5360)
@@ -105,6 +105,7 @@
   pklass = XFBURN_DISC_USAGE_CLASS(klass);
   
   pklass->labels = parent_class->labels = datadiscsizes;
+  pklass->num_labels = G_N_ELEMENTS (datadiscsizes);
   pklass->update_size = parent_class->update_size = xfburn_data_disc_usage_update_size;
   pklass->can_burn = parent_class->can_burn = can_burn;
 }

Modified: xfburn/trunk/xfburn/xfburn-disc-usage.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-disc-usage.c	2008-09-04 22:57:18 UTC (rev 5359)
+++ xfburn/trunk/xfburn/xfburn-disc-usage.c	2008-09-05 04:39:27 UTC (rev 5360)
@@ -47,23 +47,22 @@
 
 #define DEFAULT_DISK_SIZE_LABEL 2
 #define LAST_CD_LABEL 4
-#define NUM_LABELS 7
 
 XfburnDiscLabels testdiscsizes[] = {
   {
   1, "200MB CD"},
   {
-  10, "650MB CD"},
+  100, "650MB CD"},
   {
-  100, "700MB CD"},
+  10000, "700MB CD"},
   {
-  1000, "800MB CD"},
+  1000000, "800MB CD"},
   {
-  10000, "900MB CD"},
+  100000000, "900MB CD"},
   {
-  100000, "4.3GB DVD"},
+  G_GINT64_CONSTANT (10000000000), "4.3GB DVD"},
   {
-  1000000, "7.9GB DVD"},
+  G_GINT64_CONSTANT (1000000000000), "7.9GB DVD"},
 };
 
 /* signals */
@@ -121,6 +120,7 @@
   klass->update_size = update_size_default;
   klass->can_burn = can_burn_default;
   klass->labels = testdiscsizes;
+  klass->num_labels = G_N_ELEMENTS (testdiscsizes);
 }
 
 static void
@@ -137,8 +137,9 @@
   gtk_widget_show (disc_usage->progress_bar);
 
   disc_usage->combo = gtk_combo_box_new_text ();
-  for (i = 0; i < NUM_LABELS; i++)
+  for (i = 0; i < class->num_labels; i++) {
     gtk_combo_box_append_text (GTK_COMBO_BOX (disc_usage->combo), class->labels[i].label);
+  }
   gtk_combo_box_set_active (GTK_COMBO_BOX (disc_usage->combo), DEFAULT_DISK_SIZE_LABEL);
   gtk_box_pack_start (GTK_BOX (disc_usage), disc_usage->combo, FALSE, FALSE, BORDER);
   gtk_widget_show (disc_usage->combo);
@@ -194,10 +195,10 @@
 
   if (!manual) {
     i = 0;
-    while (i < NUM_LABELS  &&  disc_usage->size > class->labels[i].size) {
+    while (i < class->num_labels  &&  disc_usage->size > class->labels[i].size) {
       i++;
     }
-    gtk_combo_box_set_active (GTK_COMBO_BOX (disc_usage->combo), (i<NUM_LABELS ? i: i-1));
+    gtk_combo_box_set_active (GTK_COMBO_BOX (disc_usage->combo), (i<class->num_labels ? i: i-1));
   }
 
   gtk_widget_set_sensitive (disc_usage->button, class->can_burn (disc_usage));

Modified: xfburn/trunk/xfburn/xfburn-disc-usage.h
===================================================================
--- xfburn/trunk/xfburn/xfburn-disc-usage.h	2008-09-04 22:57:18 UTC (rev 5359)
+++ xfburn/trunk/xfburn/xfburn-disc-usage.h	2008-09-05 04:39:27 UTC (rev 5360)
@@ -56,6 +56,7 @@
 {
   GtkHBoxClass parent_class;
   XfburnDiscLabels *labels;
+  int num_labels;
   
   /* signals */
   void (*begin_burn) (XfburnDiscUsage *du);

Modified: xfburn/trunk/xfburn/xfburn-global.h
===================================================================
--- xfburn/trunk/xfburn/xfburn-global.h	2008-09-04 22:57:18 UTC (rev 5359)
+++ xfburn/trunk/xfburn/xfburn-global.h	2008-09-05 04:39:27 UTC (rev 5360)
@@ -44,4 +44,6 @@
 
 #define XFBURN_FIFO_DEFAULT_SIZE 4096 /* in kb/s */
 
+#define PCM_BYTES_PER_SECS 176400
+
 #endif




More information about the Goodies-commits mailing list