[Rhythmbox-devel] Remaining time display / suggestion



Hi,

I couldn't find how to tell RB to display the remaining track time
instead of the elapsed time.

However, I noticed that rb_make_elapsed_time_string() in rb-util.c
contains already all code to construct both elapsed and remaining time
and return either of them.
I would like to ask what's wrong with displaying them both. It would
be nice to see both without switching a mode, something like the
attached diff.
Of course this renders the last argument of the function, gboolean
show_remaining, useless but this function is not really widely used,
so I assume it would not break a frozen API.

TIA,
Riggs
Index: lib/rb-util.c
===================================================================
--- lib/rb-util.c	(revision 5240)
+++ lib/rb-util.c	(working copy)
@@ -659,6 +659,7 @@
 {
 	int seconds = 0, minutes = 0, hours = 0;
 	int seconds2 = 0, minutes2 = 0, hours2 = 0;
+	int remaining, remaining_hours, remaining_minutes, remaining_seconds;
 
 	if (duration == 0)
 		return rb_make_duration_string (elapsed);
@@ -675,32 +676,23 @@
 		seconds = elapsed % 60;
 	}
 
-	if (show_remaining) {
-		int remaining = duration - elapsed;
-		int remaining_hours = remaining / (60 * 60);
-		int remaining_minutes = (remaining - (remaining_hours * 60 * 60)) / 60;
-		/* remaining could conceivably be negative. This would
-		 * be a bug, but the elapsed time will display right
-		 * with the abs(). */
-		int remaining_seconds = abs (remaining % 60);
-		if (hours2 == 0)
-			return g_strdup_printf (_("%d:%02d of %d:%02d remaining"),
-						remaining_minutes, remaining_seconds,
-						minutes2, seconds2);
-		else
-			return g_strdup_printf (_("%d:%02d:%02d of %d:%02d:%02d remaining"),
-						remaining_hours, remaining_minutes, remaining_seconds,
-						hours2, minutes2, seconds2);
-	} else {
-		if (hours == 0 && hours2 == 0)
-			return g_strdup_printf (_("%d:%02d of %d:%02d"),
-						minutes, seconds,
-						minutes2, seconds2);
-		else
-			return g_strdup_printf (_("%d:%02d:%02d of %d:%02d:%02d"),
-						hours, minutes, seconds,
-						hours2, minutes2, seconds2);
-	}
+	remaining = duration - elapsed;
+	remaining_hours = remaining / (60 * 60);
+	remaining_minutes = (remaining - (remaining_hours * 60 * 60)) / 60;
+	/* remaining could conceivably be negative. This would
+	 * be a bug, but the elapsed time will display right
+	 * with the abs(). */
+	remaining_seconds = abs (remaining % 60);
+	if (hours == 0 && hours2 == 0)
+		return g_strdup_printf (_("%d:%02d (-%d:%02d) of %d:%02d"),
+					minutes, seconds,
+					remaining_minutes, remaining_seconds,
+					minutes2, seconds2);
+	else
+		return g_strdup_printf (_("%d:%02d:%02d (-%d:%02d:%02d) of %d:%02d:%02d"),
+					hours, minutes, seconds,
+					remaining_hours, remaining_minutes, remaining_seconds,
+					hours2, minutes2, seconds2);
 }
 
 gboolean


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]