frankb 0ecd5de
/***************************************************************************
frankb 0ecd5de
 * CT-API library for the REINER SCT cyberJack pinpad/e-com USB.
frankb 0ecd5de
 * Copyright (C) 2001  REINER SCT
frankb 0ecd5de
 * Author: Matthias Bruestle
frankb 0ecd5de
 * Support: support@reiner-sct.com
frankb 0ecd5de
 *
frankb 0ecd5de
 * This library is free software; you can redistribute it and/or
frankb 0ecd5de
 * modify it under the terms of the GNU Lesser General Public
frankb 0ecd5de
 * License as published by the Free Software Foundation; either
frankb 0ecd5de
 * version 2.1 of the License, or (at your option) any later version.
frankb 0ecd5de
 *
frankb 0ecd5de
 * This library is distributed in the hope that it will be useful,
frankb 0ecd5de
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
frankb 0ecd5de
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
frankb 0ecd5de
 * Lesser General Public License for more details.
frankb 0ecd5de
 *
frankb 0ecd5de
 * You should have received a copy of the GNU Lesser General Public
frankb 0ecd5de
 * License along with this library; if not, write to the Free Software
frankb 0ecd5de
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
frankb 0ecd5de
 *
frankb 0ecd5de
 * File: ctapi.h
frankb 0ecd5de
 * CVS: $Id$
frankb 0ecd5de
 ***************************************************************************/
frankb 0ecd5de
frankb 0ecd5de
#ifndef H_CTAPI
frankb 0ecd5de
#define H_CTAPI
frankb 0ecd5de
frankb 0ecd5de
/* More uniqe defines */
frankb 0ecd5de
frankb 0ecd5de
#define CT_API_AD_HOST		2
frankb 0ecd5de
#define CT_API_AD_REMOTE	5
frankb 0ecd5de
frankb 0ecd5de
#define CT_API_AD_CT		1
frankb 0ecd5de
#define CT_API_AD_ICC1		0
frankb 0ecd5de
#define CT_API_AD_ICC2		2
frankb 0ecd5de
#define CT_API_AD_ICC3		3
frankb 0ecd5de
#define CT_API_AD_ICC4		4
frankb 0ecd5de
#define CT_API_AD_ICC5		5
frankb 0ecd5de
#define CT_API_AD_ICC6		6
frankb 0ecd5de
#define CT_API_AD_ICC7		7
frankb 0ecd5de
#define CT_API_AD_ICC8		8
frankb 0ecd5de
#define CT_API_AD_ICC9		9
frankb 0ecd5de
#define CT_API_AD_ICC10		10
frankb 0ecd5de
#define CT_API_AD_ICC11		11
frankb 0ecd5de
#define CT_API_AD_ICC12		12
frankb 0ecd5de
#define CT_API_AD_ICC13		13
frankb 0ecd5de
#define CT_API_AD_ICC14		14
frankb 0ecd5de
frankb 0ecd5de
#define CT_API_RV_OK		0
frankb 0ecd5de
#define CT_API_RV_ERR_INVALID	-1
frankb 0ecd5de
#define CT_API_RV_ERR_CT	-8
frankb 0ecd5de
#define CT_API_RV_ERR_TRANS	-10
frankb 0ecd5de
#define CT_API_RV_ERR_MEMORY	-11
frankb 0ecd5de
#define CT_API_RV_ERR_HOST	-127
frankb 0ecd5de
#define CT_API_RV_ERR_HTSI	-128
frankb 0ecd5de
frankb 0ecd5de
/* MUSCLE style defines */
frankb 0ecd5de
frankb 0ecd5de
#define OK			 0	/* Success */
frankb 0ecd5de
#define ERR_INVALID		-1	/* Invalid Data */
frankb 0ecd5de
#define ERR_CT			-8	/* CT Error */
frankb 0ecd5de
#define ERR_TRANS		-10	/* Transmission Error */
frankb 0ecd5de
#define ERR_MEMORY		-11	/* Memory Allocate Error */
frankb 0ecd5de
#define ERR_HOST		-127	/* Host Error */
frankb 0ecd5de
#define ERR_HTSI		-128	/* HTSI Error */
frankb 0ecd5de
 
frankb 0ecd5de
#define PORT_COM1		0	/* COM 1 */
frankb 0ecd5de
#define PORT_COM2		1	/* COM 2 */
frankb 0ecd5de
#define PORT_COM3		2	/* COM 3 */
frankb 0ecd5de
#define PORT_COM4		3	/* COM 4 */
frankb 0ecd5de
#define PORT_Printer		4	/* Printer Port (MAC) */
frankb 0ecd5de
#define PORT_Modem		5	/* Modem Port (MAC)   */
frankb 0ecd5de
#define PORT_LPT1		6	/* LPT 1 */
frankb 0ecd5de
#define PORT_LPT2		7	/* LPT 2 */
frankb 0ecd5de
frankb 0ecd5de
#define CT			1
frankb 0ecd5de
#define HOST			2
frankb 0ecd5de
frankb 0ecd5de
// Short
frankb 0ecd5de
#define CJ_CTAPI_MAX_LENC	4+1+255+1
frankb 0ecd5de
#define CJ_CTAPI_MAX_LENR	256+2
frankb 0ecd5de
// Extended
frankb 0ecd5de
//#define CJ_CTAPI_MAX_LENC	5+2+65535+2
frankb 0ecd5de
//#define CJ_CTAPI_MAX_LENR	65536+2
frankb 0ecd5de
// Maximum for CTAPI
frankb 0ecd5de
//#define CJ_CTAPI_MAX_LENC	65535
frankb 0ecd5de
//#define CJ_CTAPI_MAX_LENR	65535
frankb 0ecd5de
frankb 0ecd5de
frankb 0ecd5de
typedef unsigned char IU8;
frankb 0ecd5de
typedef unsigned short IU16;
frankb 0ecd5de
frankb 0ecd5de
typedef signed char IS8;
frankb 0ecd5de
typedef signed short IS16;
frankb 0ecd5de
frankb 0ecd5de
#ifdef __cplusplus
frankb 0ecd5de
extern "C" {
frankb 0ecd5de
#endif /* __cplusplus */
frankb 0ecd5de
frankb 0ecd5de
IS8 CT_init( IU16 ctn, IU16 pn );
frankb 0ecd5de
IS8 CT_data( IU16 ctn, IU8 *dad, IU8 *sad, IU16 lenc, IU8 *command, IU16 *lenr,
frankb 0ecd5de
	IU8 *response );
frankb 0ecd5de
IS8 CT_close( IU16 ctn );
frankb 0ecd5de
frankb 0ecd5de
/* Proprietary extension */
frankb 0ecd5de
IS8 CT_keycb( IU16 ctn, void (* cb)(IU16 ctn, IU8 status) );
frankb 0ecd5de
frankb 0ecd5de
#ifdef __cplusplus
frankb 0ecd5de
}
frankb 0ecd5de
#endif /* __cplusplus */
frankb 0ecd5de
#endif /* H_CTAPI */
frankb 0ecd5de