SetMouse

hey mario-
i'm using 1-2 USB optical mice to track the rotational state of an air-suspended spherical treadmill for mice (ie rodent). every frame, i want to use SetMouse to reset the USB mice's positions to the center of the screen, so that i don't run into screen boundaries. i can get 2 independent mice on linux, as we discussed, but i would also like it to work for single mice cross-platform. the problem is that, after calling SetMouse, GetMouse doesn't see any position updates for >250ms (on OSX 10.5.8), and ~15ms (windows 7/fedora 15). i'd rather it were fast enough to do every frame, with enough room leftover for some realtime stimulus calculation too.

here's a minimal test -- run it and move your mouse around alot.

http://code.google.com/p/ratrix/source/browse/classes/protocols/stimManagers/util/mouseTest.m

is there any way to work around this?

SetMouse only seems to work for master pointers and i really only care about slaves (i don't want to show any cursors on the screen). is there any way to avoid having to create masters just to do this?

also, i need a way to reliably identify which USB mouse i'm talking to. do the locationID or interfaceID (or index) reported by GetMouseIndices() correspond to physical USB ports? is there any way to identify them uniquely when mfg/model are identical (say by serial number or something), so it would be robust to physical port changes?

other things i'm running into on linux:

HideCursor doesn't work, with or without arguments.

Screen('Resolutions') doesn't report a resolution that corresponds to the current setting:

>> Screen('Screens')
ans =
0
>> Screen('Resolution',0)
ans =
width: 1920
height: 1080
pixelSize: 24
hz: 60
>> Screen('Resolutions',0)
ans =
1x70 struct array with fields:
width
height
pixelSize
hz
>> ans(find([ans.hz]==60))
ans =
width: 1280
height: 960
pixelSize: 24
hz: 60

if i set Screen('Preference', 'TextRenderer', 0) (which the docs indicate is higher performance than the default), i get the following error when i try to draw text:

Failed to load X11 font with name Times.

Available X11 fonts are:

-adobe-utopia-bold-i-normal--0-0-0-0-p-0-iso8859-1
-adobe-utopia-bold-i-normal--0-0-0-0-p-0-iso10646-1
-adobe-utopia-bold-r-normal--0-0-0-0-p-0-iso8859-1
-adobe-utopia-bold-r-normal--0-0-0-0-p-0-iso10646-1
-adobe-utopia-medium-i-normal--0-0-0-0-p-0-iso8859-1
-adobe-utopia-medium-i-normal--0-0-0-0-p-0-iso10646-1
-adobe-utopia-medium-r-normal--0-0-0-0-p-0-iso8859-1
-adobe-utopia-medium-r-normal--0-0-0-0-p-0-iso10646-1
-bitstream-bitstream charter-bold-i-normal--0-0-0-0-p-0-iso8859-1
-bitstream-bitstream charter-bold-i-normal--0-0-0-0-p-0-iso10646-1
-bitstream-bitstream charter-bold-r-normal--0-0-0-0-p-0-iso8859-1
-bitstream-bitstream charter-bold-r-normal--0-0-0-0-p-0-iso10646-1
-bitstream-bitstream charter-medium-i-normal--0-0-0-0-p-0-iso8859-1
-bitstream-bitstream charter-medium-i-normal--0-0-0-0-p-0-iso10646-1
-bitstream-bitstream charter-medium-r-normal--0-0-0-0-p-0-iso8859-1
-bitstream-bitstream charter-medium-r-normal--0-0-0-0-p-0-iso10646-1
-misc-hrger.pfa-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific
-misc-hrger.pfa-medium-r-normal--0-0-0-0-p-0-iso10646-1
-misc-hrgrr.pfa-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific
-misc-hrgrr.pfa-medium-r-normal--0-0-0-0-p-0-iso10646-1
-misc-hritr.pfa-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific
-misc-hritr.pfa-medium-r-normal--0-0-0-0-p-0-iso10646-1
-misc-hrpld.pfa-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific
-misc-hrpld.pfa-medium-r-normal--0-0-0-0-p-0-iso10646-1
-misc-hrpldi.pfa-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific
-misc-hrpldi.pfa-medium-r-normal--0-0-0-0-p-0-iso10646-1
-misc-hrplt.pfa-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific
-misc-hrplt.pfa-medium-r-normal--0-0-0-0-p-0-iso10646-1
-misc-hrplti.pfa-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific
-misc-hrplti.pfa-medium-r-normal--0-0-0-0-p-0-iso10646-1
-misc-hrscc.pfa-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific
-misc-hrscc.pfa-medium-r-normal--0-0-0-0-p-0-iso10646-1
-misc-hrscs.pfa-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific
-misc-hrscs.pfa-medium-r-normal--0-0-0-0-p-0-iso10646-1
-urw-century schoolbook l-bold-i-normal--0-0-0-0-p-0-iso8859-1
-urw-century schoolbook l-bold-i-normal--0-0-0-0-p-0-iso8859-2
-urw-century schoolbook l-bold-i-normal--0-0-0-0-p-0-iso8859-3
-urw-century schoolbook l-bold-i-normal--0-0-0-0-p-0-iso8859-4
-urw-century schoolbook l-bold-i-normal--0-0-0-0-p-0-iso8859-5
-urw-century schoolbook l-bold-i-normal--0-0-0-0-p-0-iso8859-9
-urw-century schoolbook l-bold-i-normal--0-0-0-0-p-0-iso8859-10
-urw-century schoolbook l-bold-i-normal--0-0-0-0-p-0-iso8859-15
-urw-century schoolbook l-bold-i-normal--0-0-0-0-p-0-iso10646-1
-urw-century schoolbook l-bold-i-normal--0-0-0-0-p-0-koi8-e
-urw-century schoolbook l-bold-i-normal--0-0-0-0-p-0-koi8-r
-urw-century schoolbook l-bold-i-normal--0-0-0-0-p-0-koi8-ru
-urw-century schoolbook l-bold-i-normal--0-0-0-0-p-0-koi8-u
-urw-century schoolbook l-bold-i-normal--0-0-0-0-p-0-koi8-uni
-urw-century schoolbook l-bold-r-normal--0-0-0-0-p-0-iso8859-1
-urw-century schoolbook l-bold-r-normal--0-0-0-0-p-0-iso8859-2
-urw-century schoolbook l-bold-r-normal--0-0-0-0-p-0-iso8859-3
-urw-century schoolbook l-bold-r-normal--0-0-0-0-p-0-iso8859-4
-urw-century schoolbook l-bold-r-normal--0-0-0-0-p-0-iso8859-5
-urw-century schoolbook l-bold-r-normal--0-0-0-0-p-0-iso8859-9
-urw-century schoolbook l-bold-r-normal--0-0-0-0-p-0-iso8859-10
-urw-century schoolbook l-bold-r-normal--0-0-0-0-p-0-iso8859-15
-urw-century schoolbook l-bold-r-normal--0-0-0-0-p-0-iso10646-1
-urw-century schoolbook l-bold-r-normal--0-0-0-0-p-0-koi8-e
-urw-century schoolbook l-bold-r-normal--0-0-0-0-p-0-koi8-r
-urw-century schoolbook l-bold-r-normal--0-0-0-0-p-0-koi8-ru
-urw-century schoolbook l-bold-r-normal--0-0-0-0-p-0-koi8-u
-urw-century schoolbook l-bold-r-normal--0-0-0-0-p-0-koi8-uni
-urw-century schoolbook l-medium-i-normal--0-0-0-0-p-0-iso8859-1
-urw-century schoolbook l-medium-i-normal--0-0-0-0-p-0-iso8859-2
-urw-century schoolbook l-medium-i-normal--0-0-0-0-p-0-iso8859-3
-urw-century schoolbook l-medium-i-normal--0-0-0-0-p-0-iso8859-4
-urw-century schoolbook l-medium-i-normal--0-0-0-0-p-0-iso8859-5
-urw-century schoolbook l-medium-i-normal--0-0-0-0-p-0-iso8859-9
-urw-century schoolbook l-medium-i-normal--0-0-0-0-p-0-iso8859-10
-urw-century schoolbook l-medium-i-normal--0-0-0-0-p-0-iso8859-15
-urw-century schoolbook l-medium-i-normal--0-0-0-0-p-0-iso10646-1
-urw-century schoolbook l-medium-i-normal--0-0-0-0-p-0-koi8-e
-urw-century schoolbook l-medium-i-normal--0-0-0-0-p-0-koi8-r
-urw-century schoolbook l-medium-i-normal--0-0-0-0-p-0-koi8-ru
-urw-century schoolbook l-medium-i-normal--0-0-0-0-p-0-koi8-u
-urw-century schoolbook l-medium-i-normal--0-0-0-0-p-0-koi8-uni
-urw-century schoolbook l-medium-r-normal--0-0-0-0-p-0-iso8859-1
-urw-century schoolbook l-medium-r-normal--0-0-0-0-p-0-iso8859-2
-urw-century schoolbook l-medium-r-normal--0-0-0-0-p-0-iso8859-3
-urw-century schoolbook l-medium-r-normal--0-0-0-0-p-0-iso8859-4
-urw-century schoolbook l-medium-r-normal--0-0-0-0-p-0-iso8859-5
-urw-century schoolbook l-medium-r-normal--0-0-0-0-p-0-iso8859-9
-urw-century schoolbook l-medium-r-normal--0-0-0-0-p-0-iso8859-10
-urw-century schoolbook l-medium-r-normal--0-0-0-0-p-0-iso8859-15
-urw-century schoolbook l-medium-r-normal--0-0-0-0-p-0-iso10646-1
-urw-century schoolbook l-medium-r-normal--0-0-0-0-p-0-koi8-e
-urw-century schoolbook l-medium-r-normal--0-0-0-0-p-0-koi8-r
-urw-century schoolbook l-medium-r-normal--0-0-0-0-p-0-koi8-ru
-urw-century schoolbook l-medium-r-normal--0-0-0-0-p-0-koi8-u
-urw-century schoolbook l-medium-r-normal--0-0-0-0-p-0-koi8-uni
-urw-dingbats-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific
-urw-nimbus mono l-bold-o-normal--0-0-0-0-p-0-iso8859-1
-urw-nimbus mono l-bold-o-normal--0-0-0-0-p-0-iso8859-2
-urw-nimbus mono l-bold-o-normal--0-0-0-0-p-0-iso8859-3
-urw-nimbus mono l-bold-o-normal--0-0-0-0-p-0-iso8859-5
-urw-nimbus mono l-bold-o-normal--0-0-0-0-p-0-iso8859-9
-urw-nimbus mono l-bold-o-normal--0-0-0-0-p-0-iso8859-15
-urw-nimbus mono l-bold-o-normal--0-0-0-0-p-0-iso10646-1
-urw-nimbus mono l-bold-o-normal--0-0-0-0-p-0-koi8-e
-urw-nimbus mono l-bold-o-normal--0-0-0-0-p-0-koi8-r
-urw-nimbus mono l-bold-o-normal--0-0-0-0-p-0-koi8-ru
-urw-nimbus mono l-bold-o-normal--0-0-0-0-p-0-koi8-u
-urw-nimbus mono l-bold-o-normal--0-0-0-0-p-0-koi8-uni
-urw-nimbus mono l-bold-r-normal--0-0-0-0-m-0-iso8859-1
-urw-nimbus mono l-bold-r-normal--0-0-0-0-m-0-iso8859-2
-urw-nimbus mono l-bold-r-normal--0-0-0-0-m-0-iso8859-3
-urw-nimbus mono l-bold-r-normal--0-0-0-0-m-0-iso8859-5
-urw-nimbus mono l-bold-r-normal--0-0-0-0-m-0-iso8859-9
-urw-nimbus mono l-bold-r-normal--0-0-0-0-m-0-iso8859-15
-urw-nimbus mono l-bold-r-normal--0-0-0-0-m-0-iso10646-1
-urw-nimbus mono l-bold-r-normal--0-0-0-0-m-0-koi8-e
-urw-nimbus mono l-bold-r-normal--0-0-0-0-m-0-koi8-r
-urw-nimbus mono l-bold-r-normal--0-0-0-0-m-0-koi8-ru
-urw-nimbus mono l-bold-r-normal--0-0-0-0-m-0-koi8-u
-urw-nimbus mono l-bold-r-normal--0-0-0-0-m-0-koi8-uni
-urw-nimbus mono l-medium-o-normal--0-0-0-0-m-0-iso8859-1
-urw-nimbus mono l-medium-o-normal--0-0-0-0-m-0-iso8859-2
-urw-nimbus mono l-medium-o-normal--0-0-0-0-m-0-iso8859-3
-urw-nimbus mono l-medium-o-normal--0-0-0-0-m-0-iso8859-5
-urw-nimbus mono l-medium-o-normal--0-0-0-0-m-0-iso8859-9
-urw-nimbus mono l-medium-o-normal--0-0-0-0-m-0-iso8859-15
-urw-nimbus mono l-medium-o-normal--0-0-0-0-m-0-iso10646-1
-urw-nimbus mono l-medium-o-normal--0-0-0-0-m-0-koi8-e
-urw-nimbus mono l-medium-o-normal--0-0-0-0-m-0-koi8-r
-urw-nimbus mono l-medium-o-normal--0-0-0-0-m-0-koi8-ru
-urw-nimbus mono l-medium-o-normal--0-0-0-0-m-0-koi8-u
-urw-nimbus mono l-medium-o-normal--0-0-0-0-m-0-koi8-uni
-urw-nimbus mono l-medium-r-normal--0-0-0-0-m-0-iso8859-1
-urw-nimbus mono l-medium-r-normal--0-0-0-0-m-0-iso8859-2
-urw-nimbus mono l-medium-r-normal--0-0-0-0-m-0-iso8859-3
-urw-nimbus mono l-medium-r-normal--0-0-0-0-m-0-iso8859-4
-urw-nimbus mono l-medium-r-normal--0-0-0-0-m-0-iso8859-5
-urw-nimbus mono l-medium-r-normal--0-0-0-0-m-0-iso8859-9
-urw-nimbus mono l-medium-r-normal--0-0-0-0-m-0-iso8859-10
-urw-nimbus mono l-medium-r-normal--0-0-0-0-m-0-iso8859-15
-urw-nimbus mono l-medium-r-normal--0-0-0-0-m-0-iso10646-1
-urw-nimbus mono l-medium-r-normal--0-0-0-0-m-0-koi8-e
-urw-nimbus mono l-medium-r-normal--0-0-0-0-m-0-koi8-r
-urw-nimbus mono l-medium-r-normal--0-0-0-0-m-0-koi8-ru
-urw-nimbus mono l-medium-r-normal--0-0-0-0-m-0-koi8-u
-urw-nimbus mono l-medium-r-normal--0-0-0-0-m-0-koi8-uni
-urw-nimbus roman no9 l-bold-i-normal--0-0-0-0-p-0-iso8859-1
-urw-nimbus roman no9 l-bold-i-normal--0-0-0-0-p-0-iso8859-2
-urw-nimbus roman no9 l-bold-i-normal--0-0-0-0-p-0-iso8859-3
-urw-nimbus roman no9 l-bold-i-normal--0-0-0-0-p-0-iso8859-5
-urw-nimbus roman no9 l-bold-i-normal--0-0-0-0-p-0-iso8859-9
-urw-nimbus roman no9 l-bold-i-normal--0-0-0-0-p-0-iso8859-15
-urw-nimbus roman no9 l-bold-i-normal--0-0-0-0-p-0-iso10646-1
-urw-nimbus roman no9 l-bold-i-normal--0-0-0-0-p-0-koi8-e
-urw-nimbus roman no9 l-bold-i-normal--0-0-0-0-p-0-koi8-r
-urw-nimbus roman no9 l-bold-i-normal--0-0-0-0-p-0-koi8-ru
-urw-nimbus roman no9 l-bold-i-normal--0-0-0-0-p-0-koi8-u
-urw-nimbus roman no9 l-bold-i-normal--0-0-0-0-p-0-koi8-uni
-urw-nimbus roman no9 l-bold-r-normal--0-0-0-0-p-0-iso8859-1
-urw-nimbus roman no9 l-bold-r-normal--0-0-0-0-p-0-iso8859-2
-urw-nimbus roman no9 l-bold-r-normal--0-0-0-0-p-0-iso8859-3
-urw-nimbus roman no9 l-bold-r-normal--0-0-0-0-p-0-iso8859-4
-urw-nimbus roman no9 l-bold-r-normal--0-0-0-0-p-0-iso8859-5
-urw-nimbus roman no9 l-bold-r-normal--0-0-0-0-p-0-iso8859-9
-urw-nimbus roman no9 l-bold-r-normal--0-0-0-0-p-0-iso8859-10
-urw-nimbus roman no9 l-bold-r-normal--0-0-0-0-p-0-iso8859-15
-urw-nimbus roman no9 l-bold-r-normal--0-0-0-0-p-0-iso10646-1
-urw-nimbus roman no9 l-bold-r-normal--0-0-0-0-p-0-koi8-e
-urw-nimbus roman no9 l-bold-r-normal--0-0-0-0-p-0-koi8-r
-urw-nimbus roman no9 l-bold-r-normal--0-0-0-0-p-0-koi8-ru
-urw-nimbus roman no9 l-bold-r-normal--0-0-0-0-p-0-koi8-u
-urw-nimbus roman no9 l-bold-r-normal--0-0-0-0-p-0-koi8-uni
-urw-nimbus roman no9 l-medium-i-normal--0-0-0-0-p-0-iso8859-1
-urw-nimbus roman no9 l-medium-i-normal--0-0-0-0-p-0-iso8859-2
-urw-nimbus roman no9 l-medium-i-normal--0-0-0-0-p-0-iso8859-3
-urw-nimbus roman no9 l-medium-i-normal--0-0-0-0-p-0-iso8859-5
-urw-nimbus roman no9 l-medium-i-normal--0-0-0-0-p-0-iso8859-9
-urw-nimbus roman no9 l-medium-i-normal--0-0-0-0-p-0-iso8859-15
-urw-nimbus roman no9 l-medium-i-normal--0-0-0-0-p-0-iso10646-1
-urw-nimbus roman no9 l-medium-i-normal--0-0-0-0-p-0-koi8-e
-urw-nimbus roman no9 l-medium-i-normal--0-0-0-0-p-0-koi8-r
-urw-nimbus roman no9 l-medium-i-normal--0-0-0-0-p-0-koi8-ru
-urw-nimbus roman no9 l-medium-i-normal--0-0-0-0-p-0-koi8-u
-urw-nimbus roman no9 l-medium-i-normal--0-0-0-0-p-0-koi8-uni
-urw-nimbus roman no9 l-medium-r-normal--0-0-0-0-p-0-iso8859-1
-urw-nimbus roman no9 l-medium-r-normal--0-0-0-0-p-0-iso8859-2
-urw-nimbus roman no9 l-medium-r-normal--0-0-0-0-p-0-iso8859-3
-urw-nimbus roman no9 l-medium-r-normal--0-0-0-0-p-0-iso8859-4
-urw-nimbus roman no9 l-medium-r-normal--0-0-0-0-p-0-iso8859-5
-urw-nimbus roman no9 l-medium-r-normal--0-0-0-0-p-0-iso8859-9
-urw-nimbus roman no9 l-medium-r-normal--0-0-0-0-p-0-iso8859-10
-urw-nimbus roman no9 l-medium-r-normal--0-0-0-0-p-0-iso8859-15
-urw-nimbus roman no9 l-medium-r-normal--0-0-0-0-p-0-iso10646-1
-urw-nimbus roman no9 l-medium-r-normal--0-0-0-0-p-0-koi8-e
-urw-nimbus roman no9 l-medium-r-normal--0-0-0-0-p-0-koi8-r
-urw-nimbus roman no9 l-medium-r-normal--0-0-0-0-p-0-koi8-ru
-urw-nimbus roman no9 l-medium-r-normal--0-0-0-0-p-0-koi8-u
-urw-nimbus roman no9 l-medium-r-normal--0-0-0-0-p-0-koi8-uni
-urw-nimbus sans l-bold-i-condensed--0-0-0-0-p-0-iso8859-1
-urw-nimbus sans l-bold-i-condensed--0-0-0-0-p-0-iso8859-2
-urw-nimbus sans l-bold-i-condensed--0-0-0-0-p-0-iso8859-3
-urw-nimbus sans l-bold-i-condensed--0-0-0-0-p-0-iso8859-4
-urw-nimbus sans l-bold-i-condensed--0-0-0-0-p-0-iso8859-5
-urw-nimbus sans l-bold-i-condensed--0-0-0-0-p-0-iso8859-9
-urw-nimbus sans l-bold-i-condensed--0-0-0-0-p-0-iso8859-10
-urw-nimbus sans l-bold-i-condensed--0-0-0-0-p-0-iso8859-15
-urw-nimbus sans l-bold-i-condensed--0-0-0-0-p-0-iso10646-1
-urw-nimbus sans l-bold-i-condensed--0-0-0-0-p-0-koi8-e
-urw-nimbus sans l-bold-i-condensed--0-0-0-0-p-0-koi8-r
-urw-nimbus sans l-bold-i-condensed--0-0-0-0-p-0-koi8-ru
-urw-nimbus sans l-bold-i-condensed--0-0-0-0-p-0-koi8-u
-urw-nimbus sans l-bold-i-condensed--0-0-0-0-p-0-koi8-uni
-urw-nimbus sans l-bold-i-normal--0-0-0-0-p-0-iso8859-1
-urw-nimbus sans l-bold-i-normal--0-0-0-0-p-0-iso8859-2
-urw-nimbus sans l-bold-i-normal--0-0-0-0-p-0-iso8859-3
-urw-nimbus sans l-bold-i-normal--0-0-0-0-p-0-iso8859-4
-urw-nimbus sans l-bold-i-normal--0-0-0-0-p-0-iso8859-5
-urw-nimbus sans l-bold-i-normal--0-0-0-0-p-0-iso8859-9
-urw-nimbus sans l-bold-i-normal--0-0-0-0-p-0-iso8859-10
-urw-nimbus sans l-bold-i-normal--0-0-0-0-p-0-iso8859-15
-urw-nimbus sans l-bold-i-normal--0-0-0-0-p-0-iso10646-1
-urw-nimbus sans l-bold-i-normal--0-0-0-0-p-0-koi8-e
-urw-nimbus sans l-bold-i-normal--0-0-0-0-p-0-koi8-r
-urw-nimbus sans l-bold-i-normal--0-0-0-0-p-0-koi8-ru
-urw-nimbus sans l-bold-i-normal--0-0-0-0-p-0-koi8-u
-urw-nimbus sans l-bold-i-normal--0-0-0-0-p-0-koi8-uni
-urw-nimbus sans l-bold-r-condensed--0-0-0-0-p-0-iso8859-1
-urw-nimbus sans l-bold-r-condensed--0-0-0-0-p-0-iso8859-2
-urw-nimbus sans l-bold-r-condensed--0-0-0-0-p-0-iso8859-3
-urw-nimbus sans l-bold-r-condensed--0-0-0-0-p-0-iso8859-4
-urw-nimbus sans l-bold-r-condensed--0-0-0-0-p-0-iso8859-5
-urw-nimbus sans l-bold-r-condensed--0-0-0-0-p-0-iso8859-9
-urw-nimbus sans l-bold-r-condensed--0-0-0-0-p-0-iso8859-10
-urw-nimbus sans l-bold-r-condensed--0-0-0-0-p-0-iso8859-15
-urw-nimbus sans l-bold-r-condensed--0-0-0-0-p-0-iso10646-1
-urw-nimbus sans l-bold-r-condensed--0-0-0-0-p-0-koi8-e
-urw-nimbus sans l-bold-r-condensed--0-0-0-0-p-0-koi8-r
-urw-nimbus sans l-bold-r-condensed--0-0-0-0-p-0-koi8-ru
-urw-nimbus sans l-bold-r-condensed--0-0-0-0-p-0-koi8-u
-urw-nimbus sans l-bold-r-condensed--0-0-0-0-p-0-koi8-uni
-urw-nimbus sans l-bold-r-normal--0-0-0-0-p-0-iso8859-1
-urw-nimbus sans l-bold-r-normal--0-0-0-0-p-0-iso8859-2
-urw-nimbus sans l-bold-r-normal--0-0-0-0-p-0-iso8859-3
-urw-nimbus sans l-bold-r-normal--0-0-0-0-p-0-iso8859-4
-urw-nimbus sans l-bold-r-normal--0-0-0-0-p-0-iso8859-5
-urw-nimbus sans l-bold-r-normal--0-0-0-0-p-0-iso8859-9
-urw-nimbus sans l-bold-r-normal--0-0-0-0-p-0-iso8859-10
-urw-nimbus sans l-bold-r-normal--0-0-0-0-p-0-iso8859-15
-urw-nimbus sans l-bold-r-normal--0-0-0-0-p-0-iso10646-1
-urw-nimbus sans l-bold-r-normal--0-0-0-0-p-0-koi8-e
-urw-nimbus sans l-bold-r-normal--0-0-0-0-p-0-koi8-r
-urw-nimbus sans l-bold-r-normal--0-0-0-0-p-0-koi8-ru
-urw-nimbus sans l-bold-r-normal--0-0-0-0-p-0-koi8-u
-urw-nimbus sans l-bold-r-normal--0-0-0-0-p-0-koi8-uni
-urw-nimbus sans l-medium-i-condensed--0-0-0-0-p-0-iso8859-1
-urw-nimbus sans l-medium-i-condensed--0-0-0-0-p-0-iso8859-2
-urw-nimbus sans l-medium-i-condensed--0-0-0-0-p-0-iso8859-3
-urw-nimbus sans l-medium-i-condensed--0-0-0-0-p-0-iso8859-4
-urw-nimbus sans l-medium-i-condensed--0-0-0-0-p-0-iso8859-5
-urw-nimbus sans l-medium-i-condensed--0-0-0-0-p-0-iso8859-9
-urw-nimbus sans l-medium-i-condensed--0-0-0-0-p-0-iso8859-10
-urw-nimbus sans l-medium-i-condensed--0-0-0-0-p-0-iso8859-15
-urw-nimbus sans l-medium-i-condensed--0-0-0-0-p-0-iso10646-1
-urw-nimbus sans l-medium-i-condensed--0-0-0-0-p-0-koi8-e
-urw-nimbus sans l-medium-i-condensed--0-0-0-0-p-0-koi8-r
-urw-nimbus sans l-medium-i-condensed--0-0-0-0-p-0-koi8-ru
-urw-nimbus sans l-medium-i-condensed--0-0-0-0-p-0-koi8-u
-urw-nimbus sans l-medium-i-condensed--0-0-0-0-p-0-koi8-uni
-urw-nimbus sans l-medium-i-normal--0-0-0-0-p-0-iso8859-1
-urw-nimbus sans l-medium-i-normal--0-0-0-0-p-0-iso8859-2
-urw-nimbus sans l-medium-i-normal--0-0-0-0-p-0-iso8859-3
-urw-nimbus sans l-medium-i-normal--0-0-0-0-p-0-iso8859-4
-urw-nimbus sans l-medium-i-normal--0-0-0-0-p-0-iso8859-5
-urw-nimbus sans l-medium-i-normal--0-0-0-0-p-0-iso8859-9
-urw-nimbus sans l-medium-i-normal--0-0-0-0-p-0-iso8859-10
-urw-nimbus sans l-medium-i-normal--0-0-0-0-p-0-iso8859-15
-urw-nimbus sans l-medium-i-normal--0-0-0-0-p-0-iso10646-1
-urw-nimbus sans l-medium-i-normal--0-0-0-0-p-0-koi8-e
-urw-nimbus sans l-medium-i-normal--0-0-0-0-p-0-koi8-r
-urw-nimbus sans l-medium-i-normal--0-0-0-0-p-0-koi8-ru
-urw-nimbus sans l-medium-i-normal--0-0-0-0-p-0-koi8-u
-urw-nimbus sans l-medium-i-normal--0-0-0-0-p-0-koi8-uni
-urw-nimbus sans l-medium-r-condensed--0-0-0-0-p-0-iso8859-1
-urw-nimbus sans l-medium-r-condensed--0-0-0-0-p-0-iso8859-2
-urw-nimbus sans l-medium-r-condensed--0-0-0-0-p-0-iso8859-3
-urw-nimbus sans l-medium-r-condensed--0-0-0-0-p-0-iso8859-4
-urw-nimbus sans l-medium-r-condensed--0-0-0-0-p-0-iso8859-5
-urw-nimbus sans l-medium-r-condensed--0-0-0-0-p-0-iso8859-9
-urw-nimbus sans l-medium-r-condensed--0-0-0-0-p-0-iso8859-10
-urw-nimbus sans l-medium-r-condensed--0-0-0-0-p-0-iso8859-15
-urw-nimbus sans l-medium-r-condensed--0-0-0-0-p-0-iso10646-1
-urw-nimbus sans l-medium-r-condensed--0-0-0-0-p-0-koi8-e
-urw-nimbus sans l-medium-r-condensed--0-0-0-0-p-0-koi8-r
-urw-nimbus sans l-medium-r-condensed--0-0-0-0-p-0-koi8-ru
-urw-nimbus sans l-medium-r-condensed--0-0-0-0-p-0-koi8-u
-urw-nimbus sans l-medium-r-condensed--0-0-0-0-p-0-koi8-uni
-urw-nimbus sans l-medium-r-normal--0-0-0-0-p-0-iso8859-1
-urw-nimbus sans l-medium-r-normal--0-0-0-0-p-0-iso8859-2
-urw-nimbus sans l-medium-r-normal--0-0-0-0-p-0-iso8859-3
-urw-nimbus sans l-medium-r-normal--0-0-0-0-p-0-iso8859-4
-urw-nimbus sans l-medium-r-normal--0-0-0-0-p-0-iso8859-5
-urw-nimbus sans l-medium-r-normal--0-0-0-0-p-0-iso8859-9
-urw-nimbus sans l-medium-r-normal--0-0-0-0-p-0-iso8859-10
-urw-nimbus sans l-medium-r-normal--0-0-0-0-p-0-iso8859-15
-urw-nimbus sans l-medium-r-normal--0-0-0-0-p-0-iso10646-1
-urw-nimbus sans l-medium-r-normal--0-0-0-0-p-0-koi8-e
-urw-nimbus sans l-medium-r-normal--0-0-0-0-p-0-koi8-r
-urw-nimbus sans l-medium-r-normal--0-0-0-0-p-0-koi8-ru
-urw-nimbus sans l-medium-r-normal--0-0-0-0-p-0-koi8-u
-urw-nimbus sans l-medium-r-normal--0-0-0-0-p-0-koi8-uni
-urw-standard symbols l-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific
-urw-standard symbols l-medium-r-normal--0-0-0-0-p-0-iso10646-1
-urw-urw bookman l-bold-i-normal--0-0-0-0-p-0-iso8859-1
-urw-urw bookman l-bold-i-normal--0-0-0-0-p-0-iso8859-2
-urw-urw bookman l-bold-i-normal--0-0-0-0-p-0-iso8859-3
-urw-urw bookman l-bold-i-normal--0-0-0-0-p-0-iso8859-5
-urw-urw bookman l-bold-i-normal--0-0-0-0-p-0-iso8859-9
-urw-urw bookman l-bold-i-normal--0-0-0-0-p-0-iso8859-15
-urw-urw bookman l-bold-i-normal--0-0-0-0-p-0-iso10646-1
-urw-urw bookman l-bold-i-normal--0-0-0-0-p-0-koi8-e
-urw-urw bookman l-bold-i-normal--0-0-0-0-p-0-koi8-r
-urw-urw bookman l-bold-i-normal--0-0-0-0-p-0-koi8-ru
-urw-urw bookman l-bold-i-normal--0-0-0-0-p-0-koi8-u
-urw-urw bookman l-bold-i-normal--0-0-0-0-p-0-koi8-uni
-urw-urw bookman l-bold-r-normal--0-0-0-0-p-0-iso8859-1
-urw-urw bookman l-bold-r-normal--0-0-0-0-p-0-iso8859-2
-urw-urw bookman l-bold-r-normal--0-0-0-0-p-0-iso8859-3
-urw-urw bookman l-bold-r-normal--0-0-0-0-p-0-iso8859-5
-urw-urw bookman l-bold-r-normal--0-0-0-0-p-0-iso8859-9
-urw-urw bookman l-bold-r-normal--0-0-0-0-p-0-iso8859-15
-urw-urw bookman l-bold-r-normal--0-0-0-0-p-0-iso10646-1
-urw-urw bookman l-bold-r-normal--0-0-0-0-p-0-koi8-e
-urw-urw bookman l-bold-r-normal--0-0-0-0-p-0-koi8-r
-urw-urw bookman l-bold-r-normal--0-0-0-0-p-0-koi8-ru
-urw-urw bookman l-bold-r-normal--0-0-0-0-p-0-koi8-u
-urw-urw bookman l-bold-r-normal--0-0-0-0-p-0-koi8-uni
-urw-urw bookman l-medium-i-normal--0-0-0-0-p-0-iso8859-1
-urw-urw bookman l-medium-i-normal--0-0-0-0-p-0-iso8859-2
-urw-urw bookman l-medium-i-normal--0-0-0-0-p-0-iso8859-3
-urw-urw bookman l-medium-i-normal--0-0-0-0-p-0-iso8859-5
-urw-urw bookman l-medium-i-normal--0-0-0-0-p-0-iso8859-9
-urw-urw bookman l-medium-i-normal--0-0-0-0-p-0-iso8859-15
-urw-urw bookman l-medium-i-normal--0-0-0-0-p-0-iso10646-1
-urw-urw bookman l-medium-i-normal--0-0-0-0-p-0-koi8-e
-urw-urw bookman l-medium-i-normal--0-0-0-0-p-0-koi8-r
-urw-urw bookman l-medium-i-normal--0-0-0-0-p-0-koi8-ru
-urw-urw bookman l-medium-i-normal--0-0-0-0-p-0-koi8-u
-urw-urw bookman l-medium-i-normal--0-0-0-0-p-0-koi8-uni
-urw-urw bookman l-medium-r-normal--0-0-0-0-p-0-iso8859-1
-urw-urw bookman l-medium-r-normal--0-0-0-0-p-0-iso8859-2
-urw-urw bookman l-medium-r-normal--0-0-0-0-p-0-iso8859-3
-urw-urw bookman l-medium-r-normal--0-0-0-0-p-0-iso8859-5
-urw-urw bookman l-medium-r-normal--0-0-0-0-p-0-iso8859-9
-urw-urw bookman l-medium-r-normal--0-0-0-0-p-0-iso8859-15
-urw-urw bookman l-medium-r-normal--0-0-0-0-p-0-iso10646-1
-urw-urw bookman l-medium-r-normal--0-0-0-0-p-0-koi8-e
-urw-urw bookman l-medium-r-normal--0-0-0-0-p-0-koi8-r
-urw-urw bookman l-medium-r-normal--0-0-0-0-p-0-koi8-ru
-urw-urw bookman l-medium-r-normal--0-0-0-0-p-0-koi8-u
-urw-urw bookman l-medium-r-normal--0-0-0-0-p-0-koi8-uni
-urw-urw chancery l-medium-i-normal--0-0-0-0-p-0-iso8859-1
-urw-urw chancery l-medium-i-normal--0-0-0-0-p-0-iso8859-2
-urw-urw chancery l-medium-i-normal--0-0-0-0-p-0-iso8859-3
-urw-urw chancery l-medium-i-normal--0-0-0-0-p-0-iso8859-5
-urw-urw chancery l-medium-i-normal--0-0-0-0-p-0-iso8859-9
-urw-urw chancery l-medium-i-normal--0-0-0-0-p-0-iso8859-15
-urw-urw chancery l-medium-i-normal--0-0-0-0-p-0-iso10646-1
-urw-urw chancery l-medium-i-normal--0-0-0-0-p-0-koi8-e
-urw-urw chancery l-medium-i-normal--0-0-0-0-p-0-koi8-r
-urw-urw gothic l-medium-o-normal--0-0-0-0-p-0-iso8859-1
-urw-urw gothic l-medium-o-normal--0-0-0-0-p-0-iso8859-2
-urw-urw gothic l-medium-o-normal--0-0-0-0-p-0-iso8859-3
-urw-urw gothic l-medium-o-normal--0-0-0-0-p-0-iso8859-4
-urw-urw gothic l-medium-o-normal--0-0-0-0-p-0-iso8859-5
-urw-urw gothic l-medium-o-normal--0-0-0-0-p-0-iso8859-9
-urw-urw gothic l-medium-o-normal--0-0-0-0-p-0-iso8859-10
-urw-urw gothic l-medium-o-normal--0-0-0-0-p-0-iso8859-15
-urw-urw gothic l-medium-o-normal--0-0-0-0-p-0-iso10646-1
-urw-urw gothic l-medium-o-normal--0-0-0-0-p-0-koi8-e
-urw-urw gothic l-medium-o-normal--0-0-0-0-p-0-koi8-r
-urw-urw gothic l-medium-o-normal--0-0-0-0-p-0-koi8-ru
-urw-urw gothic l-medium-o-normal--0-0-0-0-p-0-koi8-u
-urw-urw gothic l-medium-o-normal--0-0-0-0-p-0-koi8-uni
-urw-urw gothic l-medium-r-normal--0-0-0-0-p-0-iso8859-1
-urw-urw gothic l-medium-r-normal--0-0-0-0-p-0-iso8859-2
-urw-urw gothic l-medium-r-normal--0-0-0-0-p-0-iso8859-3
-urw-urw gothic l-medium-r-normal--0-0-0-0-p-0-iso8859-4
-urw-urw gothic l-medium-r-normal--0-0-0-0-p-0-iso8859-5
-urw-urw gothic l-medium-r-normal--0-0-0-0-p-0-iso8859-9
-urw-urw gothic l-medium-r-normal--0-0-0-0-p-0-iso8859-10
-urw-urw gothic l-medium-r-normal--0-0-0-0-p-0-iso8859-15
-urw-urw gothic l-medium-r-normal--0-0-0-0-p-0-iso10646-1
-urw-urw gothic l-medium-r-normal--0-0-0-0-p-0-koi8-e
-urw-urw gothic l-medium-r-normal--0-0-0-0-p-0-koi8-r
-urw-urw gothic l-medium-r-normal--0-0-0-0-p-0-koi8-ru
-urw-urw gothic l-medium-r-normal--0-0-0-0-p-0-koi8-u
-urw-urw gothic l-medium-r-normal--0-0-0-0-p-0-koi8-uni
-urw-urw gothic l-semibold-o-normal--0-0-0-0-p-0-iso8859-1
-urw-urw gothic l-semibold-o-normal--0-0-0-0-p-0-iso8859-2
-urw-urw gothic l-semibold-o-normal--0-0-0-0-p-0-iso8859-3
-urw-urw gothic l-semibold-o-normal--0-0-0-0-p-0-iso8859-4
-urw-urw gothic l-semibold-o-normal--0-0-0-0-p-0-iso8859-5
-urw-urw gothic l-semibold-o-normal--0-0-0-0-p-0-iso8859-9
-urw-urw gothic l-semibold-o-normal--0-0-0-0-p-0-iso8859-10
-urw-urw gothic l-semibold-o-normal--0-0-0-0-p-0-iso8859-15
-urw-urw gothic l-semibold-o-normal--0-0-0-0-p-0-iso10646-1
-urw-urw gothic l-semibold-o-normal--0-0-0-0-p-0-koi8-e
-urw-urw gothic l-semibold-o-normal--0-0-0-0-p-0-koi8-r
-urw-urw gothic l-semibold-o-normal--0-0-0-0-p-0-koi8-ru
-urw-urw gothic l-semibold-o-normal--0-0-0-0-p-0-koi8-u
-urw-urw gothic l-semibold-o-normal--0-0-0-0-p-0-koi8-uni
-urw-urw gothic l-semibold-r-normal--0-0-0-0-p-0-iso8859-1
-urw-urw gothic l-semibold-r-normal--0-0-0-0-p-0-iso8859-2
-urw-urw gothic l-semibold-r-normal--0-0-0-0-p-0-iso8859-3
-urw-urw gothic l-semibold-r-normal--0-0-0-0-p-0-iso8859-4
-urw-urw gothic l-semibold-r-normal--0-0-0-0-p-0-iso8859-5
-urw-urw gothic l-semibold-r-normal--0-0-0-0-p-0-iso8859-9
-urw-urw gothic l-semibold-r-normal--0-0-0-0-p-0-iso8859-10
-urw-urw gothic l-semibold-r-normal--0-0-0-0-p-0-iso8859-15
-urw-urw gothic l-semibold-r-normal--0-0-0-0-p-0-iso10646-1
-urw-urw gothic l-semibold-r-normal--0-0-0-0-p-0-koi8-e
-urw-urw gothic l-semibold-r-normal--0-0-0-0-p-0-koi8-r
-urw-urw gothic l-semibold-r-normal--0-0-0-0-p-0-koi8-ru
-urw-urw gothic l-semibold-r-normal--0-0-0-0-p-0-koi8-u
-urw-urw gothic l-semibold-r-normal--0-0-0-0-p-0-koi8-uni
-urw-urw palladio l-bold-i-normal--0-0-0-0-p-0-iso8859-1
-urw-urw palladio l-bold-i-normal--0-0-0-0-p-0-iso8859-2
-urw-urw palladio l-bold-i-normal--0-0-0-0-p-0-iso8859-3
-urw-urw palladio l-bold-i-normal--0-0-0-0-p-0-iso8859-5
-urw-urw palladio l-bold-i-normal--0-0-0-0-p-0-iso8859-9
-urw-urw palladio l-bold-i-normal--0-0-0-0-p-0-iso8859-15
-urw-urw palladio l-bold-i-normal--0-0-0-0-p-0-iso10646-1
-urw-urw palladio l-bold-i-normal--0-0-0-0-p-0-koi8-e
-urw-urw palladio l-bold-i-normal--0-0-0-0-p-0-koi8-r
-urw-urw palladio l-bold-i-normal--0-0-0-0-p-0-koi8-ru
-urw-urw palladio l-bold-i-normal--0-0-0-0-p-0-koi8-u
-urw-urw palladio l-bold-i-normal--0-0-0-0-p-0-koi8-uni
-urw-urw palladio l-bold-r-normal--0-0-0-0-p-0-iso8859-1
-urw-urw palladio l-bold-r-normal--0-0-0-0-p-0-iso8859-2
-urw-urw palladio l-bold-r-normal--0-0-0-0-p-0-iso8859-3
-urw-urw palladio l-bold-r-normal--0-0-0-0-p-0-iso8859-5
-urw-urw palladio l-bold-r-normal--0-0-0-0-p-0-iso8859-9
-urw-urw palladio l-bold-r-normal--0-0-0-0-p-0-iso8859-15
-urw-urw palladio l-bold-r-normal--0-0-0-0-p-0-iso10646-1
-urw-urw palladio l-bold-r-normal--0-0-0-0-p-0-koi8-e
-urw-urw palladio l-bold-r-normal--0-0-0-0-p-0-koi8-r
-urw-urw palladio l-bold-r-normal--0-0-0-0-p-0-koi8-ru
-urw-urw palladio l-bold-r-normal--0-0-0-0-p-0-koi8-u
-urw-urw palladio l-bold-r-normal--0-0-0-0-p-0-koi8-uni
-urw-urw palladio l-medium-i-normal--0-0-0-0-p-0-iso8859-1
-urw-urw palladio l-medium-i-normal--0-0-0-0-p-0-iso8859-2
-urw-urw palladio l-medium-i-normal--0-0-0-0-p-0-iso8859-3
-urw-urw palladio l-medium-i-normal--0-0-0-0-p-0-iso8859-5
-urw-urw palladio l-medium-i-normal--0-0-0-0-p-0-iso8859-9
-urw-urw palladio l-medium-i-normal--0-0-0-0-p-0-iso8859-15
-urw-urw palladio l-medium-i-normal--0-0-0-0-p-0-iso10646-1
-urw-urw palladio l-medium-i-normal--0-0-0-0-p-0-koi8-e
-urw-urw palladio l-medium-i-normal--0-0-0-0-p-0-koi8-r
-urw-urw palladio l-medium-i-normal--0-0-0-0-p-0-koi8-ru
-urw-urw palladio l-medium-i-normal--0-0-0-0-p-0-koi8-u
-urw-urw palladio l-medium-i-normal--0-0-0-0-p-0-koi8-uni
-urw-urw palladio l-medium-r-normal--0-0-0-0-p-0-iso8859-1
-urw-urw palladio l-medium-r-normal--0-0-0-0-p-0-iso8859-2
-urw-urw palladio l-medium-r-normal--0-0-0-0-p-0-iso8859-3
-urw-urw palladio l-medium-r-normal--0-0-0-0-p-0-iso8859-5
-urw-urw palladio l-medium-r-normal--0-0-0-0-p-0-iso8859-9
-urw-urw palladio l-medium-r-normal--0-0-0-0-p-0-iso8859-15
-urw-urw palladio l-medium-r-normal--0-0-0-0-p-0-iso10646-1
-urw-urw palladio l-medium-r-normal--0-0-0-0-p-0-koi8-e
-urw-urw palladio l-medium-r-normal--0-0-0-0-p-0-koi8-r
-urw-urw palladio l-medium-r-normal--0-0-0-0-p-0-koi8-ru
-urw-urw palladio l-medium-r-normal--0-0-0-0-p-0-koi8-u
-urw-urw palladio l-medium-r-normal--0-0-0-0-p-0-koi8-uni
-misc-fixed-medium-r-semicondensed--13-100-100-100-c-60-iso8859-1
-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
6x13
cursor
fixed
-misc-fixed-medium-r-semicondensed--0-0-75-75-c-0-iso8859-1


Failed to load X11 font with name -*-times-bold-i-*--24-*-*-*.
Try a Screen('TextFont') name according to one of the listed available fonts above.

Error in function DrawText: Usage error
Couldn't select the requested font with the requested font settings from X11 system!

the only strings i can find to pass to Screen('TextFont') that work are exact copies of long names from the list above. 'fixed' doesn't work, and neither does something i build with xfontsel like '-*-fixed-*-*-*-*-*-*-*-*-*-*-*-*'.

also, using TextRenderer 0 means Screen('TextStyle',window,0) doesn't work -- stuff still comes out in the bold italic default.

OpenGL-Renderer is NVIDIA Corporation :: GeForce GT 430/PCI/SSE2 :: 4.2.0 NVIDIA 290.06
(from rpmfusion)

the default text renderer works and seems to be fast enough, but gives this:
PTB-DEBUG: DrawText: Failed to load external drawtext plugin [/home/asl/psychtoolbox/Psychtoolbox//PsychBasic/PsychPlugins/libptbdrawtext_ftgl.so.1: wrong ELF class: ELFCLASS32]. Retrying under generic name [libptbdrawtext_ftgl.so.1].

did an extra filesep get in there? or does it have to know to use 64 bit?

>> ls -l /home/asl/psychtoolbox/Psychtoolbox/PsychBasic/PsychPlugins
total 1644
-rwxrwxrwx 1 root root 544964 Dec 2 03:41 libptbdrawtext_ftgl64.so.1
-rwxrwxrwx 1 root root 658024 Dec 2 03:41 libptbdrawtext_ftgl.dylib
-rwxrwxrwx 1 root root 472739 Dec 2 03:41 libptbdrawtext_ftgl.so.1

there's no match for drawtext in [a b]=system(['ldd ' which('Screen')])

following up on our last conversation:

> > -do you think setenv('LD_LIBRARY_PATH') might be preferable to the manual libstdc++/libdc1394 hiding strategy currently recommended?
>
> Don't know. Your instructions on the Wiki for achieving this sound too complicated to me for the average ptb user. I think renaming or deleting a few files is more fool-proof, especially given how much Matlab's startup script messes with linker settings and paths. Somebode with a Mathwork account and a recent Matlab version could also file a bug report. I consider Matlab's behaviour a bug, but i only test with R2007a where this specific problem doesn't exist.

i'm hoping to help end users focus on science instead of hacking. :) there's lots of threads on the forum to show that users get stuck on this step, and it's a stumbling block we can remove to help promote adoption of linux. it seems to me that LD_LIBRARY_PATH is specifically designed for this situation where one wants to customize the link environment for particular invocations of a program. i think it's more appropriate for PTB to make sure it arranges for its expected environment in a non-destructive way than for end users to have to [know to search online to learn that they have to] manually hide things that other invocations of matlab may depend on. my instructions on the wiki aren't a suggestion for what end-users should do, but an attempt to find something PTB can do automatically when necessary. unfortunately, i got stuck at the point indicated on the wiki -- i don't know enough to figure out why matlab searches for libraw1394.so.8 when i prepend /usr/lib64 to LD_LIBRARY_PATH, which provides libraw1394.so.11 and ldd agrees that's what Screen wants. could you provide any guidance on how to learn more about what might be going wrong? i am a n00b to linker issues.

if we can figure this out, i'm also wondering if it's possible to identify the correct directories (in my case, /lib64 and /usr/lib64) dynamically so they don't have to be hardcoded.

> Direct access is always the fastest, but requires root access. ppdev probably will add a few extra microseconds of system call overhead, but i wouldn't expect that such a delay is significant?

i thought direct should be faster too, but from the link i sent:
"most programmers will probably take the PPDEV route as it is safer and probably faster. ... There may also be circumstances where the direct IO approach is more efficient."

any idea how PPDEV could possibly be faster than direct? i've got both implemented and will give flexibility to the end user to request a specific method if desired.

> b) Windows: Somehow integrate one of the existing solutions into IOPort. Don't know which is the best way to do it or if there are any license problems, but it would be nice to have a unified solution.

i think this is now the best method, because it works for 64 bit windows and add-on PCI-based parallel ports:
http://people.usd.edu/~schieber/psyc770/IO64.html

i believe he repackaged this guy's stuff:
http://www.highrez.co.uk/Downloads/InpOut32/default.htm

who repackaged this guy's stuff:
http://logix4u.net/Legacy_Ports/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/XP.html

if http://www.beyondlogic.org/porttalk/porttalk.htm can be 64-bit-ized, i think it's no better or worse a solution.

they all seem pretty open to discussing flexible licensing.

> Input wrt. to api or use cases welcome.

my usage is the same as the most common use case i see on the forum: fastest possible reads/writes of specific pins while leaving the other pins alone. ideal if the port address(es) can be automatically determined and no driver installation required. also best if no global state has to be maintained, but this conflicts with also wanting to guarantee exclusive access. finally, it would be great to provide control over boot-up pin states (my water valves leak all over until i start matlab and set the pin values). the api i'm designing is pin-based and abstracts the user from caring about the three different registers, hardware inverted pins, frobbing, etc.

i think comedi is a fine choice too, just haven't checked its speed yet.

thanks for your help!
-e
I'm also encountering a problem with SetMouse on OSX (10.10.3). After calling SetMouse, there appears to be a >250ms period during which the cursor is frozen on the display. I don't have this problem on Linux, but here is a simple code snippet that demonstrates my problem.

w = Screen('OpenWindow', 0, 0);

x = 400;
y = 400;

sample_rate = 3; % Hz
sample_step = 1 / sample_rate;
t_init = GetSecs;
t_old = -Inf;
while GetSecs - t_init < 10
   
    if GetSecs - t_old > sample_step
        t_old = GetSecs;
       
        SetMouse(x, y, win);
    end
end
sca;


On Linux, the above code shoves the cursor back to [400 400] 3 times a second, but I'm able to move it immediately after the SetMouse call (no visible delay at least). On OSX, the movement is much more delayed, and changing the sample_rate to 4 ensures that the mouse is completely frozen on the display. Is there a simple way to work around this? I'm sorry if it was already answered in this thread but I didn't notice a simple enough solution for our purposes when I browsed through, and much of it was over my head!

The reason this is a problem is because we are using SetMouse to constrain the cursor to a specific region of an open window. It should be possible to slide the cursor along the region's edge but the delay in OSX adds and undesirable "stickiness".
x--In PSYCHTOOLBOX@yahoogroups.com, <jpoppenk@...> wrote :

That's great news. Thanks for finding this hack and working it into PTB!

-> I also added support for getting mouse delta movement directly from OSX and for locking the mouse cursor in place. SetMouse() has a new parameter 'detachFromMouse' to decouple the mouse cursor from mouse movements. [x,y,b,f,v] = GetMouse() returns dx=v(1) and dy=v(2) in its first two valuator fields.

However, i wouldn't really recommend using these functions, as they are currently not supported on Linux or Windows, so you'd produce non-portable code that is locked to current versions of OSX. Each OS behaves very different wrt. mouse deltas and pointer confinement, so it is difficult to implement a reliable cross-platform compatible solution. They also look like the typical class of functions Apple likes to break in future os releases and if that happens i won't make any effort to fix them. Playing with the mouse delta reporting for an hour already gave me the impression that that functions behavior is of questionable quality, potentially buggy. I mostly left it in place because i already wasted 4 hours on implementing and testing it, but i don't trust it to work flawlessly.

Manually calculating mouse deltas and repositioning the cursor is what should work everywhere, so that's the recommended solution atm.

-mario