[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