X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fpage_clips.c;h=173f97e87adb1464fb80119e6bcb07eec9815e5e;hb=0984db69a0f1bf22495be70aa06b96217d5fb0b8;hp=d4251c6606177b24276d167ff4931bb15a674cd6;hpb=a5fd42fcba5ce6d680f44c5c8e01c44deae91ed2;p=rugen diff --git a/src/page_clips.c b/src/page_clips.c index d4251c6..173f97e 100644 --- a/src/page_clips.c +++ b/src/page_clips.c @@ -155,7 +155,13 @@ static void list_queue( page_clips this, int clip ) GtkCellRenderer *renderer; GtkTreeViewColumn *column; - list_store = gtk_list_store_new( 6, G_TYPE_BOOLEAN, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_STRING, G_TYPE_INT ); + list_store = gtk_list_store_new( 6, + G_TYPE_BOOLEAN, + G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_INT ); gtk_tree_view_set_model( GTK_TREE_VIEW( treeview ), GTK_TREE_MODEL( list_store ) ); renderer = gtk_cell_renderer_toggle_new( ); @@ -188,9 +194,17 @@ static void list_queue( page_clips this, int clip ) for ( index = 0; index < mvcp_list_count( list ); index ++ ) { + char tc1[12], tc2[12], tc3[12]; mvcp_list_get( list, index, &entry ); gtk_list_store_append( list_store, &iter ); - gtk_list_store_set( list_store, &iter, 0, index == clip, 1, ( int )entry.in, 2, ( int )entry.out, 3, ( int )entry.size, 4, entry.full, 5, entry.clip, -1 ); + gtk_list_store_set( list_store, &iter, + 0, index == clip, + 1, frames2tc( entry.in, entry.fps, tc1), + 2, frames2tc( entry.out, entry.fps, tc2), + 3, frames2tc( entry.size, entry.fps, tc3), + 4, entry.full, + 5, entry.clip, + -1 ); } this->clip = clip; @@ -262,8 +276,20 @@ static gboolean on_ok( GtkWidget *dummy, gpointer data ) mvcp_unit_append( this->dv, dv1394app_get_selected_unit( this->app ), temp, -1, -1 ); break; case 3: - mvcp_unit_clip_insert( this->dv, dv1394app_get_selected_unit( this->app ), mvcp_relative, 1, temp, -1, -1 ); + { + GtkWidget *widget = lookup_widget( this_page_get_widget( this ), "treeview1" ); + GtkTreeSelection *select = gtk_tree_view_get_selection( GTK_TREE_VIEW( widget ) ); + GtkTreeModel *model; + GtkTreeIter iter; + int clip; + + if ( gtk_tree_selection_get_selected( select, &model, &iter ) ) + { + gtk_tree_model_get( model, &iter, 5, &clip, -1 ); + mvcp_unit_clip_insert( this->dv, dv1394app_get_selected_unit( this->app ), mvcp_absolute, clip, temp, -1, -1 ); + } break; + } } free( temp ); @@ -392,21 +418,51 @@ static gboolean on_refresh( GtkWidget *button, gpointer data ) static gboolean on_up( GtkWidget *dummy, gpointer data ) { page_clips this = data; - mvcp_unit_clip_move( this->dv, dv1394app_get_selected_unit( this->app ), mvcp_relative, 0, mvcp_relative, -1 ); + GtkWidget *widget = lookup_widget( this_page_get_widget( this ), "treeview1" ); + GtkTreeSelection *select = gtk_tree_view_get_selection( GTK_TREE_VIEW( widget ) ); + GtkTreeModel *model; + GtkTreeIter iter; + int clip; + + if ( gtk_tree_selection_get_selected( select, &model, &iter ) ) + { + gtk_tree_model_get( model, &iter, 5, &clip, -1 ); + mvcp_unit_clip_move( this->dv, dv1394app_get_selected_unit( this->app ), mvcp_absolute, clip, mvcp_absolute, clip - 1 < 0 ? 0 : clip - 1 ); + } return TRUE; } static gboolean on_down( GtkWidget *dummy, gpointer data ) { page_clips this = data; - mvcp_unit_clip_move( this->dv, dv1394app_get_selected_unit( this->app ), mvcp_relative, 0, mvcp_relative, 1 ); + GtkWidget *widget = lookup_widget( this_page_get_widget( this ), "treeview1" ); + GtkTreeSelection *select = gtk_tree_view_get_selection( GTK_TREE_VIEW( widget ) ); + GtkTreeModel *model; + GtkTreeIter iter; + int clip; + + if ( gtk_tree_selection_get_selected( select, &model, &iter ) ) + { + gtk_tree_model_get( model, &iter, 5, &clip, -1 ); + mvcp_unit_clip_move( this->dv, dv1394app_get_selected_unit( this->app ), mvcp_absolute, clip, mvcp_absolute, clip + 1 ); + } return TRUE; } static gboolean on_remove( GtkWidget *dummy, gpointer data ) { page_clips this = data; - mvcp_unit_remove_current_clip( this->dv, dv1394app_get_selected_unit( this->app ) ); + GtkWidget *widget = lookup_widget( this_page_get_widget( this ), "treeview1" ); + GtkTreeSelection *select = gtk_tree_view_get_selection( GTK_TREE_VIEW( widget ) ); + GtkTreeModel *model; + GtkTreeIter iter; + int clip; + + if ( gtk_tree_selection_get_selected( select, &model, &iter ) ) + { + gtk_tree_model_get( model, &iter, 5, &clip, -1 ); + mvcp_unit_clip_remove( this->dv, dv1394app_get_selected_unit( this->app ), mvcp_absolute, clip ); + } return TRUE; }