Reloaded :Fix Crash updating "entry_samplename" playing "plain video"

Fix
* crash passing in plain video mode [/] and
* crash starting in plain video mode

Bonus, some comments...
This commit is contained in:
Jerome Blanchi aka d.j.a.y
2020-07-31 14:02:59 +02:00
parent 330a3e25b1
commit b4ac2c3c7f

View File

@@ -3939,6 +3939,13 @@ static void update_record_tab(int pm)
} }
} }
/******************************************************
* update_current_slot()
* update current slot specific widgets when updating
* the global information
*
* see update_globalinfo ()
******************************************************/
static void update_current_slot(int *history, int pm, int last_pm) static void update_current_slot(int *history, int pm, int last_pm)
{ {
gint update = 0; gint update = 0;
@@ -4008,18 +4015,10 @@ static void update_current_slot(int *history, int pm, int last_pm)
info->uc.reload_hint[HINT_ENTRY] = 1; info->uc.reload_hint[HINT_ENTRY] = 1;
info->uc.reload_hint[HINT_KF] = 1; info->uc.reload_hint[HINT_KF] = 1;
sample_gui_slot_t* gui_slot = find_gui_slot_by_sample(info->selected_slot->sample_id, info->selected_slot->sample_type);
if (gui_slot != NULL)
put_text( "entry_samplename", gtk_label_get_text( GTK_LABEL(gui_slot->title)) );
else
put_text( "entry_samplename", "" );
set_pm_page_label( info->status_tokens[CURRENT_ID], pm ); set_pm_page_label( info->status_tokens[CURRENT_ID], pm );
} }
/* Actions for stream */ /* Actions for stream mode*/
if( ( info->status_tokens[CURRENT_ID] != history[CURRENT_ID] || pm != last_pm ) && pm == MODE_STREAM ) if( ( info->status_tokens[CURRENT_ID] != history[CURRENT_ID] || pm != last_pm ) && pm == MODE_STREAM )
{ {
/* Is a solid color stream */ /* Is a solid color stream */
@@ -4045,9 +4044,9 @@ static void update_current_slot(int *history, int pm, int last_pm)
update_label_str( "playhint", "Streaming"); update_label_str( "playhint", "Streaming");
info->uc.reload_hint[HINT_KF] = 1; info->uc.reload_hint[HINT_KF] = 1;
} }/* End actions for stream mode */
/* Actions for sample */ /* Actions for sample mode*/
if( pm == MODE_SAMPLE ) if( pm == MODE_SAMPLE )
{ {
int marker_go = 0; int marker_go = 0;
@@ -4214,15 +4213,19 @@ static void update_current_slot(int *history, int pm, int last_pm)
(gdouble) info->status_tokens[SAMPLE_END], (gdouble) info->status_tokens[SAMPLE_END],
info->status_tokens[FRAME_NUM] ); info->status_tokens[FRAME_NUM] );
sample_gui_slot_t* gui_slot = find_gui_slot_by_sample(info->selected_slot->sample_id, info->selected_slot->sample_type);
if (gui_slot != NULL)
put_text( "entry_samplename", gtk_label_get_text( GTK_LABEL(gui_slot->title)) );
// update_spin_range( "spin_text_start", 0, n_frames ,0); // update_spin_range( "spin_text_start", 0, n_frames ,0);
// update_spin_range( "spin_text_end", 0, n_frames,n_frames ); // update_spin_range( "spin_text_end", 0, n_frames,n_frames );
} }
} }/* End of actions for sample mode */
if (update){ /* Block transitions widgets "value-changed" signal to prevent propagation */
if (pm == MODE_SAMPLE || pm == MODE_STREAM){
//block "value-changed" signal to prevent propagation
guint signal_id = g_signal_lookup("value-changed", GTK_TYPE_SPIN_BUTTON); guint signal_id = g_signal_lookup("value-changed", GTK_TYPE_SPIN_BUTTON);
gpointer widget_stl = (gpointer)widget_cache[WIDGET_SAMPLE_TRANSITION_LENGTH]; gpointer widget_stl = (gpointer)widget_cache[WIDGET_SAMPLE_TRANSITION_LENGTH];
@@ -4276,7 +4279,7 @@ static void update_current_slot(int *history, int pm, int last_pm)
if (handler_sts) { if (handler_sts) {
g_signal_handler_unblock(widget_sts, handler_sts); g_signal_handler_unblock(widget_sts, handler_sts);
} }
} }/* End block transitions wdg signals */
if( pm == MODE_SAMPLE || pm == MODE_STREAM ) { if( pm == MODE_SAMPLE || pm == MODE_STREAM ) {
if( history[CHAIN_FADE] != info->status_tokens[CHAIN_FADE] ) if( history[CHAIN_FADE] != info->status_tokens[CHAIN_FADE] )