Multi-monitor
and device support
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UPDD supports both
multi-monitor and multiple pointer device configurations. This means that
UPDD can cater with a system that has more than one monitor or more than one
pointer device and any combination thereof can be supported by UPDD. This document
describes the multi-monitor and device considerations for each of the
supported desktop operating systems. Please ensure you
read the notes section before using multi touch devices or multi touch
monitors. Multi-monitor and multi-device notesDifferent video resolutionNative video mode allows different screen resolutions to be set on the individual monitors. Some custom video drivers may not allow different screen resolutions and all monitors will have to be the resolution of the largest resolution defined on one of the monitors. However, they may allow the viewable area to be a lesser resolution and ‘scroll’ the desktop around the full resolution. In this instance a custom segment will need to be defined to calibrate the viewable area and the scrolling capability will have to be locked as calibration does not work on scrolling desktops unless UPDD has been written to specifically interface with the video driver such that the two drivers work together and maintain calibration. This has been developed for one specialised system only. Please contact Touch-Base for more information. Multiple devicesUPDD has no restriction on the number of devices it can handle. As long as the controller can be connected via one of the supported hardware ports UPDD can be configured to support it. Hardware port binding (port and desktop segment association)In a multi-device environment a hardware port will be required for each pointer device. Most devices used in a multi-monitor/device environment are serial or USB and any of these ports can be used. In a multi-monitor / multi-touch device environment it is important to be able to associate a specific touch device (controller) with a given monitor (desktop). Serial controllers are connected to unique ports (com1, com2 etc) which offers a unique identifier to the device. For USB the binding method is different depending on the OS is use. See Binding section below for more details. Anchor mouse – Windows onlyIn a multi-monitor, touch screen environment, it may be a
requirement to leave the system pointer at its current location once the
touch is complete. E.g. a three monitor system where the left and right
screens are touch but the middle screen is mouse driven. With normal touch
drivers the cursor would be left at the last point of touch forcing the user
to use the mouse to bring the cursor back to the central monitor each time a
touch was made. Using the Anchor Mouse function, as found in the UPDD Console - Properties dialog, the cursor will be
returned to its previous location once the touch has been processed. This is a system wide setting that effects
all devices once enabled. Scrolling desktops – Windows onlySome systems support higher video resolutions than the video display can physically support. In this instance the video display becomes a ‘window’ on to the desktop and the desktop scrolls around video. In this instance touch screens cannot stay calibrated as they do not know the desktop element currently on display. For a touch screen driver to work in this environment the touch driver has to liaise with the video driver to be informed of the desktop element currently in view. This has been performed by UPDD with one video chip manufacturer and calibration was retained throughout the scrolling process. Desktop priorityDesktops can be allocated priorities when used in a multi-monitor environment and are defined in the UPDD Console - Properties dialog: The Interlock priority is a method of assigning a sharing priority to a device in a multi-device environment. Prior to introducing this function if two pointer devices were used at once the system pointer would rapidly jump between all the points of touch. This function avoids this symptom. See the UPDD on-line help for more information. The Admin priority hands control immediately to the device and is really only ever useful when one administrator desktop is in use. Setting more than one desktop introduces the issue where the system pointer will rapidly jump between all the points of touch if two or more admin desktops are touched at the same time. Given that a pen up will be forced on any Interlock device currently in use we recommend that those devices should be working with an appropriate click mode whereby the pen is not held down during use. Clone settingsMulti-monitor configurations normally require a degree of configuration in UPDD. If the configuration is to be replicated on a number of systems then UPDD has a useful facility to ‘clone’ the settings of one system on subsequent installs. Once the system is configured as required the ‘Dump settings’ function is located in the UPDD Console, Status dialog. A file is created that contains all the settings. This file is placed with the UPDD setup.exe program during the next install. See the UPDD Installation document for more information. RotateVideo rotation is catered for in UPDD and with some rotate methods UPDD can cater for rotation beyond the primary monitor. See the rotate document for more information. Multiple mouse pointers – Windows onlyIt is possible to give each pointer device in a Windows environment its own ‘mouse’ cursor and this is currently (May 2007) being investigated WindowsEnsure the notes section at the beginning
of this document is read before utilising multiple devices in a Windows
environment. To be able to configure UPDD in these situations you need to understand how Windows caters with multiple monitors and devices, specifically how multiple monitor configurations are supported by Windows and the manner in which the desktop is defined. Desktop resolutionWe are all familiar with a single monitor displaying a complete Windows desktop, as this is the standard system configuration. We are also familiar with the concept of different video resolutions and most of us work on systems with a screen resolution of 800x600 or 1024 x768. The first figure defines the number of pixels in the X plane (left to right) and the last figure defines the number of pixels in the Y plane (top to bottom). Although these video resolutions are familiar to us Windows maps these ‘video pixel’ resolutions to its own virtual desktop resolution of 65535 (X plane) x 65535 (Y plane).
Pointer device calibration data relates to the virtual desktop. When UPDD interfaces with the operating system’s virtual mouse port driver to request the system pointer to be moved to a specific X, Y co-ordinate it references the virtual desktop resolution, hence the change of user screen resolution does not affect the performance of UPDD.
Depending on the type of multi-monitor support employed within the system, as discussed below, each monitor will either have its own virtual desktop of range 65535 X and 65535 Y or share one virtual desktop across all monitors, thereby each controlling a segment of the virtual desktop. The user sees the same results, that is, the desktop is spread over all the available monitors, but internally this process is handled differently.
In the above examples the X and Y co-ordinates are spread across the monitors in a 4 x 1 configuration. However, with native video support each desktop has its own virtual range whereas, in the custom video support the Y co-ordinates will be in the range 0 to 65535 but the X co-ordinates will be in the range 262140. In the custom video, if the monitors were stacked in a square (2x2) then the range would be 0 to 131070 and 0 to 131070. Multi-monitor supportEach monitor is either supported by the standard Windows video drivers (Native Window support) or specialised drivers supplied with multi-video port cards (Custom and Stretched video support) as described below:
Native video support Native support for multiple monitors was available with Windows 98 and has continued to be available under ME, W2K and XP. This allows for individual video cards to be placed in the system and for Windows to automatically recognise that the system has more than one video card and to show this in the desktop properties. Each monitor can then be enabled/disabled via the desktop display properties and each can have its own settings.
In this environment each monitor has its own complete virtual desktop.
In the above example the system has two enabled monitors.
Custom video support Prior to the availability of native video support, introduced with Windows 98, video card manufactures had to develop their own drivers to implement multiple monitor support for Windows 95 and NT and, for many reasons, these drivers are still used in Windows systems that offer native support, especially where the native video drivers do not support the hardware. In this case Windows is only aware of one monitor but the custom driver handles the multiple monitor configuration.
In this environment each monitor shares the virtual desktop and maps to a segment within the virtual desktop.
In the above example a Quad video card is used to offer four monitors, two of which are enabled. Stretched video support We recently (early 2006) came across a graphics card where the Windows desktop properties showed a single monitor but the video was stretched across (mapped to) individual physical monitors. UPDD configurationUPDD is responsible for moving the system pointer on the desktop and therefore in a multiple monitor environment it needs to know the method employed to handle the video cards. Further it also needs to be aware of the monitor/desktop area to be associated with the pointer device such that the movement of the system pointer can be restricted to the associated area.
The UPDD Console shows the pointer devices configured in the driver. The Hardware dialog shows the monitor or desktop area associated with the current device, as shown below:
UPDD ships with a number of predefined desktop areas that take into account the different methods of video support. These settings caters for up to 16 monitors with native video support, 4 monitors with custom video support and 2 monitors with stretched video support although more can be catered for if required, as discussed below: Important note: Since UPDD 4.1.3 and above we have removed
the custom video and stretched video entries from the desktop area listing as
it would appear to us that they are no longer required or used and only lead
to ‘desktop selection confusion’. Update on this statement - These
settings have been reinstated in 4.1.8 under the Desktop Area setting ‘Other’. Standard video mode definitionIf the device is to move the system pointer across the whole desktop, as standard in a single monitor configuration, then the desktop area name is set to ‘Whole Desktop’, irrespective of video support in use. Native video mode definitionIf the device is restricted to moving the system pointer on a specific monitor, as supported by Native Video drivers, then the desktop area name is set to the name of the monitor, e.g. Monitor 2 Custom video mode definitionSee important note above If the device is restricted to moving the system pointer on a specific monitor, as supported by a custom video driver, then the desktop area name is set to the name of the segment, e.g. Left half, Right half etc. Stretched video mode definitionSee important note above If the device is restricted to moving the system pointer on a specific monitor, as supported by a stretched driver, then the desktop area name is set to the name of the segment, e.g. Left Half – Stretched, Right Half - Stretched. Important note: If a 2nd USB touch device is added and the touch device is ‘technically’ identical to the device already in use then after connection for the first time it may be necessary to reestablish relationship between touch screens and Windows desktops and recalibrate. Mac OS XEnsure the notes section at the beginning
of this document is read before utilising multiple devices in a Mac OS X
environment. For Mac systems that are capable of supporting more than one monitor the multi-monitor configuration is shown in the System Preferences, Hardware, Displays, Arrangement dialog as follows:
UPDD configurationUPDD is responsible for moving the system pointer on the desktop and therefore in a multiple monitor environment needs to be aware of the monitor/desktop area to be associated with the pointer device such that the movement of the system pointer can be restricted to the associated area.
The UPDD Console shows the pointer devices configured in the driver. The Hardware dialog shows the monitor or desktop area associated with the current device, as shown below:
UPDD ships with a number of predefined desktop areas for
use with the Mac configuration. The
system has been tested with 8 touch monitors without issue. Each monitor can have a different screen
resolution. In a
multi-monitor environment a reboot will be require before added devices are
active. External dual head devicesExternal video extenders are available for the Mac such that a single video port, typically on a Mac Mini, can be extended across two monitors. One such device. dualhead2go (http://www.matrox.com/graphics/en/gxm/products/dh2go/home.php) allows two screens to be connected to a single VGA connector on the MacMini. To the MacMini, it looks like one wide screen (2048x768). It is actually two separate flat panels each set to 1024x768. If using this device we recommend using corner calibration points (2 points, 0% margin) and ignoring the calibration points drawn in the corners of both devices and just touch the appropriate corners of the touch device. LinuxEnsure the notes section
at the beginning of this document is read before utilising multiple devices
in a Linux environment. UPDD on Linux supports
the use of multiple monitors with the desktop extended (stretched) across all
the monitors. Monitor layout must be horizontal, left to right, such as shown
in the example below for a three monitor setup: The “serverlayout”
section of the xorg.conf file has the screens defined thus:- Screen 0 "Screen0" 0 0 Screen 1 "Screen1" 1920 0 Screen 2 "Screen2" RightOf
"Screen1" Please contact
us if you require support for a different layout. The desktop extension has
to be implemented via the X extension, “Xinerama” – see http://en.wikipedia.org/wiki/Xinerama. To setup a system using Xinerama you should refer
to the documentation provided by your vendor. The steps we followed to
configure our Xinerama based system is outlined below as an example: ·
Modified xorg.conf
to add new sections for our second graphics card and monitor, and the
corresponding “Screen” section to link the two together. ·
Added the new
screen into the “ServerLayout” section using the following line:- Section "ServerLayout"
Identifier "Multihead layout" Screen
0 "Screen0" Screen
1 "Screen0 (2nd)" RightOf "Screen0" <<<<added
InputDevice "Updd0" "SendCoreEvents"
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
Option "Xinerama"
"on" <<<<added
Option "Clone"
"off"
<<<<added EndSection ... Machine specific sections removed … Note – This section was added on our Linux 64
because we were using an Nvidia graphics card which needed a driver to be downloaded
and installed from their website. The driver had non-standard extensions that
can guess the size of the screen and this stopped some X software, including
our driver, from working correctly. Section "Screen"
Identifier "Screen0" Device
"Videocard0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display" <<<
This section specifies the
resolutions and bitdepths of the respective monitor
Viewport 0 0
Depth 24
Modes “1600x1200” “1280x1024” “1024x768”
"800x600" "640x480" EndSubSection EndSection Section "Screen"
Identifier "Screen0 (2nd)"
Device "Videocard0
(2nd)"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24 Modes “1600x1200” “1280x1024” “1024x768”
"800x600" "640x480" EndSubSection EndSection Note the changes above
enabling Xinerama and the sections specifying the screen resolutions. On some
systems using the Nvidia graphics driver these are sometimes missing. UPDD does not currently support multiple monitors configured for
cloned/mirrored mode (same desktop seen on all monitors) or extended desktops
not using the Xinerama extensions – see http://en.wikipedia.org/wiki/Xinerama#Dual_display_X_without_Xinerama
for more details. Please contact us if this is
required. UPDD configurationUPDD is responsible for moving the system pointer on the desktop and therefore in a multiple monitor environment needs to be aware of the monitor/desktop area to be associated with the pointer device such that the movement of the system pointer can be restricted to the associated area. Once you have a
multi-monitor system configured you should use the UPDD Console to configure
your touch-screens and monitor association. This is done by going to the
“Hardware” page in the Console and clicking the the “Handling XXX Desktop”
where “XXX” is the current desktop being handled, e.g. “Handling Whole
Desktop”. You should then select the monitor you want to use from the desktop
and monitor list.
Figure: Allocating a touch-screen
to Monitor 1 After you have configured
the monitors you will need to calibrate each touch-screen before using them. Custom Desktop areaIn most cases it is the norm to associate a complete video display (monitor) to each pointer device. I.e. the pointer can move around the entire monitor. However, we are aware that some users may wish to restrict the movement of the cursor to a specific area on the monitor. In this case a custom desktop area can be used to restrict cursor movement to a given area on the monitor. The area is defined by specifying the top left (X min/Y min) of the area and its height (Y range) and width (X range). At the time of writing custom desktop area setting values are restricted to within the range 0 to 65535 so is only available on the primary monitor with native video support (and, under Windows, all monitors with custom video mode support). This limitation will be addressed in future releases of the driver. Native video mode supportTo define a custom desktop area, select ‘Custom’ as the desktop area and set the required logical desktop area settings, as shown in the following example:
In the above example, the touch will be restricted to the bottom right hand corner of the primary monitor, as shown below:
Custom video mode support – Windows onlyWith Windows custom video mode drivers, the entire virtual desktop, irrespective of the number of monitors, is mapped to a grid 65535 x 65535. In this mode, a custom desktop area can also be used to handle different display configurations than that catered for with the pre-defined set of desktop areas. In this mode the logical desktop settings values should be based on example values below:
E.g. In an eight monitor system, set in a 4 x 2 pattern. On all the monitors the height will be 7FFF (2 monitors deep) and the width will be 3fff (4 monitors wide). Top (Y min) on the top four will be 0 and 8000 on the bottom four monitors. Left (X min) will be 0,4000,8000,C000. Calibrating multiple devicesPrior to calibrating a device in a multi-device environment you need to associate the desktop on display on the monitor with the touch screen attached to the monitor and listed in the UPDD Console. If, for example, you had 3 USB controllers listed in the UPDD Console you would not immediately know the one to associate a given monitor/desktop and ‘trial and error’ would be needed to set the desktop with the controller until the correct match was found. To overcome this
issue in a multi-monitor environment we have introduced (in version 4.1.6 and above) a parameter -
/assignall - to the calibration
program to automatically assign a controller to a given desktop at the point
of calibration. When this parameter is
used the calibration program cycles through all desktops looking for a touch:
Once touched, the
calibration screen is displayed and the UPDD controller/desktop configuration
is automatically updated. This is
repeated for all touch screens that are touched. In a future
release there will be an auto-assign check box on the UPDD Console: Controller and desktop bindingIn a multi-touch device / monitor system a mechanism is required to associate the touch device with its UPDD setting (desktop area, calibration data etc) such that the association between the settings and the device is retained across reboots or if touch controllers are unplugged and replugged. In the case of serial ports UPDD settings are bound with a touch device on a given serial port and therefore is bound to the port. If the device is plugged to a different com port then normally manual intervention is required to change the settings to refer to the new com port (unless the serial device is auto-detected in which case it utilizes controller binding) With USB devices, plugged randomly in to any USB port, binding is straight-forward in single device systems as only one device needs to be bound with the current UPDD settings. However, in multiple touch device environments, the binding is more complex, especially where the USB controllers are identical in characteristics. Depending on the USB devices in use in a multiple touch device environment the driver will either perform direct controller binding or USB port binding, as discussed below: WindowsSince UPDD 4.1.6, build id 1099, with a USB device the software creates an internal bind key that is held as part of the UPDD settings for that device such that the key can be used to associate the device with its settings. Depending on the characteristics of the USB controller the controller will either be seen by UPDD as unique or identical UniqueFor USB devices utilizing a unique serial number or iproduct per usb controller the bind key is held in the format: P:n:vid:pid:iproduct:serialnumber – See Bind key components for more details e.g. controllerbindkey=U:0:1255:7:2:07D22494 This effectively means the UPDD settings are associated directly with the controller Irrespective of the number of touch controllers in use or the unplugging or replugging sequence, controllers with unique characteristics will always be correctly associated with their settings as the binding directly relates to the controller connected. IdenticalFor USB devices without serial numbers and using the same iproduct per usb controller the bind key is held in the format: P:n:vid:pid:iproduct:deviceinstance – See Bind key components for more details e.g. controllerbindkey=U:0:1072:1288:2:{4d36e96f-e325-11ce-bfc1-08002be10318}\0005 This effectively means the UPDD settings are associated indirectly with the controller connected via the port Where a single touch controller is used and irrespective of the unplugging or replugging sequence a single identical controller will always be correctly associated with its UPDD settings as being the only controller connected effectively makes it ‘unique’. For multiple touch controllers that are identical and of the same type it is important that bind keys are created for each port. This caters for the situation where the devices are randomly passed to the UPDD driver by the OS, such as at a reboot or where two devices are connected at the same time. If UPDD just associated the device in the order in which the device was passed from the OS to the driver the sequence of devices would change, as would calibration, such that touching a device would move the cursor on another device. Once plugged in and with the UPDD setting established the binding will be correct over a reboot, However, when new identical controllers are added (See 1 below) or multiple instances of same identical USB controllers are unplugged and replugged into different usb ports (see 2 below) may result in incorrect associations between the device and UPDD settings or a new device appearing in the UPDD device list Multiple USB device issues with identical devices:
Given the above issues we strongly
recommend that in multi-device environments, when using identical
controllers, to avoid randomly disconnecting and reconnecting devices in to
different USB ports. Bind key logicFor those interested, the bind key logic is as follows. When a USB controller is discovered the system creates the bind key and this is used to determine if settings already exist or if a new device has been plugged in. Since UPDD 4.1.6, build 1150, the binding look up code first uses a partial part of the key (P:n:vid:pid:iproduct) when scanning the current UPDD settings looking for the same partial key associated with a single, inactive (unplugged) device. If found then these settings are used. If it is not found, or not found with an inactive device, or there are more than one of the same identical device, then the full key used in the scanning and if found these settings are used. If neither key is found a new device is created in the UPDD device list. Bind key componentsThe bind key components are described below:
Example multi-device configurations· Multiple
monitors with the desktop spread over the monitors This configuration allows the desktop to be expanded over many monitors to offer more real estate on which to run the applications. All or some of the monitors may have a touch screen fitted. Each touch monitor will be configured to control its specific desktop area. The following example shows two touch screens, one USB and one Serial, configured on separate monitors supported by the native OS video drivers.
· Multiple
monitors with the same desktop shown on all the monitors This configuration, often referred to as Mirrored
Displays, allows the same desktop to be shown on more than one monitor. All
or some of the monitors may have a touch screen fitted. Mirrored displays can
either be a system setting when more than one video controller is used or can
be achieved with an external video splitter, which strictly speaking is not a
multi-monitor configuration as the system will normally have only one video
card. Each touch monitor will be configured to control the ‘whole’ desktop. · Single
touch screen monitor with additional pointer devices This example illustrates UPPD
supporting a touch screen monitor and an additional pointer device, such as an
electronic white board or digitizer. In this example both devices will be set
to control the ‘whole’ desktop. ContactFor further information or technical assistance please email the technical support team at technical@touch-base.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||