@@ -23,58 +23,58 @@ function waitForTrigger(varargin)
2323 % the prompt
2424 %
2525 % - nbTriggersToWait
26-
26+
2727 [cfg , nbTriggersToWait , deviceNumber , quietMode ] = checkInputs(varargin );
28-
28+
2929 triggerCounter = 0 ;
30-
30+
3131 if strcmpi(cfg .testingDevice , ' mri' )
32-
32+
3333 msg = [' Experiment starting in ' , ...
3434 num2str(nbTriggersToWait - triggerCounter ), ' ...' ];
35-
35+
3636 talkToMe(cfg , msg , quietMode );
37-
37+
3838 while triggerCounter < nbTriggersToWait
39-
39+
4040 keyCode = []; % #ok<NASGU>
41-
41+
4242 [~ , keyCode ] = KbPressWait(deviceNumber );
43-
43+
4444 if strcmp(KbName(keyCode ), cfg .mri .triggerKey )
45-
45+
4646 triggerCounter = triggerCounter + 1 ;
47-
47+
4848 msg = sprintf(' Trigger %i ' , triggerCounter );
49-
49+
5050 talkToMe(cfg , msg , quietMode );
51-
51+
5252 % we only wait if this is not the last trigger
5353 if triggerCounter < nbTriggersToWait
5454 pauseBetweenTriggers(cfg );
5555 end
56-
56+
5757 end
5858 end
5959 end
6060end
6161
6262function [cfg , nbTriggersToWait , deviceNumber , quietMode ] = checkInputs(varargin )
63-
63+
6464 varargin = varargin{1 };
65-
65+
6666 if numel(varargin ) < 1 || isempty(varargin{1 }) || ~isstruct(varargin{1 })
6767 error(' First input must be a cfg structure.' );
68- elseif isstruct(varargin{1 })
68+ elseif isstruct(varargin{1 })
6969 cfg = varargin{1 };
7070 end
71-
71+
7272 if numel(varargin ) < 3 || isempty(varargin{3 })
7373 quietMode = false ;
7474 else
7575 quietMode = varargin{3 };
7676 end
77-
77+
7878 if numel(varargin ) < 2 || isempty(varargin{2 })
7979 deviceNumber = - 1 ;
8080 if ~quietMode
@@ -83,45 +83,45 @@ function waitForTrigger(varargin)
8383 else
8484 deviceNumber = varargin{2 };
8585 end
86-
86+
8787 if numel(varargin ) < 4 || isempty(varargin{4 })
8888 nbTriggersToWait = cfg .mri .triggerNb ;
8989 else
9090 nbTriggersToWait = varargin{4 };
9191 end
92-
92+
9393end
9494
9595function talkToMe(cfg , msg , quietMode )
96-
96+
9797 if ~quietMode
98-
98+
9999 fprintf([msg , ' \n ' ]);
100-
100+
101101 if isfield(cfg , ' screen' ) && isfield(cfg .screen , ' win' )
102-
102+
103103 DrawFormattedText(cfg .screen .win , msg , ...
104104 ' center' , ' center' , cfg .text .color );
105-
105+
106106 Screen(' Flip' , cfg .screen .win );
107-
107+
108108 end
109-
109+
110110 end
111-
111+
112112end
113113
114114function pauseBetweenTriggers(cfg )
115115 % we pause between triggers otherwise KbWait and KbPressWait might be too fast and could
116116 % catch several triggers in one go.
117-
117+
118118 waitTime = 0.5 ;
119119 if isfield(cfg , ' mri' ) && isfield(cfg .mri , ' repetitionTime' ) && ~isempty(cfg .mri .repetitionTime )
120120 waitTime = cfg .mri .repetitionTime / 2 ;
121121 end
122-
122+
123123 WaitSecs(waitTime );
124-
124+
125125end
126126
127127% function [MyPort] = WaitForScanTrigger(Parameters)
0 commit comments