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