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.