Main Page | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

FWHID_MultiTouchDevice.h File Reference

FW Hand Tracking SDK -- Main header for SDK. More...

#include "FWHID_PlatformDefs.h"
#include "FWHID_HandMotion.h"
#include "FWHID_Contact.h"
#include "FWHID_Path.h"

Data Structures

struct  FWSurfaceRectangle
 Structure containing the dimensions and the left and bottom edges for the coordinates used on a MultiTouch Surface. More...

Defines

#define COMPILE_HANDFINGER_STATS   0

Typedefs

typedef enum FWProcessorVersion FWProcessorVersion
 Enumeration Type used to determine which processor version of the MultiTouch Device.
typedef enum FWSurfaceVersion FWSurfaceVersion
 Enumeration Type used to determine what type of MultiTouch device is attached.
typedef enum FWKeymatrixVersion FWKeymatrixVersion
 Enumeration Type used to determine what the key layout is on a MultiTouch device.
typedef enum FWStreamEnablesMask FWStreamEnablesMask
 Enumeration Type used for enabling/disabling the data streams on a MultiTouch device.
typedef enum FWProcessingEnablesMask FWProcessingEnablesMask
 Enumeration Type used for enabling/disabling ?????????? a MultiTouch device.
typedef * FWSurfaceRectanglePtr

Enumerations

enum  FWProcessorVersion {
  kFW_iGesture_Processor = 4, kFW_touchStream_Processor = 5, kFW_touchStreamB_Processor = 6, kFW_digitaliGesturePad_Processor = 8,
  kFW_digitalTouchStream_Processor = 9, kFW_WinPad_Processor = 16
}
 Enumeration Type used to determine which processor version of the MultiTouch Device. More...
enum  FWSurfaceVersion {
  kFW_DFU_Surface = 0, kFW_iGesturePad_Surface = 7, kFW_iGestureNumPad_Surface = 8, kFW_iGestureRetro_Surface = 9,
  kFW_iGestureMini_Surface = 10, kFW_TouchStreamLP_Surface = 11, kFW_TouchStreamUltrathin_Surface = 12, kFW_TouchStreamMacNTouch_Surface = 13,
  kFW_TouchStreamTablet_Surface = 17
}
 Enumeration Type used to determine what type of MultiTouch device is attached. More...
enum  FWKeymatrixVersion {
  kFW_Default_Keymatrix = 0, kFW_SlantedST_Keymatrix = 32, kFW_StraightST_Keymatrix = 33, kFW_MirroredST_Keymatrix = 34,
  kFW_MacNTouch_Keymatrix = 41
}
 Enumeration Type used to determine what the key layout is on a MultiTouch device. More...
enum  FWStreamEnablesMask {
  kFW_NoStreams = 0, kFW_KeyboardStream = 0x1, kFW_MouseStream = 0x2, kFW_MultimediaStream = 0x4,
  kFW_HandMotionStream = 0x8, kFW_DefaultStreams = 0xF, kFW_ContactPathStream = 0x10, kFW_ImageStream = 0x20,
  kFW_ReservedStream = 0x40, kFW_GestureReportStream = 0x80
}
 Enumeration Type used for enabling/disabling the data streams on a MultiTouch device. More...
enum  FWProcessingEnablesMask { kFW_FlathandResetProcessing = 0x1, kFW_GestureProcessing = 0x2, kFW_DefaultProcessing = 0x3 }
 Enumeration Type used for enabling/disabling ?????????? a MultiTouch device. More...

Functions

void FWHID_setDeviceDisposalCallback (FWHIDCallbackFunction fwcallback)
 Set the Device Disposal Callback.
FWHIDCallbackFunction FWHID_getDeviceDisposalCallback (void)
 Returns the current Device Disposla Callback Function.
void FWHID_setDeviceCreationCallback (FWHIDCallbackFunction fwcallback)
 Sets the Device Creation Callback.
FWHIDCallbackFunction FWHID_getDeviceCreationCallback (void)
 Returns the current Device Creation Callback Function.
void FWHID_registerMultiTouchDevices (void *targetWindow)
 The startup function required to initialize the FingerWorks Hand Tracking SDK lbrary.
void FWHID_releaseMultiTouchDevices (void)
 Finalizes the SDK library.
bool FWHID_enableStreams (FWMultiTouchDevicePtr fwdevice, FWBYTE stream_mask)
 For enabling various HID data streams from each device.
bool FWHID_disableStreams (FWMultiTouchDevicePtr fwdevice, FWBYTE stream_mask)
 For disabling various HID data streams from each device.
bool FWHID_getStreamEnables (FWMultiTouchDevicePtr fwdevice, FWBYTE *stream_mask)
 Retrieves the state of the various HID data streams from a device.
bool FWHID_setPathFramesToSkip (FWMultiTouchDevicePtr fwdevice, int frames2skip)
bool FWHID_setFlathandReset (FWMultiTouchDevicePtr fwdevice, bool enable_flathand_reset)
 For enabling/disabling flathand reset gesture.
void FWHID_printUSBDeviceInfo (FWMultiTouchDevicePtr fwdevice, int nesting_level)
void FWHID_printImagingSurfaceInfo (FWMultiTouchDevicePtr fwdevice, int nesting_level)
char * FWHID_getProductName (FWMultiTouchDevicePtr fwdevice)
 Gets the product name of a MultiTouch Device.
int FWHID_getSurfaceVersion (FWMultiTouchDevicePtr fwdevice)
 Gets the surface version of a MultiTouch Device.
int FWHID_getProcessorVersion (FWMultiTouchDevicePtr fwdevice)
 Gets the processor version of a MultiTouch Device.
int FWHID_getKeymatrixVersion (FWMultiTouchDevicePtr fwdevice)
 Gets the keymatrix version of a MultiTouch Device.
FWSurfaceRectangle FWHID_getSurfaceDimensions (FWMultiTouchDevicePtr fwdevice)
 Gets the Surface dimensions of a MultiTouch Device.


Detailed Description

FW Hand Tracking SDK -- Main header for SDK.

Author:
Created by Wayne Westerman on Wed Jun 25 2003.

Last Modified by James Orr on Mon Aug 14 2004.

Version:
1.0
Copyright (c) 2003 FingerWorks, Inc. All rights reserved.

IMPORTANT: This FingerWorks software is supplied to you by FingerWorks, Inc. ("FingerWorks") in consideration of your agreement to the following terms, and your use, installation, or modification of this FingerWorks software constitutes acceptance of these terms. If you do not agree with these terms, please do not use, install or modify this FingerWorks software.

In consideration of your agreement to abide by the following terms, and subject to these terms, FingerWorks grants you a personal, non-exclusive license, under FingerWorks copyrights in this original FingerWorks software (the "FingerWorks Software"), to use, reproduce, and modify the FingerWorks Software for personal, academic, research, or artistic purposes. You may NOT distribute this FingerWorks Software, with or without modifications, in either source or binary form.

Neither the name, trademarks, service marks or logos of FingerWorks, Inc. may be used to endorse or promote products derived from the FingerWorks Software without specific prior written permission from FingerWorks. Except as expressly stated in this notice, no other rights or licenses, express or implied, are granted by FingerWorks herein, including but not limited to any patent rights that may be infringed by your derivative works or by other works in which the FingerWorks Software may be incorporated.

Disclaimer: The FingerWorks Software is provided by FingerWorks on an "AS IS" basis. FINGERWORKS MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE FINGERWORKS SOFTWARE OR ITS USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.

IN NO EVENT SHALL FINGERWORKS BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE FINGERWORKS SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF FINGERWORKS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Define Documentation

#define COMPILE_HANDFINGER_STATS   0
 


Typedef Documentation

typedef enum FWKeymatrixVersion FWKeymatrixVersion
 

Enumeration Type used to determine what the key layout is on a MultiTouch device.

See also:
FWHID_getKeymatrixVersion()

typedef enum FWProcessingEnablesMask FWProcessingEnablesMask
 

Enumeration Type used for enabling/disabling ?????????? a MultiTouch device.

See also:
FWHID_setProcessingEnables(), FWHID_getProcessingEnables()

typedef enum FWProcessorVersion FWProcessorVersion
 

Enumeration Type used to determine which processor version of the MultiTouch Device.

Note:
This list is not exhaustive and only includes processor versions that are commercially available .
See also:
FWHID_getProcessorVersion()

typedef enum FWStreamEnablesMask FWStreamEnablesMask
 

Enumeration Type used for enabling/disabling the data streams on a MultiTouch device.

See also:
FWHID_setStreamEnables(), FWHID_getStreamEnables()

typedef * FWSurfaceRectanglePtr
 

typedef enum FWSurfaceVersion FWSurfaceVersion
 

Enumeration Type used to determine what type of MultiTouch device is attached.

See also:
FWHID_getSurfaceVersion()


Enumeration Type Documentation

enum FWKeymatrixVersion
 

Enumeration Type used to determine what the key layout is on a MultiTouch device.

See also:
FWHID_getKeymatrixVersion()
Enumeration values:
kFW_Default_Keymatrix  Default Key layout
kFW_SlantedST_Keymatrix  Old Key layout for ST/LP's. Only available for couple of months. Keys on left half have a svere slant
kFW_StraightST_Keymatrix  Old Key layout for ST/LP's. Stopped being available in 2003.
kFW_MirroredST_Keymatrix  Current Key layout for LP's.
kFW_MacNTouch_Keymatrix  Current Key layout for MacNTouch's.

enum FWProcessingEnablesMask
 

Enumeration Type used for enabling/disabling ?????????? a MultiTouch device.

See also:
FWHID_setProcessingEnables(), FWHID_getProcessingEnables()
Enumeration values:
kFW_FlathandResetProcessing  Re-calibrates imaging when whole surface covered by hand
kFW_GestureProcessing  Re-calibrates imaging when whole surface covered by hand
kFW_DefaultProcessing  equiv to kFW_FlathandResetProcessing | kFW_GestureProcessing

enum FWProcessorVersion
 

Enumeration Type used to determine which processor version of the MultiTouch Device.

Note:
This list is not exhaustive and only includes processor versions that are commercially available .
See also:
FWHID_getProcessorVersion()
Enumeration values:
kFW_iGesture_Processor 
kFW_touchStream_Processor 
kFW_touchStreamB_Processor 
kFW_digitaliGesturePad_Processor 
kFW_digitalTouchStream_Processor 
kFW_WinPad_Processor 

enum FWStreamEnablesMask
 

Enumeration Type used for enabling/disabling the data streams on a MultiTouch device.

See also:
FWHID_setStreamEnables(), FWHID_getStreamEnables()
Enumeration values:
kFW_NoStreams  Disables all streams
kFW_KeyboardStream  Keyboard Stream
kFW_MouseStream  Mouse Stream
kFW_MultimediaStream  Multimedia Stream
kFW_HandMotionStream  Hand Motion Stream (used by Xwinder)
kFW_DefaultStreams  Equal to kFW_KeyboardStream | kFW_MouseStream | kFW_MultimediaStream | kFW_MotionStream
kFW_ContactPathStream  ContactPath Data Stream
kFW_ImageStream  Surface Image Data Stream
kFW_ReservedStream  Reserved Data Stream
kFW_GestureReportStream  Extra info about every gesture activation (sent over Hand Motion channel for gesture game)

enum FWSurfaceVersion
 

Enumeration Type used to determine what type of MultiTouch device is attached.

See also:
FWHID_getSurfaceVersion()
Enumeration values:
kFW_DFU_Surface  The Device Firmware Upgrade
kFW_iGesturePad_Surface  iGesture Pad includes Winpad use surface version to distinguish
kFW_iGestureNumPad_Surface  iGesture NumPad
kFW_iGestureRetro_Surface  iGesture Retro Keyboard
kFW_iGestureMini_Surface  iGesture Mini
kFW_TouchStreamLP_Surface  TouchStream LP
kFW_TouchStreamUltrathin_Surface  TouchStream Ultrathin - Not commercially available at this time
kFW_TouchStreamMacNTouch_Surface  TouchStream MacNTouch
kFW_TouchStreamTablet_Surface  Not commercially available


Function Documentation

bool FWHID_disableStreams FWMultiTouchDevicePtr  fwdevice,
FWBYTE  stream_mask
 

For disabling various HID data streams from each device.

This function uses getFeature/setFeature requests to ensure specified report streams are disabled on the device.

Parameters:
fwdevice The device of interest
stream_mask A byte containing the mask defining which streams to disable. Use the enumerated type FWStreamEnablesMask. Streams not specified in stream_mask are not affected.
Returns:
Whether the underlying HID Get/Set Feature I/O call were successful. NOTE: Check for failure on unsupported streams or operating systems.
Note:
Must be called inside of Device Creation Callback or the Device Disposal Callback .
See also:
FWHID_enableStreams(), FWHID_getStreamEnables()

bool FWHID_enableStreams FWMultiTouchDevicePtr  fwdevice,
FWBYTE  stream_mask
 

For enabling various HID data streams from each device.

This function uses getFeature/setFeature requests to ensure specified report streams are enabled on the device. Already-enabled streams (such as the default key/mouse/hand-motion streams) are not affected.

Parameters:
fwdevice The device of interest
stream_mask A byte containing the mask defining which additional streams to enable. Use the enumerated type FWStreamEnablesMask.
Returns:
Whether the underlying HID Get/Set Feature I/O calls were successful. NOTE: Check for failure on unsupported streams or operating systems.
Note:
Must be called inside of Device Creation Callback or the Device Disposal Callback .
See also:
FWHID_disableStreams(), FWHID_getStreamEnables()

FWHIDCallbackFunction FWHID_getDeviceCreationCallback void   ) 
 

Returns the current Device Creation Callback Function.

Returns:
A function pointer to the callback function of type FWHIDCallbackFunction
See also:
FWHID_setDeviceCreationCallback()

FWHIDCallbackFunction FWHID_getDeviceDisposalCallback void   ) 
 

Returns the current Device Disposla Callback Function.

Returns:
A function pointer to the callback function of type FWHIDCallbackFunction
See also:
FWHID_setDeviceDisposalCallback()

int FWHID_getKeymatrixVersion FWMultiTouchDevicePtr  fwdevice  ) 
 

Gets the keymatrix version of a MultiTouch Device.

This value determines what key position layout (not key layout) is printed on the surface.

Note:
Only commercially available keymatrix values are documented by this SDK.
Parameters:
fwdevice The device of interest.
Returns:
The enumerated type FWKeymatrixVersion

int FWHID_getProcessorVersion FWMultiTouchDevicePtr  fwdevice  ) 
 

Gets the processor version of a MultiTouch Device.

Parameters:
fwdevice The device of interest.
Returns:
The enumerated type FWProcessorVersion

char* FWHID_getProductName FWMultiTouchDevicePtr  fwdevice  ) 
 

Gets the product name of a MultiTouch Device.

Parameters:
fwdevice The device of interest.
Returns:
A pointer to a null terminated string.

bool FWHID_getStreamEnables FWMultiTouchDevicePtr  fwdevice,
FWBYTE stream_mask
 

Retrieves the state of the various HID data streams from a device.

Parameters:
fwdevice The device of interest
*stream_mask A pointer to an allocated byte which will contain the mask defining which streams are enabled.
Returns:
If the mask was retrieved successfully returns true, else it returns false and the stream_mask will equal kFW_DefaultStreams.
See also:
FWHID_enableStreams()

FWHID_disableStreams()

FWSurfaceRectangle FWHID_getSurfaceDimensions FWMultiTouchDevicePtr  fwdevice  ) 
 

Gets the Surface dimensions of a MultiTouch Device.

Parameters:
fwdevice The device of interest.
Returns:
The enumerated type FWSurfaceRectangle which contains the horizontal coordinate of the left edge, the vertical coordinate of the bottom edge and the width and height in centimeters
See also:
FWSurfaceRectangle

int FWHID_getSurfaceVersion FWMultiTouchDevicePtr  fwdevice  ) 
 

Gets the surface version of a MultiTouch Device.

This value can used to determine which product the device is without using string compares.

Parameters:
fwdevice The device of interest.
Returns:
The enumerated type FWSurfaceVersion

void FWHID_printImagingSurfaceInfo FWMultiTouchDevicePtr  fwdevice,
int  nesting_level
 

void FWHID_printUSBDeviceInfo FWMultiTouchDevicePtr  fwdevice,
int  nesting_level
 

void FWHID_registerMultiTouchDevices void *  targetWindow  ) 
 

The startup function required to initialize the FingerWorks Hand Tracking SDK lbrary.

The callbacks for device creation/disposal MUST be set BEFORE the call to FWHID_registerMultiTouchDevices!

Parameters:
targetWindow Handle to the main Application Window (HWND).
See also:
FWHID_setDeviceCreationCallback(), FWHID_setDeviceDisposalCallback(), FWHID_releaseMultiTouchDevices()

void FWHID_releaseMultiTouchDevices void   ) 
 

Finalizes the SDK library.

Should be called when the apllication is exiting to clean up/close down the SDK lib.

See also:
FWHID_registerMultiTouchDevices()

void FWHID_setDeviceCreationCallback FWHIDCallbackFunction  fwcallback  ) 
 

Sets the Device Creation Callback.

The creation diposal callback is called anytime a device is added to the internal list of devices kept by the SDK library. This occurs when I a device is plugged in. It also occurs when a device is unplugged b/c the entire internal list is disposed and rebuilt causing the device disposal callback to be called as well as the creation callback when each device is rediscovered.

Parameters:
fwcallback a function pointer to a function to handle device creation events.
Note:
The creation callback must be set BEFORE FWHID_registerMultiTouchDevices() is called!
See also:
FWHID_getDeviceCreationCallback(), FWHID_setDeviceDisposalCallback(), FWHID_registerMultiTouchDevices()

void FWHID_setDeviceDisposalCallback FWHIDCallbackFunction  fwcallback  ) 
 

Set the Device Disposal Callback.

The device diposal callback is called anytime a device is removed from the internal list of devices kept by the SDK library. This occurs when I a device is unplugged. It also occurs when a new device is plugged b/c the entire internal list is disposed and rebuilt causing the device disposal callback to be called as well as the creation callback when each device is rediscovered.

Note:
The disposal callback must be set BEFORE FWHID_registerMultiTouchDevices() is called!
Parameters:
fwcallback a function pointer to a function to handle device disposal events.
See also:
FWHID_getDeviceDisposalCallback(), FWHID_setDeviceCreationCallback(), FWHID_registerMultiTouchDevices()

bool FWHID_setFlathandReset FWMultiTouchDevicePtr  fwdevice,
bool  enable_flathand_reset
 

For enabling/disabling flathand reset gesture.

This function uses getFeature/setFeature requests to specify whether flattening the hand on the surface should recalibrate device imaging (and reset the usb connection if repeated 5 times). This feature is normally enabled on device power-up.

See also:
FWHID_setFlathandReset()
Parameters:
fwdevice The device of interest
enable_flathand_reset A boolean that enables flathand reset gesture if true, disables if false.
Returns:
Whether the underlying HID Get/Set Feature I/O call were successful. NOTE: Check for failure on unsupported streams or operating systems.

bool FWHID_setPathFramesToSkip FWMultiTouchDevicePtr  fwdevice,
int  frames2skip
 

This function uses getFeature/setFeature requests to specify whether the device transmits contact/path reports every image frame. If no frames are skipped reports should arrive at 100-120Hz.

See also:
FWHID_setFlathandReset()
Parameters:
fwdevice The device of interest
frames2skip An int between 0 (transmit path data every frame) and 15 (only transmit every 16th frame).
Returns:
Whether the underlying HID Get/Set Feature I/O call were successful. NOTE: Check for failure on unsupported streams or operating systems.


Generated on Fri Dec 10 10:08:11 2004 for FingerWorks Hand Tracking SDK by doxygen 1.3.8