Touch processing


For touch to work with our driver the driver must get access to the touch device.

In MacOS our driver installs a 'codeless' kernel extension that is used to specify the USB device(s) our driver is configured to handle. For security reasons since MacOS 10.13 the OS will automatically 'Block' the installation of a kernel extension such that it will only be installed once manually allowed to by the user in the Security & Privacy dialog, General tab.  This is covered in the installation guide.

Thereafter, once the driver has access to the device and hence will be handling the touch data, there are a number of different processes that are responsible for processing the touch that will result at any given point in either mouse emulation, gesture processing or application control of the touch process via UPDD API or TUIO interface.

Some of these processes, that manipulate the cursor and/or generate 'mouse' functions (pen down, movement, pen up), will need to have been given manual permission, via the Securities and Privacy dialog, before they can work. At other times, applications may disable some of the touch processes, such as our own test program.

The processes available under Mac are:

Process Component  Permission Touch function
Driver *  UPDD  Yes/No ** Handles touch on login screen (in secure desktop)
Daemon *  UPDD Daemon  Yes/No ** Handles touch after login (in user space) if touch function is enabled. Disabled by UPDD Commander
Gestures
Touch events
 UPDD Commander  Yes Handles touch events (tap, double tap, press, drag) and gestures - at a system and individual application level
UPDD API  UPDD  N/A Application interface using the driver's API
TUIO interface  UPDD Commander  Yes Application interface using the Commander's TUIO server

* Posts single touch data into the OS via the Simpletouch_cg system interface.
** Permission only needed if touch function required.

So, for example, you could have four different applications on the screen, all reacting to touch, but actually the touch is being handled in a number of different ways:

Application 1 - Standard Mac application using default set of gesture actions in UPDD Commander
Application 2 - Standard Mac application using a tailored set of gesture actions in UPDD Commander
Application 3 - UPDD Client application receiving touch data directly from the driver
Application 4 - TUIO Client application receiving touch data via UPDD Commander, TUIO server

This can be confusing, especially when touch appears to be working for some and not for others.

Further, you can also use UPDD Toolbars to mask off certain area of the touch screen such that they do not react to touch!

UPDD Test

When UPDD test is activated, UPDD Commander touch control is suspended.

By default UPDD Test runs as a UPDD Client application so 'inking' within the drawing area is based on touch data received directly from the driver. UPDD Test menu offers an option to act as a TUIO Client so you can test the TUIO interface.

Because UPDD Commander is suspended, UPDD Daemon touch interface is enabled (and will work as long as it has been given permission) and therefore single touch mouse emulation is also active. Therefore drawing in UPDD Test will also show 'inking' due to mouse emulation.

Mouse emulation is required to control the desktop whilst test is active. In the UPDD Test menu you can disable 'mouse emulation' in which case touch will stop working outside of the UPDD Drawing area so you will need a real mouse or trackpad to control the system, close UPDD Test etc. Once test is closed, touch will start working again because UPDD Commander touch control will be reinstated.

We often receive reports that:

  • touch works when UPDD test is activated but stops once its terminated - this indicates UPDD Commander does not have permission.
  • With UPDD Test activated I can only draw in the drawing area, touch stops working on the desktop - this indicates UPDD daemon does not have permission.
  • touch does not work on the login screen - this indicates that UPDD does not have permission.

Permissions

Needed in more recent releases of MacOS, these are set​ in the Security and Privacy dialog, Privacy tab.

For security and safety reasons, this cannot be set by the UPDD installer, they have to be manually set by the user.