6767 % Clean and realease any queue that might be opened
6868 KbQueueRelease(responseBox );
6969
70- %% Defines keys
71- % list all the response keys we want KbQueue to listen to
72-
73- % by default we listen to all keys
74- % but if responseKey is set in the parameters we override this
75- keysOfInterest = ones(1 ,256 );
76-
77- fprintf(' \n Will be listening for key presses on : ' )
78-
79- if isfield(expParameters , ' responseKey' ) && ~isempty(expParameters .responseKey )
80-
81- keysOfInterest = zeros(1 ,256 );
82-
83- for iKey = 1 : numel(expParameters .responseKey )
84- fprintf(' \n - %s ' , expParameters.responseKey{iKey })
85- responseTargetKeys(iKey ) = KbName(expParameters .responseKey(iKey )); % #ok<*SAGROW>
86- end
87-
88- keysOfInterest(responseTargetKeys ) = 1 ;
89-
90- else
91-
92- fprintf(' ALL KEYS.' )
93-
94- end
95-
96- fprintf(' \n\n ' )
70+ keysOfInterest = setKeysOfInterest(expParameters );
9771
9872 % Create the keyboard queue to collect responses.
9973 KbQueueCreate(responseBox , keysOfInterest );
@@ -183,3 +157,32 @@ function talkToMe(action, expParameters)
183157end
184158
185159end
160+
161+ function keysOfInterest = setKeysOfInterest(expParameters )
162+ % list all the response keys we want KbQueue to listen to
163+ % by default we listen to all keys
164+ % but if responseKey is set in the parameters we override this
165+
166+ keysOfInterest = ones(1 ,256 );
167+
168+ fprintf(' \n Will be listening for key presses on : ' )
169+
170+ if isfield(expParameters , ' responseKey' ) && ~isempty(expParameters .responseKey )
171+
172+ responseTargetKeys = nan(1 ,numel(expParameters .responseKey ));
173+
174+ for iKey = 1 : numel(expParameters .responseKey )
175+ fprintf(' \n - %s ' , expParameters.responseKey{iKey })
176+ responseTargetKeys(iKey ) = KbName(expParameters .responseKey(iKey ));
177+ end
178+
179+ keysOfInterest(responseTargetKeys ) = 1 ;
180+
181+ else
182+
183+ fprintf(' ALL KEYS.' )
184+
185+ end
186+
187+ fprintf(' \n\n ' )
188+ end
0 commit comments