introduce timecodes display
[rugen] / src / page_status.c
index bd8bd84..1ca9487 100644 (file)
@@ -51,45 +51,38 @@ static GtkWidget *this_page_get_widget( page );
 /** Show the status associated to a unit.
 */
 
+static char* status_to_text( mvcp_status status )
+{
+       switch( status->status )
+       {
+               case unit_offline:      return "offline";       break;
+               case unit_undefined:    return "undefined";     break;
+               case unit_not_loaded:   return "unloaded";      break;
+               case unit_stopped:      return "stopped";       break;
+               case unit_playing:      return "playing";       break;
+               case unit_paused:       return "paused";        break;
+               case unit_disconnected: return "disconnect";    break;
+               case unit_unknown:      return "unknown";       break;
+       }
+       return "unknown";
+}
+
 static int show_status( page_status this, mvcp_status status )
 {
        GtkWidget *widget = this_page_get_widget( ( page )this );
        char temp[ 1024 ] = "";
        char temp2[ 1024 ];
        char label_name[ 256 ];
+       char tc1[12], tc2[12], tc3[12];
 
-       sprintf( temp, "%05d %05d %05d %s [", status->in, status->position, status->out, status->clip );
-       
-       switch( status->status )
-       {
-               case unit_offline:
-                       strcat( temp, "offline" );
-                       break;
-               case unit_undefined:
-                       strcat( temp, "undefined" );
-                       break;
-               case unit_not_loaded:
-                       strcat( temp, "unloaded" );
-                       break;
-               case unit_stopped:
-                       strcat( temp, "stopped" );
-                       break;
-               case unit_playing:
-                       strcat( temp, "playing" );
-                       break;
-               case unit_paused:
-                       strcat( temp, "paused" );
-                       break;
-               case unit_disconnected:
-                       strcat( temp, "disconnect" );
-                       break;
-               default:
-                       strcat( temp, "unknown" );
-                       break;
-       }
+       sprintf( temp, "[%s] IN:%s POS:%s OUT:%s %s",
+               status_to_text( status ),
+               frames2tc(status->in,       status->fps, tc1),
+               frames2tc(status->position, status->fps, tc2),
+               frames2tc(status->out,      status->fps, tc3),
+               status->clip
+       );
 
-       strcat( temp, "]" );
-       
        sprintf( label_name, "label_unit_%d", status->unit );
 
        gdk_threads_enter();