Bundles

UPDD currently supports over 250 controllers and variants. When shipping a driver install package a subset of these controllers will be included, along with default settings. This package is known as a bundle.

Multiple Bundles

UPDD now provides limited support for multiple bundles. This allows support for multiple vendors’ hardware to be supported simultaneously without needing a cutomised bundle containing both device sets. The reason for this is that UPDD is increasingly being shipped as the default pointer device driver on many systems, and a user of such a system might wish to install another pointer device, such as a separate touch monitor, a pen tablet or an electronic whiteboard without disturbing the function of the pre-installed software. A user might also wish to install two or more UPDD driven devices from different manufacturers.

This functionality is currently limited to ensuring that devices from the secondary bundle can be installed and function without disturbing the function of the primary bundles devices. The user interface functions (DCU, system tray etc) continue to work with the primary bundle only. Future releases will cater for multiple bundles.

API considerations

A user of the UPDD API has to be aware of the following bundle related issues.

 

A bundle is represented internally by a GUID. This is entered in the registry as shown below

 

A program which uses the API must indicate to the API functions which bundle to use as shown in the following examples:

 

1) Automatic selection

 

TBApiInit(TBApiGetBundle());

For this method to work the file tbbundle.h (shipped with the UPDD driver release not the SDK as, no such file exists) must be included in the header file search path. This returns a Bundle Handle for the bundle defined in the tbbundle.h file.

 

2) Manual selection

 

#define INTERNALAPI

TBApiInit(TBApiInternalGetBundle("{A438AD6D-BB51-4FF3-9B8E-4BE750B5EC4B}"));

This is the only method currently available to programs using the DLL interface (e.g. Visual Basic). The bundle GUID is supplied in the email used to send the UPDD package or can be accessed in the registry, as shown above, once the driver has been installed. This returns a Bundle Handle for the defined {guid}.

 

3) Default selection

 

#define INTERNALAPI

TBApiInit(1);

This will always work with the first installed bundle. The use of this method is not recommended if applications have been written for a specific bundle as, in a multiple bundle installation, the required bundle may not be the first installed. This method should only be used in a single bundle environment.