Mercurial > hg > emotion-detection-top-level
diff Code/Descriptors/Matlab/MPEG7/FromWeb/VoiceSauce/vs_ManualData.m @ 4:92ca03a8fa99 tip
Update to ICASSP 2013 benchmark
author | Dawn Black |
---|---|
date | Wed, 13 Feb 2013 11:02:39 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Code/Descriptors/Matlab/MPEG7/FromWeb/VoiceSauce/vs_ManualData.m Wed Feb 13 11:02:39 2013 +0000 @@ -0,0 +1,787 @@ +function varargout = vs_ManualData(varargin) +% VS_MANUALDATA M-file for vs_ManualData.fig +% VS_MANUALDATA, by itself, creates a new VS_MANUALDATA or raises the existing +% singleton*. +% +% H = VS_MANUALDATA returns the handle to a new VS_MANUALDATA or the handle to +% the existing singleton*. +% +% VS_MANUALDATA('CALLBACK',hObject,eventData,handles,...) calls the local +% function named CALLBACK in VS_MANUALDATA.M with the given input arguments. +% +% VS_MANUALDATA('Property','Value',...) creates a new VS_MANUALDATA or raises the +% existing singleton*. Starting from the left, property value pairs are +% applied to the GUI before vs_ManualData_OpeningFcn gets called. An +% unrecognized property name or invalid value makes property application +% stop. All inputs are passed to vs_ManualData_OpeningFcn via varargin. +% +% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one +% instance to run (singleton)". +% +% See also: GUIDE, GUIDATA, GUIHANDLES + +% Edit the above text to modify the response to help vs_ManualData + +% Last Modified by GUIDE v2.5 22-Oct-2009 12:22:59 + +% Begin initialization code - DO NOT EDIT +gui_Singleton = 1; +gui_State = struct('gui_Name', mfilename, ... + 'gui_Singleton', gui_Singleton, ... + 'gui_OpeningFcn', @vs_ManualData_OpeningFcn, ... + 'gui_OutputFcn', @vs_ManualData_OutputFcn, ... + 'gui_LayoutFcn', [] , ... + 'gui_Callback', []); +if nargin && ischar(varargin{1}) + gui_State.gui_Callback = str2func(varargin{1}); +end + +if nargout + [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); +else + gui_mainfcn(gui_State, varargin{:}); +end +% End initialization code - DO NOT EDIT + + +% --- Executes just before vs_ManualData is made visible. +function vs_ManualData_OpeningFcn(hObject, eventdata, handles, varargin) +% This function has no output args, see OutputFcn. +% hObject handle to figure +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) +% varargin command line arguments to vs_ManualData (see VARARGIN) + +% Choose default command line output for vs_ManualData +handles.output = hObject; + +% YS: get the settings from the main figure +if (~isfield(handles, 'VSHandle')) + VSHandle = VoiceSauce; + handles.VSHandle = VSHandle; +end + +VSData = guidata(handles.VSHandle); + +set(handles.edit_wavdir, 'String', VSData.vars.MD_wavdir); +set(handles.edit_matdir, 'String', VSData.vars.MD_matdir); + +set(handles.checkbox_matwithwav, 'Value', VSData.vars.MD_matwithwav); + +if (VSData.vars.MD_matwithwav) + set(handles.edit_matdir, 'Enable', 'Off'); + set(handles.pushbutton_matfile_browse, 'Enable', 'Off'); +else + set(handles.edit_matdir, 'Enable', 'On'); + set(handles.pushbutton_matfile_browse, 'Enable', 'On'); +end + +if (VSData.vars.recursedir) + func_setlistbox(handles.listbox_wavfilelist, VSData.vars.MD_wavdir, 'recurse', VSData.vars, VSData.vars.I_searchstring); +else + func_setlistbox(handles.listbox_wavfilelist, VSData.vars.MD_wavdir, 'none', VSData.vars, VSData.vars.I_searchstring); +end + +set(handles.listbox_Data_paramlist, 'String', func_getmanualdataparameterlist()); +set(handles.edit_Data_invalid, 'String', VSData.vars.MD_invalidentry); +set(handles.checkbox_resample, 'Value', VSData.vars.MD_resample); + +% Update handles structure +guidata(hObject, handles); + +checkParameters(handles); +plotParam(handles); + +% UIWAIT makes vs_ManualData wait for user response (see UIRESUME) +% uiwait(handles.figure_ManualData); + + +% -- plot the current selected parameter +function plotParam(handles) +VSData = guidata(handles.VSHandle); +contents = get(handles.listbox_wavfilelist, 'String'); +OF = str2double(get(handles.edit_Data_offset, 'String')); + +if (isempty(contents)) + return; +end + +shortwavfile = contents{get(handles.listbox_wavfilelist, 'Value')}; +wavfile = [VSData.vars.MD_wavdir VSData.vars.dirdelimiter shortwavfile]; + +[y,Fs] = wavread(wavfile); +L = floor((length(y) / Fs * 1000) / VSData.vars.frameshift) - 1; +set(handles.edit_Data_explen, 'String', num2str(L)); + +% set the amount of padding needed +figdata = guidata(handles.figure_ManualData); +NL = str2double(get(handles.edit_Data_newlen, 'String')); +set(handles.edit_Data_pad, 'String', num2str(L - NL - OF)); + + +if (isfield(figdata, 'mdata')) + contents = get(handles.listbox_Data_paramlist, 'String'); + + if (isempty(contents)) + return; + end + + label = contents{get(handles.listbox_Data_paramlist, 'Value')}; + C = textscan(label, '%s %s', 'delimiter', '('); + param = C{2}{1}(1:end-1); + + % if the parameter exists, plot it in blue + if (isfield(figdata.mdata, param)) + plot(handles.axes_main, figdata.mdata.(param)); % plot the existing param + L = length(figdata.mdata.(param)); + set(handles.edit_Data_explen, 'String', num2str(L)); + set(handles.edit_Data_pad, 'String', num2str(L - NL - OF)); + axis(handles.axes_main, 'tight'); + else + cla(handles.axes_main); + end +end + +if (VSData.vars.MD_resample && isfield(figdata, 'newdata_resamp')) + hold(handles.axes_main, 'on'); + newdata = zeros(L, 1) * NaN; + if (OF >= 0) + newdata(OF+1:L) = figdata.newdata_resamp; + else + newdata(1:length(figdata.newdata_resamp) + OF) = figdata.newdata_resamp(abs(OF)+1:end); + end + plot(handles.axes_main, newdata, 'r'); + hold(handles.axes_main, 'off'); + axis(handles.axes_main, 'tight'); + hold(handles.axes_main, 'off'); + +elseif (isfield(figdata, 'newdata')) + hold(handles.axes_main, 'on'); + % create new vector + newdata = zeros(L, 1) * NaN; + if (length(figdata.newdata) + OF >= L) + newdata(OF+1:L) = figdata.newdata(1:L-OF); + else + if (OF >=0) + newdata(OF+1:OF+length(figdata.newdata)) = figdata.newdata; + else + newdata(1:length(figdata.newdata)+OF) = figdata.newdata(abs(OF)+1:end); + end + end + + plot(handles.axes_main, newdata, 'r'); + hold(handles.axes_main, 'off'); + axis(handles.axes_main, 'tight'); + %legend(handles.axes_main, {'Original', 'New'}); +end + + +% -- build up the matfile if it exists +function checkParameters(handles) +VSData = guidata(handles.VSHandle); +contents = get(handles.listbox_wavfilelist, 'String'); + +if (isempty(contents)) + return; +end + +shortwavfile = contents{get(handles.listbox_wavfilelist, 'Value')}; +matfile = [VSData.vars.MD_matdir VSData.vars.dirdelimiter, shortwavfile(1:end-3) 'mat']; + +if (exist(matfile, 'file') == 0) + mdata = []; +else + mdata = func_buildMData(matfile, VSData.vars.O_smoothwinsize); +end + +% store mdata so it can be accessed by plotData +figdata = guidata(handles.figure_ManualData); +figdata.mdata = mdata; +guidata(handles.figure_ManualData, figdata); + + + +% --- Outputs from this function are returned to the command line. +function varargout = vs_ManualData_OutputFcn(hObject, eventdata, handles) +% varargout cell array for returning output args (see VARARGOUT); +% hObject handle to figure +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) + +% Get default command line output from handles structure +varargout{1} = handles.output; + + + +function edit_wavdir_Callback(hObject, eventdata, handles) +% hObject handle to edit_wavdir (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) + +new_dir = get(hObject, 'String'); + +VSData = guidata(handles.VSHandle); + +if (exist(new_dir, 'dir') == 7) + VSData = func_setwavdir('MD_wavdir', new_dir, VSData); + + if (VSData.vars.recursedir) + func_setlistbox(handles.listbox_wavfilelist, VSData.vars.MD_wavdir, 'recurse', VSData.vars, VSData.vars.I_searchstring); + else + func_setlistbox(handles.listbox_wavfilelist, VSData.vars.MD_wavdir, 'none', VSData.vars, VSData.vars.I_searchstring); + end + + if (VSData.vars.PE_savematwithwav) + set(handles.edit_matdir, 'String', new_dir); + VSData = func_setmatdir('MD_matdir', new_dir, VSData); + end + guidata(handles.VSHandle, VSData); +else + msgbox('Error: directory not found.', 'Error', 'error', 'modal'); + set(hObject, 'String', VSData.vars.MD_wavdir); +end + +% --- Executes during object creation, after setting all properties. +function edit_wavdir_CreateFcn(hObject, eventdata, handles) +% hObject handle to edit_wavdir (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles empty - handles not created until after all CreateFcns called + +% Hint: edit controls usually have a white background on Windows. +% See ISPC and COMPUTER. +if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) + set(hObject,'BackgroundColor','white'); +end + + +% --- Executes on button press in pushbutton_wavfile_browse. +function pushbutton_wavfile_browse_Callback(hObject, eventdata, handles) +% hObject handle to pushbutton_wavfile_browse (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) +current_dir = get(handles.edit_wavdir, 'String'); +new_dir = uigetdir(current_dir); + +VSData = guidata(handles.VSHandle); + +if (ischar(new_dir)) + VSData = func_setwavdir('MD_wavdir', new_dir, VSData); + set(handles.edit_wavdir, 'String', new_dir); + + if (VSData.vars.recursedir) + func_setlistbox(handles.listbox_wavfilelist, VSData.vars.MD_wavdir, 'recurse', VSData.vars, VSData.vars.I_searchstring); + else + func_setlistbox(handles.listbox_wavfilelist, VSData.vars.MD_wavdir, 'none', VSData.vars, VSData.vars.I_searchstring); + end + + % assume that mat files are saved with wavs + if (VSData.vars.MD_matwithwav == 1) + set(handles.edit_matdir, 'String', new_dir); + VSData = func_setmatdir('MD_matdir', new_dir, VSData); + end + + guidata(handles.VSHandle, VSData); + +end + +checkParameters(handles); +plotParam(handles); + + + +% --- Executes on selection change in listbox_wavfilelist. +function listbox_wavfilelist_Callback(hObject, eventdata, handles) +% hObject handle to listbox_wavfilelist (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) + +% Hints: contents = get(hObject,'String') returns listbox_wavfilelist contents as cell array +% contents{get(hObject,'Value')} returns selected item from listbox_wavfilelist +checkParameters(handles); +plotParam(handles); + + +% --- Executes during object creation, after setting all properties. +function listbox_wavfilelist_CreateFcn(hObject, eventdata, handles) +% hObject handle to listbox_wavfilelist (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles empty - handles not created until after all CreateFcns called + +% Hint: listbox controls usually have a white background on Windows. +% See ISPC and COMPUTER. +if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) + set(hObject,'BackgroundColor','white'); +end + + +% --- Executes on selection change in listbox_Data_paramlist. +function listbox_Data_paramlist_Callback(hObject, eventdata, handles) +% hObject handle to listbox_Data_paramlist (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) + +% Hints: contents = get(hObject,'String') returns listbox_Data_paramlist contents as cell array +% contents{get(hObject,'Value')} returns selected item from listbox_Data_paramlist +%checkParameters(handles); +plotParam(handles); + + +% --- Executes during object creation, after setting all properties. +function listbox_Data_paramlist_CreateFcn(hObject, eventdata, handles) +% hObject handle to listbox_Data_paramlist (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles empty - handles not created until after all CreateFcns called + +% Hint: listbox controls usually have a white background on Windows. +% See ISPC and COMPUTER. +if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) + set(hObject,'BackgroundColor','white'); +end + + + +function edit_Data_datafile_Callback(hObject, eventdata, handles) +% hObject handle to edit_Data_datafile (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) +VSData = guidata(handles.VSHandle); +L = str2double(get(handles.edit_Data_explen, 'String')); +OF = str2double(get(handles.edit_Data_offset, 'String')); + +filename = get(hObject, 'String'); + +if (exist(filename,'file') == 2) + % try to read in the file + fid = fopen(filename, 'rt'); + set(handles.edit_Data_datafile, 'String', [pathname filename]); + + if (fid == -1) + msgbox('Error: Unable to open data file', 'Error', 'error', 'modal'); + return; + end + + data = textscan(fid, '%s', 'delimiter', '\n'); + fclose(fid); + + % get the specified labels for invalid entry + delimiters = textscan(VSData.vars.MD_invalidentry, '%s', 'delimiter', ','); + + % now check each entry + data = data{1}; + newdata = zeros(length(data), 1) * NaN; + + for k=1:length(data) + switch(data{k}) + case delimiters + + otherwise + newdata(k) = str2double(data{k}); + end + end + + figdata = guidata(handles.figure_ManualData); + figdata.newdata = newdata; + + if (VSData.vars.MD_resample) + guidata(handles.figure_ManualData, figdata); + end + + guidata(handles.figure_ManualData, figdata); + + plotParam(handles); + + set(handles.edit_Data_newlen, 'String', num2str(length(newdata))); + set(handles.edit_Data_pad, 'String', num2str(L - OF - length(newdata))); + +end + + +% --- Executes during object creation, after setting all properties. +function edit_Data_datafile_CreateFcn(hObject, eventdata, handles) +% hObject handle to edit_Data_datafile (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles empty - handles not created until after all CreateFcns called + +% Hint: edit controls usually have a white background on Windows. +% See ISPC and COMPUTER. +if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) + set(hObject,'BackgroundColor','white'); +end + + +% --- Executes on button press in pushbutton_datafile_browse. +function pushbutton_datafile_browse_Callback(hObject, eventdata, handles) +% hObject handle to pushbutton_datafile_browse (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) + +VSData = guidata(handles.VSHandle); +L = str2double(get(handles.edit_Data_explen, 'String')); +OF = str2double(get(handles.edit_Data_offset, 'String')); +current_dir = get(handles.edit_wavdir, 'String'); + +[filename, pathname] = uigetfile({'*.txt'; '*.*'}, 'Select data file', current_dir); + +if (filename ~= 0) + % try to read in the file + fid = fopen([pathname filename], 'rt'); + set(handles.edit_Data_datafile, 'String', [pathname filename]); + + if (fid == -1) + msgbox('Error: Unable to open data file', 'Error', 'error', 'modal'); + return; + end + + data = textscan(fid, '%s', 'delimiter', '\n'); + fclose(fid); + + % get the specified labels for invalid entry + delimiters = textscan(VSData.vars.MD_invalidentry, '%s', 'delimiter', ','); + + % now check each entry + data = data{1}; + newdata = zeros(length(data), 1) * NaN; + + for k=1:length(data) + switch(data{k}) + case delimiters + + otherwise + newdata(k) = str2double(data{k}); + end + end + + figdata = guidata(handles.figure_ManualData); + figdata.newdata = newdata; + + if (VSData.vars.MD_resample) + figdata = resample_signal(figdata, handles); + end + guidata(handles.figure_ManualData, figdata); + + plotParam(handles); + + set(handles.edit_Data_newlen, 'String', num2str(length(newdata))); + set(handles.edit_Data_pad, 'String', num2str(L - OF - length(newdata))); + +end + + + +function edit_Data_offset_Callback(hObject, eventdata, handles) +% hObject handle to edit_Data_offset (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) +VSData = guidata(handles.VSHandle); + +str = get(hObject, 'String'); +num = str2double(str); +if (isnan(num)) + set(hObject, 'String', num2str(VSData.vars.MD_offset)); +else + VSData.vars.MD_offset = num; + guidata(handles.VSHandle, VSData); + + % update the other numbers + L = str2double(get(handles.edit_Data_explen, 'String')); + NDL = str2double(get(handles.edit_Data_newlen, 'String')); + set(handles.edit_Data_pad, 'String', num2str(L - num - NDL)); + + if (VSData.vars.MD_resample) + figdata = guidata(handles.figure_ManualData); + figdata = resample_signal(figdata, handles); + guidata(handles.figure_ManualData, figdata); + end + + plotParam(handles); +end + +% --- Executes during object creation, after setting all properties. +function edit_Data_offset_CreateFcn(hObject, eventdata, handles) +% hObject handle to edit_Data_offset (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles empty - handles not created until after all CreateFcns called + +% Hint: edit controls usually have a white background on Windows. +% See ISPC and COMPUTER. +if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) + set(hObject,'BackgroundColor','white'); +end + + + +function edit_matdir_Callback(hObject, eventdata, handles) +% hObject handle to edit_matdir (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) + +new_dir = get(hObject, 'String'); +VSData = guidata(handles.VSHandle); + +if (exist(new_dir, 'dir') == 7) + VSData = func_setmatdir('MD_matdir', new_dir, VSData); + set(handles.edit_matdir, 'String', new_dir); + + guidata(handles.VSHandle, VSData); +else + msgbox('Error: directory not found.', 'Error', 'error', 'modal'); + set(hObject, 'String', VSData.vars.MD_matdir); +end + + +% --- Executes during object creation, after setting all properties. +function edit_matdir_CreateFcn(hObject, eventdata, handles) +% hObject handle to edit_matdir (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles empty - handles not created until after all CreateFcns called + +% Hint: edit controls usually have a white background on Windows. +% See ISPC and COMPUTER. +if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) + set(hObject,'BackgroundColor','white'); +end + + +% --- Executes on button press in pushbutton_matfile_browse. +function pushbutton_matfile_browse_Callback(hObject, eventdata, handles) +% hObject handle to pushbutton_matfile_browse (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) +current_dir = get(handles.edit_matdir, 'String'); +new_dir = uigetdir(current_dir); + +VSData = guidata(handles.VSHandle); + +if (ischar(new_dir)) + VSData = func_setmatdir('MD_matdir', new_dir, VSData); + set(handles.edit_matdir, 'String', new_dir); + + guidata(handles.VSHandle, VSData); +end + +checkParameters(handles); +plotParam(handles); + + +% --- Executes on button press in pushbutton_Data_save. +function pushbutton_Data_save_Callback(hObject, eventdata, handles) +% hObject handle to pushbutton_Data_save (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) +VSData = guidata(handles.VSHandle); +figdata = guidata(handles.figure_ManualData); + +L = str2double(get(handles.edit_Data_explen, 'String')); +OF = VSData.vars.MD_offset; + +% check we have something to save to +wavfilelist = get(handles.listbox_wavfilelist, 'String'); +if (isempty(wavfilelist)) + msgbox('Error: no wav files found.', 'Error', 'error', 'modal'); + return; +end + +paramlist = get(handles.listbox_Data_paramlist, 'String'); +if (isempty(paramlist)) + msgbox('Error: no parameters found.', 'Error', 'error', 'modal'); + return; +end + +% get the parameter +label = paramlist{get(handles.listbox_Data_paramlist, 'Value')}; +C = textscan(label, '%s %s', 'delimiter', '('); +param = C{2}{1}(1:end-1); + +shortwavfile = wavfilelist{get(handles.listbox_wavfilelist, 'Value')}; +matfile = [VSData.vars.MD_matdir VSData.vars.dirdelimiter shortwavfile(1:end-3) 'mat']; + + +if (VSData.vars.MD_resample && isfield(figdata, 'newdata_resamp')) + data = figdata.newdata_resamp; +elseif (~VSData.vars.MD_resample && isfield(figdata, 'newdata')) + data = figdata.newdata; +else + msgbox('Error: no new data loaded.', 'Error', 'error', 'modal'); + return; +end + +newdata = zeros(L, 1) * NaN; +if (length(data) + OF >= L) + newdata(OF+1:L) = data; +else + if (OF >= 0) + newdata(OF+1:OF+length(data)) = data; + else + newdata(1:length(data)+OF) = data(abs(OF)+1:end); + end +end + + +% create the new parameter here +eval([sprintf(param) '= newdata;']); +if (exist(matfile, 'file') == 2) % mat file already exist + save(matfile, param, '-append'); +else + save(matfile, param); +end + +msgbox('Save complete.', 'Save', 'help', 'modal'); + + + + +function edit_Data_explen_Callback(hObject, eventdata, handles) +% hObject handle to edit_Data_explen (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) + +% Hints: get(hObject,'String') returns contents of edit_Data_explen as text +% str2double(get(hObject,'String')) returns contents of edit_Data_explen as a double + + +% --- Executes during object creation, after setting all properties. +function edit_Data_explen_CreateFcn(hObject, eventdata, handles) +% hObject handle to edit_Data_explen (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles empty - handles not created until after all CreateFcns called + +% Hint: edit controls usually have a white background on Windows. +% See ISPC and COMPUTER. +if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) + set(hObject,'BackgroundColor','white'); +end + + + +function edit_Data_pad_Callback(hObject, eventdata, handles) +% hObject handle to edit_Data_pad (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) + +% Hints: get(hObject,'String') returns contents of edit_Data_pad as text +% str2double(get(hObject,'String')) returns contents of edit_Data_pad as a double + + +% --- Executes during object creation, after setting all properties. +function edit_Data_pad_CreateFcn(hObject, eventdata, handles) +% hObject handle to edit_Data_pad (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles empty - handles not created until after all CreateFcns called + +% Hint: edit controls usually have a white background on Windows. +% See ISPC and COMPUTER. +if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) + set(hObject,'BackgroundColor','white'); +end + + + +function edit_Data_newlen_Callback(hObject, eventdata, handles) +% hObject handle to edit_Data_newlen (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) + +% Hints: get(hObject,'String') returns contents of edit_Data_newlen as text +% str2double(get(hObject,'String')) returns contents of edit_Data_newlen as a double + + +% --- Executes during object creation, after setting all properties. +function edit_Data_newlen_CreateFcn(hObject, eventdata, handles) +% hObject handle to edit_Data_newlen (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles empty - handles not created until after all CreateFcns called + +% Hint: edit controls usually have a white background on Windows. +% See ISPC and COMPUTER. +if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) + set(hObject,'BackgroundColor','white'); +end + + + +function edit_Data_invalid_Callback(hObject, eventdata, handles) +% hObject handle to edit_Data_invalid (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) + +% Hints: get(hObject,'String') returns contents of edit_Data_invalid as text +% str2double(get(hObject,'String')) returns contents of edit_Data_invalid as a double +VSData = guidata(handles.VSHandle); +VSData.vars.MD_invalidentry = get(hObject, 'String'); +guidata(handles.VSHandle, VSData); + + +% --- Executes during object creation, after setting all properties. +function edit_Data_invalid_CreateFcn(hObject, eventdata, handles) +% hObject handle to edit_Data_invalid (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles empty - handles not created until after all CreateFcns called + +% Hint: edit controls usually have a white background on Windows. +% See ISPC and COMPUTER. +if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) + set(hObject,'BackgroundColor','white'); +end + + + +% --- Executes on button press in checkbox_resample. +function checkbox_resample_Callback(hObject, eventdata, handles) +% hObject handle to checkbox_resample (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) +VSData = guidata(handles.VSHandle); +VSData.vars.MD_resample = get(hObject, 'Value'); +guidata(handles.VSHandle, VSData); + +if (VSData.vars.MD_resample) + figdata = guidata(handles.figure_ManualData); + figdata = resample_signal(figdata, handles); + guidata(handles.figure_ManualData, figdata); +end + +plotParam(handles); + + + + +% -- resample the signal if required +function figdata = resample_signal(figdata, handles) +VSData = guidata(handles.VSHandle); + +if (~isfield(figdata, 'newdata')) + return; +end + +newL = str2double(get(handles.edit_Data_explen, 'String')); + +if (length(figdata.newdata)==1) + figdata.newdata_resamp = ones(newL, 1) * figdata.newdata; + +else + try + figdata.newdata_resamp = resample(figdata.newdata, newL, length(figdata.newdata)); + catch ME + msgbox({'Error: Unable to run resample function.', '(Requires Signal Processing Toolbox)'}, 'Error', 'error', 'modal'); + end +end + + +% --- Executes on button press in checkbox_matwithwav. +function checkbox_matwithwav_Callback(hObject, eventdata, handles) +% hObject handle to checkbox_matwithwav (see GCBO) +% eventdata reserved - to be defined in a future version of MATLAB +% handles structure with handles and user data (see GUIDATA) + +VSData = guidata(handles.VSHandle); +VSData.vars.MD_matwithwav = get(hObject, 'Value'); + +if (VSData.vars.MD_matwithwav) + set(handles.edit_matdir, 'Enable', 'Off'); + set(handles.pushbutton_matfile_browse, 'Enable', 'Off'); +else + set(handles.edit_matdir, 'Enable', 'On'); + set(handles.pushbutton_matfile_browse, 'Enable', 'On'); +end + +guidata(handles.VSHandle, VSData); \ No newline at end of file