Merge pull request #24 from Psychtoolbox-3/master

PTB BETA RELEASE "Rainbows, Droids & Compute Hippies!" SP3

* Make java path setup in postinstall routine more robust against users doing weird things.
Change path search order in GetSubversionPath to fix issue with SVN 1.7.9

Move check for /opt/subversion/bin/svn first. Nicolas Cottaris in my
lab says this fixes a problem that arose when he installed SVN 1.7.9.
It is possible that this will break for some other version, so we
should keep an eye on it.
SetStereoBlueLineSyncParameters(): Also work in stereomode 11, not only 1.
Expanding comments, no functinal changes.  DHB
IsGUI: Adapt Octave code to 3.7.3+ GUI prototype.

Octave now has a builtin function isguirunning() which provides us
with the required info, whereas the old detection heuristic failed
on Ubuntu 13.04 with v3.7.3+
PsychtoolboxKernelDriver.m: Clarify meaning of PathToPsychtoolbox in help.

For people which read too literally.
Screen/OSX: Clarify CoreVideo timestamping message.

Reformulate the message again to convey that the deficient CoreVideo
timestamping would be only used as fallback if beamposition timestamping
would be unavailable or malfunctioning.

Only output the suggestion to install the PsychtoolboxKernelDriver
if the driver isn't already available and connected. Otherwise people
are confused.

Rebuild and testing on OSX pending.
Screen: Allow to create hidden/invisible onscreen windows.

If Screen('Preference','WindowShieldingLevel', -1); is set
before/during call to Screen('Openwindow') for a non-fullscreen
window with kPsychGUIWindow 'specialflags' set, then create
the onscreen window as usual, but do not show/map it, so it
stays invisible on the display.

This is useful if one wants to (ab)use Psychtoolbox as an
offscreen renderer. One can create such an onscreen window,
then an associated 'Offscreenwindow' and then render and
'GetImage' from that offscreen window. The offscreen window
can have arbitrary size and resolution (within the hardware
and vram memory limits of the gpu of course).

One should probably disable sync tests etc. as in
PsychDebugWindowConfiguration() to avoid sync errors
or lots of warning clutter for such a window.

Screen for 64-Bit Octave on Linux rebuilt and tested.
MaskImageIn(), MaskImageOut() - Make it actually work.

This was untested and entirely broken since day 1!
Hopefully fixes issue #109
Further testing of Z136 implementation.

1) Carefully checked values in AnsiZ136MPEDeloriTestInput.txt to make sure they matched what Delori's Excel spreadsheet produces.  They do.

2) Worked through the two cases where there are discrepancies between the PTB code here and the spreadsheet and discovered that the problem is in the value of T2 used.  My reading of the standard is that the PTB code here is correct.  Added comments to this effect in the test code, and added two Word documents that work through the calculations by hand to this repository.  Emailed Delori to see if he has insight about why his spreadsheet uses a different value for T2.

Signed-off-by: David Brainard <brainard@psych.upenn.edu>
Cosmetic only.

Signed-off-by: David Brainard <brainard@psych.upenn.edu>
Improve geometric BVL display calibration routines.

Wait for keyboard input on all connected keyboards.
Add support to select stereoMode for display calibration,
e.g., mode 4 for dual-display co-calibration.

Improvements mostly contributed by Bas Rokers.
PRxxxinit: Don't flush serial port buffers on write.

Add DontFlushOnWrite=1 option to serial port open for the PRxxx
photometer toolboxes. At least on PR-Photometer hangs in the
flush on Linux and we don't need flushing for those functions
anyway, so just avoid it for all of them on all os'es.

Should fix problem reported in forum message #15652.
All Screen mex files rebuilt, except for 32-Bit Matlab on OSX.

-> 32-Bit OSX is deprecated, so skip it.
-> This integrates the less scaring CVDisplayLink timestamping warning
message for OSX 10.7+, which also doesn't ask for installation of the
kernel driver if it is already installed and active.
-> It also enables Screen('preference','windowshieldinglevel', -1) for
all operating systems to allow to open completely hidden/invisible
onscreen windows for offscreen/offline rendering tasks.
DownloadPsychtoolbox: Move /opt/subversion/bin first as search path for svn.

To match a similar change of David in GetSubversionPath().
Merge pull request #118 from kleinerm/master

PTB BETA RELEASE "Rainbows, Droids & Compute Hippies!" SP4
DAQ toolbox: Another attempt to make it less broken.

Instead of calling PsychHID('Devices') directly, all DAQ functions now
call the new function PsychHIDDAQS. This function queries all HID
devices via PsychHID('Devices'), and caches the device list internally
for faster lookup. More importantly, it preprocesses all HID-DAQ
devices as follows: Non MCC devices are ignored. MCC devices get their
productID remapped to a standardized product name string. This because
on MS-Windows, PsychHID can't return a sensible product name string,
but all DAQ toolbox functions are dependent on name string matching.
The productID is well defined across devices and operating systems, so
we use that to map  properly. Also, serialNumber is replaced by a
combination of serialNumber and locationID, again because depending on
OS and device vendor and type, either one of those two can be undefined
or unreliable or useless. Combining both into a sort of hash will
hopefully be at least somewhat robust to common case usage.

DaqDeviceIndex: Fix some bugs and make more robust. This one should be
able to identify devices properly, based on PsychHIDDAQS preprocessing.
It should be able to reliable count and disambiguate interfaces if
multiple device are connected. And fix some bugs. On Linux and Windows,
the interfaceID of a DAQ device is well defined, so finding the daq
index corresponding to interface #0 should be reliable. On OSX we don't
have interfaceID, so we still need to rely on the heuristic of trying
to find interface #0 based on the number of outputs. Given that that
number changes without rhyme and reason across versions of OSX, and
sometimes apparently even across reboots, OSX will remain the least
reliable OS for use with the DAQ toolbox, despite the DAQ toolbox
originally written for it. Yay Apple!

-> All this is untested so far, but given how broken this stuff is, it
can't get much worse.
Linux psychtoolbox.rules udev rules file: Enable MCC-DAQ devices.

Add udev rules for the 4 MCC-DAQ USB-HID devices supported by DAQ
toolbox.
This should allow non-root access to the devices on Linux by PsychHID.
The 60-mcc.rules file inside the DAQ toolbox folder would enable much
more wide ranging access, but needs manual installation. Add the four
needed devices to our main rules file, so this gets auto-installed for
our users convenience.
Merge pull request #119 from kleinerm/master

DAQ toolbox fixes.
Merge pull request #120 from Psychtoolbox-3/master

PTB BETA RELEASE "Rainbows, Droids & Compute Hippies!" SP4

Small fixes and improvements to BETA:

* DAQ toolbox fixes.
* Invisible windows for Screen.
* Blue line sync stereo setup for mode 11 as well.
* Installer fixes.
* PR toolbox fixes.
* Documentation updates.

This is likely the last release for the 3.0.10 series.