guint context;
int unit;
int count;
+ struct page_t *parent_page;
}
*page_status, page_status_t;
/** 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 void format_status_string(char* buf, int size, mvcp_status status , char* sep)
+{
+ char tc1[12], tc2[12], tc3[12];
+
+ snprintf( buf, size,
+ "[%s]%sIN:%s%sPOS:%s%sOUT:%s%s%s%s",
+ status_to_text( status ), sep,
+ frames2tc(status->in, status->fps, tc1), sep,
+ frames2tc(status->position, status->fps, tc2), sep,
+ frames2tc(status->out, status->fps, tc3), sep,
+ status->clip, sep
+ );
+
+}
+
static int show_status( page_status this, mvcp_status status )
{
GtkWidget *widget = this_page_get_widget( ( page )this );
char temp2[ 1024 ];
char label_name[ 256 ];
- 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;
- }
-
- strcat( temp, "]" );
-
+ format_status_string(temp, sizeof(temp), status , "\n");
sprintf( label_name, "label_unit_%d", status->unit );
gdk_threads_enter();
gtk_label_set_text( GTK_LABEL( widget ), temp );
if ( status->unit == dv1394app_get_selected_unit( this->app ) )
{
+ format_status_string(temp, sizeof(temp), status , " ");
sprintf( temp2, "U%d - %s", status->unit, temp );
widget = lookup_widget( dv1394app_get_widget( this->app ), "statusbar" );
gtk_statusbar_pop( GTK_STATUSBAR( widget ), this->context );
{
page_status this = ( page_status )super;
if ( this->widget == NULL )
- this->widget = create_page_status( );
+ this->widget = this->parent_page->get_widget(this->parent_page);
return this->widget;
}
free( this );
}
-page page_status_init( dv1394app app )
+page page_status_init( dv1394app app, struct page_t *parent_page )
{
page_status this = calloc( 1, sizeof( page_status_t ) );
int index = 0;
GtkWidget *widget;
-
+
+ this->parent_page = parent_page;
this->parent.get_widget = this_page_get_widget;
this->parent.get_toolbar_info = this_page_get_toolbar_info;
this->parent.on_connect = this_page_on_connect;