File: bitsGoggles.m

package info (click to toggle)
psychtoolbox-3 3.0.19.14.dfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 86,796 kB
  • sloc: ansic: 176,245; cpp: 20,103; objc: 5,393; sh: 2,753; python: 1,397; php: 384; makefile: 193; java: 113
file content (62 lines) | stat: -rw-r--r-- 1,691 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
function [encodedDIOdata, Mask, Data, Command] = bitsGoggles(left,right,window)
% [encodedDIOdata] = bitsGoggles(left, right [, window])
%
% Drives the FE1 goggles connected to bits 4 and 5 of the digital output
% of a Bits+, Bits#, etc.
%
% 'left' and 'right' define the required state of the left and
% right goggle shutter, where a value of:
% 0 = goggle open
% 1 = goggle closed
%
% If 'window' is given, but the return argument 'encodedDIOdata' is not
% given, then the control code is drawn into the framebuffer and a flip
% is performed.
%
% If 'encodedDIOdata' is given, then 'window' is not used
% and the required T-Lock code is returned as a image matrix
% which could be used for Screen('PutImage') or Screen('DrawTexture').
%

% History:
% ??/???/????   Written by Cambridge Research Systems.
% 21-Apr-2016   Extended by mk for use in PTB's imaging pipeline:
%               Add 'encodedDIOdata' return argument and code path.
%

    %  Bits     Shutter
    % 5    4     L   R
    % --------------------
    % 1    1     O   O
    % 0    0     O   C
    % 1    0     C   O 
    % 0    1     C   C

    left=logical(left);
    right=logical(right);

    bit5 = ~right;
    bit4 = ~xor(left,right);

    Mask = 16 + 32;
    %Mask = 65535;

    Data=zeros(1,248);
    if (bit4)
        Data=Data + 16;
    end

    if (bit5)
        Data=Data + 32;
    end

    Command = 0;

    if nargout == 0
        % Call routine to draw the T-Lock code and then Screen('Flip'):
        bitsEncodeDIO(Mask,Data,Command, window, 0);
    else
        % Call common encoder routine to create T-Lock image matrix:
        encodedDIOdata = BitsPlusDIO2Matrix(Mask, Data, Command);
    end
return;