b@0
|
1 function MpushIc(hf)
|
b@0
|
2
|
b@0
|
3 sel=get(hf,'selectiontype');
|
b@0
|
4 dat=get(hf,'userdata');
|
b@0
|
5 drag=dat.drag;
|
b@0
|
6
|
b@0
|
7 obj=get(gcf,'currentobject');
|
b@0
|
8 sndId=get(obj,'userdata');
|
b@0
|
9
|
b@0
|
10 switch sel
|
b@0
|
11
|
b@0
|
12 case 'normal'
|
b@0
|
13 % BRECHT: log plays in response log
|
b@0
|
14 fidInd=['responses/' dat.sesDat.id,'_',dat.sesDat.sesScript];
|
b@0
|
15 fid=fopen(fidInd,'a');
|
b@0
|
16 fprintf(fid,'%i ', sndId);
|
b@0
|
17 dat.playVec(sndId,1) = 1; % check sample as 'played'
|
b@0
|
18 set(hf,'userdata',dat); % write dat away already here (avoid 'not all sounds played')
|
b@0
|
19
|
b@0
|
20 set(dat.hIcon,'backgroundcolor',[.6 .9 .6]); % all icons turn green
|
b@0
|
21 if(obj<=dat.nbScale*(dat.nbSnd+4)+1) % value depends on number of sounds (avoid 'Stop Audio' becoming red)
|
b@0
|
22 set(obj,'backgroundcolor','r');
|
b@0
|
23 end
|
b@0
|
24 playSound(dat.sesDat.cuSndList(sndId));
|
b@0
|
25
|
b@0
|
26
|
b@0
|
27 case 'alt' % right mouse (ctrl+button)
|
b@0
|
28 if drag
|
b@0
|
29 drag=0;
|
b@0
|
30 else
|
b@0
|
31 if dat.test.sndRef
|
b@0
|
32 if ~isempty(find(dat.test.sndRef==sndId))
|
b@0
|
33 return
|
b@0
|
34 end
|
b@0
|
35 end
|
b@0
|
36 drag=1;
|
b@0
|
37 end
|
b@0
|
38
|
b@0
|
39 case 'open' % double-click % ?
|
b@0
|
40 % BRECHT: log plays in response log
|
b@0
|
41 fid=['responses/' dat.sesDat.id,'_',dat.sesDat.sesScript];
|
b@0
|
42 fprintf(fid,'%i', sndId);
|
b@0
|
43 dat.vector(sndId,1) = 1; % check sample as 'played'
|
b@0
|
44
|
b@0
|
45 obj=get(gcf,'currentobject');
|
b@0
|
46 set(dat.hIcon,'backgroundcolor',[.6 .9 .6]);
|
b@0
|
47 set(obj,'backgroundcolor','r');
|
b@0
|
48 playSound(dat.sesDat.cuSndList(get(obj,'userdata')));
|
b@0
|
49
|
b@0
|
50 end
|
b@0
|
51
|
b@0
|
52 saveMultiComp(hf);
|
b@0
|
53
|
b@0
|
54 try % in case audio is still playing when finishing
|
b@0
|
55 dat.drag=drag;
|
b@0
|
56 set(hf,'userdata',dat);
|
b@0
|
57 catch err
|
b@0
|
58 end |