diff --git a/veejay-current/veejay-client/share/gveejay.reloaded.glade b/veejay-current/veejay-client/share/gveejay.reloaded.glade index 7032e720..3ab2f10c 100644 --- a/veejay-current/veejay-client/share/gveejay.reloaded.glade +++ b/veejay-current/veejay-client/share/gveejay.reloaded.glade @@ -1,22 +1,22 @@ - + False - + - + False - + - + @@ -142,9 +142,6 @@ True icon_stream.png - - - True @@ -1620,6 +1617,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True @@ -1701,6 +1740,9 @@ + + + @@ -1752,9 +1794,6 @@ Image Calibration True - - - True @@ -2545,6 +2584,9 @@ + + + @@ -2594,9 +2636,6 @@ 400 icon_stream.png - - - 340 @@ -2958,6 +2997,9 @@ + + + @@ -2969,9 +3011,6 @@ dialog - - - True @@ -3212,6 +3251,9 @@ veejay_connection_close + + + @@ -3389,17 +3431,22 @@ 1 10 - + 1000000 1 10 - + -1 100 1 10 + + 1000000 + 1 + 10 + 65535 1 @@ -3477,9 +3524,6 @@ dialog - - - True @@ -4333,6 +4377,9 @@ button117 + + + @@ -4346,9 +4393,6 @@ dialog - - - True @@ -4722,6 +4766,9 @@ vims_bundles_close + + + @@ -4745,9 +4792,6 @@ False Reloaded veejay-icon.png - - - True @@ -11495,8 +11539,10 @@ True start 6 - transition_shap + number + transition_shape_adj 1 + True @@ -11510,7 +11556,10 @@ 200 True True - transition_lengt + number + transition_sample_length_adj + 1 + True @@ -13027,9 +13076,9 @@ - + Enabled - tag_transition_active + stream_transition_active True True False @@ -13055,15 +13104,17 @@ - - transition_shape + + stream_transition_shape True True start 6 0 - transition_shap + number + transition_shape_adj 1 + True @@ -13084,13 +13135,15 @@ - - transition_length + + stream_transition_length 200 True True 0 - transition_lengt + number + transition_stream_length_adj + True @@ -19509,6 +19562,9 @@ Events may not always be triggered if veejay is configured to keep in sync (hard + + + diff --git a/veejay-current/veejay-client/src/vj-api.c b/veejay-current/veejay-client/src/vj-api.c index d5fb366f..4b7160fa 100644 --- a/veejay-current/veejay-client/src/vj-api.c +++ b/veejay-current/veejay-client/src/vj-api.c @@ -729,9 +729,9 @@ static struct { "transition_active", WIDGET_SAMPLE_TRANSITION_ACTIVE }, { "transition_length", WIDGET_SAMPLE_TRANSITION_LENGTH }, { "transition_shape", WIDGET_SAMPLE_TRANSITION_SHAPE }, - { "tag_transition_active", WIDGET_STREAM_TRANSITION_ACTIVE }, - { "tag_transition_length", WIDGET_STREAM_TRANSITION_LENGTH }, - { "tag_transition_shape", WIDGET_STREAM_TRANSITION_SHAPE }, + { "stream_transition_active", WIDGET_STREAM_TRANSITION_ACTIVE }, + { "stream_transition_length", WIDGET_STREAM_TRANSITION_LENGTH }, + { "stream_transition_shape", WIDGET_STREAM_TRANSITION_SHAPE }, { "button_offline_stop_sample", WIDGET_OFFLINE_STOP_SAMPLE }, { "button_offline_start_sample", WIDGET_OFFLINE_START_SAMPLE }, { "spin_bufferedstreamid", WIDGET_BUFFEREDSTREAMID }, @@ -3947,66 +3947,91 @@ static void update_record_tab(int pm) ******************************************************/ static void update_current_slot_transition_state(int * history, int pm) { + int sl = info->status_lock; + if (history[SAMPLE_TRANSITION_ACTIVE] != info->status_tokens[SAMPLE_TRANSITION_ACTIVE]){ + info->status_lock = 1; + if( pm == MODE_STREAM ) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget_cache[WIDGET_STREAM_TRANSITION_ACTIVE]), info->status_tokens[SAMPLE_TRANSITION_ACTIVE]); } else if ( pm == MODE_SAMPLE ) { - if( history[SAMPLE_TRANSITION_ACTIVE] != info->status_tokens[SAMPLE_TRANSITION_ACTIVE] ) { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget_cache[WIDGET_SAMPLE_TRANSITION_ACTIVE]), - info->status_tokens[SAMPLE_TRANSITION_ACTIVE]); - } + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget_cache[WIDGET_SAMPLE_TRANSITION_ACTIVE]), + info->status_tokens[SAMPLE_TRANSITION_ACTIVE]); } } if( history[SAMPLE_TRANSITION_LENGTH] != info->status_tokens[SAMPLE_TRANSITION_LENGTH] ) { - //Two widgets for one signal handler : block signal propagations. /* Block transitions widgets "value-changed" signal to prevent propagation */ guint signal_id = g_signal_lookup("value-changed", GTK_TYPE_SPIN_BUTTON); - gpointer widget_stl = (gpointer)widget_cache[WIDGET_SAMPLE_TRANSITION_LENGTH]; - gulong handler_stl = g_signal_handler_find( widget_stl, - G_SIGNAL_MATCH_ID, - signal_id, - 0, NULL, NULL, NULL ); - - if (handler_stl){ g_signal_handler_block(widget_stl, handler_stl); } if( pm == MODE_STREAM ) { - gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget_cache[WIDGET_STREAM_TRANSITION_LENGTH]), + gpointer widget_stl = (gpointer)widget_cache[WIDGET_STREAM_TRANSITION_LENGTH]; + gulong handler_stl = g_signal_handler_find( widget_stl, + G_SIGNAL_MATCH_ID, + signal_id, + 0, NULL, NULL, NULL ); + + if (handler_stl) g_signal_handler_block(widget_stl, handler_stl); + + gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget_stl), (gdouble) info->status_tokens[SAMPLE_TRANSITION_LENGTH]); + + if (handler_stl) g_signal_handler_unblock(widget_stl, handler_stl); + } else if ( pm == MODE_SAMPLE ) { - update_spin_range2( widget_stl, - (gdouble) info->status_tokens[SAMPLE_TRANSITION_LENGTH], + gpointer widget_stl = (gpointer)widget_cache[WIDGET_SAMPLE_TRANSITION_LENGTH]; + gulong handler_stl = g_signal_handler_find( widget_stl, + G_SIGNAL_MATCH_ID, + signal_id, + 0, NULL, NULL, NULL ); + if (handler_stl) g_signal_handler_block(widget_stl, handler_stl); + + update_spin_range2( GTK_SPIN_BUTTON(widget_stl), + (gdouble) info->status_tokens[SAMPLE_START], info->status_tokens[SAMPLE_END], info->status_tokens[SAMPLE_TRANSITION_LENGTH] ); + + if (handler_stl) g_signal_handler_unblock(widget_stl, handler_stl); } - - if (handler_stl) { g_signal_handler_unblock(widget_stl, handler_stl); } } - if( history[SAMPLE_TRANSITION_SHAPE] != info->status_tokens[SAMPLE_TRANSITION_SHAPE]) { /* Block transitions widgets "value-changed" signal to prevent propagation */ - guint signal_id = g_signal_lookup("value-changed", GTK_TYPE_SPIN_BUTTON); - gpointer widget_sts = (gpointer)widget_cache[WIDGET_SAMPLE_TRANSITION_SHAPE]; - gulong handler_sts = g_signal_handler_find( widget_sts, - G_SIGNAL_MATCH_ID, - signal_id, - 0, NULL, NULL, NULL ); - - if (handler_sts){ g_signal_handler_block(widget_sts, handler_sts); } + info->status_lock = 1; if( pm == MODE_STREAM ) { - gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget_cache[WIDGET_STREAM_TRANSITION_SHAPE]), - (gdouble) info->status_tokens[SAMPLE_TRANSITION_SHAPE]); - } else if ( pm == MODE_SAMPLE ) { - gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget_sts), (gdouble) info->status_tokens[SAMPLE_TRANSITION_SHAPE]); - } + gpointer widget_sts = (gpointer)widget_cache[WIDGET_STREAM_TRANSITION_SHAPE]; + gulong handler_sts = g_signal_handler_find( widget_sts, + G_SIGNAL_MATCH_ID, + signal_id, + 0, NULL, NULL, NULL ); - if (handler_sts) { g_signal_handler_unblock(widget_sts, handler_sts); } + if (handler_sts) g_signal_handler_block(widget_sts, handler_sts); + + gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget_sts), + (gdouble) info->status_tokens[SAMPLE_TRANSITION_SHAPE]); + + if (handler_sts) g_signal_handler_unblock(widget_sts, handler_sts); + + } else if ( pm == MODE_SAMPLE ) { + gpointer widget_sts = (gpointer)widget_cache[WIDGET_SAMPLE_TRANSITION_SHAPE]; + gulong handler_sts = g_signal_handler_find( widget_sts, + G_SIGNAL_MATCH_ID, + signal_id, + 0, NULL, NULL, NULL ); + + if (handler_sts) g_signal_handler_block(widget_sts, handler_sts); + + gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget_sts), + (gdouble) info->status_tokens[SAMPLE_TRANSITION_SHAPE]); + + if (handler_sts) g_signal_handler_unblock(widget_sts, handler_sts); + } } + info->status_lock = sl; } /******************************************************