Skip to content

Commit 856bd13

Browse files
committed
Add setting to customize axis starting value on mouse+keyboard entry and also validate axis numbers input
1 parent d1722ea commit 856bd13

File tree

4 files changed

+87
-19
lines changed

4 files changed

+87
-19
lines changed

CARMA.prj

+44-10
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<deployment-project plugin="plugin.ezdeploy" plugin-version="1.0">
2-
<configuration file="C:\Users\jgirard\Documents\CARMA\CARMA.prj" location="C:\Users\jgirard\Documents\CARMA" name="CARMA" target="target.ezdeploy.standalone" target-name="Application Compiler">
2+
<configuration file="D:\GitHub\CARMA\CARMA.prj" location="D:\GitHub\CARMA" name="CARMA" target="target.ezdeploy.standalone" target-name="Application Compiler">
33
<param.appname>CARMA</param.appname>
44
<param.icon />
55
<param.icons />
6-
<param.version>14.03</param.version>
7-
<param.authnamewatermark>Jeffrey M Girard</param.authnamewatermark>
8-
<param.email>[email protected]</param.email>
6+
<param.version>14.04</param.version>
7+
<param.authnamewatermark />
8+
<param.email />
99
<param.company />
1010
<param.summary>CARMA: Software for Continuous Affect Rating and Media Annotation</param.summary>
1111
<param.description>Source files, releases, documentation, and support are available through http://carma.jmgirard.com</param.description>
@@ -36,7 +36,12 @@
3636
<param.native.matlab>false</param.native.matlab>
3737
<param.checkbox>false</param.checkbox>
3838
<param.example />
39-
<param.help.text />
39+
<param.help.text>Syntax
40+
-?
41+
42+
Input Arguments
43+
-? print help on how to use the application
44+
input arguments</param.help.text>
4045
<unset>
4146
<param.icon />
4247
<param.icons />
@@ -69,7 +74,6 @@
6974
<param.native.matlab />
7075
<param.checkbox />
7176
<param.example />
72-
<param.help.text />
7377
</unset>
7478
<fileset.main>
7579
<file>${PROJECT_ROOT}\fig_launcher.m</file>
@@ -92,21 +96,51 @@
9296
<file>${PROJECT_ROOT}\fig_collect_vrjoy.m</file>
9397
</fileset.depfun>
9498
<build-deliverables>
95-
<file location="${PROJECT_ROOT}\CARMA\for_testing" name="splash.png" optional="false">C:\Users\jgirard\Documents\CARMA\CARMA\for_testing\splash.png</file>
96-
<file location="${PROJECT_ROOT}\CARMA\for_testing" name="CARMA.exe" optional="false">C:\Users\jgirard\Documents\CARMA\CARMA\for_testing\CARMA.exe</file>
97-
<file location="${PROJECT_ROOT}\CARMA\for_testing" name="readme.txt" optional="true">C:\Users\jgirard\Documents\CARMA\CARMA\for_testing\readme.txt</file>
99+
<file location="${PROJECT_ROOT}\CARMA\for_testing" name="readme.txt" optional="true">D:\GitHub\CARMA\CARMA\for_testing\readme.txt</file>
100+
<file location="${PROJECT_ROOT}\CARMA\for_testing" name="CARMA.exe" optional="false">D:\GitHub\CARMA\CARMA\for_testing\CARMA.exe</file>
101+
<file location="${PROJECT_ROOT}\CARMA\for_testing" name="splash.png" optional="false">D:\GitHub\CARMA\CARMA\for_testing\splash.png</file>
98102
</build-deliverables>
99103
<workflow />
100104
<matlab>
101-
<root>C:\Program Files\MATLAB\R2018a</root>
105+
<root>D:\MATLAB</root>
102106
<toolboxes>
103107
<toolbox name="matlabcoder" />
108+
<toolbox name="embeddedcoder" />
109+
<toolbox name="gpucoder" />
110+
<toolbox name="fixedpoint" />
111+
<toolbox name="matlabhdlcoder" />
112+
<toolbox name="neuralnetwork" />
104113
</toolboxes>
105114
<toolbox>
106115
<matlabcoder>
107116
<enabled>true</enabled>
108117
</matlabcoder>
109118
</toolbox>
119+
<toolbox>
120+
<embeddedcoder>
121+
<enabled>true</enabled>
122+
</embeddedcoder>
123+
</toolbox>
124+
<toolbox>
125+
<gpucoder>
126+
<enabled>true</enabled>
127+
</gpucoder>
128+
</toolbox>
129+
<toolbox>
130+
<fixedpoint>
131+
<enabled>true</enabled>
132+
</fixedpoint>
133+
</toolbox>
134+
<toolbox>
135+
<matlabhdlcoder>
136+
<enabled>true</enabled>
137+
</matlabhdlcoder>
138+
</toolbox>
139+
<toolbox>
140+
<neuralnetwork>
141+
<enabled>true</enabled>
142+
</neuralnetwork>
143+
</toolbox>
110144
</matlab>
111145
<platform>
112146
<unix>false</unix>

fig_collect_mouse.m

+28-6
Original file line numberDiff line numberDiff line change
@@ -128,10 +128,10 @@
128128
set(handles.text_upper,'String',handles.settings.labUpper);
129129
axMin = handles.settings.axMin;
130130
axMax = handles.settings.axMax;
131-
axMidpt = axMin + (axMax - axMin)/2;
131+
axStart = handles.settings.axStart;
132132
set(handles.slider, ...
133133
'SliderStep',[1/40,1/20], ...
134-
'Min',axMin,'Max',axMax,'Value',axMidpt);
134+
'Min',axMin,'Max',axMax,'Value',axStart);
135135
% Initialize rating axis
136136
axes(handles.axis_rating);
137137
set(handles.axis_rating,'XLim',[0,100],'YLim',[0,100]);
@@ -282,18 +282,40 @@ function menu_axislab_Callback(hObject,~)
282282
function menu_axisnum_Callback(hObject,~)
283283
handles = guidata(hObject);
284284
settings = handles.settings;
285-
prompt = {'Axis Minimum Value:','Axis Maximum Value:','Number of Axis Steps:'};
286-
defaultans = {num2str(settings.axMin),num2str(settings.axMax),num2str(settings.axSteps)};
285+
prompt = {'Axis Minimum Value:','Axis Maximum Value:','Number of Axis Steps:','Axis Starting Value:'};
286+
defaultans = {num2str(settings.axMin),num2str(settings.axMax),num2str(settings.axSteps),num2str(settings.axStart)};
287287
numbers = inputdlg(prompt,'',1,defaultans);
288288
if ~isempty(numbers)
289289
settings.axMin = str2double(numbers{1});
290290
settings.axMax = str2double(numbers{2});
291291
settings.axSteps = str2double(numbers{3});
292+
settings.axStart = str2double(numbers{4});
293+
if any(isnan([settings.axMin, settings.axMax, settings.axSteps, settings.axStart]))
294+
warndlg('All values must be entered as numbers.', 'Warning');
295+
return;
296+
end
297+
if settings.axMax <= settings.axMin
298+
warndlg('Axis Maximum Value must be greater than Axis Minimum Value.', 'Warning');
299+
return;
300+
end
301+
if settings.axMax <= settings.axMin
302+
warndlg('Axis Maximum Value must be greater than Axis Minimum Value.', 'Warning');
303+
return;
304+
end
305+
if settings.axStart < settings.axMin || settings.axStart > settings.axMax
306+
warndlg('Axis Start must be between then Axis Minimum and Axis Maximum Values.', 'Warning');
307+
return;
308+
end
292309
set(handles.axis_rating, ...
293310
'YLim',[settings.axMin,settings.axMax], ...
294311
'YTick',round(linspace(settings.axMin,settings.axMax,settings.axSteps),2));
295312
set(handles.plot_patch,'YData',[settings.axMin settings.axMin settings.axMax settings.axMax]);
296-
setpref('carma',{'axMin','axMax','axSteps'},{settings.axMin,settings.axMax,settings.axSteps});
313+
set(handles.slider, ...
314+
'SliderStep',[1/40,1/20], ...
315+
'Min',settings.axMin, ...
316+
'Max',settings.axMax, ...
317+
'Value',settings.axStart);
318+
setpref('carma',{'axMin','axMax','axSteps','axStart'},{settings.axMin,settings.axMax,settings.axSteps,settings.axStart});
297319
handles.settings = settings;
298320
guidata(handles.figure_collect,handles);
299321
end
@@ -442,7 +464,7 @@ function menu_defaultdir_Callback(hObject,~)
442464

443465
function menu_about_Callback(~,~)
444466
global version;
445-
msgbox(sprintf('CARMA version %.2f\nJeffrey M Girard (c) 2014-2018\nhttp://carma.jmgirard.com\nGNU General Public License v3',version),'About','Help');
467+
msgbox(sprintf('CARMA version %.2f\nJeffrey M Girard (c) 2014-2019\nhttp://carma.jmgirard.com\nGNU General Public License v3',version),'About','Help');
446468
end
447469

448470
% ===============================================================================

fig_collect_vrjoy.m

+12
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,18 @@ function menu_axisnum_Callback(hObject,~)
293293
settings.axMin = str2double(numbers{1});
294294
settings.axMax = str2double(numbers{2});
295295
settings.axSteps = str2double(numbers{3});
296+
if any(isnan([settings.axMin, settings.axMax, settings.axSteps]))
297+
warndlg('All values must be entered as numbers.', 'Warning');
298+
return;
299+
end
300+
if settings.axMax <= settings.axMin
301+
warndlg('Axis Maximum Value must be greater than Axis Minimum Value.', 'Warning');
302+
return;
303+
end
304+
if settings.axMax <= settings.axMin
305+
warndlg('Axis Maximum Value must be greater than Axis Minimum Value.', 'Warning');
306+
return;
307+
end
296308
set(handles.axis_rating, ...
297309
'YLim',[settings.axMin,settings.axMax], ...
298310
'YTick',round(linspace(settings.axMin,settings.axMax,settings.axSteps),2));

fig_launcher.m

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
% License: https://github.com/jmgirard/CARMA/blob/master/license.txt
44

55
global version;
6-
version = 14.03;
6+
version = 14.04;
77
% Create and center main window
88
defaultBackground = get(0,'defaultUicontrolBackgroundColor');
99
handles.figure_launcher = figure( ...
@@ -60,8 +60,8 @@
6060
pExist = ispref('carma');
6161
if ~pExist
6262
addpref('carma', ...
63-
{'labLower','labUpper','axMin','axMax','axSteps','cmapval','cmapstr','defdir','srateval','sratenum','bsizeval','bsizenum','update'}, ...
64-
{'Negative Affect','Positive Affect',-100,100,9,1,'parula','',2,20,3,1.00,'ask'});
63+
{'labLower','labUpper','axMin','axMax','axSteps','axStart','cmapval','cmapstr','defdir','srateval','sratenum','bsizeval','bsizenum','update'}, ...
64+
{'Negative Affect','Positive Affect',-100,100,9,0,1,'parula','',2,20,3,1.00,'ask'});
6565
end
6666
% Check for updates
6767
try

0 commit comments

Comments
 (0)