Avatar of tjmadden
tjmadden
Ā asked on

Trying to explicitly link to C++ DLL in Delphi

I have tried all the solutions available on this site and have not found anything that works. Ā I have little experience with C++ and have not been able to do anyting woth the format of the attached header file. Ā HeadConvert does not work on this one (have used it sucessfully many times before. Ā If someone can get me started on the right track I would appreciate it. Ā NOTE: I need to explicitly link to the DLL
#ifndef _AW_LS_H_
#define _AW_LS_H_
 
 
#include "awlib\aw_types.h"
 
 
#if defined(_WIN32)
# include <windows.h>
# ifndef AW_DECLARE
#   if !defined(AW_LS_STATIC_LIBRARY)
#     define AW_DECLARE(rtn) __declspec(dllimport) rtn WINAPI
#   else 
#     define AW_DECLARE(rtn) rtn
#   endif 
# endif 
#else /* !_WIN32 */
# define AW_DECLARE(rtn) rtn
#endif /* !_WIN32 */
 
#ifdef __cplusplus
extern "C" {
#endif
 
typedef struct aw_ls_t aw_ls_t;
 
 
/* Read image data from the filesystem */
#define AW_LS_FILESYSTEM "FILESYSTEM"
 
/* Identix 4x4 */
#define AW_LS_IDENTIX_4X4 "IDENTIX_4X4"
 
/* Identix 4100(Sentinel) */
#define AW_LS_IDENTIX_4100 "IDENTIX_4100"
 
/* CrossMatch Guardian */
#define AW_LS_CROSSMATCH_GUARDIAN "CROSSMATCH_GUARDIAN"
 
/* CrossMatch Verifier 300 */
#define AW_LS_CROSSMATCH_V300 "CROSSMATCH_V300"
 
/* Identification Internaltional Inc. DigID */
#define AW_LS_I3_DIGID "I3_DIGID"
 
/* Green Bit DactyScan 84 */
#define AW_LS_GB_DACTY84 "GB_DACTY84"
 
/* Precise Biometrics 250MC */
#define AW_LS_PB_250MC "PB_250MC"
 
/* Dermalog ZF1 */
#define AW_LS_DML_ZF1 "DML_ZF1"
 
/* Cogent CS500I */
#define AW_LS_COG_CS500I "COG_CS500I"
 
/* Capture session timeout value */
#define AW_LS_SAC_SESSION_TIMEOUT_VALUE "awls_fc/session/param[@name='timeout']/@value"
 
/* Enable use of the capture session time out */
#define AW_LS_SAC_SESSION_TIMEOUT_ENABLED "awls_fc/session/param[@name='timeout']/@enabled"
 
/* Capture on session time out */
#define AW_LS_SAC_SESSION_CAPTUREONTIMEOUT "awls_fc/session/param[@name='captureOnTimeout']/@value"
 
/* Number of consecutive passing frames required for capture */
#define AW_LS_SAC_SESSION_NUMBEROFCONSECUTIVEFRAMES_VALUE "awls_fc/session/param[@name='number_consecutive_passing_frames']/@value"
 
/* Enable use of consecutive passing frames */
#define AW_LS_SAC_SESSION_NUMBEROFCONSECUTIVEFRAMES_ENABLED "awls_fc/session/param[@name='number_consecutive_passing_frames']/@enabled"
 
/* Right Hand: Use handedness detection */
#define AW_LS_SAC_HAND_RIGHT_ENFORCEHANDEDNESS "awls_fc/hand[@name='right']/@enforceHandedness"
 
/* Right Hand: Minimum confidence for handedness detection */
#define AW_LS_SAC_HAND_RIGHT_MINHANDEDNESSCONFIDENCE "awls_fc/hand[@name='right']/@minHandednessConfidence"
 
/* Right Hand: Known finger count */
#define AW_LS_SAC_HAND_RIGHT_KNOWNSLAPCOUNT_VALUE "awls_fc/hand[@name='right']/param[@name='knownSlapFingerCount']/@value"
 
/* Right Hand: Enable use of known finger count */
#define AW_LS_SAC_HAND_RIGHT_KNOWNSLAPCOUNT_ENABLED "awls_fc/hand[@name='right']/param[@name='knownSlapFingerCount']/@enabled"
 
/* Right Plain Thumb: isPresent */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_ISPRESENT_VALUE "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='isPresent']/@value"
 
/* Right Plain Thumb: Enable use of isPresent */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_ISPRESENT_ENABLED "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='isPresent']/@enabled"
 
/* Right Plain Thumb: canTouchEdges */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_CANTOUCHEDGES_VALUE "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='canTouchEdges']/@value"
 
/* Right Plain Thumb: Enable use of canTouchEdges */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_CANTOUCHEDGES_ENABLED "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='canTouchEdges']/@enabled"
 
/* Right Plain Thumb: minQuality */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_MINQUALITY_VALUE "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='minQuality']/@value"
 
/* Right Plain Thumb: Enable use of minQuality */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_MINQUALITY_ENABLED "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='minQuality']/@enabled"
 
/* Right Plain Thumb: minFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_MINFINGERWIDTH_VALUE "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='minFingerWidth']/@value"
 
/* Right Plain Thumb: Enable use of minFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_MINFINGERWIDTH_ENABLED "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='minFingerWidth']/@enabled"
 
/* Right Plain Thumb: maxFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_MAXFINGERWIDTH_VALUE "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@value"
 
/* Right Plain Thumb: Enable use of maxFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_MAXFINGERWIDTH_ENABLED "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@enabled"
 
/* Right Plain Thumb: minFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_MINFINGERHEIGHT_VALUE "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='minFingerHeight']/@value"
 
/* Right Plain Thumb: Enable use of minFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_MINFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='minFingerHeight']/@enabled"
 
/* Right Plain Thumb: maxFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_MAXFINGERHEIGHT_VALUE "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@value"
 
/* Right Plain Thumb: Enable use of maxFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_MAXFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@enabled"
 
/* Right Plain Thumb: maxAllowedMovementX */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_MAXALLOWEDMOVEMENTX_VALUE "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@value"
 
/* Right Plain Thumb: Enable use of maxAllowedMovementX */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_MAXALLOWEDMOVEMENTX_ENABLED "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@enabled"
 
/* Right Plain Thumb: maxAllowedMovementY */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_MAXALLOWEDMOVEMENTY_VALUE "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@value"
 
/* Right Plain Thumb: Enable use of maxAllowedMovementY */
#define AW_LS_SAC_HAND_RIGHT_FINGER_THUMB_PLAIN_MAXALLOWEDMOVEMENTY_ENABLED "/awls_fc/hand[@name='right']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@enabled"
 
/* Right Plain Index: isPresent */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_ISPRESENT_VALUE "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='isPresent']/@value"
 
/* Right Plain Index: Enable use of isPresent */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_ISPRESENT_ENABLED "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='isPresent']/@enabled"
 
/* Right Plain Index: canTouchEdges */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_CANTOUCHEDGES_VALUE "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='canTouchEdges']/@value"
 
/* Right Plain Index: Enable use of canTouchEdges */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_CANTOUCHEDGES_ENABLED "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='canTouchEdges']/@enabled"
 
/* Right Plain Index: minQuality */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_MINQUALITY_VALUE "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='minQuality']/@value"
 
/* Right Plain Index: Enable use of minQuality */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_MINQUALITY_ENABLED "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='minQuality']/@enabled"
 
/* Right Plain Index: minFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_MINFINGERWIDTH_VALUE "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='minFingerWidth']/@value"
 
/* Right Plain Index: Enable use of minFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_MINFINGERWIDTH_ENABLED "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='minFingerWidth']/@enabled"
 
/* Right Plain Index: maxFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_MAXFINGERWIDTH_VALUE "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@value"
 
/* Right Plain Index: Enable use of maxFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_MAXFINGERWIDTH_ENABLED "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@enabled"
 
/* Right Plain Index: minFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_MINFINGERHEIGHT_VALUE "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='minFingerHeight']/@value"
 
/* Right Plain Index: Enable use of minFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_MINFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='minFingerHeight']/@enabled"
 
/* Right Plain Index: maxFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_MAXFINGERHEIGHT_VALUE "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@value"
 
/* Right Plain Index: Enable use of maxFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_MAXFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@enabled"
 
/* Right Plain Index: maxAllowedMovementX */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_MAXALLOWEDMOVEMENTX_VALUE "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@value"
 
/* Right Plain Index: Enable use of maxAllowedMovementX */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_MAXALLOWEDMOVEMENTX_ENABLED "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@enabled"
 
/* Right Plain Index: maxAllowedMovementY */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_MAXALLOWEDMOVEMENTY_VALUE "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@value"
 
/* Right Plain Index: Enable use of maxAllowedMovementY */
#define AW_LS_SAC_HAND_RIGHT_FINGER_INDEX_PLAIN_MAXALLOWEDMOVEMENTY_ENABLED "/awls_fc/hand[@name='right']/finger[@name='index']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@enabled"
 
/* Right Plain Middle: isPresent */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_ISPRESENT_VALUE "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='isPresent']/@value"
 
/* Right Plain Middle: Enable use of isPresent */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_ISPRESENT_ENABLED "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='isPresent']/@enabled"
 
/* Right Plain Middle: canTouchEdges */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_CANTOUCHEDGES_VALUE "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='canTouchEdges']/@value"
 
/* Right Plain Middle: Enable use of canTouchEdges */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_CANTOUCHEDGES_ENABLED "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='canTouchEdges']/@enabled"
 
/* Right Plain Middle: minQuality */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_MINQUALITY_VALUE "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='minQuality']/@value"
 
/* Right Plain Middle: Enable use of minQuality */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_MINQUALITY_ENABLED "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='minQuality']/@enabled"
 
/* Right Plain Middle: minFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_MINFINGERWIDTH_VALUE "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='minFingerWidth']/@value"
 
/* Right Plain Middle: Enable use of minFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_MINFINGERWIDTH_ENABLED "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='minFingerWidth']/@enabled"
 
/* Right Plain Middle: maxFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_MAXFINGERWIDTH_VALUE "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@value"
 
/* Right Plain Middle: Enable use of maxFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_MAXFINGERWIDTH_ENABLED "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@enabled"
 
/* Right Plain Middle: minFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_MINFINGERHEIGHT_VALUE "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='minFingerHeight']/@value"
 
/* Right Plain Middle: Enable use of minFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_MINFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='minFingerHeight']/@enabled"
 
/* Right Plain Middle: maxFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_MAXFINGERHEIGHT_VALUE "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@value"
 
/* Right Plain Middle: Enable use of maxFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_MAXFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@enabled"
 
/* Right Plain Middle: maxAllowedMovementX */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_MAXALLOWEDMOVEMENTX_VALUE "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@value"
 
/* Right Plain Middle: Enable use of maxAllowedMovementX */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_MAXALLOWEDMOVEMENTX_ENABLED "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@enabled"
 
/* Right Plain Middle: maxAllowedMovementY */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_MAXALLOWEDMOVEMENTY_VALUE "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@value"
 
/* Right Plain Middle: Enable use of maxAllowedMovementY */
#define AW_LS_SAC_HAND_RIGHT_FINGER_MIDDLE_PLAIN_MAXALLOWEDMOVEMENTY_ENABLED "/awls_fc/hand[@name='right']/finger[@name='middle']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@enabled"
 
/* Right Plain Ring: isPresent */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_ISPRESENT_VALUE "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='isPresent']/@value"
 
/* Right Plain Ring: Enable use of isPresent */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_ISPRESENT_ENABLED "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='isPresent']/@enabled"
 
/* Right Plain Ring: canTouchEdges */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_CANTOUCHEDGES_VALUE "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='canTouchEdges']/@value"
 
/* Right Plain Ring: Enable use of canTouchEdges */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_CANTOUCHEDGES_ENABLED "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='canTouchEdges']/@enabled"
 
/* Right Plain Ring: minQuality */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_MINQUALITY_VALUE "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='minQuality']/@value"
 
/* Right Plain Ring: Enable use of minQuality */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_MINQUALITY_ENABLED "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='minQuality']/@enabled"
 
/* Right Plain Ring: minFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_MINFINGERWIDTH_VALUE "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='minFingerWidth']/@value"
 
/* Right Plain Ring: Enable use of minFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_MINFINGERWIDTH_ENABLED "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='minFingerWidth']/@enabled"
 
/* Right Plain Ring: maxFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_MAXFINGERWIDTH_VALUE "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@value"
 
/* Right Plain Ring: Enable use of maxFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_MAXFINGERWIDTH_ENABLED "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@enabled"
 
/* Right Plain Ring: minFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_MINFINGERHEIGHT_VALUE "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='minFingerHeight']/@value"
 
/* Right Plain Ring: Enable use of minFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_MINFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='minFingerHeight']/@enabled"
 
/* Right Plain Ring: maxFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_MAXFINGERHEIGHT_VALUE "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@value"
 
/* Right Plain Ring: Enable use of */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_MAXFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@enabled"
 
/* Right Plain Ring: maxAllowedMovementX */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_MAXALLOWEDMOVEMENTX_VALUE "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@value"
 
/* Right Plain Ring: Enable use of maxAllowedMovementX */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_MAXALLOWEDMOVEMENTX_ENABLED "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@enabled"
 
/* Right Plain Ring: maxAllowedMovementY */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_MAXALLOWEDMOVEMENTY_VALUE "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@value"
 
/* Right Plain Ring: Enable use of maxAllowedMovementY */
#define AW_LS_SAC_HAND_RIGHT_FINGER_RING_PLAIN_MAXALLOWEDMOVEMENTY_ENABLED "/awls_fc/hand[@name='right']/finger[@name='ring']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@enabled"
 
/* Right Plain Little: isPresent */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_ISPRESENT_VALUE "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='isPresent']/@value"
 
/* Right Plain Little: Enable use of isPresent */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_ISPRESENT_ENABLED "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='isPresent']/@enabled"
 
/* Right Plain Little: canTouchEdges */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_CANTOUCHEDGES_VALUE "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='canTouchEdges']/@value"
 
/* Right Plain Little: Enable use of canTouchEdges */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_CANTOUCHEDGES_ENABLED "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='canTouchEdges']/@enabled"
 
/* Right Plain Little: minQuality */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_MINQUALITY_VALUE "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='minQuality']/@value"
 
/* Right Plain Little: Enable use of minQuality */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_MINQUALITY_ENABLED "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='minQuality']/@enabled"
 
/* Right Plain Little: minFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_MINFINGERWIDTH_VALUE "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='minFingerWidth']/@value"
 
/* Right Plain Little: Enable use of minFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_MINFINGERWIDTH_ENABLED "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='minFingerWidth']/@enabled"
 
/* Right Plain Little: maxFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_MAXFINGERWIDTH_VALUE "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@value"
 
/* Right Plain Little: Enable use of maxFingerWidth */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_MAXFINGERWIDTH_ENABLED "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@enabled"
 
/* Right Plain Little: minFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_MINFINGERHEIGHT_VALUE "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='minFingerHeight']/@value"
 
/* Right Plain Little: Enable use of minFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_MINFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='minFingerHeight']/@enabled"
 
/* Right Plain Little: maxFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_MAXFINGERHEIGHT_VALUE "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@value"
 
/* Right Plain Little: Enable use of maxFingerHeight */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_MAXFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@enabled"
 
/* Right Plain Little: maxAllowedMovementX */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_MAXALLOWEDMOVEMENTX_VALUE "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@value"
 
/* Right Plain Little: Enable use of maxAllowedMovementX */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_MAXALLOWEDMOVEMENTX_ENABLED "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@enabled"
 
/* Right Plain Little: maxAllowedMovementY */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_MAXALLOWEDMOVEMENTY_VALUE "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@value"
 
/* Right Plain Little: Enable use of maxAllowedMovementY */
#define AW_LS_SAC_HAND_RIGHT_FINGER_LITTLE_PLAIN_MAXALLOWEDMOVEMENTY_ENABLED "/awls_fc/hand[@name='right']/finger[@name='little']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@enabled"
 
/* Left Hand: Use handedness detection */
#define AW_LS_SAC_HAND_LEFT_ENFORCEHANDEDNESS "awls_fc/hand[@name='left']/@enforceHandedness"
 
/* Left Hand: Minimum confidence for handedness detection */
#define AW_LS_SAC_HAND_LEFT_MINHANDEDNESSCONFIDENCE "awls_fc/hand[@name='left']/@minHandednessConfidence"
 
/* Left Hand: Known finger count */
#define AW_LS_SAC_HAND_LEFT_KNOWNSLAPCOUNT_VALUE "awls_fc/hand[@name='left']/param[@name='knownSlapFingerCount']/@value"
 
/* Left Hand: Enable use of known finger count */
#define AW_LS_SAC_HAND_LEFT_KNOWNSLAPCOUNT_ENABLED "awls_fc/hand[@name='left']/param[@name='knownSlapFingerCount']/@enabled"
 
/* Left Plain Thumb: isPresent */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_ISPRESENT_VALUE "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='isPresent']/@value"
 
/* Left Plain Thumb: Enable use of isPresent */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_ISPRESENT_ENABLED "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='isPresent']/@enabled"
 
/* Left Plain Thumb: canTouchEdges */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_CANTOUCHEDGES_VALUE "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='canTouchEdges']/@value"
 
/* Left Plain Thumb: Enable use of canTouchEdges */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_CANTOUCHEDGES_ENABLED "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='canTouchEdges']/@enabled"
 
/* Left Plain Thumb: minQuality */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_MINQUALITY_VALUE "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='minQuality']/@value"
 
/* Left Plain Thumb: Enable use of minQuality */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_MINQUALITY_ENABLED "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='minQuality']/@enabled"
 
/* Left Plain Thumb: minFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_MINFINGERWIDTH_VALUE "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='minFingerWidth']/@value"
 
/* Left Plain Thumb: Enable use of minFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_MINFINGERWIDTH_ENABLED "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='minFingerWidth']/@enabled"
 
/* Left Plain Thumb: maxFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_MAXFINGERWIDTH_VALUE "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@value"
 
/* Left Plain Thumb: Enable use of maxFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_MAXFINGERWIDTH_ENABLED "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@enabled"
 
/* Left Plain Thumb: minFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_MINFINGERHEIGHT_VALUE "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='minFingerHeight']/@value"
 
/* Left Plain Thumb: Enable use of minFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_MINFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='minFingerHeight']/@enabled"
 
/* Left Plain Thumb: maxFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_MAXFINGERHEIGHT_VALUE "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@value"
 
/* Left Plain Thumb: Enable use of maxFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_MAXFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@enabled"
 
/* Left Plain Thumb: maxAllowedMovementX */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_MAXALLOWEDMOVEMENTX_VALUE "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@value"
 
/* Left Plain Thumb: Enable use of maxAllowedMovementX */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_MAXALLOWEDMOVEMENTX_ENABLED "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@enabled"
 
/* Left Plain Thumb: maxAllowedMovementY */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_MAXALLOWEDMOVEMENTY_VALUE "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@value"
 
/* Left Plain Thumb: Enable use of maxAllowedMovementY */
#define AW_LS_SAC_HAND_LEFT_FINGER_THUMB_PLAIN_MAXALLOWEDMOVEMENTY_ENABLED "/awls_fc/hand[@name='left']/finger[@name='thumb']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@enabled"
 
/* Left Plain Index: isPresent */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_ISPRESENT_VALUE "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='isPresent']/@value"
 
/* Left Plain Index: Enable use of isPresent */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_ISPRESENT_ENABLED "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='isPresent']/@enabled"
 
/* Left Plain Index: canTouchEdges */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_CANTOUCHEDGES_VALUE "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='canTouchEdges']/@value"
 
/* Left Plain Index: Enable use of canTouchEdges */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_CANTOUCHEDGES_ENABLED "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='canTouchEdges']/@enabled"
 
/* Left Plain Index: minQuality */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_MINQUALITY_VALUE "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='minQuality']/@value"
 
/* Left Plain Index: Enable use of minQuality */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_MINQUALITY_ENABLED "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='minQuality']/@enabled"
 
/* Left Plain Index: minFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_MINFINGERWIDTH_VALUE "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='minFingerWidth']/@value"
 
/* Left Plain Index: Enable use of minFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_MINFINGERWIDTH_ENABLED "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='minFingerWidth']/@enabled"
 
/* Left Plain Index: maxFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_MAXFINGERWIDTH_VALUE "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@value"
 
/* Left Plain Index: Enable use of maxFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_MAXFINGERWIDTH_ENABLED "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@enabled"
 
/* Left Plain Index: minFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_MINFINGERHEIGHT_VALUE "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='minFingerHeight']/@value"
 
/* Left Plain Index: Enable use of minFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_MINFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='minFingerHeight']/@enabled"
 
/* Left Plain Index: maxFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_MAXFINGERHEIGHT_VALUE "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@value"
 
/* Left Plain Index: Enable use of maxFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_MAXFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@enabled"
 
/* Left Plain Index: maxAllowedMovementX */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_MAXALLOWEDMOVEMENTX_VALUE "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@value"
 
/* Left Plain Index: Enable use of maxAllowedMovementX */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_MAXALLOWEDMOVEMENTX_ENABLED "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@enabled"
 
/* Left Plain Index: maxAllowedMovementY */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_MAXALLOWEDMOVEMENTY_VALUE "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@value"
 
/* Left Plain Index: Enable use of maxAllowedMovementY */
#define AW_LS_SAC_HAND_LEFT_FINGER_INDEX_PLAIN_MAXALLOWEDMOVEMENTY_ENABLED "/awls_fc/hand[@name='left']/finger[@name='index']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@enabled"
 
/* Left Plain Middle: isPresent */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_ISPRESENT_VALUE "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='isPresent']/@value"
 
/* Left Plain Middle: Enable use of isPresent */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_ISPRESENT_ENABLED "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='isPresent']/@enabled"
 
/* Left Plain Middle: canTouchEdges */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_CANTOUCHEDGES_VALUE "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='canTouchEdges']/@value"
 
/* Left Plain Middle: Enable use of canTouchEdges */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_CANTOUCHEDGES_ENABLED "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='canTouchEdges']/@enabled"
 
/* Left Plain Middle: minQuality */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_MINQUALITY_VALUE "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='minQuality']/@value"
 
/* Left Plain Middle: Enable use of minQuality */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_MINQUALITY_ENABLED "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='minQuality']/@enabled"
 
/* Left Plain Middle: minFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_MINFINGERWIDTH_VALUE "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='minFingerWidth']/@value"
 
/* Left Plain Middle: Enable use of minFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_MINFINGERWIDTH_ENABLED "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='minFingerWidth']/@enabled"
 
/* Left Plain Middle: maxFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_MAXFINGERWIDTH_VALUE "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@value"
 
/* Left Plain Middle: Enable use of maxFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_MAXFINGERWIDTH_ENABLED "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@enabled"
 
/* Left Plain Middle: minFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_MINFINGERHEIGHT_VALUE "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='minFingerHeight']/@value"
 
/* Left Plain Middle: Enable use of minFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_MINFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='minFingerHeight']/@enabled"
 
/* Left Plain Middle: maxFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_MAXFINGERHEIGHT_VALUE "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@value"
 
/* Left Plain Middle: Enable use of maxFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_MAXFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@enabled"
 
/* Left Plain Middle: maxAllowedMovementX */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_MAXALLOWEDMOVEMENTX_VALUE "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@value"
 
/* Left Plain Middle: Enable use of maxAllowedMovementX */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_MAXALLOWEDMOVEMENTX_ENABLED "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@enabled"
 
/* Left Plain Middle: maxAllowedMovementY */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_MAXALLOWEDMOVEMENTY_VALUE "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@value"
 
/* Left Plain Middle: Enable use of maxAllowedMovementY */
#define AW_LS_SAC_HAND_LEFT_FINGER_MIDDLE_PLAIN_MAXALLOWEDMOVEMENTY_ENABLED "/awls_fc/hand[@name='left']/finger[@name='middle']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@enabled"
 
/* Left Plain Ring: isPresent */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_ISPRESENT_VALUE "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='isPresent']/@value"
 
/* Left Plain Ring: Enable use of isPresent */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_ISPRESENT_ENABLED "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='isPresent']/@enabled"
 
/* Left Plain Ring: canTouchEdges */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_CANTOUCHEDGES_VALUE "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='canTouchEdges']/@value"
 
/* Left Plain Ring: Enable use of canTouchEdges */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_CANTOUCHEDGES_ENABLED "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='canTouchEdges']/@enabled"
 
/* Left Plain Ring: minQuality */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_MINQUALITY_VALUE "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='minQuality']/@value"
 
/* Left Plain Ring: Enable use of minQuality */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_MINQUALITY_ENABLED "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='minQuality']/@enabled"
 
/* Left Plain Ring: minFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_MINFINGERWIDTH_VALUE "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='minFingerWidth']/@value"
 
/* Left Plain Ring: Enable use of minFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_MINFINGERWIDTH_ENABLED "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='minFingerWidth']/@enabled"
 
/* Left Plain Ring: maxFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_MAXFINGERWIDTH_VALUE "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@value"
 
/* Left Plain Ring: Enable use of maxFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_MAXFINGERWIDTH_ENABLED "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@enabled"
 
/* Left Plain Ring: minFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_MINFINGERHEIGHT_VALUE "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='minFingerHeight']/@value"
 
/* Left Plain Ring: Enable use of minFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_MINFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='minFingerHeight']/@enabled"
 
/* Left Plain Ring: maxFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_MAXFINGERHEIGHT_VALUE "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@value"
 
/* Left Plain Ring: Enable use of */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_MAXFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@enabled"
 
/* Left Plain Ring: maxAllowedMovementX */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_MAXALLOWEDMOVEMENTX_VALUE "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@value"
 
/* Left Plain Ring: Enable use of maxAllowedMovementX */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_MAXALLOWEDMOVEMENTX_ENABLED "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@enabled"
 
/* Left Plain Ring: maxAllowedMovementY */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_MAXALLOWEDMOVEMENTY_VALUE "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@value"
 
/* Left Plain Ring: Enable use of maxAllowedMovementY */
#define AW_LS_SAC_HAND_LEFT_FINGER_RING_PLAIN_MAXALLOWEDMOVEMENTY_ENABLED "/awls_fc/hand[@name='left']/finger[@name='ring']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@enabled"
 
/* Left Plain Little: isPresent */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_ISPRESENT_VALUE "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='isPresent']/@value"
 
/* Left Plain Little: Enable use of isPresent */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_ISPRESENT_ENABLED "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='isPresent']/@enabled"
 
/* Left Plain Little: canTouchEdges */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_CANTOUCHEDGES_VALUE "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='canTouchEdges']/@value"
 
/* Left Plain Little: Enable use of canTouchEdges */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_CANTOUCHEDGES_ENABLED "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='canTouchEdges']/@enabled"
 
/* Left Plain Little: minQuality */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_MINQUALITY_VALUE "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='minQuality']/@value"
 
/* Left Plain Little: Enable use of minQuality */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_MINQUALITY_ENABLED "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='minQuality']/@enabled"
 
/* Left Plain Little: minFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_MINFINGERWIDTH_VALUE "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='minFingerWidth']/@value"
 
/* Left Plain Little: Enable use of minFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_MINFINGERWIDTH_ENABLED "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='minFingerWidth']/@enabled"
 
/* Left Plain Little: maxFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_MAXFINGERWIDTH_VALUE "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@value"
 
/* Left Plain Little: Enable use of maxFingerWidth */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_MAXFINGERWIDTH_ENABLED "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='maxFingerWidth']/@enabled"
 
/* Left Plain Little: minFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_MINFINGERHEIGHT_VALUE "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='minFingerHeight']/@value"
 
/* Left Plain Little: Enable use of minFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_MINFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='minFingerHeight']/@enabled"
 
/* Left Plain Little: maxFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_MAXFINGERHEIGHT_VALUE "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@value"
 
/* Left Plain Little: Enable use of maxFingerHeight */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_MAXFINGERHEIGHT_ENABLED "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='maxFingerHeight']/@enabled"
 
/* Left Plain Little: maxAllowedMovementX */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_MAXALLOWEDMOVEMENTX_VALUE "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@value"
 
/* Left Plain Little: Enable use of maxAllowedMovementX */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_MAXALLOWEDMOVEMENTX_ENABLED "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='maxAllowedMovementX']/@enabled"
 
/* Left Plain Little: maxAllowedMovementY */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_MAXALLOWEDMOVEMENTY_VALUE "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@value"
 
/* Left Plain Little: Enable use of maxAllowedMovementY */
#define AW_LS_SAC_HAND_LEFT_FINGER_LITTLE_PLAIN_MAXALLOWEDMOVEMENTY_ENABLED "/awls_fc/hand[@name='left']/finger[@name='little']/impressionType[@name='plain']/param[@name='maxAllowedMovementY']/@enabled"
 
/* Finger Positions */
typedef enum aw_ls_fpos_t aw_ls_fpos_t; 
enum aw_ls_fpos_t {
 
/* Unknown finger */
   AW_LS_FPOS_UNKNOWN_FINGER=0,
 
/* Right thumb */
   AW_LS_FPOS_RIGHT_THUMB=1,
 
/* Right index finger */
   AW_LS_FPOS_RIGHT_INDEX=2,
 
/* Right middle finger */
   AW_LS_FPOS_RIGHT_MIDDLE=3,
 
/* Right ring finger */
   AW_LS_FPOS_RIGHT_RING=4,
 
/* Right little finger */
   AW_LS_FPOS_RIGHT_LITTLE=5,
 
/* Left thumb */
   AW_LS_FPOS_LEFT_THUMB=6,
 
/* Left index finger */
   AW_LS_FPOS_LEFT_INDEX=7,
 
/* Left middle finger */
   AW_LS_FPOS_LEFT_MIDDLE=8,
 
/* Left ring finger */
   AW_LS_FPOS_LEFT_RING=9,
 
/* Left little finger */
   AW_LS_FPOS_LEFT_LITTLE=10,
 
/* Plain right thumb */
   AW_LS_FPOS_PLAIN_RIGHT_THUMB=11,
 
/* Plain left thumb */
   AW_LS_FPOS_PLAIN_LEFT_THUMB=12,
 
/* Plain right four fingers */
   AW_LS_FPOS_PLAIN_RIGHT_FOUR_FINGERS=13,
 
/* Plain left four fingers */
   AW_LS_FPOS_PLAIN_LEFT_FOUR_FINGERS=14,
 
/* Plain left and right thumbs */
   AW_LS_FPOS_PLAIN_LEFT_RIGHT_THUMBS=15
};    
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* Impression Types */
typedef enum aw_ls_impr_t aw_ls_impr_t; 
enum aw_ls_impr_t {
 
/* Live-scan plain */
   AW_LS_IMPR_LIVE_SCAN_PLAIN=0,
 
/* Live-scan rolled */
   AW_LS_IMPR_LIVE_SCAN_ROLLED=1
};    
 
 
 
 
/* Live Scanner Types */
typedef enum aw_ls_scannertype_t aw_ls_scannertype_t; 
enum aw_ls_scannertype_t {
 
/* Read image data from the filesystem */
   AW_LS_SCANNERTYPE_FILESYSTEM=0,
 
/* Identix 4x4 */
   AW_LS_SCANNERTYPE_IDENTIX_4X4=1,
 
/* Identix 4100(Sentinel) */
   AW_LS_SCANNERTYPE_IDENTIX_4100=2,
 
/* CrossMatch Guardian */
   AW_LS_SCANNERTYPE_CROSSMATCH_GUARDIAN=3,
 
/* CrossMatch Verifier 300 */
   AW_LS_SCANNERTYPE_CROSSMATCH_V300=4,
 
/* Identification Internaltional Inc. DigID */
   AW_LS_SCANNERTYPE_I3_DIGIID=5,
 
/* Green Bit DactyScan 84 */
   AW_LS_SCANNERTYPE_GB_DACTY84=6,
 
/* Precise Biometrics 250MC */
   AW_LS_SCANNERTYPE_PB_250MC=7,
 
/* Dermalog ZF1 */
   AW_LS_SCANNERTYPE_DML_ZF1=8,
 
/* Cogent CS500I */
   AW_LS_SCANNERTYPE_COG_CS500I=9
};    
 
 
 
 
 
 
 
 
 
 
 
 
/* Device LED position-type */
typedef enum aw_ls_ledpos_t aw_ls_ledpos_t; 
enum aw_ls_ledpos_t {
 
/* Right thumb */
   AW_LS_LEDPOS_RIGHT_THUMB=1,
 
/* Right index finger */
   AW_LS_LEDPOS_RIGHT_INDEX=2,
 
/* Right middle finger */
   AW_LS_LEDPOS_RIGHT_MIDDLE=3,
 
/* Right ring finger */
   AW_LS_LEDPOS_RIGHT_RING=4,
 
/* Right little finger */
   AW_LS_LEDPOS_RIGHT_LITTLE=5,
 
/* Left thumb */
   AW_LS_LEDPOS_LEFT_THUMB=6,
 
/* Left index finger */
   AW_LS_LEDPOS_LEFT_INDEX=7,
 
/* Left middle finger */
   AW_LS_LEDPOS_LEFT_MIDDLE=8,
 
/* Left ring finger */
   AW_LS_LEDPOS_LEFT_RING=9,
 
/* Left little finger */
   AW_LS_LEDPOS_LEFT_LITTLE=10,
 
/* Plain right thumb */
   AW_LS_LEDPOS_PLAIN_RIGHT_THUMB=11,
 
/* Plain left thumb */
   AW_LS_LEDPOS_PLAIN_LEFT_THUMB=12,
 
/* Plain right four fingers */
   AW_LS_LEDPOS_PLAIN_RIGHT_FOUR_FINGERS=13,
 
/* Plain left four fingers */
   AW_LS_LEDPOS_PLAIN_LEFT_FOUR_FINGERS=14,
 
/* Plain left and right thumbs */
   AW_LS_LEDPOS_PLAIN_LEFT_RIGHT_THUMBS=15
};    
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* Device LED setting-color */
typedef enum aw_ls_ledsetting_t aw_ls_ledsetting_t; 
enum aw_ls_ledsetting_t {
 
/* Off */
   AW_LS_LEDSETTING_LED_OFF=1,
 
/* Green */
   AW_LS_LEDSETTING_LED_GREEN=2,
 
/* Yellow */
   AW_LS_LEDSETTING_LED_YELLOW=3,
 
/* Red */
   AW_LS_LEDSETTING_LED_RED=4
};    
 
 
 
 
 
 
/* Final Image Properties */
typedef enum aw_ls_fiprop_t aw_ls_fiprop_t; 
enum aw_ls_fiprop_t {
 
/* image_width is the width in pixels of the image */
   AW_LS_FIPROP_IMAGE_WIDTH=1,
 
/* image_height is the height in pixels of the image */
   AW_LS_FIPROP_IMAGE_HEIGHT=2,
 
/* image_bpp is the bit depth, in bits per pixels for the image */
   AW_LS_FIPROP_IMAGE_BPP=3,
 
/* image_channels is number of color channels for the image */
   AW_LS_FIPROP_IMAGE_CHANNELS=4,
 
/* image_resolution is the resolution -- in pixels per inch,
   for the image */
   AW_LS_FIPROP_IMAGE_RESOLUTION=5
};    
 
 
 
 
 
 
 
/* Preview Image Properties */
typedef enum aw_ls_piprop_t aw_ls_piprop_t; 
enum aw_ls_piprop_t {
 
/* image_width is the width in pixels of the image */
   AW_LS_PIPROP_IMAGE_WIDTH=1,
 
/* image_height is the height in pixels of the image */
   AW_LS_PIPROP_IMAGE_HEIGHT=2,
 
/* image_bpp is the bit depth, in bits per pixels for the image */
   AW_LS_PIPROP_IMAGE_BPP=3,
 
/* image_channels is number of color channels for the image */
   AW_LS_PIPROP_IMAGE_CHANNELS=4,
 
/* image_resolution is the resolution -- in pixels per inch,
   for the image */
   AW_LS_PIPROP_IMAGE_RESOLUTION=5
};    
 
 
 
 
 
 
 
/* Preview Analysis Data */
typedef enum aw_ls_analysisParam_t aw_ls_analysisParam_t; 
enum aw_ls_analysisParam_t {
 
/* the number of fingers segmented from the hand image */
   AW_LS_ANALYSISPARAM_NUMSLAPDIGITS=1,
 
/* the aware quality score (1-100)for the indicated finger */
   AW_LS_ANALYSISPARAM_DIGITQUALITY=2,
 
/* the minimum row for the bounding box of the indicated finger */
   AW_LS_ANALYSISPARAM_MINROWS=3,
 
/* the maximum row for the bounding box of the indicated finger */
   AW_LS_ANALYSISPARAM_MAXROWS=4,
 
/* the minimum col for the bounding box of the indicated finger */
   AW_LS_ANALYSISPARAM_MINCOLS=5,
 
/* the maximum col for the bounding box of the indicated finger */
   AW_LS_ANALYSISPARAM_MAXCOLS=6,
 
/* the hand of the current image (0:right, 1:left) */
   AW_LS_ANALYSISPARAM_HAND=7,
 
/* the confidence (0-100) of the handedness calculation */
   AW_LS_ANALYSISPARAM_HANDCONF=8
};    
 
 
 
 
 
 
 
 
 
 
/* Image Formats */
typedef enum aw_ls_ifmt_t aw_ls_ifmt_t; 
enum aw_ls_ifmt_t {
 
/* Tiff format */
   AW_LS_IFMT_TIF=1,
 
/* BMP format */
   AW_LS_IFMT_BMP=2
};    
 
 
 
 
/* Missing Finger Codes */
typedef enum aw_ls_missingCode_t aw_ls_missingCode_t; 
enum aw_ls_missingCode_t {
 
/* Finger is present and printable */
   AW_LS_MISSINGCODE_PRESENT=1,
 
/* Amputated */
   AW_LS_MISSINGCODE_AMPUTATED=2,
 
/* Missing at Birth */
   AW_LS_MISSINGCODE_MISSINGATBIRTH=3,
 
/* Bandaged */
   AW_LS_MISSINGCODE_BANDAGED=4,
 
/* Unprintable */
   AW_LS_MISSINGCODE_UNPRINTABLE=5,
 
/* Unknown */
   AW_LS_MISSINGCODE_UNKNOWN=6
};    
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* Library Object Management */
 
 
/* <Function> aw_ls_create
   <Description> This function creates the LiveScan library object. This
   function must be called before any other function in the library.
   <Return Value>
     pointer to a LiveScanAPI object, null if the object could not be
   allocated
    */
 
AW_DECLARE(aw_ls_t*) aw_ls_create ( 
);
 
/* <Function> aw_ls_destroy
   <Description> This function destroys the LiveScan library object. This
   function will free all memory allocated by the library. After calling
   this, the ls_obj object is no longer valid and cannot be used.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_destroy ( 
  aw_ls_t* aw_ls
);
 
 
 
 
 
 
/* Version Functions */
 
 
/* <Function> aw_ls_get_version_string
   <Description> Returns a text string indicating the current version of
   the LiveScan library.
   <Return Value>
     string indicating the library version
    */
 
AW_DECLARE(aw_char_t*) aw_ls_get_version_string ( 
);
 
/* <Function> aw_ls_get_version
   <Description> Returns an integer value indicating the current version
   of the LiveScan library.
   <Return Value>
     library version number
    */
 
AW_DECLARE(aw_int32_t) aw_ls_get_version ( 
);
 
 
 
 
 
 
/* Error Handling */
 
 
/* <Function> aw_ls_get_error_count
   <Description> Gets the number of errors that occurred due to the last
   API function call
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     the number of errors
    */
 
AW_DECLARE(aw_int32_t) aw_ls_get_error_count ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_get_error_code
   <Description> Returns error codes caused by the last API call. The
   index value is base 0 (0 for the first error). Use the
   get_error_count() function to determine how many errors occurred due
   to the last API call.
   <Parameters>
     aw_ls - library object pointer
     error_index - index for specifying the error
   <Return Value>
     error code for the specified error
    */
 
AW_DECLARE(aw_int32_t) aw_ls_get_error_code ( 
  aw_ls_t* aw_ls,
  aw_int32_t error_index
);
 
/* <Function> aw_ls_get_error_name
   <Description> Returns a short text name for the error caused by the
   last API call. The index value is base 0 (0 for the first error). Use
   the get_error_count() function to determine how many errors occurred
   due to the last API call.
   <Parameters>
     aw_ls - library object pointer
     error_code - the requested error code
   <Return Value>
     
    */
 
AW_DECLARE(const aw_char_t*) aw_ls_get_error_name ( 
  aw_ls_t* aw_ls,
  aw_int32_t error_code
);
 
/* <Function> aw_ls_get_error_description
   <Description> Returns a text description for the error caused by the
   last API call. The index value is base 0 (0 for the first error). Use
   the get_error_count() function to determine how many errors occurred
   due to the last API call.
   <Parameters>
     aw_ls - library object pointer
     error_code - the requested error code
   <Return Value>
     
    */
 
AW_DECLARE(const aw_char_t*) aw_ls_get_error_description ( 
  aw_ls_t* aw_ls,
  aw_int32_t error_code
);
 
/* <Function> aw_ls_get_error_details
   <Description> Returns additional details for the error caused by the
   last API call. The index value is base 0 (0 for the first error). Use
   the get_error_count() function to determine how many errors occurred
   due to the last API call.
   <Parameters>
     aw_ls - library object pointer
     error_code - the requested error code
   <Return Value>
     
    */
 
AW_DECLARE(const aw_char_t*) aw_ls_get_error_details ( 
  aw_ls_t* aw_ls,
  aw_int32_t error_code
);
 
/* <Function> aw_ls_get_device_api_error_code
   <Description> Returns the error code from the device when the live
   scan api encounters an error from a device operation. To properly
   identify the device api error the index of the live scan error must be
   identified (i.e. the error_index value used in the get_error_code
   function.
   <Parameters>
     aw_ls - library object pointer
     error_index - the count of the associated live scan api error that
   indicated the device error
   <Return Value>
     
    */
 
AW_DECLARE(aw_int32_t) aw_ls_get_device_api_error_code ( 
  aw_ls_t* aw_ls,
  aw_int32_t error_index
);
 
 
 
 
 
 
/* Warning Handling */
 
 
/* <Function> aw_ls_get_warning_count
   <Description> Gets the number of warnings that occurred due to the
   last API function call
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     the number of warnings
    */
 
AW_DECLARE(aw_int32_t) aw_ls_get_warning_count ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_get_warning_code
   <Description> Returns warning codes caused by the last API call. The
   index value is base 0 (0 for the first warning). Use the
   get_warning_count() function to determine how many warnings occurred
   due to the last API call.
   <Parameters>
     aw_ls - library object pointer
     warning_index - index for specifying the warning
   <Return Value>
     warning code for the specified warning
    */
 
AW_DECLARE(aw_int32_t) aw_ls_get_warning_code ( 
  aw_ls_t* aw_ls,
  aw_int32_t warning_index
);
 
/* <Function> aw_ls_get_warning_name
   <Description> Returns a short text name for the warning caused by the
   last API call. The index value is base 0 (0 for the first warning).
   Use the get_warning_count() function to determine how many warnings
   occurred due to the last API call.
   <Parameters>
     aw_ls - library object pointer
     warning_index - index for specifying a warning
   <Return Value>
     
    */
 
AW_DECLARE(const aw_char_t*) aw_ls_get_warning_name ( 
  aw_ls_t* aw_ls,
  aw_int32_t warning_index
);
 
/* <Function> aw_ls_get_warning_description
   <Description> Returns a text description for the warning caused by the
   last API call. The index value is base 0 (0 for the first warning).
   Use the get_warning_count() function to determine how many warnings
   occurred due to the last API call.
   <Parameters>
     aw_ls - library object pointer
     warning_index - index for specifying a warning
   <Return Value>
     
    */
 
AW_DECLARE(const aw_char_t*) aw_ls_get_warning_description ( 
  aw_ls_t* aw_ls,
  aw_int32_t warning_index
);
 
/* <Function> aw_ls_get_warning_details
   <Description> Returns additional details for the warning caused by the
   last API call. The index value is base 0 (0 for the first warning).
   Use the get_warning_count() function to determine how many warnings
   occurred due to the last API call.
   <Parameters>
     aw_ls - library object pointer
     warning_index - index for specifying an warning
   <Return Value>
     
    */
 
AW_DECLARE(const aw_char_t*) aw_ls_get_warning_details ( 
  aw_ls_t* aw_ls,
  aw_int32_t warning_index
);
 
/* <Function> aw_ls_get_device_api_warning_code
   <Description> Returns the warning code from the device when the live
   scan api encounters an warning from a device operation. To properly
   identify the device api warning the index of the live scan warning
   must be identified (i.e. the warning_index value used in the
   get_warning_code function.
   <Parameters>
     aw_ls - library object pointer
     warning_index - the count of the associated live scan api warning
   that indicated the device warning
   <Return Value>
     
    */
 
AW_DECLARE(aw_int32_t) aw_ls_get_device_api_warning_code ( 
  aw_ls_t* aw_ls,
  aw_int32_t warning_index
);
 
 
/* Sets the callback for status information. Whenever a status update is
   made, during capture or calibration, this function is called. */
 
typedef void (WINAPI aw_ls_callback_status_func_t) ( 
  aw_int32_t status_code,
  const aw_char_t* status_string,
  void* private_data
); 
AW_DECLARE(void) aw_ls_set_callback_status ( 
  aw_ls_t* aw_ls,
  aw_ls_callback_status_func_t* callback_status_func,
  void* private_data
);
 
 
 
 
/* Status Handling */
 
 
/* <Function> aw_ls_get_status_count
   <Description> Gets the number of status updates that occurred due to
   the last API function call
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     the number of status updates
    */
 
AW_DECLARE(aw_int32_t) aw_ls_get_status_count ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_get_status_code
   <Description> Returns status codes caused by the last API call. The
   index value is base 0 (0 for the first status update). Use the
   get_status_count() function to determine how many status updates
   occurred due to the last API call.
   <Parameters>
     aw_ls - library object pointer
     status_index - index for specifying the status update
   <Return Value>
     status code for the specified status update
    */
 
AW_DECLARE(aw_int32_t) aw_ls_get_status_code ( 
  aw_ls_t* aw_ls,
  aw_int32_t status_index
);
 
/* <Function> aw_ls_get_status_name
   <Description> Returns a short text name for the status caused by the
   last API call. The index value is base 0 (0 for the first status
   update). Use the get_status_count() function to determine how many
   status updates occurred due to the last API call.
   <Parameters>
     aw_ls - library object pointer
     status_index - index for specifying a status update
   <Return Value>
     
    */
 
AW_DECLARE(const aw_char_t*) aw_ls_get_status_name ( 
  aw_ls_t* aw_ls,
  aw_int32_t status_index
);
 
/* <Function> aw_ls_get_status_description
   <Description> Returns a text description for the status update caused
   by the last API call. The index value is base 0 (0 for the first
   status update). Use the get_status_count() function to determine how
   many status updates occurred due to the last API call.
   <Parameters>
     aw_ls - library object pointer
     status_index - index for specifying a status update
   <Return Value>
     
    */
 
AW_DECLARE(const aw_char_t*) aw_ls_get_status_description ( 
  aw_ls_t* aw_ls,
  aw_int32_t status_index
);
 
/* <Function> aw_ls_get_status_details
   <Description> Returns additional details for the status update caused
   by the last API call. The index value is base 0 (0 for the first
   status update). Use the get_status_count() function to determine how
   many status updates occurred due to the last API call.
   <Parameters>
     aw_ls - library object pointer
     status_index - index for specifying a status update
   <Return Value>
     
    */
 
AW_DECLARE(const aw_char_t*) aw_ls_get_status_details ( 
  aw_ls_t* aw_ls,
  aw_int32_t status_index
);
 
 
 
 
 
 
/* Aware Support Libraries */
 
 
/* <Function> aw_ls_fastcapture_available
   <Description> This function checks to see if the Aware FastCapture
   library is installed for use with preview image analysis and software
   autocapture triggering.
   <Return Value>
     
    */
 
AW_DECLARE(BOOL) aw_ls_fastcapture_available ( 
);
 
 
 
 
 
 
/* Baseline Device Functions */
 
 
/* <Function> aw_ls_device_open
   <Description> This function opens the selected device for scanning.
   The user must also determine if the required device API is installed
   and is of the correct version.
   <Parameters>
     aw_ls - library object pointer
     lscanner - live scan device
     index - unused at this time, shall specifically indicate scanner id
   in the event of multiple scanners of the same type connected to the
   system
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_device_open ( 
  aw_ls_t* aw_ls,
  aw_char_t* lscanner,
  aw_int32_t index
);
 
/* <Function> aw_ls_device_open_any
   <Description> This function opens the a device from the list for
   scanning. The devices to attempt are presented in a comma separated
   list (no spaces). Device access is attempted in the order presented.
   The user may determine the connected scanner via a call to device_make
   and device_model. The user must also determin if the required device
   API is installed and is of the correct version.
   <Parameters>
     aw_ls - library object pointer
     lscanner - prioritized comma separated list of live scan devices to
   open
     index - unused at this time, shall specifically indicate scanner id
   in the event of multiple scanners of the same type connected to the
   system
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_device_open_any ( 
  aw_ls_t* aw_ls,
  aw_char_t* lscanner,
  aw_int32_t index
);
 
/* <Function> aw_ls_device_close
   <Description> This function closes the active device. This function
   will free all memory allocated by the device library. After calling
   this, the livescan is no longer valid and cannot be used.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_device_close ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_device_reset
   <Description> This function resets the active device.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_device_reset ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_device_get_api_version
   <Description> This function returns the version of the API used for
   the indicated device. The user should also check to see if the
   particular device API version is supported
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     
    */
 
AW_DECLARE(const aw_char_t*) aw_ls_device_get_api_version ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_device_api_version_supported
   <Description> This function checks to see if the loaded device API
   version is supported within this library. Either the version is too
   old and unsupported, the version is current to API required by this
   SDK, or the version is newer than required by this API. In the latter
   case a warning will be generated. New device API's are not necesselary
   unsupported, however newer APIs should be fully tested prior to full
   acceptance.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     
    */
 
AW_DECLARE(BOOL) aw_ls_device_api_version_supported ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_device_get_make
   <Description> This function returns the manufacturer make, from the
   active live scan device.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     
    */
 
AW_DECLARE(const aw_char_t*) aw_ls_device_get_make ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_device_get_model
   <Description> This function returns the manufacturer model, from the
   active live scan device.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     
    */
 
AW_DECLARE(const aw_char_t*) aw_ls_device_get_model ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_device_get_serial_number
   <Description> This function returns the serial number, or equivalent
   identification, from the active live scan device.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     
    */
 
AW_DECLARE(const aw_char_t*) aw_ls_device_get_serial_number ( 
  aw_ls_t* aw_ls
);
 
 
 
 
 
 
/* Device Testing and Calibration Functions */
 
 
/* <Function> aw_ls_device_calibrate
   <Description> This function runs the device calibration if exposed via
   the device API. Most device manufactures require calibration be run
   the first time a device is run on a system, and then also be run on a
   regular basis there-after.
   <Parameters>
     aw_ls - library object pointer
     forceCalibration - force the calibration if the scanner is already
   calibrated
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_device_calibrate ( 
  aw_ls_t* aw_ls,
  BOOL forceCalibration
);
 
/* <Function> aw_ls_device_test
   <Description> This function runs the device performance test if
   exposed via the device API.
   <Parameters>
     aw_ls - library object pointer
     lscanner - live scan device
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_device_test ( 
  aw_ls_t* aw_ls,
  aw_char_t* lscanner
);
 
 
 
 
 
 
/* Device UI Functions -- Audio and Visual */
 
 
/* <Function> aw_ls_device_set_visual_ui
   <Description> This function sets any available visual cues for the
   live device. The visual UI refresh function must be called to activate
   the visual UI settings.
   <Parameters>
     aw_ls - library object pointer
     ledposition - device led to turn on
     ledsetting - device led setting-color
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_device_set_visual_ui ( 
  aw_ls_t* aw_ls,
  aw_ls_ledpos_t ledposition,
  aw_ls_ledsetting_t ledsetting
);
 
/* <Function> aw_ls_device_refresh_visual_ui
   <Description> This function sends the current visual UI settings to
   the device.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_device_refresh_visual_ui ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_device_set_audio_ui
   <Description> This function commands the live scan device to perform
   an audio cue (beep).
   <Parameters>
     aw_ls - library object pointer
     audiosetting - type of audio cue to initiate
     audioduration - duration, in milliseconds, of the audio cue
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_device_set_audio_ui ( 
  aw_ls_t* aw_ls,
  aw_int32_t audiosetting,
  aw_int32_t audioduration
);
 
 
 
 
 
 
/* Autocapture and Capture Settings Functions */
 
 
/* <Function> aw_ls_device_set_capture_finger_position_type
   <Description> This function sets the finger position (i.e. left four
   fingers, right index) to capture.
   <Parameters>
     aw_ls - library object pointer
     finger_position - the finger position-type to capture
     impression_type - the impression type, flat or plain, to capture
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_device_set_capture_finger_position_type ( 
  aw_ls_t* aw_ls,
  aw_ls_fpos_t finger_position,
  aw_ls_impr_t impression_type
);
 
/* <Function> aw_ls_device_set_capture_resolution
   <Description> This function sets the of the final captured
   fingerprint.
   <Parameters>
     aw_ls - library object pointer
     resolution - the resolution of the final image
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_device_set_capture_resolution ( 
  aw_ls_t* aw_ls,
  aw_int32_t resolution
);
 
/* <Function> aw_ls_autocapture_enable_hardware_autocapture
   <Description> This function turns on-off the hardware based
   autocapture.
   <Parameters>
     aw_ls - library object pointer
     hardware_autocapture_enabled - controls if the hardware based
   autocapture is turned on or off.
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_autocapture_enable_hardware_autocapture ( 
  aw_ls_t* aw_ls,
  BOOL hardware_autocapture_enabled
);
 
/* <Function> aw_ls_autocapture_enable_software_autocapture
   <Description> This function turns on-off the software based
   autocapture. The software autocapture requires Aware FastCapture be
   installed. The specific use of software autocapture can be controlled
   via device_set_software_autocapture_configuration() or
   device_set_software_autocapture_configuration_file().
   <Parameters>
     aw_ls - library object pointer
     software_autocapture_enabled - controls if the software based
   autocapture is turned on or off.
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_autocapture_enable_software_autocapture ( 
  aw_ls_t* aw_ls,
  BOOL software_autocapture_enabled
);
 
/* <Function> aw_ls_autocapture_set_software_autocapture_configuration
   <Description> This function sets the specific use of the software
   autocapture. The input string contains the XML description of the
   software autocapture settings.
   <Parameters>
     aw_ls - library object pointer
     configuration_string - the XML configuration string for the software
   based autocapture settings.
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_autocapture_set_software_autocapture_configuration ( 
  aw_ls_t* aw_ls,
  const aw_char_t* configuration_string
);
 
/* <Function>
   aw_ls_autocapture_set_software_autocapture_configuration_file
   <Description> This function sets the specific use of the software
   autocapture. The input string contains the XML description of the
   software autocapture settings.
   <Parameters>
     aw_ls - library object pointer
     configuration_filename - the filename containing the XML
   configuration data for the software based autocapture settings.
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_autocapture_set_software_autocapture_configuration_file ( 
  aw_ls_t* aw_ls,
  const aw_char_t* configuration_filename
);
 
/* <Function> aw_ls_autocapture_set_software_autocapture_parameter
   <Description> This function sets a specific autocapture settings. The
   parameters are indicated by their XPATH address. The header file (or
   .Net object) contains predefined strings for each parameter.
   <Parameters>
     aw_ls - library object pointer
     configuration_parameter - the XPATH address of the parameter to set.
     configuration_value - the value (as a string).
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_autocapture_set_software_autocapture_parameter ( 
  aw_ls_t* aw_ls,
  const aw_char_t* configuration_parameter,
  const aw_char_t* configuration_value
);
 
/* <Function> aw_ls_autocapture_get_software_autocapture_parameter
   <Description> This function gets a specific autocapture settings. The
   parameters are indicated by their XPATH address. The header file (or
   .Net object) contains predefined strings for each parameter.
   <Parameters>
     aw_ls - library object pointer
     configuration_parameter - the XPATH address of the parameter to get.
   <Return Value>
     the value (as a string).
    */
 
AW_DECLARE(const aw_char_t*) aw_ls_autocapture_get_software_autocapture_parameter ( 
  aw_ls_t* aw_ls,
  const aw_char_t* configuration_parameter
);
 
/* <Function> aw_ls_autocapture_set_finger_missing
   <Description> This function sets the status of a missing finger. This
   function is redundant to the respective setting of the autocapture
   finger present parameter. This function is supplied for future use and
   other than indicating that the finger is present or missing the
   missing code no current meaning. When one or more fingers are
   indicated as missing handedness identification will automatically be
   turned off as the handedness algorithm is less reliable for hands with
   three or fewer fingers. When all fingers are indicated as present the
   handedness will be returned to its initial value.
   <Parameters>
     aw_ls - library object pointer
     finger - The finger to set present or missing
     missingCode - missing finger code
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_autocapture_set_finger_missing ( 
  aw_ls_t* aw_ls,
  aw_ls_fpos_t finger,
  aw_ls_missingCode_t missingCode
);
 
/* <Function> aw_ls_autocapture_get_analysis_data
   <Description> This function gets information about the current preview
   image. The data that is returned is calculated by Aware FastCapture,
   and is only available if that DLL is installed.
   <Parameters>
     aw_ls - library object pointer
     param - The type of data to return.
     finger - The finger to query the data for. Only applicable for
   single fingers.
   <Return Value>
     the value of the requested parameter
    */
 
AW_DECLARE(aw_int32_t) aw_ls_autocapture_get_analysis_data ( 
  aw_ls_t* aw_ls,
  aw_ls_analysisParam_t param,
  aw_ls_fpos_t finger
);
 
/* <Function> aw_ls_autocapture_enable_cache_best_image
   <Description> This function sets the ability to cache the best image
   from the scanner during the preview process. This function is only
   enabled by scanners that can provide full resolution imagery during
   the preview process. If enabled, the image returned as the
   final_image, shall be the best image.
   <Parameters>
     aw_ls - library object pointer
     cache_best_enabled - controls if the best image from the preview
   stream is cached and returned.
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_autocapture_enable_cache_best_image ( 
  aw_ls_t* aw_ls,
  BOOL cache_best_enabled
);
 
 
/* Sets the callback for receiving preview images. Each time a new
   preview image is available this function will be called to return the
   current preview images. */
 
typedef void (WINAPI aw_ls_callback_preview_image_func_t) ( 
  aw_uint8_t* buffer,
  aw_size_t buffer_size,
  aw_int32_t height,
  aw_int32_t width,
  void* private_data
); 
AW_DECLARE(void) aw_ls_set_callback_preview_image ( 
  aw_ls_t* aw_ls,
  aw_ls_callback_preview_image_func_t* callback_preview_image_func,
  void* private_data
);
/* Sets the callback for receiving final live scan image. */
 
typedef void (WINAPI aw_ls_callback_final_image_func_t) ( 
  aw_uint8_t* buffer,
  aw_size_t buffer_size,
  aw_int32_t height,
  aw_int32_t width,
  void* private_data
); 
AW_DECLARE(void) aw_ls_set_callback_final_image ( 
  aw_ls_t* aw_ls,
  aw_ls_callback_final_image_func_t* callback_final_image_func,
  void* private_data
);
/* Signals that a final image capture has been initiated. */
 
typedef void (WINAPI aw_ls_callback_final_image_capture_triggered_func_t) ( 
  void* private_data
); 
AW_DECLARE(void) aw_ls_set_callback_final_image_capture_triggered ( 
  aw_ls_t* aw_ls,
  aw_ls_callback_final_image_capture_triggered_func_t* callback_final_image_capture_triggered_func,
  void* private_data
);
 
 
 
 
/* Scanning Capture Functions */
 
 
/* <Function> aw_ls_device_capture_start_preview
   <Description> This function starts the capture process by initiating
   the capture preview.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_device_capture_start_preview ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_device_capture_start_capture
   <Description> This function initiates the fingerprint capture.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_device_capture_start_capture ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_device_capture_abort_capture
   <Description> This function aborts the capture process.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_device_capture_abort_capture ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_device_capture_trigger
   <Description> This function sends a capture trigger to the live scan
   device. Some devices and processes, manually managed roll captures,
   require triggers in addition to the start preview and start capture.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_device_capture_trigger ( 
  aw_ls_t* aw_ls
);
 
 
 
 
 
 
/* Scanning Preview Image Functions */
 
 
/* <Function> aw_ls_device_get_preview_image_height
   <Description> This function returns the height of the preview image.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     the height of the preview image
    */
 
AW_DECLARE(aw_int32_t) aw_ls_device_get_preview_image_height ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_device_get_preview_image_width
   <Description> This function returns the width of the preview image.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     the width of the preview image
    */
 
AW_DECLARE(aw_int32_t) aw_ls_device_get_preview_image_width ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_device_get_preview_image_resolution
   <Description> This function returns the resolution of the preview
   image.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     the resolution of the preview image
    */
 
AW_DECLARE(aw_int32_t) aw_ls_device_get_preview_image_resolution ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_device_get_preview_image_buffer
   <Description> This function returns the raw preview image buffer. This
   function can be used instead of relying on the preview image callback
   mechanism, simply place this function in a loop.
   <Parameters>
     aw_ls - library object pointer
     image_buffer_size - size of image_buffer
   <Return Value>
     the raw preview image buffer
    */
 
AW_DECLARE(aw_uint8_t*) aw_ls_device_get_preview_image_buffer ( 
  aw_ls_t* aw_ls,
  aw_size_t* image_buffer_size
);
 
/* <Function> aw_ls_device_get_preview_image
   <Description> This function returns the formatted preview image
   buffer. This function can be used instead of relying on the preview
   image callback mechanism, simply place this function in a loop.
   <Parameters>
     aw_ls - library object pointer
     image_format - format for the requested image
     image_buffer_size - size of image_buffer
   <Return Value>
     the formatted preview image buffer
    */
 
AW_DECLARE(aw_uint8_t*) aw_ls_device_get_preview_image ( 
  aw_ls_t* aw_ls,
  aw_ls_ifmt_t image_format,
  aw_size_t* image_buffer_size
);
 
/* <Function> aw_ls_device_get_preview_image_file
   <Description> This function writes the formatted preview image to a
   file.
   <Parameters>
     aw_ls - library object pointer
     filename - filename for the output formatted image
     image_format - format for the requested image
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_device_get_preview_image_file ( 
  aw_ls_t* aw_ls,
  const aw_char_t* filename,
  aw_ls_ifmt_t image_format
);
 
 
 
 
 
 
/* Scanning Final Image Functions */
 
 
/* <Function> aw_ls_device_get_final_image_available
   <Description> This function returns the availability of the final
   image.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     true if the final image is available
    */
 
AW_DECLARE(BOOL) aw_ls_device_get_final_image_available ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_device_get_final_image_height
   <Description> This function returns the height of the final image.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     the height of the final image
    */
 
AW_DECLARE(aw_int32_t) aw_ls_device_get_final_image_height ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_device_get_final_image_width
   <Description> This function returns the width of the final image.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     the width of the final image
    */
 
AW_DECLARE(aw_int32_t) aw_ls_device_get_final_image_width ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_device_get_final_image_resolution
   <Description> This function returns the resolution of the final image.
   <Parameters>
     aw_ls - library object pointer
   <Return Value>
     the resolution of the final image
    */
 
AW_DECLARE(aw_int32_t) aw_ls_device_get_final_image_resolution ( 
  aw_ls_t* aw_ls
);
 
/* <Function> aw_ls_device_get_final_image_buffer
   <Description> This function returns the raw final image buffer.
   <Parameters>
     aw_ls - library object pointer
     image_buffer_size - size of image_buffer
   <Return Value>
     the raw final image buffer
    */
 
AW_DECLARE(aw_uint8_t*) aw_ls_device_get_final_image_buffer ( 
  aw_ls_t* aw_ls,
  aw_size_t* image_buffer_size
);
 
/* <Function> aw_ls_device_get_final_image
   <Description> This function returns the formatted final image buffer.
   <Parameters>
     aw_ls - library object pointer
     image_format - format for the requested image
     image_buffer_size - size of image_buffer
   <Return Value>
     the formatted final image buffer
    */
 
AW_DECLARE(aw_uint8_t*) aw_ls_device_get_final_image ( 
  aw_ls_t* aw_ls,
  aw_ls_ifmt_t image_format,
  aw_size_t* image_buffer_size
);
 
/* <Function> aw_ls_device_get_final_image_file
   <Description> This function writes the formatted final image to a
   file.
   <Parameters>
     aw_ls - library object pointer
     filename - filename for the output formatted image
     image_format - format for the requested image
   <Return Value>
     None
    */
 
AW_DECLARE(void) aw_ls_device_get_final_image_file ( 
  aw_ls_t* aw_ls,
  const aw_char_t* filename,
  aw_ls_ifmt_t image_format
);
 
 
 
#ifdef __cplusplus
}
#endif
#endif /* _AW_LS_H_ */

Open in new window

Editors IDEsDelphi

Avatar of undefined
Last Comment
tjmadden

8/22/2022 - Mon
Lukasz Zielinski

oh my god over 2000 lines? do you have at least partial convertion to delphi code or complete which does not work?
it would be a lot easier to locate specific parts that cause problem than to convert all of it

ziolko.
atul_parmar

From the above snippet; the first thing you could do is to call the library function aw_ls_create. I have not tested the following code but I believe it can be starting point.

e.g.
Ā  // declare a record type as it is there in your library
Ā  Taw_ls_t = record
Ā  Ā  blablabla : integer; your library.
Ā  end;
Ā  Paw_ls_t = ^Taw_ls_t;

Ā  type
Ā  Ā  aw_ls_createA = function : Paw_ls_t;

......
var
Ā  Handle : THandle;
Ā  LiveScan : Paw_ls_t;
const
Ā  Func: aw_ls_createA = nil;
begin
Ā  Handle := LoadLibrary('MyLib.DLL');
Ā  if (Handle >Ā HINSTANCE_ERROR) then
Ā  begin
Ā  Ā  @Func := GetProcAddress(Handle, 'aw_ls_create');
Ā  Ā  if Assigned(Func) then
Ā  Ā  begin
Ā  Ā  Ā  LiveScan := Func;
Ā  Ā  end;
Ā  end;
Ā  FreeLibrary(Handle);
end;
tjmadden

ASKER
To ziolko - sorry about the length - I just wanted to make sure I did not leave anything out. Ā I did not expect anyone to interpret the whole thing. Ā As far as code - I have tried many things that have not worked and thought it would be best to start from scratch.

atul parmar - I tried the code you supplied - it compiled and ran with no errors but Assigned(Func) is false no matter what I try - this is the same problem that I have been having all along.

The c code to create the object is -- aw_ls_t* aw_ls=aw_ls_create();
to initialize it Ā aw_ls_device_open(aw_ls,{scanner type});

I can make the DLL perform in C but it needs to be integrated into a pure Delphi app----
Thanks so far...
I started with Experts Exchange in 2004 and it's been a mainstay of my professional computing life since. It helped me launch a career as a programmer / Oracle data analyst
William Peck
ASKER CERTIFIED SOLUTION
atul_parmar

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
tjmadden

ASKER
I tried the dll export tool - works great but does not give me any more info than I had from the header file. Ā I spent the past few days trying everything I can think of with no luck. Ā Since it all works in C++ I may need to write it in that---but I think I am just missing something simple.
tjmadden

ASKER
I had already used Dr Bob's headconvert with no luck. Ā I ended up writing a translator in C++ to get it done. Ā  My final post was not addressed at all - very disappointing.