annotate Code/Descriptors/Matlab/MPEG7/FromWeb/VoiceSauce/vs_OutputToText.m @ 4:92ca03a8fa99 tip

Update to ICASSP 2013 benchmark
author Dawn Black
date Wed, 13 Feb 2013 11:02:39 +0000
parents
children
rev   line source
Dawn@4 1 function varargout = vs_OutputToText(varargin)
Dawn@4 2 % VS_OUTPUTTOTEXT M-file for vs_OutputToText.fig
Dawn@4 3 % VS_OUTPUTTOTEXT, by itself, creates a new VS_OUTPUTTOTEXT or raises
Dawn@4 4 % the existing
Dawn@4 5 % singleton*.
Dawn@4 6 %
Dawn@4 7 % H = VS_OUTPUTTOTEXT returns the handle to a new VS_OUTPUTTOTEXT or the handle to
Dawn@4 8 % the existing singleton*.
Dawn@4 9 %
Dawn@4 10 % VS_OUTPUTTOTEXT('CALLBACK',hObject,eventData,handles,...) calls the local
Dawn@4 11 % function named CALLBACK in VS_OUTPUTTOTEXT.M with the given input arguments.
Dawn@4 12 %
Dawn@4 13 % VS_OUTPUTTOTEXT('Property','Value',...) creates a new VS_OUTPUTTOTEXT or raises the
Dawn@4 14 % existing singleton*. Starting from the left, property value pairs are
Dawn@4 15 % applied to the GUI before vs_OutputToText_OpeningFcn gets called. An
Dawn@4 16 % unrecognized property name or invalid value makes property application
Dawn@4 17 % stop. All inputs are passed to vs_OutputToText_OpeningFcn via varargin.
Dawn@4 18 %
Dawn@4 19 % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
Dawn@4 20 % instance to run (singleton)".
Dawn@4 21 %
Dawn@4 22 % See also: GUIDE, GUIDATA, GUIHANDLES
Dawn@4 23
Dawn@4 24 % Edit the above text to modify the response to help vs_OutputToText
Dawn@4 25
Dawn@4 26 % Last Modified by GUIDE v2.5 08-Oct-2009 00:50:59
Dawn@4 27
Dawn@4 28 % Begin initialization code - DO NOT EDIT
Dawn@4 29 gui_Singleton = 1;
Dawn@4 30 gui_State = struct('gui_Name', mfilename, ...
Dawn@4 31 'gui_Singleton', gui_Singleton, ...
Dawn@4 32 'gui_OpeningFcn', @vs_OutputToText_OpeningFcn, ...
Dawn@4 33 'gui_OutputFcn', @vs_OutputToText_OutputFcn, ...
Dawn@4 34 'gui_LayoutFcn', [] , ...
Dawn@4 35 'gui_Callback', []);
Dawn@4 36 if nargin && ischar(varargin{1})
Dawn@4 37 gui_State.gui_Callback = str2func(varargin{1});
Dawn@4 38 end
Dawn@4 39
Dawn@4 40 if nargout
Dawn@4 41 [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
Dawn@4 42 else
Dawn@4 43 gui_mainfcn(gui_State, varargin{:});
Dawn@4 44 end
Dawn@4 45 % End initialization code - DO NOT EDIT
Dawn@4 46
Dawn@4 47
Dawn@4 48 % --- Executes just before vs_OutputToText is made visible.
Dawn@4 49 function vs_OutputToText_OpeningFcn(hObject, eventdata, handles, varargin)
Dawn@4 50 % This function has no output args, see OutputFcn.
Dawn@4 51 % hObject handle to figure
Dawn@4 52 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 53 % handles structure with handles and user data (see GUIDATA)
Dawn@4 54 % varargin command line arguments to vs_OutputToText (see VARARGIN)
Dawn@4 55
Dawn@4 56 % Choose default command line output for vs_OutputToText
Dawn@4 57 handles.output = hObject;
Dawn@4 58
Dawn@4 59 if (~isfield(handles, 'VSHandle'))
Dawn@4 60 VSHandle = VoiceSauce;
Dawn@4 61 handles.VSHandle = VSHandle;
Dawn@4 62 end
Dawn@4 63
Dawn@4 64 % restore the variables from initialization
Dawn@4 65 setGUIVariables(handles);
Dawn@4 66
Dawn@4 67 set(handles.uipanel_Segments,'SelectionChangeFcn',@segments_buttongroup_SelectionChangeFcn);
Dawn@4 68 set(handles.uipanel_OutputOptions,'SelectionChangeFcn',@outputoptions_buttongroup_SelectionChangeFcn);
Dawn@4 69 set(handles.listbox_Parameters_matfilelist, 'KeyPressFcn', @matfiles_listbox_KeyPressFcn);
Dawn@4 70
Dawn@4 71 % Update handles structure
Dawn@4 72 guidata(hObject, handles);
Dawn@4 73
Dawn@4 74 % UIWAIT makes vs_OutputToText wait for user response (see UIRESUME)
Dawn@4 75 % uiwait(handles.figure_OutputToText);
Dawn@4 76
Dawn@4 77
Dawn@4 78 % --- Outputs from this function are returned to the command line.
Dawn@4 79 function varargout = vs_OutputToText_OutputFcn(hObject, eventdata, handles)
Dawn@4 80 % varargout cell array for returning output args (see VARARGOUT);
Dawn@4 81 % hObject handle to figure
Dawn@4 82 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 83 % handles structure with handles and user data (see GUIDATA)
Dawn@4 84
Dawn@4 85 % Get default command line output from handles structure
Dawn@4 86 varargout{1} = handles.output;
Dawn@4 87
Dawn@4 88
Dawn@4 89 function setGUIVariables(handles)
Dawn@4 90 VSData = guidata(handles.VSHandle);
Dawn@4 91 vars = VSData.vars;
Dawn@4 92
Dawn@4 93 paramlist = func_getoutputparameterlist();
Dawn@4 94 set(handles.listbox_Parameters_paramlist, 'String', paramlist);
Dawn@4 95
Dawn@4 96 % update output file names
Dawn@4 97 VSData.vars.OT_Single = [vars.OT_outputdir vars.dirdelimiter vars.OT_singleFilename];
Dawn@4 98 VSData.vars.OT_F0CPPE = [vars.OT_outputdir vars.dirdelimiter vars.OT_F0CPPEfilename];
Dawn@4 99 VSData.vars.OT_Formants = [vars.OT_outputdir vars.dirdelimiter vars.OT_Formantsfilename];
Dawn@4 100 VSData.vars.OT_HA = [vars.OT_outputdir vars.dirdelimiter vars.OT_Hx_Axfilename];
Dawn@4 101 VSData.vars.OT_HxHx = [vars.OT_outputdir vars.dirdelimiter vars.OT_HxHxfilename];
Dawn@4 102 VSData.vars.OT_HxAx = [vars.OT_outputdir vars.dirdelimiter vars.OT_HxAxfilename];
Dawn@4 103 VSData.vars.OT_EGG = [vars.OT_outputdir vars.dirdelimiter vars.OT_EGGfilename];
Dawn@4 104 guidata(handles.VSHandle, VSData);
Dawn@4 105 VSData = guidata(handles.VSHandle);
Dawn@4 106 vars = VSData.vars;
Dawn@4 107
Dawn@4 108 % default is everything selected
Dawn@4 109 if (isempty(vars.OT_selectedParams))
Dawn@4 110 vars.OT_selectedParams = 1:length(paramlist);
Dawn@4 111 VSData.vars = vars;
Dawn@4 112 guidata(handles.VSHandle, VSData);
Dawn@4 113 end
Dawn@4 114
Dawn@4 115 set(handles.listbox_Parameters_paramlist, 'Value', vars.OT_selectedParams);
Dawn@4 116 set(handles.edit_Parameters_num, 'String', num2str(sum(vars.OT_selectedParams > 0)));
Dawn@4 117
Dawn@4 118 set(handles.edit_Parameters_matdir, 'String', vars.OT_matdir);
Dawn@4 119 set(handles.checkbox_Parameters_includesubdir, 'Value', vars.OT_includesubdir);
Dawn@4 120
Dawn@4 121 if (vars.OT_includesubdir == 1)
Dawn@4 122 func_setlistbox(handles.listbox_Parameters_matfilelist, vars.OT_matdir, 'recurse', vars, '*.mat');
Dawn@4 123 else
Dawn@4 124 func_setlistbox(handles.listbox_Parameters_matfilelist, vars.OT_matdir, 'none', vars, '*.mat');
Dawn@4 125 end
Dawn@4 126
Dawn@4 127 set(handles.edit_Parameters_Textgriddir, 'String', vars.OT_Textgriddir);
Dawn@4 128 set(handles.checkbox_Parameters_includeEGG, 'Value', vars.OT_includeEGG);
Dawn@4 129
Dawn@4 130 if (vars.OT_includeEGG == 1)
Dawn@4 131 set(handles.edit_Parameters_EGGdir, 'Enable', 'On');
Dawn@4 132 set(handles.pushbutton_Parameters_outBrowse, 'Enable', 'On');
Dawn@4 133 end
Dawn@4 134
Dawn@4 135 set(handles.edit_Parameters_EGGdir, 'String', vars.OT_EGGdir);
Dawn@4 136 set(handles.edit_Parameters_outdir, 'String', vars.OT_outputdir);
Dawn@4 137
Dawn@4 138 set(handles.checkbox_Parameters_includeTextgrids, 'Value', vars.OT_includeTextgridLabels);
Dawn@4 139 set(handles.popupmenu_Parameters_delimiter, 'Value', vars.OT_columndelimiter);
Dawn@4 140
Dawn@4 141 set(handles.radiobutton_noSegments, 'Value', vars.OT_noSegments);
Dawn@4 142 set(handles.radiobutton_useSegments, 'Value', vars.OT_useSegments);
Dawn@4 143
Dawn@4 144 if (vars.OT_useSegments == 1)
Dawn@4 145 set(handles.edit_numSegments, 'String', num2str(vars.OT_numSegments));
Dawn@4 146 set(handles.edit_numSegments, 'Enable', 'On');
Dawn@4 147 end
Dawn@4 148
Dawn@4 149 set(handles.radiobutton_Singlefile, 'Value', vars.OT_singleFile);
Dawn@4 150 set(handles.radiobutton_Multiplefiles, 'value', vars.OT_multipleFiles);
Dawn@4 151
Dawn@4 152 set(handles.edit_OutputOptions_SingleFile, 'String', vars.OT_Single);
Dawn@4 153 set(handles.edit_OutputOptions_F0CPPE, 'String', vars.OT_F0CPPE);
Dawn@4 154 set(handles.edit_OutputOptions_Formants, 'String', vars.OT_Formants);
Dawn@4 155 set(handles.edit_OutputOptions_Hx_Ax, 'String', vars.OT_HA);
Dawn@4 156 set(handles.edit_OutputOptions_HxHx, 'String', vars.OT_HxHx);
Dawn@4 157 set(handles.edit_OutputOptions_HxAx, 'String', vars.OT_HxAx);
Dawn@4 158 set(handles.edit_OutputOptions_EGG, 'String', vars.OT_EGG);
Dawn@4 159
Dawn@4 160 if (vars.OT_multipleFiles == 1)
Dawn@4 161 set(handles.edit_OutputOptions_SingleFile, 'Enable', 'Off');
Dawn@4 162 set(handles.pushbutton_OutputOptions_SingleBrowse, 'Enable', 'Off');
Dawn@4 163
Dawn@4 164 set(handles.edit_OutputOptions_F0CPPE, 'Enable', 'On');
Dawn@4 165 set(handles.edit_OutputOptions_Formants, 'Enable', 'On');
Dawn@4 166 set(handles.edit_OutputOptions_Hx_Ax, 'Enable', 'On');
Dawn@4 167 set(handles.edit_OutputOptions_HxHx, 'Enable', 'On');
Dawn@4 168 set(handles.edit_OutputOptions_HxAx, 'Enable', 'On');
Dawn@4 169 set(handles.edit_OutputOptions_EGG, 'Enable', 'On');
Dawn@4 170
Dawn@4 171 set(handles.pushbutton_OO_F0CPPEBrowse, 'Enable', 'On');
Dawn@4 172 set(handles.pushbutton_OO_FormantsBrowse, 'Enable', 'On');
Dawn@4 173 set(handles.pushbutton_OO_Hx_AxBrowse, 'Enable', 'On');
Dawn@4 174 set(handles.pushbutton_OO_HxHxBrowse, 'Enable', 'On');
Dawn@4 175 set(handles.pushbutton_OO_HxAxBrowse', 'Enable', 'On');
Dawn@4 176 set(handles.pushbutton_OO_EGGBrowse', 'Enable', 'On');
Dawn@4 177 end
Dawn@4 178
Dawn@4 179
Dawn@4 180 % --- Executes on selection change in listbox_Parameters_paramlist.
Dawn@4 181 function listbox_Parameters_paramlist_Callback(hObject, eventdata, handles)
Dawn@4 182 % hObject handle to listbox_Parameters_paramlist (see GCBO)
Dawn@4 183 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 184 % handles structure with handles and user data (see GUIDATA)
Dawn@4 185
Dawn@4 186 VSData = guidata(handles.VSHandle);
Dawn@4 187 inx = get(hObject, 'Value');
Dawn@4 188
Dawn@4 189 % now add the new entries and remove the old ones which are already
Dawn@4 190 % selected
Dawn@4 191 VSData.vars.OT_selectedParams = setxor(VSData.vars.OT_selectedParams, inx);
Dawn@4 192 set(hObject, 'Value', VSData.vars.OT_selectedParams);
Dawn@4 193 guidata(handles.VSHandle, VSData);
Dawn@4 194 set(handles.edit_Parameters_num, 'String', num2str(sum(VSData.vars.OT_selectedParams > 0)));
Dawn@4 195
Dawn@4 196
Dawn@4 197 % Hints: contents = get(hObject,'String') returns listbox_Parameters_paramlist contents as cell array
Dawn@4 198 % contents{get(hObject,'Value')} returns selected item from listbox_Parameters_paramlist
Dawn@4 199
Dawn@4 200
Dawn@4 201 % --- Executes during object creation, after setting all properties.
Dawn@4 202 function listbox_Parameters_paramlist_CreateFcn(hObject, eventdata, handles)
Dawn@4 203 % hObject handle to listbox_Parameters_paramlist (see GCBO)
Dawn@4 204 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 205 % handles empty - handles not created until after all CreateFcns called
Dawn@4 206
Dawn@4 207 % Hint: listbox controls usually have a white background on Windows.
Dawn@4 208 % See ISPC and COMPUTER.
Dawn@4 209 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
Dawn@4 210 set(hObject,'BackgroundColor','white');
Dawn@4 211 end
Dawn@4 212
Dawn@4 213
Dawn@4 214
Dawn@4 215 function edit_Parameters_num_Callback(hObject, eventdata, handles)
Dawn@4 216 % hObject handle to edit_Parameters_num (see GCBO)
Dawn@4 217 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 218 % handles structure with handles and user data (see GUIDATA)
Dawn@4 219
Dawn@4 220 % Hints: get(hObject,'String') returns contents of edit_Parameters_num as text
Dawn@4 221 % str2double(get(hObject,'String')) returns contents of edit_Parameters_num as a double
Dawn@4 222
Dawn@4 223
Dawn@4 224 % --- Executes during object creation, after setting all properties.
Dawn@4 225 function edit_Parameters_num_CreateFcn(hObject, eventdata, handles)
Dawn@4 226 % hObject handle to edit_Parameters_num (see GCBO)
Dawn@4 227 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 228 % handles empty - handles not created until after all CreateFcns called
Dawn@4 229
Dawn@4 230 % Hint: edit controls usually have a white background on Windows.
Dawn@4 231 % See ISPC and COMPUTER.
Dawn@4 232 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
Dawn@4 233 set(hObject,'BackgroundColor','white');
Dawn@4 234 end
Dawn@4 235
Dawn@4 236
Dawn@4 237
Dawn@4 238 function edit_Parameters_outdir_Callback(hObject, eventdata, handles)
Dawn@4 239 % hObject handle to edit_Parameters_outdir (see GCBO)
Dawn@4 240 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 241 % handles structure with handles and user data (see GUIDATA)
Dawn@4 242
Dawn@4 243 % Hints: get(hObject,'String') returns contents of edit_Parameters_outdir as text
Dawn@4 244 % str2double(get(hObject,'String')) returns contents of edit_Parameters_outdir as a double
Dawn@4 245 VSData = guidata(handles.VSHandle);
Dawn@4 246 newdir = get(hObject, 'String');
Dawn@4 247 if (exist(newdir, 'dir') == 7) % new dir exists
Dawn@4 248 if (newdir(end) ~= VSData.vars.dirdelimiter)
Dawn@4 249 newdir(end + 1) = VSData.vars.dirdelimiter;
Dawn@4 250 end
Dawn@4 251 VSData.vars.OT_outputdir = newdir;
Dawn@4 252 updateOutputFiles(handles);
Dawn@4 253 else
Dawn@4 254 msgbox('Error: directory not found.', 'Error', 'error', 'modal');
Dawn@4 255 set(hObject, 'String', VSData.vars.OT_outputdir);
Dawn@4 256 end
Dawn@4 257 guidata(handles.VSHandle, VSData);
Dawn@4 258
Dawn@4 259
Dawn@4 260 % update the filenames in Output Options
Dawn@4 261 function updateOutputFiles(handles)
Dawn@4 262 VSData = guidata(handles.VSHandle);
Dawn@4 263
Dawn@4 264 VSData.vars.OT_Single = [VSData.vars.OT_outputdir VSData.vars.OT_singleFilename];
Dawn@4 265 VSData.vars.OT_F0CPPE = [VSData.vars.OT_outputdir VSData.vars.OT_F0CPPEfilename];
Dawn@4 266 VSData.vars.OT_Formants = [VSData.vars.OT_outputdir VSData.vars.OT_Formantsfilename];
Dawn@4 267 VSData.vars.OT_HA = [VSData.vars.OT_outputdir VSData.vars.OT_Hx_Axfilename];
Dawn@4 268 VSData.vars.OT_HxHx = [VSData.vars.OT_outputdir VSData.vars.OT_HxHxfilename];
Dawn@4 269 VSData.vars.OT_HxAx = [VSData.vars.OT_outputdir VSData.vars.OT_HxAxfilename];
Dawn@4 270 VSData.vars.OT_EGG = [VSData.vars.OT_outputdir VSData.vars.OT_EGGfilename];
Dawn@4 271
Dawn@4 272 set(handles.edit_OutputOptions_SingleFile, 'String', VSData.vars.OT_Single);
Dawn@4 273 set(handles.edit_OutputOptions_F0CPPE, 'String', VSData.vars.OT_F0CPPE);
Dawn@4 274 set(handles.edit_OutputOptions_Formants, 'String', VSData.vars.OT_Formants);
Dawn@4 275 set(handles.edit_OutputOptions_Hx_Ax, 'String', VSData.vars.OT_HA);
Dawn@4 276 set(handles.edit_OutputOptions_HxHx, 'String', VSData.vars.OT_HxHx);
Dawn@4 277 set(handles.edit_OutputOptions_HxAx, 'String', VSData.vars.OT_HxAx);
Dawn@4 278 set(handles.edit_OutputOptions_EGG, 'String', VSData.vars.OT_EGG);
Dawn@4 279 set(handles.edit_Parameters_outdir, 'String', VSData.vars.OT_outputdir);
Dawn@4 280 set(handles.edit_Parameters_EGGdir, 'String', VSData.vars.OT_EGGdir);
Dawn@4 281 guidata(handles.VSHandle, VSData);
Dawn@4 282
Dawn@4 283
Dawn@4 284 % --- Executes during object creation, after setting all properties.
Dawn@4 285 function edit_Parameters_outdir_CreateFcn(hObject, eventdata, handles)
Dawn@4 286 % hObject handle to edit_Parameters_outdir (see GCBO)
Dawn@4 287 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 288 % handles empty - handles not created until after all CreateFcns called
Dawn@4 289
Dawn@4 290 % Hint: edit controls usually have a white background on Windows.
Dawn@4 291 % See ISPC and COMPUTER.
Dawn@4 292 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
Dawn@4 293 set(hObject,'BackgroundColor','white');
Dawn@4 294 end
Dawn@4 295
Dawn@4 296
Dawn@4 297 % --- Executes on button press in pushbutton_Parameters_outBrowse.
Dawn@4 298 function pushbutton_Parameters_outBrowse_Callback(hObject, eventdata, handles)
Dawn@4 299 % hObject handle to pushbutton_Parameters_outBrowse (see GCBO)
Dawn@4 300 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 301 % handles structure with handles and user data (see GUIDATA)
Dawn@4 302 VSData = guidata(handles.VSHandle);
Dawn@4 303 newdir = uigetdir(VSData.vars.OT_outputdir);
Dawn@4 304 if (ischar(newdir) == 1)
Dawn@4 305 VSData.vars.OT_outputdir = [newdir VSData.vars.dirdelimiter];
Dawn@4 306 set(handles.edit_Parameters_outdir, 'String', VSData.vars.OT_outputdir);
Dawn@4 307 guidata(handles.VSHandle, VSData);
Dawn@4 308 updateOutputFiles(handles);
Dawn@4 309 end
Dawn@4 310
Dawn@4 311
Dawn@4 312 % --- Executes on selection change in popupmenu_Parameters_delimiter.
Dawn@4 313 function popupmenu_Parameters_delimiter_Callback(hObject, eventdata, handles)
Dawn@4 314 % hObject handle to popupmenu_Parameters_delimiter (see GCBO)
Dawn@4 315 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 316 % handles structure with handles and user data (see GUIDATA)
Dawn@4 317
Dawn@4 318 % Hints: contents = get(hObject,'String') returns popupmenu_Parameters_delimiter contents as cell array
Dawn@4 319 % contents{get(hObject,'Value')} returns selected item from popupmenu_Parameters_delimiter
Dawn@4 320 VSData = guidata(handles.VSHandle);
Dawn@4 321 VSData.vars.OT_columndelimiter = get(hObject, 'Value');
Dawn@4 322 guidata(handles.VSHandle, VSData);
Dawn@4 323
Dawn@4 324
Dawn@4 325 % --- Executes during object creation, after setting all properties.
Dawn@4 326 function popupmenu_Parameters_delimiter_CreateFcn(hObject, eventdata, handles)
Dawn@4 327 % hObject handle to popupmenu_Parameters_delimiter (see GCBO)
Dawn@4 328 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 329 % handles empty - handles not created until after all CreateFcns called
Dawn@4 330
Dawn@4 331 % Hint: popupmenu controls usually have a white background on Windows.
Dawn@4 332 % See ISPC and COMPUTER.
Dawn@4 333 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
Dawn@4 334 set(hObject,'BackgroundColor','white');
Dawn@4 335 end
Dawn@4 336
Dawn@4 337
Dawn@4 338 % --- Executes on button press in checkbox_Parameters_includeEGG.
Dawn@4 339 function checkbox_Parameters_includeEGG_Callback(hObject, eventdata, handles)
Dawn@4 340 % hObject handle to checkbox_Parameters_includeEGG (see GCBO)
Dawn@4 341 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 342 % handles structure with handles and user data (see GUIDATA)
Dawn@4 343
Dawn@4 344 VSData = guidata(handles.VSHandle);
Dawn@4 345
Dawn@4 346 if (get(hObject, 'Value') == 1)
Dawn@4 347 set(handles.edit_Parameters_EGGdir, 'Enable', 'On');
Dawn@4 348 set(handles.pushbutton_Parameters_EGGBrowse, 'Enable', 'On');
Dawn@4 349 VSData.vars.OT_includeEGG = 1;
Dawn@4 350 else
Dawn@4 351 set(handles.edit_Parameters_EGGdir, 'Enable', 'Off');
Dawn@4 352 set(handles.pushbutton_Parameters_EGGBrowse, 'Enable', 'Off');
Dawn@4 353 VSData.vars.OT_includeEGG = 0;
Dawn@4 354 end
Dawn@4 355 guidata(handles.VSHandle, VSData);
Dawn@4 356
Dawn@4 357
Dawn@4 358 function edit_Parameters_matdir_Callback(hObject, eventdata, handles)
Dawn@4 359 % hObject handle to edit_Parameters_matdir (see GCBO)
Dawn@4 360 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 361 % handles structure with handles and user data (see GUIDATA)
Dawn@4 362
Dawn@4 363 % Hints: get(hObject,'String') returns contents of edit_Parameters_matdir as text
Dawn@4 364 % str2double(get(hObject,'String')) returns contents of edit_Parameters_matdir as a double
Dawn@4 365 VSData = guidata(handles.VSHandle);
Dawn@4 366 newdir = get(hObject, 'String');
Dawn@4 367 if (exist(newdir, 'dir') == 7) % new dir exists
Dawn@4 368 VSData = func_setmatdir('OT_matdir', newdir, VSData);
Dawn@4 369 set(handles.edit_Parameters_Textgriddir, 'String', newdir);
Dawn@4 370
Dawn@4 371 if (newdir(end) ~= VSData.vars.dirdelimiter)
Dawn@4 372 newdir(end + 1) = VSData.vars.dirdelimiter;
Dawn@4 373 end
Dawn@4 374 VSData.vars.OT_outputdir = newdir;
Dawn@4 375 guidata(handles.VSHandle, VSData);
Dawn@4 376 updateOutputFiles(handles);
Dawn@4 377 else
Dawn@4 378 msgbox('Error: directory not found.', 'Error', 'error', 'modal');
Dawn@4 379 set(hObject, 'String', VSData.vars.OT_matdir);
Dawn@4 380 end
Dawn@4 381 guidata(handles.VSHandle, VSData);
Dawn@4 382
Dawn@4 383
Dawn@4 384 % --- Executes during object creation, after setting all properties.
Dawn@4 385 function edit_Parameters_matdir_CreateFcn(hObject, eventdata, handles)
Dawn@4 386 % hObject handle to edit_Parameters_matdir (see GCBO)
Dawn@4 387 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 388 % handles empty - handles not created until after all CreateFcns called
Dawn@4 389
Dawn@4 390 % Hint: edit controls usually have a white background on Windows.
Dawn@4 391 % See ISPC and COMPUTER.
Dawn@4 392 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
Dawn@4 393 set(hObject,'BackgroundColor','white');
Dawn@4 394 end
Dawn@4 395
Dawn@4 396
Dawn@4 397 % --- Executes on button press in pushbutton_Parameters_matBrowse.
Dawn@4 398 function pushbutton_Parameters_matBrowse_Callback(hObject, eventdata, handles)
Dawn@4 399 % hObject handle to pushbutton_Parameters_matBrowse (see GCBO)
Dawn@4 400 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 401 % handles structure with handles and user data (see GUIDATA)
Dawn@4 402 VSData = guidata(handles.VSHandle);
Dawn@4 403 newdir = uigetdir(VSData.vars.OT_matdir);
Dawn@4 404 if (ischar(newdir) == 1)
Dawn@4 405 VSData = func_setmatdir('OT_matdir', newdir, VSData);
Dawn@4 406 set(handles.edit_Parameters_matdir, 'String', newdir);
Dawn@4 407 set(handles.edit_Parameters_Textgriddir, 'String', newdir);
Dawn@4 408
Dawn@4 409 if (newdir(end) ~= VSData.vars.dirdelimiter)
Dawn@4 410 newdir(end + 1) = VSData.vars.dirdelimiter;
Dawn@4 411 end
Dawn@4 412 VSData.vars.OT_outputdir = newdir;
Dawn@4 413 guidata(handles.VSHandle, VSData);
Dawn@4 414 updateOutputFiles(handles);
Dawn@4 415
Dawn@4 416 if (get(handles.checkbox_Parameters_includesubdir, 'Value') == 1)
Dawn@4 417 func_setlistbox(handles.listbox_Parameters_matfilelist, VSData.vars.OT_matdir, 'recurse', VSData.vars, '*.mat');
Dawn@4 418 else
Dawn@4 419 func_setlistbox(handles.listbox_Parameters_matfilelist, VSData.vars.OT_matdir, 'none', VSData.vars, '*.mat');
Dawn@4 420 end
Dawn@4 421 guidata(handles.VSHandle, VSData);
Dawn@4 422 end
Dawn@4 423
Dawn@4 424
Dawn@4 425
Dawn@4 426 function edit_Parameters_Textgriddir_Callback(hObject, eventdata, handles)
Dawn@4 427 % hObject handle to edit_Parameters_Textgriddir (see GCBO)
Dawn@4 428 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 429 % handles structure with handles and user data (see GUIDATA)
Dawn@4 430
Dawn@4 431 % Hints: get(hObject,'String') returns contents of edit_Parameters_Textgriddir as text
Dawn@4 432 % str2double(get(hObject,'String')) returns contents of edit_Parameters_Textgriddir as a double
Dawn@4 433 VSData = guidata(handles.VSHandle);
Dawn@4 434 newdir = get(hObject, 'String');
Dawn@4 435 if (exist(newdir, 'dir') == 7) % new dir exists
Dawn@4 436 VSData.vars.OT_Textgriddir = newdir;
Dawn@4 437 else
Dawn@4 438 msgbox('Error: directory not found.', 'Error', 'error', 'modal');
Dawn@4 439 set(hObject, 'String', VSData.vars.OT_Textgriddir);
Dawn@4 440 end
Dawn@4 441 guidata(handles.VSHandle, VSData);
Dawn@4 442
Dawn@4 443
Dawn@4 444 % --- Executes during object creation, after setting all properties.
Dawn@4 445 function edit_Parameters_Textgriddir_CreateFcn(hObject, eventdata, handles)
Dawn@4 446 % hObject handle to edit_Parameters_Textgriddir (see GCBO)
Dawn@4 447 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 448 % handles empty - handles not created until after all CreateFcns called
Dawn@4 449
Dawn@4 450 % Hint: edit controls usually have a white background on Windows.
Dawn@4 451 % See ISPC and COMPUTER.
Dawn@4 452 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
Dawn@4 453 set(hObject,'BackgroundColor','white');
Dawn@4 454 end
Dawn@4 455
Dawn@4 456
Dawn@4 457 % --- Executes on button press in pushbutton_Parameters_TextgridBrowse.
Dawn@4 458 function pushbutton_Parameters_TextgridBrowse_Callback(hObject, eventdata, handles)
Dawn@4 459 % hObject handle to pushbutton_Parameters_TextgridBrowse (see GCBO)
Dawn@4 460 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 461 % handles structure with handles and user data (see GUIDATA)
Dawn@4 462 VSData = guidata(handles.VSHandle);
Dawn@4 463 newdir = uigetdir(VSData.vars.OT_Textgriddir);
Dawn@4 464 if (ischar(newdir) == 1)
Dawn@4 465 VSData.vars.OT_Textgriddir = newdir;
Dawn@4 466 set(handles.edit_Parameters_Textgriddir, 'String', newdir);
Dawn@4 467 guidata(handles.VSHandle, VSData);
Dawn@4 468 end
Dawn@4 469
Dawn@4 470
Dawn@4 471 function edit_Parameters_EGGdir_Callback(hObject, eventdata, handles)
Dawn@4 472 % hObject handle to edit_Parameters_EGGdir (see GCBO)
Dawn@4 473 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 474 % handles structure with handles and user data (see GUIDATA)
Dawn@4 475
Dawn@4 476 % Hints: get(hObject,'String') returns contents of edit_Parameters_EGGdir as text
Dawn@4 477 % str2double(get(hObject,'String')) returns contents of edit_Parameters_EGGdir as a double
Dawn@4 478 VSData = guidata(handles.VSHandle);
Dawn@4 479 newdir = get(hObject, 'String');
Dawn@4 480 if (exist(newdir, 'dir') == 7) % new dir exists
Dawn@4 481 VSData.vars.OT_EGGdir = newdir;
Dawn@4 482 else
Dawn@4 483 msgbox('Error: directory not found.', 'Error', 'error', 'modal');
Dawn@4 484 set(hObject, 'String', VSData.vars.OT_EGGdir);
Dawn@4 485 end
Dawn@4 486 guidata(handles.VSHandle, VSData);
Dawn@4 487
Dawn@4 488
Dawn@4 489 % --- Executes during object creation, after setting all properties.
Dawn@4 490 function edit_Parameters_EGGdir_CreateFcn(hObject, eventdata, handles)
Dawn@4 491 % hObject handle to edit_Parameters_EGGdir (see GCBO)
Dawn@4 492 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 493 % handles empty - handles not created until after all CreateFcns called
Dawn@4 494
Dawn@4 495 % Hint: edit controls usually have a white background on Windows.
Dawn@4 496 % See ISPC and COMPUTER.
Dawn@4 497 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
Dawn@4 498 set(hObject,'BackgroundColor','white');
Dawn@4 499 end
Dawn@4 500
Dawn@4 501
Dawn@4 502 % --- Executes on button press in pushbutton_Parameters_EGGBrowse.
Dawn@4 503 function pushbutton_Parameters_EGGBrowse_Callback(hObject, eventdata, handles)
Dawn@4 504 % hObject handle to pushbutton_Parameters_EGGBrowse (see GCBO)
Dawn@4 505 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 506 % handles structure with handles and user data (see GUIDATA)
Dawn@4 507 VSData = guidata(handles.VSHandle);
Dawn@4 508 newdir = uigetdir(VSData.vars.OT_EGGdir);
Dawn@4 509 if (ischar(newdir) == 1)
Dawn@4 510 set(handles.edit_Parameters_EGGdir, 'String', newdir);
Dawn@4 511 VSData.vars.OT_EGGdir = newdir;
Dawn@4 512 guidata(handles.VSHandle, VSData);
Dawn@4 513 end
Dawn@4 514
Dawn@4 515
Dawn@4 516 function edit_numSegments_Callback(hObject, eventdata, handles)
Dawn@4 517 % hObject handle to edit_numSegments (see GCBO)
Dawn@4 518 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 519 % handles structure with handles and user data (see GUIDATA)
Dawn@4 520
Dawn@4 521 % Hints: get(hObject,'String') returns contents of edit_numSegments as text
Dawn@4 522 % str2double(get(hObject,'String')) returns contents of edit_numSegments as a double
Dawn@4 523
Dawn@4 524 VSData = guidata(handles.VSHandle);
Dawn@4 525 num = str2double(get(hObject, 'String'));
Dawn@4 526
Dawn@4 527 if (~isnan(num))
Dawn@4 528 num = round(num);
Dawn@4 529 if (num < 1)
Dawn@4 530 num = 1;
Dawn@4 531 elseif (num > 999)
Dawn@4 532 num = 999;
Dawn@4 533 end
Dawn@4 534
Dawn@4 535 VSData.vars.OT_numSegments = num;
Dawn@4 536
Dawn@4 537 set(hObject, 'String', num2str(VSData.vars.OT_numSegments));
Dawn@4 538 guidata(handles.VSHandle, VSData);
Dawn@4 539 else
Dawn@4 540 set(hObject, 'String', num2str(VSData.vars.OT_numSegments));
Dawn@4 541 end
Dawn@4 542
Dawn@4 543
Dawn@4 544 % --- Executes during object creation, after setting all properties.
Dawn@4 545 function edit_numSegments_CreateFcn(hObject, eventdata, handles)
Dawn@4 546 % hObject handle to edit_numSegments (see GCBO)
Dawn@4 547 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 548 % handles empty - handles not created until after all CreateFcns called
Dawn@4 549
Dawn@4 550 % Hint: edit controls usually have a white background on Windows.
Dawn@4 551 % See ISPC and COMPUTER.
Dawn@4 552 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
Dawn@4 553 set(hObject,'BackgroundColor','white');
Dawn@4 554 end
Dawn@4 555
Dawn@4 556
Dawn@4 557
Dawn@4 558 function edit_OutputOptions_SingleFile_Callback(hObject, eventdata, handles)
Dawn@4 559 % hObject handle to edit_OutputOptions_SingleFile (see GCBO)
Dawn@4 560 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 561 % handles structure with handles and user data (see GUIDATA)
Dawn@4 562 VSData = guidata(handles.VSHandle);
Dawn@4 563
Dawn@4 564 str = get(hObject, 'String');
Dawn@4 565 [pathname, filename, ext] = fileparts(str);
Dawn@4 566
Dawn@4 567 if (exist(pathname, 'dir') == 7)
Dawn@4 568 VSData.vars.OT_singleFilename = [filename ext];
Dawn@4 569 VSData.vars.OT_Single = [pathname VSData.vars.dirdelimiter VSData.vars.OT_singleFilename];
Dawn@4 570 end
Dawn@4 571
Dawn@4 572 set(hObject, 'String', VSData.vars.OT_Single);
Dawn@4 573 guidata(handles.VSHandle, VSData);
Dawn@4 574
Dawn@4 575
Dawn@4 576 % --- Executes during object creation, after setting all properties.
Dawn@4 577 function edit_OutputOptions_SingleFile_CreateFcn(hObject, eventdata, handles)
Dawn@4 578 % hObject handle to edit_OutputOptions_SingleFile (see GCBO)
Dawn@4 579 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 580 % handles empty - handles not created until after all CreateFcns called
Dawn@4 581
Dawn@4 582 % Hint: edit controls usually have a white background on Windows.
Dawn@4 583 % See ISPC and COMPUTER.
Dawn@4 584 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
Dawn@4 585 set(hObject,'BackgroundColor','white');
Dawn@4 586 end
Dawn@4 587
Dawn@4 588
Dawn@4 589 % --- Executes on button press in pushbutton_OutputOptions_SingleBrowse.
Dawn@4 590 function pushbutton_OutputOptions_SingleBrowse_Callback(hObject, eventdata, handles)
Dawn@4 591 % hObject handle to pushbutton_OutputOptions_SingleBrowse (see GCBO)
Dawn@4 592 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 593 % handles structure with handles and user data (see GUIDATA)
Dawn@4 594 VSData = guidata(handles.VSHandle);
Dawn@4 595 [newfile newpath] = uiputfile({'*.txt', '*.txt'}, 'Select Output File', VSData.vars.OT_singleFilename);
Dawn@4 596 if (ischar(newfile) == 1)
Dawn@4 597 set(handles.edit_OutputOptions_SingleFile, 'String', [newpath newfile]);
Dawn@4 598 VSData.vars.OT_Single = [newpath newfile];
Dawn@4 599 guidata(handles.VSHandle, VSData);
Dawn@4 600 end
Dawn@4 601
Dawn@4 602
Dawn@4 603 function edit_OutputOptions_F0CPPE_Callback(hObject, eventdata, handles)
Dawn@4 604 % hObject handle to edit_OutputOptions_F0CPPE (see GCBO)
Dawn@4 605 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 606 % handles structure with handles and user data (see GUIDATA)
Dawn@4 607 VSData = guidata(handles.VSHandle);
Dawn@4 608
Dawn@4 609 str = get(hObject, 'String');
Dawn@4 610 [pathname, filename, ext] = fileparts(str);
Dawn@4 611
Dawn@4 612 if (exist(pathname, 'dir') == 7)
Dawn@4 613 VSData.vars.OT_F0CPPEfilename = [filename ext];
Dawn@4 614 VSData.vars.OT_F0CPPE = [pathname VSData.vars.dirdelimiter VSData.vars.OT_F0CPPEfilename];
Dawn@4 615 end
Dawn@4 616
Dawn@4 617 set(hObject, 'String', VSData.vars.OT_F0CPPE);
Dawn@4 618 guidata(handles.VSHandle, VSData);
Dawn@4 619
Dawn@4 620
Dawn@4 621 % --- Executes during object creation, after setting all properties.
Dawn@4 622 function edit_OutputOptions_F0CPPE_CreateFcn(hObject, eventdata, handles)
Dawn@4 623 % hObject handle to edit_OutputOptions_F0CPPE (see GCBO)
Dawn@4 624 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 625 % handles empty - handles not created until after all CreateFcns called
Dawn@4 626
Dawn@4 627 % Hint: edit controls usually have a white background on Windows.
Dawn@4 628 % See ISPC and COMPUTER.
Dawn@4 629 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
Dawn@4 630 set(hObject,'BackgroundColor','white');
Dawn@4 631 end
Dawn@4 632
Dawn@4 633
Dawn@4 634
Dawn@4 635 function edit_OutputOptions_Formants_Callback(hObject, eventdata, handles)
Dawn@4 636 % hObject handle to edit_OutputOptions_Formants (see GCBO)
Dawn@4 637 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 638 % handles structure with handles and user data (see GUIDATA)
Dawn@4 639 VSData = guidata(handles.VSHandle);
Dawn@4 640
Dawn@4 641 str = get(hObject, 'String');
Dawn@4 642 [pathname, filename, ext] = fileparts(str);
Dawn@4 643
Dawn@4 644 if (exist(pathname, 'dir') == 7)
Dawn@4 645 VSData.vars.OT_Formantsfilename = [filename ext];
Dawn@4 646 VSData.vars.OT_Formants = [pathname VSData.vars.dirdelimiter VSData.vars.OT_Formantsfilename];
Dawn@4 647 end
Dawn@4 648
Dawn@4 649 set(hObject, 'String', VSData.vars.OT_Formants);
Dawn@4 650 guidata(handles.VSHandle, VSData);
Dawn@4 651
Dawn@4 652
Dawn@4 653 % --- Executes during object creation, after setting all properties.
Dawn@4 654 function edit_OutputOptions_Formants_CreateFcn(hObject, eventdata, handles)
Dawn@4 655 % hObject handle to edit_OutputOptions_Formants (see GCBO)
Dawn@4 656 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 657 % handles empty - handles not created until after all CreateFcns called
Dawn@4 658
Dawn@4 659 % Hint: edit controls usually have a white background on Windows.
Dawn@4 660 % See ISPC and COMPUTER.
Dawn@4 661 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
Dawn@4 662 set(hObject,'BackgroundColor','white');
Dawn@4 663 end
Dawn@4 664
Dawn@4 665
Dawn@4 666 function edit_OutputOptions_Hx_Ax_Callback(hObject, eventdata, handles)
Dawn@4 667 % hObject handle to edit_OutputOptions_Hx_Ax (see GCBO)
Dawn@4 668 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 669 % handles structure with handles and user data (see GUIDATA)
Dawn@4 670 VSData = guidata(handles.VSHandle);
Dawn@4 671
Dawn@4 672 str = get(hObject, 'String');
Dawn@4 673 [pathname, filename, ext] = fileparts(str);
Dawn@4 674
Dawn@4 675 if (exist(pathname, 'dir') == 7)
Dawn@4 676 VSData.vars.OT_Hx_Axfilename = [filename ext];
Dawn@4 677 VSData.vars.OT_HA = [pathname VSData.vars.dirdelimiter VSData.vars.OT_Hx_Axfilename];
Dawn@4 678 end
Dawn@4 679
Dawn@4 680 set(hObject, 'String', VSData.vars.OT_HA);
Dawn@4 681 guidata(handles.VSHandle, VSData);
Dawn@4 682
Dawn@4 683
Dawn@4 684 % --- Executes during object creation, after setting all properties.
Dawn@4 685 function edit_OutputOptions_Hx_Ax_CreateFcn(hObject, eventdata, handles)
Dawn@4 686 % hObject handle to edit_OutputOptions_Hx_Ax (see GCBO)
Dawn@4 687 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 688 % handles empty - handles not created until after all CreateFcns called
Dawn@4 689
Dawn@4 690 % Hint: edit controls usually have a white background on Windows.
Dawn@4 691 % See ISPC and COMPUTER.
Dawn@4 692 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
Dawn@4 693 set(hObject,'BackgroundColor','white');
Dawn@4 694 end
Dawn@4 695
Dawn@4 696
Dawn@4 697
Dawn@4 698 function edit_OutputOptions_HxHx_Callback(hObject, eventdata, handles)
Dawn@4 699 % hObject handle to edit_OutputOptions_HxHx (see GCBO)
Dawn@4 700 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 701 % handles structure with handles and user data (see GUIDATA)
Dawn@4 702 VSData = guidata(handles.VSHandle);
Dawn@4 703
Dawn@4 704 str = get(hObject, 'String');
Dawn@4 705 [pathname, filename, ext] = fileparts(str);
Dawn@4 706
Dawn@4 707 if (exist(pathname, 'dir') == 7)
Dawn@4 708 VSData.vars.OT_HxHxfilename = [filename ext];
Dawn@4 709 VSData.vars.OT_HxHx = [pathname VSData.vars.dirdelimiter VSData.vars.OT_HxHxfilename];
Dawn@4 710 end
Dawn@4 711
Dawn@4 712 set(hObject, 'String', VSData.vars.OT_HxHx);
Dawn@4 713 guidata(handles.VSHandle, VSData);
Dawn@4 714
Dawn@4 715
Dawn@4 716 % --- Executes during object creation, after setting all properties.
Dawn@4 717 function edit_OutputOptions_HxHx_CreateFcn(hObject, eventdata, handles)
Dawn@4 718 % hObject handle to edit_OutputOptions_HxHx (see GCBO)
Dawn@4 719 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 720 % handles empty - handles not created until after all CreateFcns called
Dawn@4 721
Dawn@4 722 % Hint: edit controls usually have a white background on Windows.
Dawn@4 723 % See ISPC and COMPUTER.
Dawn@4 724 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
Dawn@4 725 set(hObject,'BackgroundColor','white');
Dawn@4 726 end
Dawn@4 727
Dawn@4 728
Dawn@4 729
Dawn@4 730 function edit_OutputOptions_HxAx_Callback(hObject, eventdata, handles)
Dawn@4 731 % hObject handle to edit_OutputOptions_HxAx (see GCBO)
Dawn@4 732 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 733 % handles structure with handles and user data (see GUIDATA)
Dawn@4 734 VSData = guidata(handles.VSHandle);
Dawn@4 735
Dawn@4 736 str = get(hObject, 'String');
Dawn@4 737 [pathname, filename, ext] = fileparts(str);
Dawn@4 738
Dawn@4 739 if (exist(pathname, 'dir') == 7)
Dawn@4 740 VSData.vars.OT_HxAxfilename = [filename ext];
Dawn@4 741 VSData.vars.OT_HxAx = [pathname VSData.vars.dirdelimiter VSData.vars.OT_HxAxfilename];
Dawn@4 742 end
Dawn@4 743
Dawn@4 744 set(hObject, 'String', VSData.vars.OT_HxAx);
Dawn@4 745 guidata(handles.VSHandle, VSData);
Dawn@4 746
Dawn@4 747
Dawn@4 748 % --- Executes during object creation, after setting all properties.
Dawn@4 749 function edit_OutputOptions_HxAx_CreateFcn(hObject, eventdata, handles)
Dawn@4 750 % hObject handle to edit_OutputOptions_HxAx (see GCBO)
Dawn@4 751 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 752 % handles empty - handles not created until after all CreateFcns called
Dawn@4 753
Dawn@4 754 % Hint: edit controls usually have a white background on Windows.
Dawn@4 755 % See ISPC and COMPUTER.
Dawn@4 756 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
Dawn@4 757 set(hObject,'BackgroundColor','white');
Dawn@4 758 end
Dawn@4 759
Dawn@4 760
Dawn@4 761 % --- Executes on button press in pushbutton_OO_F0CPPEBrowse.
Dawn@4 762 function pushbutton_OO_F0CPPEBrowse_Callback(hObject, eventdata, handles)
Dawn@4 763 % hObject handle to pushbutton_OO_F0CPPEBrowse (see GCBO)
Dawn@4 764 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 765 % handles structure with handles and user data (see GUIDATA)
Dawn@4 766 VSData = guidata(handles.VSHandle);
Dawn@4 767 [newfile newpath] = uiputfile({'*.txt', '*.txt'}, 'Select Output File', VSData.vars.OT_F0CPPEfilename);
Dawn@4 768 if (ischar(newfile) == 1)
Dawn@4 769 set(handles.edit_OutputOptions_F0CPPE, 'String', [newpath newfile]);
Dawn@4 770 VSData.vars.OT_F0CPPE = [newpath newfile];
Dawn@4 771 guidata(handles.VSHandle, VSData);
Dawn@4 772 end
Dawn@4 773
Dawn@4 774
Dawn@4 775 % --- Executes on button press in pushbutton_OO_FormantsBrowse.
Dawn@4 776 function pushbutton_OO_FormantsBrowse_Callback(hObject, eventdata, handles)
Dawn@4 777 % hObject handle to pushbutton_OO_FormantsBrowse (see GCBO)
Dawn@4 778 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 779 % handles structure with handles and user data (see GUIDATA)
Dawn@4 780 VSData = guidata(handles.VSHandle);
Dawn@4 781 [newfile newpath] = uiputfile({'*.txt', '*.txt'}, 'Select Output File', VSData.vars.OT_Formantsfilename);
Dawn@4 782 if (ischar(newfile) == 1)
Dawn@4 783 set(handles.edit_OutputOptions_Formants, 'String', [newpath newfile]);
Dawn@4 784 VSData.vars.OT_Formants = [newpath newfile];
Dawn@4 785 guidata(handles.VSHandle, VSData);
Dawn@4 786 end
Dawn@4 787
Dawn@4 788
Dawn@4 789 % --- Executes on button press in pushbutton_OO_Hx_AxBrowse.
Dawn@4 790 function pushbutton_OO_Hx_AxBrowse_Callback(hObject, eventdata, handles)
Dawn@4 791 % hObject handle to pushbutton_OO_Hx_AxBrowse (see GCBO)
Dawn@4 792 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 793 % handles structure with handles and user data (see GUIDATA)
Dawn@4 794 VSData = guidata(handles.VSHandle);
Dawn@4 795 [newfile newpath] = uiputfile({'*.txt', '*.txt'}, 'Select Output File', VSData.vars.OT_Hx_Axfilename);
Dawn@4 796 if (ischar(newfile) == 1)
Dawn@4 797 set(handles.edit_OutputOptions_Hx_Ax, 'String', [newpath newfile]);
Dawn@4 798 VSData.vars.OT_HA = [newpath newfile];
Dawn@4 799 guidata(handles.VSHandle, VSData);
Dawn@4 800 end
Dawn@4 801
Dawn@4 802
Dawn@4 803 % --- Executes on button press in pushbutton_OO_HxHxBrowse.
Dawn@4 804 function pushbutton_OO_HxHxBrowse_Callback(hObject, eventdata, handles)
Dawn@4 805 % hObject handle to pushbutton_OO_HxHxBrowse (see GCBO)
Dawn@4 806 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 807 % handles structure with handles and user data (see GUIDATA)
Dawn@4 808 VSData = guidata(handles.VSHandle);
Dawn@4 809 [newfile newpath] = uiputfile({'*.txt', '*.txt'}, 'Select Output File', VSData.vars.OT_HxHxfilename);
Dawn@4 810 if (ischar(newfile) == 1)
Dawn@4 811 set(handles.edit_OutputOptions_HxHx, 'String', [newpath newfile]);
Dawn@4 812 VSData.vars.OT_HxHx = [newpath newfile];
Dawn@4 813 guidata(handles.VSHandle, VSData);
Dawn@4 814 end
Dawn@4 815
Dawn@4 816
Dawn@4 817 % --- Executes on button press in pushbutton_OO_HxAxBrowse.
Dawn@4 818 function pushbutton_OO_HxAxBrowse_Callback(hObject, eventdata, handles)
Dawn@4 819 % hObject handle to pushbutton_OO_HxAxBrowse (see GCBO)
Dawn@4 820 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 821 % handles structure with handles and user data (see GUIDATA)
Dawn@4 822 VSData = guidata(handles.VSHandle);
Dawn@4 823 [newfile newpath] = uiputfile({'*.txt', '*.txt'}, 'Select Output File', VSData.vars.OT_HxAxfilename);
Dawn@4 824 if (ischar(newfile) == 1)
Dawn@4 825 set(handles.edit_OutputOptions_HxAx, 'String', [newpath newfile]);
Dawn@4 826 VSData.vars.OT_HxAx = [newpath newfile];
Dawn@4 827 guidata(handles.VSHandle, VSData);
Dawn@4 828 end
Dawn@4 829
Dawn@4 830
Dawn@4 831 function edit_OutputOptions_EGG_Callback(hObject, eventdata, handles)
Dawn@4 832 % hObject handle to edit_OutputOptions_EGG (see GCBO)
Dawn@4 833 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 834 % handles structure with handles and user data (see GUIDATA)
Dawn@4 835 VSData = guidata(handles.VSHandle);
Dawn@4 836
Dawn@4 837 str = get(hObject, 'String');
Dawn@4 838 [pathname, filename, ext] = fileparts(str);
Dawn@4 839
Dawn@4 840 if (exist(pathname, 'dir') == 7)
Dawn@4 841 VSData.vars.OT_EGGfilename = [filename ext];
Dawn@4 842 VSData.vars.OT_EGG = [pathname VSData.vars.dirdelimiter VSData.vars.OT_EGGfilename];
Dawn@4 843 end
Dawn@4 844
Dawn@4 845 set(hObject, 'String', VSData.vars.OT_EGG);
Dawn@4 846 guidata(handles.VSHandle, VSData);
Dawn@4 847
Dawn@4 848
Dawn@4 849 % --- Executes during object creation, after setting all properties.
Dawn@4 850 function edit_OutputOptions_EGG_CreateFcn(hObject, eventdata, handles)
Dawn@4 851 % hObject handle to edit_OutputOptions_EGG (see GCBO)
Dawn@4 852 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 853 % handles empty - handles not created until after all CreateFcns called
Dawn@4 854
Dawn@4 855 % Hint: edit controls usually have a white background on Windows.
Dawn@4 856 % See ISPC and COMPUTER.
Dawn@4 857 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
Dawn@4 858 set(hObject,'BackgroundColor','white');
Dawn@4 859 end
Dawn@4 860
Dawn@4 861
Dawn@4 862 % --- Executes on button press in pushbutton_OO_EGGBrowse.
Dawn@4 863 function pushbutton_OO_EGGBrowse_Callback(hObject, eventdata, handles)
Dawn@4 864 % hObject handle to pushbutton_OO_EGGBrowse (see GCBO)
Dawn@4 865 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 866 % handles structure with handles and user data (see GUIDATA)
Dawn@4 867 VSData = guidata(handles.VSHandle);
Dawn@4 868 [newfile newpath] = uiputfile({'*.txt', '*.txt'}, 'Select Output File', VSData.vars.OT_EGGfilename);
Dawn@4 869 if (ischar(newfile) == 1)
Dawn@4 870 set(handles.edit_OutputOptions_EGG, 'String', [newpath newfile]);
Dawn@4 871 VSData.vars.OT_EGG = [newpath newfile];
Dawn@4 872 guidata(handles.VSHandle, VSData);
Dawn@4 873 end
Dawn@4 874
Dawn@4 875 % --- Executes on button press in togglebutton_Start.
Dawn@4 876 function togglebutton_Start_Callback(hObject, eventdata, handles)
Dawn@4 877 % hObject handle to togglebutton_Start (see GCBO)
Dawn@4 878 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 879 % handles structure with handles and user data (see GUIDATA)
Dawn@4 880
Dawn@4 881 % Hint: get(hObject,'Value') returns toggle state of togglebutton_Start
Dawn@4 882 if (get(hObject, 'Value') == 1) % start writing output
Dawn@4 883 set(hObject, 'String', 'Processing...', 'ForegroundColor', 'red');
Dawn@4 884
Dawn@4 885 OutputToText(handles);
Dawn@4 886 set(hObject, 'String', 'Start!', 'ForegroundColor', 'black', 'Value', 0);
Dawn@4 887
Dawn@4 888 end
Dawn@4 889
Dawn@4 890
Dawn@4 891
Dawn@4 892
Dawn@4 893 % --- Executes on button press in checkbox_Parameters_includeTextgrids.
Dawn@4 894 function checkbox_Parameters_includeTextgrids_Callback(hObject, eventdata, handles)
Dawn@4 895 % hObject handle to checkbox_Parameters_includeTextgrids (see GCBO)
Dawn@4 896 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 897 % handles structure with handles and user data (see GUIDATA)
Dawn@4 898
Dawn@4 899 VSData = guidata(handles.VSHandle);
Dawn@4 900 VSData.vars.OT_includeTextgridLabels = get(hObject, 'Value');
Dawn@4 901 guidata(handles.VSHandle, VSData);
Dawn@4 902
Dawn@4 903
Dawn@4 904
Dawn@4 905 function segments_buttongroup_SelectionChangeFcn(hObject, eventdata)
Dawn@4 906 handles = guidata(hObject);
Dawn@4 907 VSData = guidata(handles.VSHandle);
Dawn@4 908
Dawn@4 909 switch (get(eventdata.NewValue, 'Tag'))
Dawn@4 910 case 'radiobutton_noSegments'
Dawn@4 911 VSData.vars.OT_noSegments = 1;
Dawn@4 912 VSData.vars.OT_useSegments = 0;
Dawn@4 913 set(handles.edit_numSegments, 'Enable', 'Off');
Dawn@4 914 case 'radiobutton_useSegments'
Dawn@4 915 VSData.vars.OT_noSegments = 0;
Dawn@4 916 VSData.vars.OT_useSegments = 1;
Dawn@4 917 set(handles.edit_numSegments, 'Enable', 'On');
Dawn@4 918 end
Dawn@4 919 guidata(handles.VSHandle, VSData);
Dawn@4 920
Dawn@4 921
Dawn@4 922 %
Dawn@4 923 function outputoptions_buttongroup_SelectionChangeFcn(hObject, eventdata)
Dawn@4 924 handles = guidata(hObject);
Dawn@4 925 VSData = guidata(handles.VSHandle);
Dawn@4 926
Dawn@4 927 switch (get(eventdata.NewValue, 'Tag'))
Dawn@4 928 case 'radiobutton_Singlefile'
Dawn@4 929 VSData.vars.OT_singleFile = 1;
Dawn@4 930 VSData.vars.OT_multipleFiles = 0;
Dawn@4 931
Dawn@4 932 set(handles.edit_OutputOptions_SingleFile, 'Enable', 'On');
Dawn@4 933 set(handles.pushbutton_OutputOptions_SingleBrowse, 'Enable', 'On');
Dawn@4 934
Dawn@4 935 set(handles.edit_OutputOptions_F0CPPE, 'Enable', 'Off');
Dawn@4 936 set(handles.edit_OutputOptions_Formants, 'Enable', 'Off');
Dawn@4 937 set(handles.edit_OutputOptions_Hx_Ax, 'Enable', 'Off');
Dawn@4 938 set(handles.edit_OutputOptions_HxHx, 'Enable', 'Off');
Dawn@4 939 set(handles.edit_OutputOptions_HxAx, 'Enable', 'Off');
Dawn@4 940 set(handles.edit_OutputOptions_EGG, 'Enable', 'Off');
Dawn@4 941
Dawn@4 942 set(handles.pushbutton_OO_F0CPPEBrowse, 'Enable', 'Off');
Dawn@4 943 set(handles.pushbutton_OO_FormantsBrowse, 'Enable', 'Off');
Dawn@4 944 set(handles.pushbutton_OO_Hx_AxBrowse, 'Enable', 'Off');
Dawn@4 945 set(handles.pushbutton_OO_HxHxBrowse, 'Enable', 'Off');
Dawn@4 946 set(handles.pushbutton_OO_HxAxBrowse, 'Enable', 'Off');
Dawn@4 947 set(handles.pushbutton_OO_EGGBrowse, 'Enable', 'Off');
Dawn@4 948
Dawn@4 949 case 'radiobutton_Multiplefiles'
Dawn@4 950 VSData.vars.OT_singleFile = 0;
Dawn@4 951 VSData.vars.OT_multipleFiles = 1;
Dawn@4 952
Dawn@4 953 set(handles.edit_OutputOptions_SingleFile, 'Enable', 'Off');
Dawn@4 954 set(handles.pushbutton_OutputOptions_SingleBrowse, 'Enable', 'Off');
Dawn@4 955
Dawn@4 956 set(handles.edit_OutputOptions_F0CPPE, 'Enable', 'On');
Dawn@4 957 set(handles.edit_OutputOptions_Formants, 'Enable', 'On');
Dawn@4 958 set(handles.edit_OutputOptions_Hx_Ax, 'Enable', 'On');
Dawn@4 959 set(handles.edit_OutputOptions_HxHx, 'Enable', 'On');
Dawn@4 960 set(handles.edit_OutputOptions_HxAx, 'Enable', 'On');
Dawn@4 961 set(handles.edit_OutputOptions_EGG, 'Enable', 'On');
Dawn@4 962
Dawn@4 963 set(handles.pushbutton_OO_F0CPPEBrowse, 'Enable', 'On');
Dawn@4 964 set(handles.pushbutton_OO_FormantsBrowse, 'Enable', 'On');
Dawn@4 965 set(handles.pushbutton_OO_Hx_AxBrowse, 'Enable', 'On');
Dawn@4 966 set(handles.pushbutton_OO_HxHxBrowse, 'Enable', 'On');
Dawn@4 967 set(handles.pushbutton_OO_HxAxBrowse, 'Enable', 'On');
Dawn@4 968 set(handles.pushbutton_OO_EGGBrowse, 'Enable', 'On');
Dawn@4 969 end
Dawn@4 970 guidata(handles.VSHandle, VSData);
Dawn@4 971
Dawn@4 972
Dawn@4 973 % --- Executes on selection change in listbox_Parameters_matfilelist.
Dawn@4 974 function listbox_Parameters_matfilelist_Callback(hObject, eventdata, handles)
Dawn@4 975 % hObject handle to listbox_Parameters_matfilelist (see GCBO)
Dawn@4 976 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 977 % handles structure with handles and user data (see GUIDATA)
Dawn@4 978
Dawn@4 979 % Hints: contents = get(hObject,'String') returns listbox_Parameters_matfilelist contents as cell array
Dawn@4 980 % contents{get(hObject,'Value')} returns selected item from listbox_Parameters_matfilelist
Dawn@4 981
Dawn@4 982
Dawn@4 983 % --- Executes during object creation, after setting all properties.
Dawn@4 984 function listbox_Parameters_matfilelist_CreateFcn(hObject, eventdata, handles)
Dawn@4 985 % hObject handle to listbox_Parameters_matfilelist (see GCBO)
Dawn@4 986 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 987 % handles empty - handles not created until after all CreateFcns called
Dawn@4 988
Dawn@4 989 % Hint: listbox controls usually have a white background on Windows.
Dawn@4 990 % See ISPC and COMPUTER.
Dawn@4 991 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
Dawn@4 992 set(hObject,'BackgroundColor','white');
Dawn@4 993 end
Dawn@4 994
Dawn@4 995
Dawn@4 996 % --- Executes on button press in checkbox_Parameters_includesubdir.
Dawn@4 997 function checkbox_Parameters_includesubdir_Callback(hObject, eventdata, handles)
Dawn@4 998 % hObject handle to checkbox_Parameters_includesubdir (see GCBO)
Dawn@4 999 % eventdata reserved - to be defined in a future version of MATLAB
Dawn@4 1000 % handles structure with handles and user data (see GUIDATA)
Dawn@4 1001
Dawn@4 1002 VSData = guidata(handles.VSHandle);
Dawn@4 1003 VSData.vars.OT_includesubdir = get(hObject, 'Value');
Dawn@4 1004 guidata(handles.VSHandle, VSData);
Dawn@4 1005 if (VSData.vars.OT_includesubdir == 1)
Dawn@4 1006 func_setlistbox(handles.listbox_Parameters_matfilelist, VSData.vars.OT_matdir, 'recurse', VSData.vars, '*.mat');
Dawn@4 1007 else
Dawn@4 1008 func_setlistbox(handles.listbox_Parameters_matfilelist, VSData.vars.OT_matdir, 'none', VSData.vars, '*.mat');
Dawn@4 1009 end
Dawn@4 1010
Dawn@4 1011
Dawn@4 1012
Dawn@4 1013 % executes on key press
Dawn@4 1014 function matfiles_listbox_KeyPressFcn(hObject, eventdata)
Dawn@4 1015 handles = guidata(hObject);
Dawn@4 1016
Dawn@4 1017 key = double(get(gcbf, 'CurrentCharacter'));
Dawn@4 1018 if (gcbo == handles.listbox_Parameters_matfilelist)
Dawn@4 1019 if (key == 127) % delete key
Dawn@4 1020
Dawn@4 1021 inx = get(handles.listbox_Parameters_matfilelist, 'Value');
Dawn@4 1022 contents = get(handles.listbox_Parameters_matfilelist, 'String');
Dawn@4 1023
Dawn@4 1024 %nothing to do
Dawn@4 1025 if (isempty(contents))
Dawn@4 1026 return;
Dawn@4 1027 end
Dawn@4 1028
Dawn@4 1029 newinx = setxor(inx, [1:length(contents)]);
Dawn@4 1030
Dawn@4 1031 newcontents = contents(newinx);
Dawn@4 1032 set(handles.listbox_Parameters_matfilelist, 'String', newcontents);
Dawn@4 1033
Dawn@4 1034 if (inx(end) > length(newcontents))
Dawn@4 1035 set(handles.listbox_Parameters_matfilelist, 'Value', length(newcontents));
Dawn@4 1036 else
Dawn@4 1037 set(handles.listbox_Parameters_matfilelist, 'Value', inx(end));
Dawn@4 1038 end
Dawn@4 1039 end
Dawn@4 1040 end
Dawn@4 1041
Dawn@4 1042
Dawn@4 1043 % this is the function that does the actual outputting of text
Dawn@4 1044 function OutputToText(handles)
Dawn@4 1045
Dawn@4 1046 % check if there are any parameters and files selected
Dawn@4 1047 if (isempty(get(handles.listbox_Parameters_paramlist, 'Value')) && get(handles.checkbox_Parameters_includeEGG, 'Value') == 0)
Dawn@4 1048 msgbox('Error: No parameters selected.', 'Error', 'warn', 'modal');
Dawn@4 1049 return;
Dawn@4 1050 end
Dawn@4 1051
Dawn@4 1052 if (isempty(get(handles.listbox_Parameters_matfilelist, 'String')))
Dawn@4 1053 msgbox('Error: No mat files to process.', 'Error', 'warn', 'modal');
Dawn@4 1054 return;
Dawn@4 1055 end
Dawn@4 1056
Dawn@4 1057 % get variables from the main VS window
Dawn@4 1058 VSData = guidata(handles.VSHandle);
Dawn@4 1059 matfilelist = get(handles.listbox_Parameters_matfilelist, 'String');
Dawn@4 1060 contents = get(handles.listbox_Parameters_paramlist, 'String');
Dawn@4 1061 paramlist = contents(get(handles.listbox_Parameters_paramlist, 'Value'));
Dawn@4 1062
Dawn@4 1063 % get the output delimiter
Dawn@4 1064 contents = get(handles.popupmenu_Parameters_delimiter, 'String');
Dawn@4 1065 delim = contents{VSData.vars.OT_columndelimiter};
Dawn@4 1066 delimiter = 9; % ascii code for tab
Dawn@4 1067 switch(delim)
Dawn@4 1068 case {'tab'}
Dawn@4 1069 delimiter = 9;
Dawn@4 1070 case {'comma'}
Dawn@4 1071 delimiter = 44; %ascii for comma
Dawn@4 1072 case {'space'}
Dawn@4 1073 delimiter = ' ';
Dawn@4 1074 end
Dawn@4 1075
Dawn@4 1076 % check output files
Dawn@4 1077 fids = zeros(6, 1); % these store the fids of the open files
Dawn@4 1078 if (get(handles.radiobutton_Singlefile, 'Value') == 1) % single file
Dawn@4 1079 fid = fopen(VSData.vars.OT_Single, 'wt');
Dawn@4 1080
Dawn@4 1081 if (fid == -1)
Dawn@4 1082 msgbox('Error: Unable to open file for output.', 'Error', 'error', 'modal');
Dawn@4 1083 return;
Dawn@4 1084 end
Dawn@4 1085
Dawn@4 1086 writeFileHeaders(fid, paramlist, handles, delimiter);
Dawn@4 1087 fids = [fid fid fid fid fid fid];
Dawn@4 1088
Dawn@4 1089 else % multiple files
Dawn@4 1090 fid1 = fopen(VSData.vars.OT_F0CPPE, 'wt');
Dawn@4 1091 fid2 = fopen(VSData.vars.OT_Formants, 'wt');
Dawn@4 1092 fid3 = fopen(VSData.vars.OT_HA, 'wt');
Dawn@4 1093 fid4 = fopen(VSData.vars.OT_HxHx, 'wt');
Dawn@4 1094 fid5 = fopen(VSData.vars.OT_HxAx, 'wt');
Dawn@4 1095
Dawn@4 1096 if (fid1 == -1)
Dawn@4 1097 msgbox('Error: Unable to open F0/CPP/E file for output.', 'Error', 'error', 'modal');
Dawn@4 1098 return;
Dawn@4 1099 end
Dawn@4 1100
Dawn@4 1101 if (fid2 == -1)
Dawn@4 1102 msgbox('Error: Unable to open Formants file for output.', 'Error', 'error', 'modal');
Dawn@4 1103 return;
Dawn@4 1104 end
Dawn@4 1105
Dawn@4 1106 if (fid3 == -1)
Dawn@4 1107 msgbox('Error: Unable to open Hx/Ax file for output.', 'Error', 'error', 'modal');
Dawn@4 1108 return;
Dawn@4 1109 end
Dawn@4 1110
Dawn@4 1111 if (fid4 == -1)
Dawn@4 1112 msgbox('Error: Unable to open Hx-Hx file for output.', 'Error', 'error', 'modal');
Dawn@4 1113 return;
Dawn@4 1114 end
Dawn@4 1115
Dawn@4 1116 if (fid5 == -1)
Dawn@4 1117 msgbox('Error: Unable to open Hx-Ax file for output.', 'Error', 'error', 'modal');
Dawn@4 1118 return;
Dawn@4 1119 end
Dawn@4 1120
Dawn@4 1121 fidEGG = -1;
Dawn@4 1122 if (VSData.vars.OT_includeEGG == 1)
Dawn@4 1123 fidEGG = fopen(VSData.vars.OT_EGG, 'wt');
Dawn@4 1124 if (fidEGG == -1)
Dawn@4 1125 msgbox('Error: Unable to open EGG file for output.', 'Error', 'error', 'modal');
Dawn@4 1126 return;
Dawn@4 1127 end
Dawn@4 1128 end
Dawn@4 1129
Dawn@4 1130 fids = [fid1 fid2 fid3 fid4 fid5 fidEGG];
Dawn@4 1131 writeFileHeaders(fids, paramlist, handles, delimiter);
Dawn@4 1132 end
Dawn@4 1133
Dawn@4 1134 MBox = MessageBox;
Dawn@4 1135 MBoxHandles = guidata(MBox);
Dawn@4 1136 messages = cell(length(matfilelist) + 1, 1); % allocate some memory for messages
Dawn@4 1137 errorcnt = 0;
Dawn@4 1138 uniquefids = unique(fids); % store the number of unique fids
Dawn@4 1139
Dawn@4 1140 % process every file in matfilelist
Dawn@4 1141 for k=1:length(matfilelist)
Dawn@4 1142 matfile = [VSData.vars.OT_matdir VSData.vars.dirdelimiter matfilelist{k}];
Dawn@4 1143 TGfile = [VSData.vars.OT_Textgriddir VSData.vars.dirdelimiter matfilelist{k}(1:end-3) 'Textgrid'];
Dawn@4 1144 messages{k} = sprintf('%d/%d. %s: ', k, length(matfilelist), matfilelist{k});
Dawn@4 1145 set(MBoxHandles.listbox_messages, 'String', messages, 'Value', k);
Dawn@4 1146 drawnow;
Dawn@4 1147
Dawn@4 1148 mdata = func_buildMData(matfile, VSData.vars.O_smoothwinsize);
Dawn@4 1149
Dawn@4 1150 frameshift = VSData.vars.frameshift; % this could be wrong if the mat file has it's own frameshift
Dawn@4 1151 if (isfield(mdata, 'frameshift'))
Dawn@4 1152 frameshift = mdata.frameshift;
Dawn@4 1153 end
Dawn@4 1154
Dawn@4 1155 % find the max length of the data
Dawn@4 1156 if (isfield(mdata, 'strF0'))
Dawn@4 1157 maxlen = length(mdata.strF0) * frameshift;
Dawn@4 1158 elseif (isfield(mdata, 'sF0'))
Dawn@4 1159 maxlen = length(mdata.sF0) * frameshift;
Dawn@4 1160 elseif (isfield(mdata, 'pF0'))
Dawn@4 1161 maxlen = length(mdata.pF0) * frameshift;
Dawn@4 1162 elseif (isfield(mdata, 'oF0'))
Dawn@4 1163 maxlen = length(mdata.oF0) * frameshift;
Dawn@4 1164 end
Dawn@4 1165
Dawn@4 1166 % load up the textgrid data, or if it doesn't exist, use the whole file
Dawn@4 1167 if (exist(TGfile, 'file') == 0) % file not found, use start and end
Dawn@4 1168 messages{k} = [messages{k} 'Textgrid not found - using all data points: '];
Dawn@4 1169 set(MBoxHandles.listbox_messages, 'String', messages, 'Value', k);
Dawn@4 1170 drawnow;
Dawn@4 1171
Dawn@4 1172 start = 1;
Dawn@4 1173 stop = maxlen;
Dawn@4 1174 labels = {matfilelist{k}};
Dawn@4 1175
Dawn@4 1176 else % use textgrid start points
Dawn@4 1177 ignorelabels = textscan(VSData.vars.TextgridIgnoreList, '%s', 'delimiter', ',');
Dawn@4 1178 ignorelabels = ignorelabels{1};
Dawn@4 1179
Dawn@4 1180 [labels, start, stop] = func_readTextgrid(TGfile);
Dawn@4 1181 labels_tmp = [];
Dawn@4 1182 start_tmp = [];
Dawn@4 1183 stop_tmp = [];
Dawn@4 1184
Dawn@4 1185 for m=1:length(VSData.vars.TextgridTierNumber)
Dawn@4 1186 inx = VSData.vars.TextgridTierNumber(m);
Dawn@4 1187 if (inx <= length(labels))
Dawn@4 1188 labels_tmp = [labels_tmp; labels{inx}];
Dawn@4 1189 start_tmp = [start_tmp; start{inx}];
Dawn@4 1190 stop_tmp = [stop_tmp; stop{inx}];
Dawn@4 1191 end
Dawn@4 1192 end
Dawn@4 1193
Dawn@4 1194 labels = labels_tmp;
Dawn@4 1195 start = start_tmp * 1000; % milliseconds
Dawn@4 1196 stop = stop_tmp * 1000; % milliseconds
Dawn@4 1197
Dawn@4 1198 % just pull out the start/stop of the labels that aren't
Dawn@4 1199 % ignored
Dawn@4 1200 inx = 1:length(labels);
Dawn@4 1201 for n=1:length(labels)
Dawn@4 1202 switch(labels{n})
Dawn@4 1203 case ignorelabels
Dawn@4 1204 inx(n) = 0;
Dawn@4 1205 end
Dawn@4 1206 end
Dawn@4 1207 inx = unique(inx);
Dawn@4 1208 inx(inx == 0) = [];
Dawn@4 1209 labels = labels(inx);
Dawn@4 1210 start = start(inx);
Dawn@4 1211 stop = stop(inx);
Dawn@4 1212 end
Dawn@4 1213
Dawn@4 1214 % get the EGG file if requested
Dawn@4 1215 [proceedEGG, EGGfile] = checkEGGfilename(matfilelist{k}, handles);
Dawn@4 1216
Dawn@4 1217 if (VSData.vars.OT_includeEGG == 1 && proceedEGG == 0)
Dawn@4 1218 messages{k} = [messages{k} 'EGG file not found, '];
Dawn@4 1219 set(MBoxHandles.listbox_messages, 'String', messages, 'Value', k);
Dawn@4 1220 drawnow;
Dawn@4 1221 errorcnt = errorcnt + 1;
Dawn@4 1222 end
Dawn@4 1223
Dawn@4 1224 if (proceedEGG)
Dawn@4 1225 [EGGData, EGGTime] = func_readEGGfile(EGGfile, VSData.vars.EGGheaders, VSData.vars.EGGtimelabel);
Dawn@4 1226 end
Dawn@4 1227
Dawn@4 1228 % assume each file has the parameters in the mat file
Dawn@4 1229 paramlist_valid = ones(length(paramlist), 1);
Dawn@4 1230
Dawn@4 1231
Dawn@4 1232 % no segments - complete dump
Dawn@4 1233 if (VSData.vars.OT_noSegments == 1)
Dawn@4 1234
Dawn@4 1235 % for each label, loop through and write out the selected
Dawn@4 1236 % parameters
Dawn@4 1237 for n=1:length(start)
Dawn@4 1238 sstart = round(start(n) / frameshift); % get the correct sample
Dawn@4 1239 sstop = round(stop(n) / frameshift);
Dawn@4 1240
Dawn@4 1241 sstart(sstart == 0) = 1; % special case for t = 0
Dawn@4 1242 sstop(sstop > maxlen) = maxlen; % special case for t=maxlen
Dawn@4 1243
Dawn@4 1244 for s=sstart:sstop
Dawn@4 1245
Dawn@4 1246 for m=1:length(uniquefids)
Dawn@4 1247 if (uniquefids(m) == -1)
Dawn@4 1248 continue;
Dawn@4 1249 end
Dawn@4 1250
Dawn@4 1251 fprintf(uniquefids(m), '%s%c', matfilelist{k}, delimiter);
Dawn@4 1252
Dawn@4 1253 if (VSData.vars.OT_includeTextgridLabels == 1)
Dawn@4 1254 fprintf(uniquefids(m), '%s%c', labels{n}, delimiter);
Dawn@4 1255 fprintf(uniquefids(m), '%.3f%c', start(n), delimiter);
Dawn@4 1256 fprintf(uniquefids(m), '%.3f%c', stop(n), delimiter);
Dawn@4 1257 end
Dawn@4 1258
Dawn@4 1259 fprintf(uniquefids(m), '%.3f%c', s * frameshift, delimiter);
Dawn@4 1260 end
Dawn@4 1261
Dawn@4 1262 % print out the selected params
Dawn@4 1263 for m=1:length(paramlist)
Dawn@4 1264 val = VSData.vars.NotANumber; % default is the NaN label
Dawn@4 1265
Dawn@4 1266 C = textscan(paramlist{m}, '%s %s', 'delimiter', '(');
Dawn@4 1267 fidinx = func_getfileinx(paramlist{m});
Dawn@4 1268 param = C{2}{1}(1:end-1);
Dawn@4 1269 if (isfield(mdata, param))
Dawn@4 1270 data = mdata.(param);
Dawn@4 1271 if (length(data)==1 && isnan(data)) % guard against empty vectors
Dawn@4 1272 paramlist_valid(m) = 0;
Dawn@4 1273 else
Dawn@4 1274 if (~isnan(data(s)) && ~isinf(data(s)))
Dawn@4 1275 val = sprintf('%.3f', data(s));
Dawn@4 1276 end
Dawn@4 1277 end
Dawn@4 1278 else
Dawn@4 1279 if (paramlist_valid(m) == 1)
Dawn@4 1280 messages{k} = [messages{k} param ' not found, '];
Dawn@4 1281 set(MBoxHandles.listbox_messages, 'String', messages, 'Value', k);
Dawn@4 1282 drawnow;
Dawn@4 1283 errorcnt = errorcnt + 1;
Dawn@4 1284 paramlist_valid(m) = 0;
Dawn@4 1285 end
Dawn@4 1286 end
Dawn@4 1287
Dawn@4 1288 fprintf(fids(fidinx), '%s%c', val, delimiter);
Dawn@4 1289 end
Dawn@4 1290
Dawn@4 1291 % for the case where EGG was requested, but no EGG file was found
Dawn@4 1292 if (VSData.vars.OT_includeEGG == 1 && proceedEGG == 0)
Dawn@4 1293 fidinx = 6;
Dawn@4 1294 EGGheaders = textscan(VSData.vars.EGGheaders, '%s', 'delimiter', ',');
Dawn@4 1295 EGGheaders = EGGheaders{1};
Dawn@4 1296
Dawn@4 1297 for m=1:length(EGGheaders)
Dawn@4 1298 fprintf(fids(fidinx), '%s%c', VSData.vars.NotANumber, delimiter);
Dawn@4 1299 end
Dawn@4 1300 end
Dawn@4 1301
Dawn@4 1302
Dawn@4 1303 % process EGG stuff
Dawn@4 1304 if (proceedEGG)
Dawn@4 1305 fidinx = 6;
Dawn@4 1306
Dawn@4 1307 % find the time segment from EGGTime, use that to index
Dawn@4 1308 % EGGData
Dawn@4 1309 t = s * frameshift; % this is the time in ms. Get the closest EGGTime to t
Dawn@4 1310 [val, s_EGG] = min(abs(EGGTime - t));
Dawn@4 1311
Dawn@4 1312 if (abs(t - EGGTime(s_EGG)) / t > 0.05) % if t_EGG is more than 5% away from t, it is not correct
Dawn@4 1313 for m=1:length(EGGData)
Dawn@4 1314 fprintf(fids(fidinx), '%s%c', VSData.vars.NotANumber, delimiter);
Dawn@4 1315 end
Dawn@4 1316 else
Dawn@4 1317 for m=1:length(EGGData)
Dawn@4 1318 fprintf(fids(fidinx), '%.3f%c', EGGData{m}(s_EGG), delimiter);
Dawn@4 1319 end
Dawn@4 1320 end
Dawn@4 1321 end
Dawn@4 1322
Dawn@4 1323 % finally, write out new line
Dawn@4 1324 for m=1:length(uniquefids)
Dawn@4 1325 if (uniquefids(m) == -1)
Dawn@4 1326 continue;
Dawn@4 1327 end
Dawn@4 1328 fprintf(uniquefids(m), '\n');
Dawn@4 1329 end
Dawn@4 1330
Dawn@4 1331 end
Dawn@4 1332
Dawn@4 1333 end
Dawn@4 1334
Dawn@4 1335
Dawn@4 1336 % outputting with segments
Dawn@4 1337 else
Dawn@4 1338 Nseg = str2double(get(handles.edit_numSegments, 'String'));
Dawn@4 1339
Dawn@4 1340 % for each segment, print out overall mean, then parts mean
Dawn@4 1341 for n=1:length(start)
Dawn@4 1342
Dawn@4 1343 % print out the header stuff
Dawn@4 1344 for m=1:length(uniquefids)
Dawn@4 1345 if (uniquefids(m) == -1)
Dawn@4 1346 continue;
Dawn@4 1347 end
Dawn@4 1348
Dawn@4 1349 fprintf(uniquefids(m), '%s%c', matfilelist{k}, delimiter);
Dawn@4 1350
Dawn@4 1351 if (VSData.vars.OT_includeTextgridLabels == 1)
Dawn@4 1352 fprintf(uniquefids(m), '%s%c', labels{n}, delimiter);
Dawn@4 1353 fprintf(uniquefids(m), '%.3f%c', start(n), delimiter);
Dawn@4 1354 fprintf(uniquefids(m), '%.3f%c', stop(n), delimiter);
Dawn@4 1355 end
Dawn@4 1356
Dawn@4 1357 end
Dawn@4 1358
Dawn@4 1359 % get array of start and stop times for the segments. First one
Dawn@4 1360 % is the total mean
Dawn@4 1361 tsegs = linspace(start(n), stop(n), Nseg+1);
Dawn@4 1362 tstart = zeros(Nseg+1, 1);
Dawn@4 1363 tstop = zeros(Nseg+1, 1);
Dawn@4 1364
Dawn@4 1365 tstart(1) = start(n);
Dawn@4 1366 tstop(1) = stop(n);
Dawn@4 1367 tstart(2:end) = tsegs(1:Nseg);
Dawn@4 1368 tstop(2:end) = tsegs(2:Nseg+1);
Dawn@4 1369
Dawn@4 1370 % get the sample equivalents
Dawn@4 1371 sstart = round(tstart ./ frameshift);
Dawn@4 1372 sstop = round(tstop ./ frameshift);
Dawn@4 1373
Dawn@4 1374 % don't output segments if Nseg == 1
Dawn@4 1375 if (Nseg == 1)
Dawn@4 1376 sstart = sstart(1);
Dawn@4 1377 sstop = sstop(1);
Dawn@4 1378 end
Dawn@4 1379
Dawn@4 1380 % guard against 0 and maxlen
Dawn@4 1381 sstart(sstart == 0) = 1;
Dawn@4 1382 sstop(sstop > maxlen) = maxlen;
Dawn@4 1383
Dawn@4 1384 for m=1:length(paramlist)
Dawn@4 1385 val = VSData.vars.NotANumber; % default value is no value
Dawn@4 1386
Dawn@4 1387 fidinx = func_getfileinx(paramlist{m});
Dawn@4 1388 C = textscan(paramlist{m}, '%s %s', 'delimiter', '(');
Dawn@4 1389 param = C{2}{1}(1:end-1);
Dawn@4 1390 if (isfield(mdata, param))
Dawn@4 1391 data = mdata.(param);
Dawn@4 1392
Dawn@4 1393 for p=1:length(sstart)
Dawn@4 1394 if (length(data)==1 && isnan(data))
Dawn@4 1395 paramlist_valid(m) = 0;
Dawn@4 1396 else
Dawn@4 1397 dataseg = data(sstart(p):sstop(p));
Dawn@4 1398 mdataseg = mean(dataseg(~isnan(dataseg) & ~isinf(dataseg)));
Dawn@4 1399 if (~isempty(mdataseg) && ~isnan(mdataseg) && ~isinf(mdataseg))
Dawn@4 1400 val = sprintf('%.3f', mdataseg);
Dawn@4 1401 end
Dawn@4 1402 end
Dawn@4 1403 fprintf(fids(fidinx), '%s%c', val, delimiter);
Dawn@4 1404 end
Dawn@4 1405 else
Dawn@4 1406 if (paramlist_valid(m) == 1)
Dawn@4 1407 messages{k} = [messages{k} param ' not found, '];
Dawn@4 1408 set(MBoxHandles.listbox_messages, 'String', messages, 'Value', k);
Dawn@4 1409 drawnow;
Dawn@4 1410 errorcnt = errorcnt + 1;
Dawn@4 1411 paramlist_valid(m) = 0;
Dawn@4 1412 end
Dawn@4 1413
Dawn@4 1414 for p=1:length(sstart)
Dawn@4 1415 fprintf(fids(fidinx), '%s%c', val, delimiter);
Dawn@4 1416 end
Dawn@4 1417 end
Dawn@4 1418
Dawn@4 1419 end
Dawn@4 1420
Dawn@4 1421
Dawn@4 1422 % this case if for when the EGG was requested, but no egg file
Dawn@4 1423 % was found
Dawn@4 1424 if (VSData.vars.OT_includeEGG == 1 && proceedEGG == 0)
Dawn@4 1425 fidinx = 6;
Dawn@4 1426 EGGheaders = textscan(VSData.vars.EGGheaders, '%s', 'delimiter', ',');
Dawn@4 1427 EGGheaders = EGGheaders{1};
Dawn@4 1428 for m=1:length(EGGheaders)
Dawn@4 1429 for p=1:length(tstart)
Dawn@4 1430 fprintf(fids(fidinx), '%s%c', VSData.vars.NotANumber, delimiter);
Dawn@4 1431 end
Dawn@4 1432 end
Dawn@4 1433 end
Dawn@4 1434
Dawn@4 1435 % process EGG stuff
Dawn@4 1436 if (proceedEGG)
Dawn@4 1437 fidinx = 6;
Dawn@4 1438
Dawn@4 1439 for m=1:length(EGGData)
Dawn@4 1440 for p=1:length(tstart)
Dawn@4 1441 EGGInx = (EGGTime >= tstart(p)) & (EGGTime <= tstop(p));
Dawn@4 1442 meanval = mean(EGGData{m}(EGGInx));
Dawn@4 1443 if (~isempty(meanval) && ~isnan(meanval) && ~isinf(meanval))
Dawn@4 1444 val = sprintf('%.3f', meanval);
Dawn@4 1445 else
Dawn@4 1446 val = VSData.vars.NotANumber;
Dawn@4 1447 end
Dawn@4 1448 fprintf(fids(fidinx), '%s%c', val, delimiter);
Dawn@4 1449 end
Dawn@4 1450 end
Dawn@4 1451 end
Dawn@4 1452
Dawn@4 1453 % finally, write out new line
Dawn@4 1454 for m=1:length(uniquefids)
Dawn@4 1455 if (uniquefids(m) == -1)
Dawn@4 1456 continue;
Dawn@4 1457 end
Dawn@4 1458 fprintf(uniquefids(m), '\n');
Dawn@4 1459 end
Dawn@4 1460
Dawn@4 1461 end
Dawn@4 1462 end
Dawn@4 1463 end
Dawn@4 1464
Dawn@4 1465 for k=1:length(uniquefids)
Dawn@4 1466 if (uniquefids(k) == -1)
Dawn@4 1467 continue;
Dawn@4 1468 end
Dawn@4 1469 fclose(uniquefids(k));
Dawn@4 1470 end
Dawn@4 1471
Dawn@4 1472 if (errorcnt > 0)
Dawn@4 1473 messages{length(matfilelist)+1} = sprintf('Completed: %d parameters not found.', errorcnt);
Dawn@4 1474 else
Dawn@4 1475 messages{length(matfilelist)+1} = sprintf('Completed.');
Dawn@4 1476 end
Dawn@4 1477 set(MBoxHandles.listbox_messages, 'String', messages, 'Value', length(matfilelist)+1);
Dawn@4 1478
Dawn@4 1479 % allow the MBox to close
Dawn@4 1480 set(MBoxHandles.pushbutton_close, 'Enable', 'on');
Dawn@4 1481 set(MBoxHandles.pushbutton_stop, 'Enable', 'off');
Dawn@4 1482
Dawn@4 1483
Dawn@4 1484
Dawn@4 1485 % write headers to files
Dawn@4 1486 function writeFileHeaders(fids, paramlist, handles, delimiter)
Dawn@4 1487 VSData = guidata(handles.VSHandle);
Dawn@4 1488
Dawn@4 1489 % write out the filename and textgrid labels if required
Dawn@4 1490 for k=1:length(fids)
Dawn@4 1491 if (fids(k) == -1)
Dawn@4 1492 continue;
Dawn@4 1493 end
Dawn@4 1494
Dawn@4 1495 fprintf(fids(k), 'Filename%c', delimiter);
Dawn@4 1496
Dawn@4 1497 if (VSData.vars.OT_includeTextgridLabels == 1)
Dawn@4 1498 fprintf(fids(k), 'Label%c', delimiter);
Dawn@4 1499 fprintf(fids(k), 'seg_Start%c', delimiter);
Dawn@4 1500 fprintf(fids(k), 'seg_End%c', delimiter);
Dawn@4 1501 end
Dawn@4 1502
Dawn@4 1503 % only print a time stamp when doing complete dumps
Dawn@4 1504 if (VSData.vars.OT_noSegments == 1)
Dawn@4 1505 fprintf(fids(k), 't_ms%c', delimiter);
Dawn@4 1506 end
Dawn@4 1507 end
Dawn@4 1508
Dawn@4 1509 % make the file ids the same length as using multiple files
Dawn@4 1510 if (length(fids)==1)
Dawn@4 1511 if (VSData.vars.OT_includeEGG)
Dawn@4 1512 fids = [fids fids fids fids fids fids];
Dawn@4 1513 else
Dawn@4 1514 fids = [fids fids fids fids fids -1];
Dawn@4 1515 end
Dawn@4 1516 end
Dawn@4 1517
Dawn@4 1518 % separate case for complete data dump
Dawn@4 1519 if (VSData.vars.OT_noSegments == 1)
Dawn@4 1520 for k=1:length(paramlist)
Dawn@4 1521 fidinx = func_getfileinx(paramlist{k});
Dawn@4 1522 C = textscan(paramlist{k}, '%s %s', 'delimiter', '(');
Dawn@4 1523 fprintf(fids(fidinx), '%s%c', C{2}{1}(1:end-1), delimiter);
Dawn@4 1524 end
Dawn@4 1525
Dawn@4 1526 if (VSData.vars.OT_includeEGG)
Dawn@4 1527 fidinx = 6;
Dawn@4 1528 C = textscan(VSData.vars.EGGheaders, '%s', 'delimiter', ',');
Dawn@4 1529 for n=1:length(C{1})
Dawn@4 1530 fprintf(fids(fidinx), '%s%c', C{1}{n}, delimiter);
Dawn@4 1531 end
Dawn@4 1532 end
Dawn@4 1533
Dawn@4 1534 % finally, write out new line
Dawn@4 1535 fids = unique(fids);
Dawn@4 1536 for k=1:length(fids)
Dawn@4 1537 if (fids(k) == -1)
Dawn@4 1538 continue;
Dawn@4 1539 end
Dawn@4 1540 fprintf(fids(k), '\n');
Dawn@4 1541 end
Dawn@4 1542
Dawn@4 1543 % using segments
Dawn@4 1544 else
Dawn@4 1545 Nseg = str2double(get(handles.edit_numSegments, 'String'));
Dawn@4 1546
Dawn@4 1547 % for each parameter, print the mean, followed by the means of each
Dawn@4 1548 % segment
Dawn@4 1549 for k=1:length(paramlist)
Dawn@4 1550 fidinx = func_getfileinx(paramlist{k});
Dawn@4 1551 C = textscan(paramlist{k}, '%s %s', 'delimiter', '(');
Dawn@4 1552 label = C{2}{1}(1:end-1);
Dawn@4 1553 fprintf(fids(fidinx), '%s_mean%c', label, delimiter);
Dawn@4 1554 if (Nseg > 1)
Dawn@4 1555 for n=1:Nseg
Dawn@4 1556 segno = sprintf('%3d', n);
Dawn@4 1557 segno = strrep(segno, ' ', '0');
Dawn@4 1558 fprintf(fids(fidinx), '%s_means%s%c', label, segno, delimiter);
Dawn@4 1559 end
Dawn@4 1560 end
Dawn@4 1561 end
Dawn@4 1562
Dawn@4 1563 if (VSData.vars.OT_includeEGG)
Dawn@4 1564 fidinx = 6;
Dawn@4 1565 C = textscan(VSData.vars.EGGheaders, '%s', 'delimiter', ',');
Dawn@4 1566 for n=1:length(C{1})
Dawn@4 1567 fprintf(fids(fidinx), '%s_mean%c', C{1}{n}, delimiter);
Dawn@4 1568
Dawn@4 1569 if (Nseg > 1)
Dawn@4 1570 for m=1:Nseg
Dawn@4 1571 segno = sprintf('%3d', m);
Dawn@4 1572 segno = strrep(segno, ' ', '0');
Dawn@4 1573 fprintf(fids(fidinx), '%s_means%s%c', C{1}{n}, segno, delimiter);
Dawn@4 1574 end
Dawn@4 1575 end
Dawn@4 1576 end
Dawn@4 1577 end
Dawn@4 1578
Dawn@4 1579 % finally, write out a new line
Dawn@4 1580 fids = unique(fids);
Dawn@4 1581 for k=1:length(fids)
Dawn@4 1582 if (fids(k) == -1)
Dawn@4 1583 continue;
Dawn@4 1584 end
Dawn@4 1585 fprintf(fids(k), '\n');
Dawn@4 1586 end
Dawn@4 1587
Dawn@4 1588
Dawn@4 1589 end
Dawn@4 1590
Dawn@4 1591
Dawn@4 1592
Dawn@4 1593 function [proceedEGG, EGGfile] = checkEGGfilename(matfile, handles)
Dawn@4 1594 VSData = guidata(handles.VSHandle);
Dawn@4 1595
Dawn@4 1596 if (VSData.vars.OT_includeEGG == 0)
Dawn@4 1597 proceedEGG = 0;
Dawn@4 1598 EGGfile = '';
Dawn@4 1599 return;
Dawn@4 1600 end
Dawn@4 1601
Dawn@4 1602 % deal with the filename stupidity that is PCQuirer
Dawn@4 1603 VSData = guidata(handles.VSHandle);
Dawn@4 1604
Dawn@4 1605 EGGfile = [VSData.vars.OT_EGGdir VSData.vars.dirdelimiter matfile(1:end-3) 'egg']; % attempt to open .egg
Dawn@4 1606 if (exist(EGGfile, 'file') == 0)
Dawn@4 1607 proceedEGG = 0;
Dawn@4 1608
Dawn@4 1609 if (length(matfile) > 10)
Dawn@4 1610 if (strcmpi(matfile(end-9:end-4), '_Audio')) % case insensitive
Dawn@4 1611 EGGfile = [VSData.vars.OT_EGGdir VSData.vars.dirdelimiter matfile(1:end-9), 'ch1.egg']; % try with ch1 first
Dawn@4 1612
Dawn@4 1613 if (exist(EGGfile, 'file') == 0)
Dawn@4 1614 EGGfile = [VSData.vars.OT_EGGdir VSData.vars.dirdelimiter matfile(1:end-10) '.egg']; % next try with .egg w/o _Audio
Dawn@4 1615 if (exist(EGGfile, 'file') == 0)
Dawn@4 1616 proceedEGG = 0;
Dawn@4 1617 else
Dawn@4 1618 proceedEGG = 1;
Dawn@4 1619 end
Dawn@4 1620 else
Dawn@4 1621 proceedEGG = 1;
Dawn@4 1622 end
Dawn@4 1623
Dawn@4 1624 end
Dawn@4 1625 end
Dawn@4 1626 else
Dawn@4 1627 proceedEGG = 1;
Dawn@4 1628 end
Dawn@4 1629
Dawn@4 1630
Dawn@4 1631
Dawn@4 1632
Dawn@4 1633