This header defines the structs, constants, Types and registers of the SMT multi-touch library.
More...
Data Structures |
| struct | tagTOUCHBLOB |
| struct | tagTOUCHEVENT |
Defines |
| #define | _SMT_H_ |
| #define | DEFAULT_NCOL_SENSOR 640 |
| #define | DEFAULT_NROW_SENSOR 480 |
| #define | DEFAULT_NCOL_PROC 320 |
| #define | DEFAULT_NROW_PROC 240 |
| #define | MAX_COORD 100 |
| #define | MAXCOL 640 |
| #define | MAXROW 480 |
| #define | MAXFILTERSIZE 10 |
| #define | MAXTOUCH 100 |
| #define | MAX_EVENT 100 |
| #define | SWIPE_LEFT 1 |
| #define | SWIPE_RIGHT 2 |
| #define | SWIPE_UP 3 |
| #define | SWIPE_DOWN 4 |
Typedefs |
| typedef struct tagTOUCHBLOB | TOUCHBLOB |
| typedef struct tagTOUCHEVENT | TOUCHEVENT |
Enumerations |
| enum | TOUCH_EVENTS {
E_NOEVENT,
E_FINGER_DOWN,
E_FINGER_UP,
E_FINGER_MOVE,
E_FINGER_DRAG,
E_TOUCH_START,
E_TAP,
E_RIGHT_TAP,
E_DOUBLE_TAP,
E_FINGER_HOLD,
E_TOUCH_END,
E_ROTATE,
E_SCALE,
E_FLICK,
E_NFINGER_MOVE,
E_NFINGER_SWIPE,
E_NFINGER_TAP
} |
| enum | TOUCH_STATES {
TSTATE_IDLE,
TSTATE_DOUBLE_TAP,
TSTATE_UP,
TSTATE_INITPRESS,
TSTATE_MULTITOUCH,
TSTATE_DOWN,
TSTATE_DRAG,
TSTATE_HOLD
} |
Functions |
| void | initsmt (void) |
| void | setoffset (void) |
| void | runsmt (void) |
| void | preprocessing (void) |
| void | cclabel (void) |
| void | blobprops (void) |
| void | identtouch (void) |
| void | tracktouch (void) |
| void | gonext (void) |
| void | runsmtwin32 (int *x, int *y, int ntouch) |
| void | gesture_recognition (void) |
| int | flick (void) |
| int | rotate (void) |
| int | scale (void) |
| void | state_machine (void) |
| void | initeventlist (void) |
| void | notifyevent (int eventid, TOUCHBLOB *touch, TOUCHEVENT *tevent, int event_index, float x, float y, float dx, float dy, int num_touch, int info) |
| void | initblob (TOUCHBLOB *b) |
| void | copyblob (TOUCHBLOB *src, TOUCHBLOB *dest) |
| void | addtouch (int x, int y) |
| void | event_to_string (char *s, int e) |
| void | savesnapshot (void) |
| void | copyeventlist (TOUCHEVENT *src, TOUCHEVENT *dst, int n) |
| void | computecaliparams (float *x, float *y, float *xd, float *yd, float *cali) |
| float | computecalipos (float x, float y, float a, float b, float c) |
| float | linearscale (float x, float min_x, float max_x, float min_y, float max_y) |
| int | iminarray (int *x, int n) |
| int | imaxarray (int *x, int n) |
| float | fminarray (float *x, int n) |
| float | fmaxarray (float *y, int n) |
| float | favgarray (int *x, int n) |
| int | computedist2 (int x1, int y1, int x2, int y2) |
| void | meanfilter (int *Iy, int *Ix, int numrow, int numcol, int n) |
| void | meanfilter_threshold (int *Iy, int *Ix, int numrow, int numcol, int n, int apply_filter_threshold) |
| unsigned int | uimin (unsigned int x, unsigned int y) |
| unsigned int | uimax (unsigned int x, unsigned int y) |
| void | imresizenearest (int *x, int nrowx, int ncolx, int *y, int nrowy, int ncoly) |
| void | imresizebilinear (int *x, int nrowx, int ncolx, int *y, int nrowy, int ncoly) |
| void | imresizebicubic (int *x, int nrowx, int ncolx, int *y, int nrowy, int ncoly) |
| float | interpcc (float v1, float v2, float v3, float v4, float d) |
| int | ilimit (int x, int l, int u) |
| float | flimit (float x, float l, float u) |
| float | ucmse (unsigned char *x, unsigned char *y, int n) |
| float | fpower (float a, int b) |
| void | icopyarray (int *src, int *dst, int nlength) |
| void | savearray (FILE *fp, const char *filename, int *x, int n) |
| unsigned char | ucminarray (unsigned char *x, int n) |
| signed char | scminarray (signed char *x, int n) |
| unsigned char | ucmaxarray (unsigned char *y, int n) |
| void | cwise2rwise (int *src, int *dst, int row, int col) |
| void | rwise2cwise (int *src, int *dst, int row, int col) |
| void | backgroundfiltering (unsigned char *src, unsigned char *dst, int row, int col) |
Variables |
| int | mt_do_smoothing |
| int | mt_do_highpass |
| int | mt_do_smoothing2 |
| int | mt_ncol_sensor |
| | original size of sensor (of columns of camera or pad)
|
| int | mt_nrow_sensor |
| | original size of sensor (of rows of camera or pad)
|
| int | mt_ncol_proc |
| int | mt_nrow_proc |
| int | mt_sensor_data [MAXCOL *MAXROW] |
| int | mt_sensor_data_temp [MAXCOL *MAXROW] |
| int | mt_resized [MAXCOL *MAXROW] |
| int | mt_offset [MAXCOL *MAXROW] |
| int | mt_diff [MAXCOL *MAXROW] |
| | After background filter.
|
| int | mt_smoothing [MAXCOL *MAXROW] |
| int | mt_highpass [MAXCOL *MAXROW] |
| int | mt_highpass_smoothing [MAXCOL *MAXROW] |
| | Edge detection. Useful for DI system.
|
| float | mt_amplification [MAXCOL *MAXROW] |
| int | mt_BW [MAXCOL *MAXROW] |
| int | mt_LABEL [MAXCOL *MAXROW] |
| | Labeling result.
|
| int | mt_nevent |
| | number of events for current time
|
| int | mt_noldevent |
| | number of old events
|
| int | mt_ntouch |
| | number of valid touches
|
| int | mt_nlabel |
| | number of blobs
|
| int | mt_noldtouch |
| | number of previous valid touches
|
| int | mt_masksize |
| | Filter size of smoothing filter.
|
| int | mt_masksize1 |
| | Filter size of edge detection filter.
|
| float | mt_min_amplification_range |
| float | mt_max_amplification_range |
| int | mt_npower |
| int | mt_max_sensor |
| | Max value of sensor data, usually 255.
|
| int | mt_bwthreshold1 |
| | Obsolete.
|
| int | mt_bwthreshold2 |
| | Upper bound of amplification result.
|
| int | mt_th_min_area |
| int | mt_th_max_area |
| | mt_th_min_area < VALID_TOUCH_SIZE < mt_th_max_area
|
| float | mt_th_dist2 |
| | Threshold to determine if a touch point moves or not.
|
| int | mt_angle |
| float | mt_scale |
| int | mt_oldangle |
| float | mt_oldscale |
| float | mt_xmin_n |
| float | mt_xmax_n |
| float | mt_ymin_n |
| float | mt_ymax_n |
| int | mt_id_ex |
| | counter to assign id_ex to a touch point
|
| TOUCHBLOB | BLOBS [MAXTOUCH] |
| TOUCHBLOB | TOUCH [MAXTOUCH] |
| TOUCHBLOB | OLD_TOUCH [MAXTOUCH] |
| TOUCHEVENT | EVENTLIST [MAX_EVENT] |
| TOUCHEVENT | EVENTLIST_OLD [MAX_EVENT] |
| float | mt_calibration_params [6] |
This header defines the structs, constants, Types and registers of the SMT multi-touch library.