0001 function [data] = vb_trial_extractor_preview_trial(data, view_type)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 if ~exist('data', 'var')
0020 error('data is a required parameter.');
0021 end
0022 if ~exist('view_type', 'var')
0023 view_type = 0;
0024 end
0025
0026
0027
0028
0029
0030 H = data.H;
0031
0032 if isempty(data.continuous_file), return; end
0033 org_file = vb_continuous_file_get_filename(data.continuous_file);
0034 if exist(org_file, 'file') ~= 2
0035 return;
0036 end
0037 trial_set = data.trial_list(data.showing_trial_ix);
0038 trial_list_sec = vb_trial_extractor_convert_trial_into_sec(data, trial_set);
0039
0040 data_ch_list = data.view_data_ch_list;
0041 ext_trig_ch_list = [];
0042
0043
0044 proc_parm_list = [];
0045 selected_trig = [];
0046 val = get(H.trigger_list_listbox, 'Value');
0047 if ~isempty(val) && ~isempty(data.trigger_list)
0048 selected_trig = {data.trigger_list{val}};
0049 end
0050
0051
0052 for k=1:length(selected_trig)
0053 trig_parm = vb_trigger_get_parameter(selected_trig{k});
0054 trig_ch_list{k,1} = trig_parm.status_ch{1};
0055
0056 if isfield(trig_parm, 'status_mask') && isfield(trig_parm, 'status_offset')
0057 proc_parm.type = 'digital_data_adjustment';
0058 proc_parm.ch_name = trig_parm.status_ch{1};
0059 proc_parm.parm.bitmask = trig_parm.status_mask;
0060 proc_parm.parm.offset = trig_parm.status_offset;
0061 proc_parm_list{length(proc_parm_list)+1} = proc_parm;
0062 end
0063 end
0064
0065 if view_type == 0
0066
0067 for k=1:size(data.trigger_list, 2)
0068 trig = vb_trigger_get_parameter(data.trigger_list{k});
0069 ext_trig_ch_list = [ext_trig_ch_list; trig.status_ch(:)];
0070 end
0071 if ~get(H.view_trial_with_data_check, 'Value')
0072 data_ch_list = [];
0073 end
0074
0075 elseif view_type == 1
0076 val = get(H.trigger_channel_listbox, 'Value');
0077 if ~isempty(val)
0078 list = get(H.trigger_channel_listbox, 'String');
0079 ext_trig_ch_list = list(val);
0080 trig_ch_list = [];
0081 proc_parm_list = [];
0082 trial_list_sec = [];
0083 end
0084 if ~get(H.view_trig_with_data_check, 'Value')
0085 data_ch_list = [];
0086 end
0087 elseif view_type == 2
0088 val = get(H.trigger_list_listbox, 'Value');
0089 if ~isempty(val)
0090 for k=1:size(val,2)
0091 trig = vb_trigger_get_parameter(data.trigger_list{val(k)});
0092 ext_trig_ch_list = [ext_trig_ch_list; trig.status_ch(:)];
0093 end
0094 trial_list_sec = [];
0095 data_ch_list = [];
0096 end
0097 end
0098
0099
0100 [fig] = vb_timeseries_viewer_new(org_file, 30, data_ch_list, ...
0101 trial_list_sec, unique(ext_trig_ch_list), proc_parm_list);
0102
0103
0104 labels = cell(0);
0105 if ~isempty(trial_list_sec)
0106 title = [];
0107 label_strs = get(H.tag_listbox, 'String');
0108 label_selected = get(H.tag_listbox, 'Value');
0109 Nselected = length(label_selected);
0110
0111 for k=1:Nselected
0112 title = [title, label_strs{label_selected(k)} ','];
0113 end
0114 title(end) = '';
0115 set(fig, 'Name', ['Label : (' title ')']);
0116
0117 if Nselected
0118 labels = label_strs(label_selected);
0119 end
0120 end
0121
0122
0123 if ~isfield(data, 'viewer')
0124 data.viewer = cell(0);
0125 end
0126
0127 s = struct;
0128 s.figure = fig;
0129 s.labels = labels;
0130 data.viewer{length(data.viewer)+1} = s;
0131
0132
0133
0134
0135 if nargout ~= 1
0136 error('function caller should receive vb_trial_extractor object.');
0137 end