|
Revision 1.13 – 14th
May 2012 www.touch-base.com\documentation\General UPDD – Gesture and
Inking |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OverviewWith the advent of dual and multi touch pointer devices users can now use gestures to interact with the operating system and applications. The major desktop operating systems are all catering for gesture interaction and promoting the use of gestures within applications with well defined gesture application interfaces. UPDD can be configured to support single, dual and multi-touch devices. For each stylus in use the positional data is made available on the UPDD API as well as optionally passed into the OS and/or applications to cater for gesture utilization. The injection of single, dual and multi-touch data into operating systems and their applications is dictated by the interface methods implemented within the OS environment. These are the interface methods utilised by the UPDD driver:
The interpretation of the gesture is dependant on the OS and application. There are many articles on the web to describe gesture utilisation by the OS desktop (windows manager) and key standard applications. However, a very useful gesture reference guide can be found here. ImplementationIt is our intention to build full gesture support into the driver and/or supporting utilities but in some cases we currently utilise external UPDD API based apps to handle gesture functionality. The current implementation of gesture support for various operating system is as follows: Windows desktopUnder Windows Vista and Windows 7 the driver has a user setting in the UPDD Console, called Extended touch. If enabled all touches are fed to the OS via the virtual HID device to invoke the extended touch functionality (gestures etc) built into these operating systems. If disabled all single touches and the touch data from the 1st stylus (of a multi touch device) are passed to the OS via the mouse port interface (mouse emulation). Windows CEUPDD CE 4.1.10 handles touch via the CE standard GWES interface so CE gesture support can be utilised by any touch device using UPDD CE driver Mac OS XFor this OS we use a standalone application. As of 7th July 2011 an updated version supports both Snow Leopard and Lion gestures and inking and is available here. When using this version the start process automatically chooses the correct version to run. Important
Note: Gesture functionality will only work on a production version of the
driver. If you run the software on an evaluation version of the driver the
following message will be displayed: "The UPDD Gestures software
requires a licenced version of the UPDD driver. The driver currently
installed is an evaluation version. To purchase the full version of the
driver, please visit http://touch-base.com/"
InstallationTo utilise gestures and inking in the Mac environment you need to simply run the UPDDGesturemacosx.app application on a system with a production version of UPDD 4.1.10 or above installed. This software no longer works with an evaluation version. The easiest way to run the application is to expand the compressed file to create the container folder (this may happen automatically as part of the download depending on browser in use) and use the two control applications which start and stop the application located in sub folder Application, as shown: The application interacts with the core UPDD driver or TUIO Server to receive all touches and calculate the gesture being performed and inject this into the OS as a touch event and also pass single touch events to the tablet interface. Use the Start and Stop control programs as required as the application does not utilise a dock item or menu bar. The schematic for the gesture interface is as follows: Utilising the gestures and inking functions are described below. Gesture specificsGestures are performed on the touch screen exactly as they are on a track-pad. To utilize all available gestures you will need to use a multi-touch touch screen that supports up to 5 touches otherwise you will be restricted to the gestures that relate to the number of stylus supported on the touch screen.
To view the gestures calculated by the gesture engine invoke the gesture engine via the ‘Run UPDD gestures with output’ control program. This will load a terminal windows and list the gesture being generated, as per the example below: Invoking Gesture feature at startup Until we merge the gesture support into the driver it will remain an external function that need to manually or automatically invoked at start up. The easiest way to get UPDDGestures to start at boot is the following: 1. Open System Preferences (in the Apple menu) 2. In the System Preferences window, select "Users & Groups" 3. Select the "Login Items" section 4. Add "Open me to start UPDD Gestures" to the login items. (You can drag its icon onto the list, or click the "+" button and add it using a file browser dialog.) Gesture considerations: The Two finger Tap invokes a right click which is generated by default under the left stylus. This behaviour can be changed to generate the right click under the right most stylus. A time threshold is also configurable to specify the time in which a two finger tap can occur. The Press and Tap invokes a right click which is generated by default under the first stylus. This behaviour can be changed to generate the right click under the second stylus. In OS X Snow Leopard, four finger swipes typically invoke one of the "Expose" features, or invoke the application switcher. Unfortunately there's no supported way to programmatically activate these features, so UPDDGesturesmacosx posts keystrokes that trigger them. Since the hot key for the "Expose" feature can be configured, UPDDGesturesmacosx reads in the Apple hot key preferences to determine which keystroke is the correct one to press. We believe this works quite successfully and in our test these features get activated consistently. We are keen to find out if it works consistently for our users – any feedback much appreciated! Single Touch gesturesMac OS gestures utilise 2 or more touches. However, in some circumstances, user may which to map single touches to simulate flicks and swipes, especially when sing singe touch touch screens. The setting ‘singleTouchMode = on’ in the setting file invokes this mode of operation. In this mode a "press" gesture can still be used for a left mouse button click and drag, but this function can be disabled by setting leftClickThreshold" to 0. iOS simulatorThe iOS simulator allows applications built for iOS (such as the iPhone, iPad) to be developed and tested on an iMac system. To test gestures in this environment you normally hold down the alt/apple key on the keyboard and use a mouse. For users wishing to test dual touch gestures with a dual/multi touch touch screen we have introduced an option in the gesture engine to run in ‘iOS simulation mode’. The setting ‘iosSimulatorMode = on’ in the setting file invokes this mode of operation. When running in iOS simulator mode please note the following: 1. Important
note: There's a setting in Mac OS X that allows applications to use
"accessibility"features for interacting with windows and other
elements on the screen and it must be enabled for the gestures
to work in an iOS Simulator mode. Here's how you turn it on: 2. When starting a two finger gesture, it was necessary to send an event releasing the first finger before sending an event to press both fingers down. This didn't have any noticeable effect in our tests with iOS apps. 3. At the start of a two finger gesture there will be a little visual "blip". This is because the mouse is being repositioned to so that the touches in the iOS Simulator match the touches on the touch-screen. 4. It is difficult to send the exact movement of both fingers into the simulator, so it's possible for the touches in the simulator to diverge slightly from the touches on the touch screen. However, performing individual pinch, rotate, and two finger drag gestures works as expected and this didn't have a noticeable effect in the tests we performed. Application considerationsSome multi-touch applications use a cross platform development tool called QT and use the QTouchEvents interface to receive system-level touches. Unfortunately the standard way Qt determines the screen location of the touches in Mac OS X is incompatible with UPDDGestures: Qt assumes that the touches are coming from a trackpad since all system touches are assumed to originate from a trackpad. In that case, Qt has the touch start at the mouse cursor location (which is not what is needed in a touch screen environment), and the touch's movement speed is calculated using the physical dimensions of the trackpad. However, it won't get any dimensions since no trackpad is present. Instead, it calculates that the trackpad has a width and height of 0, and consequently the touches won't move anywhere. For touch-enabled Qt applications to work with UPDDGestures they must use the normalized position of the touches, not the screen position. Sadly, we suspect most Qt apps use a touch's screen position. One such popular multi-touch enabled application is Snowflake from NUITEQ. The developers of Snowflake are working on changing the interface to utilize the normalized position but until this change is made you will need to use our UPDD TUIO bridge to utilize Snowflake’s TUIO interface. This has been tested and works well but it does mean that the gesture software cannot be used at the same time as the TUIO interface as it causes a phantom touch in Snowflake. Inking specificsInking allows drawings and hand writing on tablet type devices to interact with applications. When a real or virtual tablet is seen by the OS the Inking function is enabled. With the latest version of the gesture application, available since 14/9/11, the inking function is also enabled and touch data is passed to the tablet interface. Real tablets pass more data than the X and Y co-ordinates, such as stylus angle, but when touch is being used this type of data has a fixed value. After installing the software the Inking option is shown in the System preferences: Launch the Ink settings panel to enable Hand recognition Once enabled the Ink floating windows will be displayed
In the following example the touch screen has been used to write “Touch” on to the Inking paper and has been translated ready to be sent to the waiting application: With Inking enabled, writing into any ink aware application will invoke an inking area in which to write, as in this example : In addition to hand writing recognition and drawing, gestures can be used to perform various app functions, as listed below: LimitationsGiven that the UPDD inking function is implemented at a software level and does not create a virtual tablet device there may be some Inking applications that do not enable their inking capabilities due to the lack of a real tablet device on the system. Further, given that there is no dedicated ‘tablet stylus’ in use the "hold lower button to ink" and "hold upper button to ink" settings have no meaning when inking with UPDD. Gesture and
inking settings
A number of settings are held in a settings file, gesture.ini. Edit this file as appropriate, the usage of which is as follows:
Really important point: When using gestures in Mac OS X the gestures are processed by the application window under the mouse cursor. Dual and multi-touch gestures can be performed on any part of the touch screen but will be processed by the target area. So, for example, if you have a Preview window open and the cursor is in the viewing area then the area will respond to gestures. If the cursor is on the Preview dialog but not in the view area then gestures will be ignored. Driver considerations The gesture application turns off the UPDD mouse interface and receives
all touch data. There are a number of UPDD utilities that re-enable the mouse
interface when they terminate, such as calibration and test. Until we change
these utilities to retain the current mouse port state they should only be
used with the gesture application disabled. A users reported that ‘in Lion, moving the "mouse arrow" to the top of the screen may not reveal the Mac OS window bar necessary to get out of Full Screen mode necessitating a need of a proper mouse‘. This may be because the cursor, being under the stylus, is stopping short of the top of the screen. You can force the cursor to the top by using Edge Acceleration settings in the UPDD Console, Properties dialog described here. Look for the Advanced settings. LinuxTo follow. Future gesture developmentThe standalone application utilised in Mac OS X calculates individual gestures from the incoming stylus data streams and as such can be considered a ‘gesture engine’. It is our intention in a future release of UPDD build this gesture engine in the driver such that in all cases this gesture information is made available on UPDD’s API so that there is a common interface across all platforms supported by the driver (all individual stylus information is also available). ContactFor further information or technical assistance please email the technical support team at technical@touch-base.com. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||