0001 function [data] = vb_trial_extractor_update_screen(data)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 if ~exist('data', 'var')
0019 error('data is a required parameter.');
0020 end
0021
0022
0023
0024
0025 H = data.H;
0026
0027
0028
0029
0030 if ~isempty(data.continuous_file)
0031 set(H.continuous_file_edit, 'String', vb_continuous_file_get_filename(data.continuous_file));
0032 ch_list = vb_continuous_file_get_ch_list(data.continuous_file, 'EXTRA');
0033 set(H.trigger_channel_listbox, 'String', sort(ch_list));
0034 freq = vb_continuous_file_get_sample_freq(data.continuous_file);
0035 set(H.sample_freq_text, 'String', num2str(freq));
0036
0037 selected = get(H.trigger_channel_listbox, 'Value');
0038 if length(ch_list) < selected
0039 set(H.trigger_channel_listbox, 'Value', 1);
0040 end
0041 else
0042 set(H.sample_freq_text, 'String', '');
0043 set(H.trigger_channel_listbox, 'String', '');
0044 end
0045
0046
0047 trial_setting = data.trial_setting;
0048 pretrigger_ms = trial_setting.pretrigger_ms;
0049 posttrigger_ms = trial_setting.posttrigger_ms;
0050 minimum_distance_ms = trial_setting.minimum_distance_ms;
0051
0052 if pretrigger_ms
0053 set(H.pretrigger_length_edit, 'String', num2str(pretrigger_ms));
0054 else
0055 set(H.pretrigger_length_edit, 'String', '');
0056 end
0057 if posttrigger_ms
0058 set(H.posttrigger_length_edit, 'String', num2str(posttrigger_ms));
0059 else
0060 set(H.posttrigger_length_edit, 'String', '');
0061 end
0062 if minimum_distance_ms >= 0
0063 set(H.minimum_distance_edit, 'String', num2str(minimum_distance_ms));
0064 else
0065 set(H.minimum_distance_edit, 'String', '');
0066 end
0067
0068
0069
0070
0071
0072
0073 type_selected = get(H.trigger_type_popup, 'Value');
0074 type_items = get(H.trigger_type_popup, 'String');
0075 trig_type = type_items{type_selected};
0076
0077
0078 ch_name_list = get(H.trigger_channel_listbox, 'String');
0079 selected_row = length(get(H.trigger_channel_listbox, 'Value'));
0080 if isempty(ch_name_list) || ...
0081 selected_row == 0
0082 set(H.trigger_add_push, 'Enable', 'off');
0083 set(H.trigger_view_push, 'Enable', 'off');
0084 else
0085 set(H.trigger_add_push, 'Enable', 'on');
0086 set(H.trigger_view_push, 'Enable', 'on');
0087 if selected_row >= 2 && ~strcmp(trig_type, 'multi channel pattern')
0088 set(H.trigger_add_push, 'Enable', 'off');
0089 end
0090 end
0091
0092
0093 set([H.analog_level_edit, H.integer_level_edit, ...
0094 H.bit_level_edit, H.trigger_level_text, ...
0095 H.flag_pattern_push], ...
0096 'Visible', 'off');
0097 set([H.optional_parm_push, H.advanced_parm_push], 'Enable', 'off');
0098 switch(trig_type)
0099 case 'analog'
0100 set(H.trigger_slope_popup, 'Enable', 'on');
0101 set(H.trigger_slope_popup, 'String', {'low_to_high', 'high_to_low'});
0102 set(H.trigger_level_text, 'String', 'Level[0-1]', 'Visible', 'on');
0103 set(H.analog_level_edit, 'Visible', 'on');
0104 case 'voice'
0105 set(H.trigger_slope_popup, 'Enable', 'off');
0106 set(H.trigger_level_text, 'String', 'Level[0-1]');
0107 set(H.optional_parm_push, 'Enable', 'on');
0108 set(H.advanced_parm_push, 'Enable', 'on');
0109 case 'emg'
0110 set(H.trigger_slope_popup, 'Enable', 'off');
0111 set(H.trigger_level_text, 'String', 'Level[0-1]');
0112 set(H.optional_parm_push, 'Enable', 'on');
0113 set(H.advanced_parm_push, 'Enable', 'on');
0114 case 'integer'
0115 set(H.trigger_slope_popup, 'Enable', 'on');
0116 set(H.trigger_slope_popup, 'String', {'const_start', 'const_end'});
0117 set(H.trigger_level_text, 'String', 'Bit pattern(H>L)', 'Visible', 'on');
0118 set(H.integer_level_edit, 'Visible', 'on');
0119 set(H.optional_parm_push, 'Enable', 'on');
0120 case 'bit'
0121 set(H.trigger_slope_popup, 'Enable', 'on');
0122 set(H.trigger_slope_popup, 'String', {'low_to_high', 'high_to_low'});
0123 set(H.trigger_level_text, 'String', 'Bit number', 'Visible', 'on');
0124 set(H.bit_level_edit, 'Visible', 'on');
0125 set(H.optional_parm_push, 'Enable', 'on');
0126 case 'multi channel pattern'
0127 set(H.trigger_slope_popup, 'Enable', 'on');
0128 set(H.trigger_slope_popup, 'String', {'const_start', 'const_end'});
0129 set(H.trigger_level_text, 'String', 'Channel pattern', 'Visible', 'on');
0130 set(H.flag_pattern_push, 'Visible', 'on');
0131 end
0132
0133 Ntrigger = length(data.trigger_list);
0134 trig_list_str = cell(0);
0135 for k=1:Ntrigger
0136
0137 trig_list_str{k} = [sprintf('TRIGGER%d:', k), ...
0138 vb_trigger_get_brief_str(data.trigger_list{k})];
0139 end
0140 set(H.trigger_list_listbox, 'String', trig_list_str);
0141 if Ntrigger
0142 set(H.trigger_list_remove_push, 'Enable', 'on');
0143 set(H.trigger_list_view_push, 'Enable', 'on');
0144 set(H.trigger_edit_push, 'Enable', 'on');
0145
0146 else
0147 set(H.trigger_list_remove_push, 'Enable', 'off');
0148 set(H.trigger_list_view_push, 'Enable', 'off');
0149 set(H.trigger_edit_push, 'Enable', 'off');
0150 end
0151
0152
0153 if isnumeric(pretrigger_ms) && ...
0154 pretrigger_ms > 0 && ...
0155 isnumeric(posttrigger_ms) && ...
0156 posttrigger_ms > 0 && ...
0157 Ntrigger > 0
0158 set(H.trigger_detect_push, 'Enable', 'on');
0159 else
0160 set(H.trigger_detect_push, 'Enable', 'off');
0161 end
0162
0163
0164
0165
0166
0167
0168 Ntags = length(data.label_list);
0169 tag_name_list = cell(0);
0170 if Ntags
0171 for k=1:Ntags
0172 tag_name_list{k} = vb_tag_get_tag_name(data.label_list{k});
0173 end
0174 set(H.tag_remove_push, 'Enable', 'on');
0175 set(H.add_to_output_list_button, 'Enable', 'on');
0176 set(H.channel_selection_push, 'Enable', 'on');
0177 else
0178 set(H.tag_listbox, 'Value', 1);
0179 set(H.add_to_output_list_button, 'Enable', 'off');
0180 set(H.tag_remove_push, 'Enable', 'off');
0181 set(H.channel_selection_push, 'Enable', 'off');
0182 end
0183 set(H.tag_listbox, 'String', tag_name_list);
0184
0185
0186 data = vb_trial_extractor_show_tag_trial(data);
0187
0188
0189 Nselected_label = size(get(H.tag_listbox, 'Value'), 2);
0190 if isempty(get(H.tag_listbox, 'String'))
0191 Nselected_label = 0;
0192 end
0193
0194 Nselected_trials = size(get(H.trial_set_listbox, 'Value'), 2);
0195 if isempty(get(H.trial_set_listbox, 'String'))
0196 Nselected_trials = 0;
0197 end
0198
0199 set(H.trial_add_push, 'Enable', 'off');
0200 set(H.trial_edit_push, 'Enable', 'off');
0201 set(H.trial_remove_push, 'Enable', 'off');
0202 if Nselected_label == 1
0203 set(H.trial_add_push, 'Enable', 'on');
0204 end
0205 if Nselected_label == 1 && Nselected_trials == 1
0206 set(H.trial_edit_push, 'Enable', 'on');
0207 end
0208 if Nselected_label == 1 && Nselected_trials >= 1
0209 set(H.trial_remove_push, 'Enable', 'on');
0210 end
0211
0212
0213
0214
0215
0216 output_file_list = cell(0);
0217 Nfile = length(data.output_file);
0218 for k=1:Nfile
0219 output_file_list{k} = data.output_file{k}.output_file;
0220 end
0221 set(H.output_listbox, 'String', output_file_list);
0222 if Nfile
0223 set(H.output_settings_push, 'Enable', 'on');
0224 set(H.output_file_remove_push, 'Enable', 'on');
0225 set(H.output_file_push, 'Enable', 'on');
0226 else
0227 set(H.output_settings_push, 'Enable', 'off');
0228 set(H.output_listbox, 'String', '');
0229 set(H.output_file_remove_push, 'Enable', 'off');
0230 set(H.output_file_push, 'Enable', 'off');
0231 end
0232
0233
0234
0235
0236 if nargout ~= 1
0237 error('function caller should receive an application data.');
0238 end