EasyScript C API  3.5.29
Platform Independent C Library for EasyScript ScripTouch Devices
scriptel-easyscript.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * scriptel-easyscript.h - Copyright 2014 - Scriptel Corporation
3  * ----
4  * This header contains the definitions for all of the public structures and
5  * functions for this library.
6  ******************************************************************************/
7 
42 //This set of defines is for the Visual C compiler to define exports/imports for
43 //the shared library.
44 #ifndef SCRIPTEL_EASYSCRIPT_H
45 #define SCRIPTEL_EASYSCRIPT_H
46 
47 #ifdef _MSC_VER
53  #define SCRIPTEL_SYMBOL_EXPORT __declspec(dllexport)
54  //Check to see if we're producing or consuming the library.
55  #ifdef SCRIPTEL_EXPORT_DLL
62  #define SCRIPTEL_SYMBOL_LINKAGE __declspec(dllexport)
63  #else
70  #define SCRIPTEL_SYMBOL_LINKAGE __declspec(dllimport)
71  #endif
72 #else
80  #define SCRIPTEL_SYMBOL_EXPORT extern
89  #define SCRIPTEL_SYMBOL_LINKAGE extern
90 #endif
91 
92 #include <time.h>
93 
98 typedef enum {
111 
115 typedef enum {
151  UNKNOWN
153 
158 typedef struct {
162  const char* protocol_name;
174  char cancel;
178  char pen_up;
183  const char* sentinel;
188  int width;
193  int height;
197  const char value_table[2][2][23];
199 
204 typedef struct {
221  char* sentinel;
223 
227 typedef struct {
235  char* first_name;
239  char* last_name;
244  time_t expiration;
254 
258 typedef struct {
267  time_t expiration;
277 
281 typedef struct {
287 
291 typedef struct {
295  char* state;
299  char* city;
303  char* last_name;
307  char* first_name;
311  char* middle_name;
315  char* address;
321 
325 typedef struct {
333  char* id_number;
337  time_t expiration;
341  time_t birth_date;
343 
347 typedef struct {
359  char* zip_code;
375  char* sex;
379  char* height;
383  char* weight;
387  char* hair_color;
391  char* eye_color;
393 
397 typedef struct {
402 
406 typedef enum {
414 
418 typedef struct {
420  double x;
421  double y;
423 
427 typedef struct {
430  char *model;
431  char *version;
433 
437 typedef struct {
440  char* card_data;
444 
448 typedef union {
454 
459 typedef struct {
463  int length;
469 
474 typedef struct {
476  char* model;
477  char* version;
478  int length;
480  int width;
481  int height;
483 
488  "Standard EasyScript Protocol",
489  '~',
490  '`',
491  '/',
492  ' ',
493  "STSIGN",
494  240,
495  64,
496  {
497  {
498  {0x41,0x43,0x45,0x47,0x49,0x4b,0x4d,0x4f,0x51,0x53,0x55,0x57,0x59,0x21,0x23,0x25,0x26,0x28,0x2b,0x7d,0x22,0x3c,0x00},
499  {0x42,0x44,0x46,0x48,0x4a,0x4c,0x4e,0x50,0x52,0x54,0x56,0x58,0x5a,0x40,0x24,0x5e,0x2a,0x29,0x5f,0x7b,0x7c,0x3a,0x3e}
500  }, {
501  {0x61,0x63,0x65,0x67,0x69,0x6b,0x6d,0x6f,0x71,0x73,0x75,0x77,0x79,0x31,0x33,0x35,0x37,0x39,0x3d,0x5d,0x27,0x2c,0x00},
502  {0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,0x70,0x72,0x74,0x76,0x78,0x7a,0x32,0x34,0x36,0x38,0x30,0x2d,0x5b,0x5c,0x3b,0x2e}
503  }
504  }
505 };
506 
507 
508 
513  "Standard EasyScript Card Swipe Protocol",
514  '!',
515  '\r',
516  "STCARD"
517 };
518 
522 #define SCRIPTEL_ERROR_MAX_LEN 512
523 
524 
529 #define SCRIPTEL_EASYSCRIPT_LIBRARY_VERSION = "3.5.29";
530 
535 #define SCRIPTEL_EASYSCRIPT_BUILD_DATE = "2022-08-30 17:12:23-0400";
536 
553 
569 
581 
594 
602 
608 
615 
623 
629 
636 
644 
652 
662 
669 
670 #endif
SCRIPTEL_SYMBOL_LINKAGE void scriptel_free_cardswipe(scriptel_cardswipe *swipe)
SCRIPTEL_SYMBOL_LINKAGE const char * scriptel_get_card_issuer_name(scriptel_financial_card_vendor vendor)
SCRIPTEL_SYMBOL_LINKAGE void scriptel_remove_event_listener(void(*event_listener)(streaming_event_data *sd))
callback_type
Definition: scriptel-easyscript.h:406
@ CBT_CARD_DATA
card data
Definition: scriptel-easyscript.h:412
@ CBT_CANCEL
the signature has been cancelled
Definition: scriptel-easyscript.h:410
@ CBT_COORDINATE
new new coordinate
Definition: scriptel-easyscript.h:408
@ CBT_NEWSTROKE
notification of a new stroke
Definition: scriptel-easyscript.h:407
@ CBT_METADATA
metadata for the upcoming signature
Definition: scriptel-easyscript.h:409
@ CBT_END_OF_SIGNATURE
the end of the signature has been reached succesfully
Definition: scriptel-easyscript.h:411
static const scriptel_cardswipe_protocol STN_CARDSWIPE_PROTOCOL
The standard card swipe protocol for the ScripTouch series devices.
Definition: scriptel-easyscript.h:512
SCRIPTEL_SYMBOL_LINKAGE char * scriptel_get_last_error()
SCRIPTEL_SYMBOL_LINKAGE scriptel_return_status scriptel_keyboard_parse_signature(scriptel_signature_protocol *sig_protocol, scriptel_signature *signature, char *buffer, int len)
SCRIPTEL_SYMBOL_LINKAGE void scriptel_print_signature(scriptel_signature *signature)
SCRIPTEL_SYMBOL_LINKAGE scriptel_return_status scriptel_keyboard_parse_keycode(const scriptel_signature_protocol *sig_protocol, int code, int shift)
SCRIPTEL_SYMBOL_LINKAGE void scriptel_add_event_listener(void(*event_listener)(streaming_event_data *sd))
SCRIPTEL_SYMBOL_LINKAGE scriptel_return_status scriptel_keyboard_parse_cardswipe(const scriptel_cardswipe_protocol *swipe_protocol, scriptel_cardswipe *swipe, char *buffer, int len)
static const scriptel_signature_protocol STN_SIGNATURE_PROTOCOL
The standard signature protocol for the ScripTouch series devices.
Definition: scriptel-easyscript.h:487
SCRIPTEL_SYMBOL_LINKAGE scriptel_return_status scriptel_keyboard_parse_char(const scriptel_signature_protocol *sig_protocol, char chr)
scriptel_return_status
This enumeration contains a set of return codes that functions in this library may return.
Definition: scriptel-easyscript.h:98
@ SCRIPTEL_RETR_SUCCESS
Definition: scriptel-easyscript.h:109
@ SCRIPTEL_RETR_ERROR
Definition: scriptel-easyscript.h:104
#define SCRIPTEL_SYMBOL_LINKAGE
Definition: scriptel-easyscript.h:89
SCRIPTEL_SYMBOL_LINKAGE void scriptel_free_memory()
SCRIPTEL_SYMBOL_LINKAGE void scriptel_free_signature(scriptel_signature *signature)
SCRIPTEL_SYMBOL_LINKAGE void scriptel_remove_all_event_listeners()
scriptel_financial_card_vendor
This enumeration contains a set of known financial card issuers.
Definition: scriptel-easyscript.h:115
@ DINERS_CLUB
Definition: scriptel-easyscript.h:123
@ VISA
Definition: scriptel-easyscript.h:147
@ UNKNOWN
Definition: scriptel-easyscript.h:151
@ ENROUTE
Definition: scriptel-easyscript.h:135
@ AMERICAN_EXPRESS
Definition: scriptel-easyscript.h:119
@ CARTE_BLANCHE
Definition: scriptel-easyscript.h:127
@ JCB
Definition: scriptel-easyscript.h:139
@ MASTERCARD
Definition: scriptel-easyscript.h:143
@ DISCOVER
Definition: scriptel-easyscript.h:131
SCRIPTEL_SYMBOL_LINKAGE void scriptel_print_cardswipe(scriptel_cardswipe *swipe)
This structure contains information about a card swipe protocol that can be used to decode a card swi...
Definition: scriptel-easyscript.h:204
char * sentinel
Definition: scriptel-easyscript.h:221
char end_stream
Definition: scriptel-easyscript.h:216
char start_stream
Definition: scriptel-easyscript.h:212
char * protocol_name
Definition: scriptel-easyscript.h:208
This structure represents a parsed card swipe.
Definition: scriptel-easyscript.h:437
char * protocol_version
Protocol version that generated this card swipe.
Definition: scriptel-easyscript.h:439
scriptel_identification_card * identification_card
Identification card information if the card was able to be parsed, null otherwise.
Definition: scriptel-easyscript.h:442
char * card_data
Raw captured card data.
Definition: scriptel-easyscript.h:440
scriptel_financial_card * financial_card
Financial card information if the card was able to be parsed, null otherwise.
Definition: scriptel-easyscript.h:441
callback_type type
this will be set to CBT_CARD_DATA
Definition: scriptel-easyscript.h:438
This structure represents a single coordinate.
Definition: scriptel-easyscript.h:418
double y
The vertical coordinate, between 0 and protocol->height.
Definition: scriptel-easyscript.h:421
callback_type type
this will be set to CBT_COORDINATE
Definition: scriptel-easyscript.h:419
double x
The horizontal coordinate, between 0 and protocol->width.
Definition: scriptel-easyscript.h:420
This structure represents a financial card.
Definition: scriptel-easyscript.h:281
scriptel_financial_card_vendor card_issuer
The issuer of the financial card.
Definition: scriptel-easyscript.h:284
scriptel_financial_track_one * track_one
Track one of the financial card.
Definition: scriptel-easyscript.h:282
char number_valid
Whether or not the card number is valid per Luhn's algorithm. 1 for valid, 0 for invalid.
Definition: scriptel-easyscript.h:285
scriptel_financial_track_two * track_two
Track two of the financial card.
Definition: scriptel-easyscript.h:283
This structure represents the first track of a financial card.
Definition: scriptel-easyscript.h:227
time_t expiration
Definition: scriptel-easyscript.h:244
char * last_name
Definition: scriptel-easyscript.h:239
char * first_name
Definition: scriptel-easyscript.h:235
char * service_code
Definition: scriptel-easyscript.h:248
char * account_number
Definition: scriptel-easyscript.h:231
char * discretionary_data
Definition: scriptel-easyscript.h:252
This structure represents the second track of a financial card.
Definition: scriptel-easyscript.h:258
time_t expiration
Definition: scriptel-easyscript.h:267
char * service_code
Definition: scriptel-easyscript.h:271
char * account_number
Definition: scriptel-easyscript.h:262
char * discretionary_data
Definition: scriptel-easyscript.h:275
This structure contains information from an identification card.
Definition: scriptel-easyscript.h:397
scriptel_identification_track_one * track_one
Track one of the identification card.
Definition: scriptel-easyscript.h:398
scriptel_identification_track_two * track_two
Track two of the identification card.
Definition: scriptel-easyscript.h:399
scriptel_identification_track_three * track_three
Track three of the identification card.
Definition: scriptel-easyscript.h:400
This structure represents the first track of an identification card.
Definition: scriptel-easyscript.h:291
char * city
Definition: scriptel-easyscript.h:299
char * middle_name
Definition: scriptel-easyscript.h:311
char * last_name
Definition: scriptel-easyscript.h:303
char * state
Definition: scriptel-easyscript.h:295
char * first_name
Definition: scriptel-easyscript.h:307
char * address
Definition: scriptel-easyscript.h:315
char * discretionary_data
Definition: scriptel-easyscript.h:319
This structure represents track three of an identification card.
Definition: scriptel-easyscript.h:347
char * restrictions
Definition: scriptel-easyscript.h:367
int jurisdiction_version
Definition: scriptel-easyscript.h:355
char * hair_color
Definition: scriptel-easyscript.h:387
char * endorsements
Definition: scriptel-easyscript.h:371
char * zip_code
Definition: scriptel-easyscript.h:359
char * weight
Definition: scriptel-easyscript.h:383
char * height
Definition: scriptel-easyscript.h:379
char * eye_color
Definition: scriptel-easyscript.h:391
char * sex
Definition: scriptel-easyscript.h:375
int cds_version
Definition: scriptel-easyscript.h:351
char * license_class
Definition: scriptel-easyscript.h:363
This structure represents track two of an identification card.
Definition: scriptel-easyscript.h:325
time_t birth_date
Definition: scriptel-easyscript.h:341
char * issuer_number
Definition: scriptel-easyscript.h:329
time_t expiration
Definition: scriptel-easyscript.h:337
char * id_number
Definition: scriptel-easyscript.h:333
This structure contains information about a signature protocol that can be used to decode a signature...
Definition: scriptel-easyscript.h:158
int width
Definition: scriptel-easyscript.h:188
char end_stream
Definition: scriptel-easyscript.h:170
char start_stream
Definition: scriptel-easyscript.h:166
char cancel
Definition: scriptel-easyscript.h:174
const char * protocol_name
Definition: scriptel-easyscript.h:162
int height
Definition: scriptel-easyscript.h:193
char pen_up
Definition: scriptel-easyscript.h:178
const char * sentinel
Definition: scriptel-easyscript.h:183
This structure represents a signature which is made up up the header information as well as zero or m...
Definition: scriptel-easyscript.h:474
scriptel_stroke * strokes
Pointer to the first stroke in the signature.
Definition: scriptel-easyscript.h:479
int width
Virtual width of the coordinate space (maximum x coordinate).
Definition: scriptel-easyscript.h:480
char * protocol_version
The protocol version used to encode/decode this signature.
Definition: scriptel-easyscript.h:475
char * version
The firmware version of the device used to make this firmware.
Definition: scriptel-easyscript.h:477
int length
The number of strokes in this signature.
Definition: scriptel-easyscript.h:478
int height
Virtual height of the coordinate space (maximum y coordinate).
Definition: scriptel-easyscript.h:481
char * model
The model number of the device used to make this signature.
Definition: scriptel-easyscript.h:476
This structure represents a stroke which is made up of contingiously connected coordinates.
Definition: scriptel-easyscript.h:459
int length
Definition: scriptel-easyscript.h:463
scriptel_coordinate * coordinates
Definition: scriptel-easyscript.h:467
This structure represents a data about the signature that will follow.
Definition: scriptel-easyscript.h:427
char * protocol_version
a string comprising the protocol version info
Definition: scriptel-easyscript.h:429
char * version
a string comprising the firmware version
Definition: scriptel-easyscript.h:431
callback_type type
this will be set to CBT_METADATA
Definition: scriptel-easyscript.h:428
char * model
a string comprising the signature pad model
Definition: scriptel-easyscript.h:430
Definition: scriptel-easyscript.h:448
signature_meta_data meta_data
the meta data for the upcoming signature
Definition: scriptel-easyscript.h:450
scriptel_coordinate coordinate
a signature coordinate
Definition: scriptel-easyscript.h:451
scriptel_cardswipe card_swipe
cardswipe information
Definition: scriptel-easyscript.h:452
callback_type type
the type of data contained
Definition: scriptel-easyscript.h:449