629 lines
28 KiB
C
629 lines
28 KiB
C
/* ***************************************************************************** */
|
|
/* * DTI header file Created 12/3/1993 AVP Last modified 3/30/1998 * */
|
|
/* ***************************************************************************** */
|
|
|
|
#ifndef DTI_H_INCLUDED
|
|
#define DTI_H_INCLUDED
|
|
|
|
#include "ams_mg.h"
|
|
|
|
/* -------------------------- Defines for DTI ---------------------------------- */
|
|
|
|
#ifdef DTI_COMPRESSED_ON
|
|
#define DTI_COMPRESSED 1 /* Define to enable use of DTI in compr form */
|
|
#else
|
|
#define DTI_COMPRESSED 0 /* Define to enable use of DTI in compr form */
|
|
#endif
|
|
|
|
#if defined PEGASUS && !defined PSR_DLL
|
|
#define DTI_LRN_SUPPORTFUNC 1 /* Enables functions supporting DTI learning */
|
|
#define DTI_LOAD_FROM_ROM 1 /* Initialize DTI from linked-in resource */
|
|
#define DTILRN_FLY_LEARN 0 /* Enable Fly Learn functions */
|
|
#else
|
|
#ifndef DTI_LRN_SUPPORTFUNC
|
|
#define DTI_LRN_SUPPORTFUNC 1 /* Enables functions supporting DTI learning */
|
|
#endif
|
|
#ifndef DTI_LOAD_FROM_ROM
|
|
#define DTI_LOAD_FROM_ROM 0 /* Initialize DTI from linked-in resource */
|
|
#endif
|
|
#ifndef DTILRN_FLY_LEARN
|
|
#define DTILRN_FLY_LEARN 1 /* Enable Fly Learn functions */
|
|
#endif
|
|
#endif
|
|
|
|
/* -------------------------- Defines for DTI -------------------------------- */
|
|
|
|
#define XT_COUNT 64 /* Number of Type elements */
|
|
#define XZ_COUNT 16 /* Number of sizes */
|
|
#define XH_COUNT 16 /* Number of Height values */
|
|
#define XS_COUNT 16 /* Number of Shift values */
|
|
#define XO_COUNT 32 /* Number of Orientation values */
|
|
|
|
#define XR_COUNT XT_COUNT
|
|
|
|
#define DTI_XTB_SIZE (XT_COUNT/2) /* Size of dti buffer for XR */
|
|
#define DTI_XZB_SIZE (XZ_COUNT/2) /* Size of dti buffer for XZ */
|
|
#define DTI_XHB_SIZE (XH_COUNT/2) /* Size of dti buffer for H values */
|
|
#define DTI_XSB_SIZE (XS_COUNT/2) /* Size of dti buffer for S values */
|
|
#define DTI_XOB_SIZE (XO_COUNT/2) /* Size of dti buffer for O values */
|
|
|
|
#define DTI_MAXVARSPERLET 16 /* How many vars each letter has */
|
|
#define DTI_FIRSTSYM 32 /* First definable DTI sym */
|
|
#define DTI_XR_SIZE 12 /* Max length of DTI prototype*/
|
|
|
|
#define DTI_XT_PALETTE_SIZE 256 /* Number of vectors in 'type' palette */
|
|
#define DTI_XZ_PALETTE_SIZE 256 /* Number of vectors in 'size' palette */
|
|
#define DTI_XH_PALETTE_SIZE 256 /* Number of vectors in 'height' palette */
|
|
#define DTI_XS_PALETTE_SIZE 256 /* Number of vectors in 'shift' palette */
|
|
#define DTI_XO_PALETTE_SIZE 256 /* Number of vectors in 'orient' palette */
|
|
|
|
#define DTI_XT_LSB 0x01 /* LSB bit of pallete num (select of upper/lower half) */
|
|
#define DTI_XH_LSB 0x02 /* LSB bit of pallete num (select of upper/lower half) */
|
|
#define DTI_XS_LSB 0x04 /* LSB bit of pallete num (select of upper/lower half) */
|
|
#define DTI_XZ_LSB 0x08 /* LSB bit of pallete num (select of upper/lower half) */
|
|
#define DTI_XO_LSB 0x10 /* LSB bit of pallete num (select of upper/lower half) */
|
|
|
|
#define ST_CONV_RANGE 128
|
|
#define DTI_NUMSYMBOLS (128+72-DTI_FIRSTSYM) /* How many letters in DTI */
|
|
|
|
#if DTI_COMPRESSED
|
|
#define DTI_DTI_OBJTYPE "DTI5" /* Object type of current DTI */
|
|
#define DTI_DTI_VER "1.02" /* Version of current DTI */
|
|
#else
|
|
#define DTI_DTI_OBJTYPE "DTI4" /* Object type of current DTI */
|
|
#define DTI_DTI_VER "2.00" /* Version of current DTI */
|
|
#endif
|
|
|
|
#define DTI_DTI_TYPE "EngM" /* Object type of current DTI */
|
|
#define DTI_ID_LEN 4 /* LEngth of ID string in DTI */
|
|
#define DTI_FNAME_LEN 32 /* Pathname of dti len */
|
|
|
|
#define DTI_CAP_BIT 0x01 /* Var capitalization flagiting */
|
|
#define DTI_PICT_OFS 1 /* Offset from right of picture group */
|
|
#define DTI_OFS_WW 4 /* Offset from right of WritingWay field in var_veis */
|
|
#define DTI_RESTRICTED_SET 0x10 /* Veis flag of restricted prototype set */
|
|
#define DTI_VEX_MASK 0xF0 /* Vex mask */
|
|
#define DTI_VEX_OFFS 4 /* Offset of vex in var header */
|
|
#define DTI_NXR_MASK 0x0F /* Mask of num var field */
|
|
#define DTI_XRTYPE_OFFS 4 /* Offset of XR type high bits in xrp->penl field*/
|
|
#define DTI_PENL_MASK 0x0F /* Mask of penl ion xrp->penl field*/
|
|
|
|
#define DTI_SIZEOFVEXT (DTI_NUMSYMBOLS*DTI_MAXVARSPERLET*sizeof(_UCHAR)) // Size of learn vex table
|
|
#define DTI_SIZEOFCAPT (DTI_NUMSYMBOLS*DTI_MAXVARSPERLET/8) // Size of capitalization table
|
|
|
|
/* ---------------- Definitions for OS to REC conversions ------------------ */
|
|
|
|
#define REC_BritishPound ((_UCHAR)0x7f)
|
|
#define REC_A_umlaut ((_UCHAR)0x80)
|
|
#define REC_a_umlaut ((_UCHAR)0x81)
|
|
#define REC_O_umlaut ((_UCHAR)0x82)
|
|
#define REC_o_umlaut ((_UCHAR)0x83)
|
|
#define REC_U_umlaut ((_UCHAR)0x84)
|
|
#define REC_u_umlaut ((_UCHAR)0x85)
|
|
#define REC_ESZET ((_UCHAR)0x86)
|
|
|
|
#define REC_A_grave ((_UCHAR)0x87)
|
|
#define REC_a_grave ((_UCHAR)0x88)
|
|
#define REC_A_circumflex ((_UCHAR)0x89)
|
|
#define REC_a_circumflex ((_UCHAR)0x8a)
|
|
#define REC_C_cedilla ((_UCHAR)0x8b)
|
|
#define REC_c_cedilla ((_UCHAR)0x8c)
|
|
#define REC_E_grave ((_UCHAR)0x8d)
|
|
#define REC_e_grave ((_UCHAR)0x8e)
|
|
#define REC_E_acute ((_UCHAR)0x8f)
|
|
#define REC_e_acute ((_UCHAR)0x90)
|
|
#define REC_E_circumflex ((_UCHAR)0x91)
|
|
#define REC_e_circumflex ((_UCHAR)0x92)
|
|
#define REC_I_circumflex ((_UCHAR)0x93)
|
|
#define REC_i_circumflex ((_UCHAR)0x94)
|
|
#define REC_I_umlaut ((_UCHAR)0x95)
|
|
#define REC_i_umlaut ((_UCHAR)0x96)
|
|
#define REC_O_circumflex ((_UCHAR)0x97)
|
|
#define REC_o_circumflex ((_UCHAR)0x98)
|
|
#define REC_U_grave ((_UCHAR)0x99)
|
|
#define REC_u_grave ((_UCHAR)0x9a)
|
|
#define REC_U_circumflex ((_UCHAR)0x9b)
|
|
#define REC_u_circumflex ((_UCHAR)0x9c)
|
|
#define REC_e_umlaut ((_UCHAR)0x9d)
|
|
#define REC_DIV_sign ((_UCHAR)0x9e)
|
|
#define REC_n_numero ((_UCHAR)0x9f)
|
|
|
|
#define REC_A_angstrem ((_UCHAR)0xa0)
|
|
#define REC_a_angstrem ((_UCHAR)0xa1)
|
|
#define REC_Yenn_sign ((_UCHAR)0xa2)
|
|
|
|
#define REC_DblBrace_left ((_UCHAR)0xa3)
|
|
#define REC_DblBrace_right ((_UCHAR)0xa4)
|
|
//#define REC_Paragraph_sign ((_UCHAR)0xa5)
|
|
#define REC_Copyright_sign ((_UCHAR)0xa5)
|
|
|
|
#define REC_Y_umlaut ((_UCHAR)0xa6)
|
|
#define REC_y_umlaut ((_UCHAR)0xa7)
|
|
#define REC_N_tilda ((_UCHAR)0xa8)
|
|
#define REC_n_tilda ((_UCHAR)0xa9)
|
|
|
|
//#define REC_Cent_sign ((_UCHAR)0xaa)
|
|
#define REC_TradeName_sign ((_UCHAR)0xaa)
|
|
|
|
#define REC_Question_inv ((_UCHAR)0xab)
|
|
#define REC_Exclamation_inv ((_UCHAR)0xac)
|
|
|
|
#define REC_A_acute ((_UCHAR)0xad)
|
|
#define REC_a_acute ((_UCHAR)0xae)
|
|
#define REC_I_acute ((_UCHAR)0xaf)
|
|
#define REC_i_acute ((_UCHAR)0xb0)
|
|
#define REC_I_grave ((_UCHAR)0xb1)
|
|
#define REC_i_grave ((_UCHAR)0xb2)
|
|
#define REC_O_acute ((_UCHAR)0xb3)
|
|
#define REC_o_acute ((_UCHAR)0xb4)
|
|
#define REC_O_grave ((_UCHAR)0xb5)
|
|
#define REC_o_grave ((_UCHAR)0xb6)
|
|
#define REC_U_acute ((_UCHAR)0xb7)
|
|
#define REC_u_acute ((_UCHAR)0xb8)
|
|
#define REC_A_tilda ((_UCHAR)0xb9)
|
|
#define REC_a_tilda ((_UCHAR)0xba)
|
|
#define REC_O_tilda ((_UCHAR)0xbb)
|
|
#define REC_o_tilda ((_UCHAR)0xbc)
|
|
#define REC_E_umlaut ((_UCHAR)0xbd)
|
|
#define REC_oe_letter ((_UCHAR)0xbe)
|
|
#define REC_OE_letter ((_UCHAR)0xbf)
|
|
#define REC_euro_currency ((unsigned char)0xc0)
|
|
|
|
/* These definitions are for Windows OS: */
|
|
|
|
#define OS_euro_currency ((unsigned char)0x80)
|
|
#define OS_BritishPound ((unsigned char)0xa3)
|
|
#define OS_A_umlaut ((unsigned char)0xc4)
|
|
#define OS_a_umlaut ((unsigned char)0xe4)
|
|
#define OS_O_umlaut ((unsigned char)0xd6)
|
|
#define OS_o_umlaut ((unsigned char)0xf6)
|
|
#define OS_U_umlaut ((unsigned char)0xdc)
|
|
#define OS_u_umlaut ((unsigned char)0xfc)
|
|
#define OS_ESZET ((unsigned char)0xdf)
|
|
|
|
#define OS_A_grave ((unsigned char)0xc0)
|
|
#define OS_a_grave ((unsigned char)0xe0)
|
|
#define OS_A_circumflex ((unsigned char)0xc2)
|
|
#define OS_a_circumflex ((unsigned char)0xe2)
|
|
#define OS_C_cedilla ((unsigned char)0xc7)
|
|
#define OS_c_cedilla ((unsigned char)0xe7)
|
|
#define OS_E_grave ((unsigned char)0xc8)
|
|
#define OS_e_grave ((unsigned char)0xe8)
|
|
#define OS_E_acute ((unsigned char)0xc9)
|
|
#define OS_e_acute ((unsigned char)0xe9)
|
|
#define OS_E_circumflex ((unsigned char)0xca)
|
|
#define OS_e_circumflex ((unsigned char)0xea)
|
|
#define OS_I_circumflex ((unsigned char)0xce)
|
|
#define OS_i_circumflex ((unsigned char)0xee)
|
|
#define OS_I_umlaut ((unsigned char)0xcf)
|
|
#define OS_i_umlaut ((unsigned char)0xef)
|
|
#define OS_O_circumflex ((unsigned char)0xd4)
|
|
#define OS_o_circumflex ((unsigned char)0xf4)
|
|
#define OS_U_grave ((unsigned char)0xd9)
|
|
#define OS_u_grave ((unsigned char)0xf9)
|
|
#define OS_U_circumflex ((unsigned char)0xdb)
|
|
#define OS_u_circumflex ((unsigned char)0xfb)
|
|
#define OS_e_umlaut ((unsigned char)0xeb)
|
|
//#define OS_N_numero ((unsigned char)0xaa)
|
|
//#define OS_n_numero ((unsigned char)0xba)
|
|
|
|
#define OS_A_angstrem ((unsigned char)0xc5)
|
|
#define OS_a_angstrem ((unsigned char)0xe5)
|
|
|
|
#define OS_Yenn_sign ((unsigned char)0xa5)
|
|
|
|
#define OS_DblBrace_left ((unsigned char)0xab)
|
|
#define OS_DblBrace_right ((unsigned char)0xbb)
|
|
//#define OS_Paragraph_sign ((unsigned char)0xb6)
|
|
|
|
#define OS_Copyright_sign ((unsigned char)0xa9)
|
|
|
|
#define OS_Y_umlaut ((unsigned char)0x9f)
|
|
#define OS_y_umlaut ((unsigned char)0xff)
|
|
#define OS_N_tilda ((unsigned char)0xd1)
|
|
#define OS_n_tilda ((unsigned char)0xf1)
|
|
|
|
//#define OS_Cent_sign ((unsigned char)0xa2)
|
|
|
|
#define OS_TradeName_sign ((unsigned char)0xae)
|
|
|
|
#define OS_Question_inv ((unsigned char)0xbf)
|
|
#define OS_Exclamation_inv ((unsigned char)0xa1)
|
|
|
|
#define OS_A_acute ((unsigned char)0xc1)
|
|
#define OS_a_acute ((unsigned char)0xe1)
|
|
#define OS_I_acute ((unsigned char)0xcd)
|
|
#define OS_i_acute ((unsigned char)0xed)
|
|
#define OS_I_grave ((unsigned char)0xcc)
|
|
#define OS_i_grave ((unsigned char)0xec)
|
|
#define OS_O_acute ((unsigned char)0xd3)
|
|
#define OS_o_acute ((unsigned char)0xf3)
|
|
#define OS_O_grave ((unsigned char)0xd2)
|
|
#define OS_o_grave ((unsigned char)0xf2)
|
|
#define OS_U_acute ((unsigned char)0xda)
|
|
#define OS_u_acute ((unsigned char)0xfa)
|
|
#define OS_A_tilda ((unsigned char)0xc3)
|
|
#define OS_a_tilda ((unsigned char)0xe3)
|
|
#define OS_O_tilda ((unsigned char)0xd5)
|
|
#define OS_o_tilda ((unsigned char)0xf5)
|
|
#define OS_E_umlaut ((unsigned char)0xcb)
|
|
#define OS_oe_letter ((unsigned char)0x9c)
|
|
#define OS_OE_letter ((unsigned char)0x8c)
|
|
#define OS_ae_letter ((unsigned char)198)
|
|
#define OS_AE_letter ((unsigned char)230)
|
|
|
|
#define OS_MUL_sign ((unsigned char)215)
|
|
#define OS_DIV_sign ((unsigned char)247)
|
|
|
|
#define OS_O_crossed ((unsigned char)216)
|
|
#define OS_o_crossed ((unsigned char)248)
|
|
|
|
#define OS_Y_acute ((unsigned char)221)
|
|
#define OS_y_acute ((unsigned char)253)
|
|
|
|
|
|
//#if 0 /*Macintosh definitions - don't use them for now */
|
|
|
|
/* Definitions for OS (Macintosh Roman) FOR_INTERNATIONAL characters */
|
|
|
|
#define MAC_euro_currency ((_UCHAR)0xf0) // FIXME or do we care ??? MR, april 2000
|
|
#define MAC_BritishPound ((_UCHAR)0xa3)
|
|
#define MAC_A_umlaut ((_UCHAR)0x80)
|
|
#define MAC_a_umlaut ((_UCHAR)0x8a)
|
|
#define MAC_O_umlaut ((_UCHAR)0x85)
|
|
#define MAC_o_umlaut ((_UCHAR)0x9a)
|
|
#define MAC_U_umlaut ((_UCHAR)0x86)
|
|
#define MAC_u_umlaut ((_UCHAR)0x9f)
|
|
#define MAC_ESZET ((_UCHAR)0xa7)
|
|
|
|
#define MAC_A_grave ((_UCHAR)0xcb)
|
|
#define MAC_a_grave ((_UCHAR)0x88)
|
|
#define MAC_A_circumflex ((_UCHAR)0xe5)
|
|
#define MAC_a_circumflex ((_UCHAR)0x89)
|
|
#define MAC_C_cedilla ((_UCHAR)0x82)
|
|
#define MAC_c_cedilla ((_UCHAR)0x8d)
|
|
#define MAC_E_grave ((_UCHAR)0xe9)
|
|
#define MAC_e_grave ((_UCHAR)0x8f)
|
|
#define MAC_E_acute ((_UCHAR)0x83)
|
|
#define MAC_e_acute ((_UCHAR)0x8e)
|
|
#define MAC_E_circumflex ((_UCHAR)0xe6)
|
|
#define MAC_e_circumflex ((_UCHAR)0x90)
|
|
#define MAC_I_circumflex ((_UCHAR)0xeb)
|
|
#define MAC_i_circumflex ((_UCHAR)0x94)
|
|
#define MAC_I_umlaut ((_UCHAR)0xec)
|
|
#define MAC_i_umlaut ((_UCHAR)0x95)
|
|
#define MAC_O_circumflex ((_UCHAR)0xef)
|
|
#define MAC_o_circumflex ((_UCHAR)0x99)
|
|
#define MAC_U_grave ((_UCHAR)0xf4)
|
|
#define MAC_u_grave ((_UCHAR)0x9d)
|
|
#define MAC_U_circumflex ((_UCHAR)0xf3)
|
|
#define MAC_u_circumflex ((_UCHAR)0x9e)
|
|
#define MAC_e_umlaut ((_UCHAR)0x91)
|
|
#define MAC_N_numero ((_UCHAR)0xbb)
|
|
#define MAC_n_numero ((_UCHAR)0xbc)
|
|
|
|
#define MAC_A_angstrem ((_UCHAR)0x81)
|
|
#define MAC_a_angstrem ((_UCHAR)0x8c)
|
|
#define MAC_Yenn_sign ((_UCHAR)0xb4)
|
|
|
|
#define MAC_DblBrace_left ((_UCHAR)0xc7)
|
|
#define MAC_DblBrace_right ((_UCHAR)0xc8)
|
|
//#define MAC_Paragraph_sign ((_UCHAR)0xa6)
|
|
|
|
#define MAC_Y_umlaut ((_UCHAR)0xd9)
|
|
#define MAC_y_umlaut ((_UCHAR)0xd8)
|
|
#define MAC_N_tilda ((_UCHAR)0x84)
|
|
#define MAC_n_tilda ((_UCHAR)0x96)
|
|
|
|
//#define MAC_Cent_sign ((_UCHAR)0xa2)
|
|
#define MAC_Question_inv ((_UCHAR)0xc0)
|
|
#define MAC_Exclamation_inv ((_UCHAR)0xc1)
|
|
|
|
#define MAC_A_acute ((_UCHAR)0xe7)
|
|
#define MAC_a_acute ((_UCHAR)0x87)
|
|
#define MAC_I_acute ((_UCHAR)0xea)
|
|
#define MAC_i_acute ((_UCHAR)0x92)
|
|
#define MAC_I_grave ((_UCHAR)0xed)
|
|
#define MAC_i_grave ((_UCHAR)0x93)
|
|
#define MAC_O_acute ((_UCHAR)0xee)
|
|
#define MAC_o_acute ((_UCHAR)0x97)
|
|
#define MAC_O_grave ((_UCHAR)0xf1)
|
|
#define MAC_o_grave ((_UCHAR)0x98)
|
|
#define MAC_U_acute ((_UCHAR)0xf2)
|
|
#define MAC_u_acute ((_UCHAR)0x9c)
|
|
#define MAC_A_tilda ((_UCHAR)0xcc)
|
|
#define MAC_a_tilda ((_UCHAR)0x8b)
|
|
#define MAC_O_tilda ((_UCHAR)0xcd)
|
|
#define MAC_o_tilda ((_UCHAR)0x9b)
|
|
#define MAC_E_umlaut ((_UCHAR)0xe8)
|
|
#define MAC_oe_letter ((_UCHAR)0xcf)
|
|
#define MAC_OE_letter ((_UCHAR)0xce)
|
|
|
|
#define MAC_Copyright_sign ((_UCHAR)0xa9)
|
|
#define MAC_TradeName_sign ((_UCHAR)0xa8)
|
|
#define MAC_Y_acute ((_UCHAR)0)
|
|
#define MAC_y_acute ((_UCHAR)0)
|
|
|
|
//#endif /*Macintosh definitions - don't use them for now */
|
|
|
|
/* ------------------- Defines for ROM tables -------------------------------- */
|
|
|
|
#if defined (FOR_FRENCH)
|
|
#define CAP_TABLE_NUM_LET 1
|
|
#define CAP_TABLE_NUM_VAR 1
|
|
#elif defined (FOR_GERMAN)
|
|
#define CAP_TABLE_NUM_LET 30
|
|
#define CAP_TABLE_NUM_VAR 9
|
|
#elif defined (FOR_INTERNATIONAL)
|
|
#define CAP_TABLE_NUM_LET 1
|
|
#define CAP_TABLE_NUM_VAR 1
|
|
#elif defined (FOR_SWED)
|
|
#define CAP_TABLE_NUM_LET 29
|
|
#define CAP_TABLE_NUM_VAR 9
|
|
#else
|
|
#define CAP_TABLE_NUM_LET 26
|
|
#define CAP_TABLE_NUM_VAR 9
|
|
#endif
|
|
|
|
/* -------------------------- Types definitions ------------------------------ */
|
|
|
|
typedef _UCHAR cap_table_type[CAP_TABLE_NUM_LET][CAP_TABLE_NUM_VAR];
|
|
|
|
typedef _UCHAR dti_xrt_type[XT_COUNT][XT_COUNT/2];/* Reference XR Corr table */
|
|
typedef dti_xrt_type _PTR p_dti_xrt_type;
|
|
|
|
typedef struct { /* Header of DTI file */
|
|
_CHAR object_type[DTI_ID_LEN]; /* Type file (now DTI1) */
|
|
_CHAR type[DTI_ID_LEN]; /* Type of DTI (EngM, EngP..) */
|
|
_CHAR version[DTI_ID_LEN]; /* Version number */
|
|
|
|
_ULONG dte_offset; /* File offset of DTE part */
|
|
_ULONG dte_len; /* Length of DTE part of data */
|
|
_ULONG dte_chsum; /* Checksum of DTE part */
|
|
|
|
_ULONG xrt_offset; /* File offset of XRT part */
|
|
_ULONG xrt_len; /* Length of XRT part of data */
|
|
_ULONG xrt_chsum; /* Checksum of XRT part */
|
|
|
|
_ULONG pdf_offset; /* Start of PDF part in DTI */
|
|
_ULONG pdf_len; /* Length of PDF part */
|
|
_ULONG pdf_chsum; /* ChekSum of PDF part */
|
|
|
|
_ULONG pict_offset; /* Offset of pictures from the beg of DTI file */
|
|
_ULONG pict_len; /* Length of pictures */
|
|
_ULONG pict_chsum; /* CheckSum of pictures */
|
|
} dti_header_type, _PTR p_dti_header_type;
|
|
|
|
typedef struct { /* DTI memory descriptor */
|
|
_CHAR dti_fname[DTI_FNAME_LEN]; /* File name of loaded DTI */
|
|
_CHAR object_type[DTI_ID_LEN]; /* Type file (now DTI1) */
|
|
_CHAR type[DTI_ID_LEN]; /* Type of DTI (EngM, EngP..) */
|
|
_CHAR version[DTI_ID_LEN]; /* Version number */
|
|
|
|
_ULONG h_dte; /* Handle of dte memory */
|
|
p_UCHAR p_dte; /* Pointer to locked dte mem */
|
|
_ULONG h_ram_dte; /* Handle of dte memory */
|
|
p_UCHAR p_ram_dte; /* Pointer to RAM dte addresses */
|
|
_ULONG dte_chsum; /* CheckSum of dte memory */
|
|
_ULONG h_vex; /* Handle of vex learning buffer */
|
|
p_UCHAR p_vex; /* Pointer of vex learning buffer */
|
|
|
|
_ULONG h_xrt; /* Handle of reference xrtabl */
|
|
p_UCHAR p_xrt; /* Pointer to locked xrtabl */
|
|
_ULONG xrt_chsum; /* CheckSum of xrtabl memory */
|
|
|
|
_ULONG h_pdf; /* Same for pdf */
|
|
p_UCHAR p_pdf;
|
|
p_UCHAR p_ram_pdf;
|
|
_ULONG pdf_chsum;
|
|
|
|
_ULONG h_pict; /* Same for pictures */
|
|
p_UCHAR p_pict;
|
|
p_UCHAR p_ram_pict;
|
|
_ULONG pict_chsum;
|
|
|
|
// #if HWR_SYSTEM != MACINTOSH
|
|
// #define LRM_FNAME_LEN 128
|
|
//
|
|
// _CHAR szLrmName[LRM_FNAME_LEN];
|
|
// _BOOL bLoadLRM;
|
|
// _BOOL bSaveLRM;
|
|
// #endif /*HWR_SYSTEM != MACINTOSH*/
|
|
|
|
} dti_descr_type, _PTR p_dti_descr_type;
|
|
|
|
#if DTI_COMPRESSED // ------------- Compressed DTI header -____--------------
|
|
|
|
typedef struct {
|
|
_ULONG len;
|
|
_USHORT sym_index[256];
|
|
_UCHAR xt_palette[DTI_XT_PALETTE_SIZE][XT_COUNT];
|
|
_UCHAR xz_palette[DTI_XZ_PALETTE_SIZE][XZ_COUNT];
|
|
_UCHAR xh_palette[DTI_XH_PALETTE_SIZE][XH_COUNT];
|
|
_UCHAR xs_palette[DTI_XS_PALETTE_SIZE][XS_COUNT];
|
|
_UCHAR xo_palette[DTI_XO_PALETTE_SIZE][XO_COUNT];
|
|
} dte_index_type, _PTR p_dte_index_type;
|
|
|
|
typedef struct { /* Prototype XR element definition */
|
|
_UCHAR type; /* Temp: main type definition */
|
|
// _UCHAR height; /* Temp: main h of xr */
|
|
_UCHAR attr; /* Attributes (flag bits) */
|
|
_UCHAR penl; /* Penalty value for element */
|
|
_UCHAR xtc; /* Type(64) Line of XR corr vaues */
|
|
_UCHAR xhc; /* Height(16) Line of H corr values */
|
|
_UCHAR xsc; /* Shift(16) Line of S corr values */
|
|
_UCHAR xzc; /* Size(16) Line of Z corr vaues */
|
|
_UCHAR xoc; /* Orientation(16) of O corr values */
|
|
} xrp_type, _PTR p_xrp_type;
|
|
|
|
typedef struct { /* Header of prototype in DTI */
|
|
_UCHAR nx_and_vex; /* Num xrs and VarExtraInfo */
|
|
_UCHAR veis; /* Additional VEXs */
|
|
_UCHAR pos; /* Box relative position */
|
|
_UCHAR size; /* Box relative size */
|
|
xrp_type xrs[1]; /* Prototype XRs */
|
|
} dte_var_header_type, _PTR p_dte_var_header_type;
|
|
|
|
typedef struct { /* Header of symbol in DTI */
|
|
_UCHAR num_vars; /* Number of variants of sym */
|
|
_UCHAR loc_vs_border; /* Sym location vs border */
|
|
_UCHAR let; /* Temp: symbol itself */
|
|
_UCHAR language; /* Temp: language of symbol */
|
|
} dte_sym_header_type, _PTR p_dte_sym_header_type;
|
|
|
|
#else // ------------- Not compressed DTI header ----------------------------
|
|
|
|
typedef _ULONG let_table_type[256]; /* Header of DTE (sym loc table) */
|
|
typedef let_table_type _PTR p_let_table_type;
|
|
|
|
typedef struct { /* Header of symbol in DTI */
|
|
_UCHAR num_vars; /* Number of variants of sym */
|
|
_UCHAR loc_vs_border; /* Sym location vs border */
|
|
_UCHAR let; /* Temp: symbol itself */
|
|
_UCHAR language; /* Temp: language of symbol */
|
|
_UCHAR var_lens[DTI_MAXVARSPERLET]; /* Array of var lens */
|
|
_UCHAR var_vexs[DTI_MAXVARSPERLET]; /* Array of VarExtraInfo's */
|
|
_UCHAR var_veis[DTI_MAXVARSPERLET]; /* Array of Additional VEXs */
|
|
_UCHAR var_pos[DTI_MAXVARSPERLET]; /* Array of Additional VEXs */
|
|
_UCHAR var_size[DTI_MAXVARSPERLET]; /* Array of Additional VEXs */
|
|
} dte_sym_header_type, _PTR p_dte_sym_header_type;
|
|
|
|
typedef struct { /* Prototype XR element definition */
|
|
_UCHAR type; /* Temp: main type definition */
|
|
_UCHAR height; /* Temp: main h of xr */
|
|
_UCHAR attr; /* Attributes (flag bits) */
|
|
_UCHAR penl; /* Penalty value for element */
|
|
_UCHAR xtc[DTI_XTB_SIZE]; /* Type(64) Line of XR corr vaues */
|
|
_UCHAR xhc[DTI_XHB_SIZE]; /* Height(16) Line of H corr values */
|
|
_UCHAR xsc[DTI_XSB_SIZE]; /* Shift(16) Line of S corr values */
|
|
_UCHAR xzc[DTI_XZB_SIZE]; /* Size(16) Line of Z corr vaues */
|
|
_UCHAR xoc[DTI_XOB_SIZE]; /* Orientation(16) of O corr values */
|
|
} xrp_type, _PTR p_xrp_type;
|
|
|
|
#endif // ------------- Not compressed DTI header ----------------------------
|
|
|
|
typedef struct {
|
|
_USHORT len; /* length of groups' descriptions */
|
|
_UCHAR symbol; /* ASCII code of symbol */
|
|
_UCHAR num_groups; /* number of groups */
|
|
/* groups are placed after this header */
|
|
} pict_symb_header_type, _PTR p_pict_symb_header_type;
|
|
|
|
typedef struct {
|
|
_USHORT len; /* length of pictures' descriptions */
|
|
_UCHAR groupno; /* number of group */
|
|
_UCHAR num_pictures; /* number of groups */
|
|
/* pictures are placed after this header */
|
|
} pict_group_header_type, _PTR p_pict_group_header_type;
|
|
|
|
typedef struct {
|
|
_USHORT len; /* length of pictures' descriptions */
|
|
/* traces are placed after this header */
|
|
} pict_picture_header_type, _PTR p_pict_picture_header_type;
|
|
|
|
typedef struct {
|
|
_UCHAR x;
|
|
_UCHAR y;
|
|
} pict_point_type, _PTR p_pict_point_type;
|
|
|
|
typedef _UCHAR dte_vex_type[DTI_NUMSYMBOLS][DTI_MAXVARSPERLET];/* Type for learning vex buffer */
|
|
typedef dte_vex_type _PTR p_dte_vex_type; /* Type for learning vex buffer */
|
|
|
|
/* -------------------------- Prototypes ------------------------------------- */
|
|
|
|
#ifdef DTE_CONVERTER
|
|
|
|
#define dti_load dti_load_2
|
|
#define dti_unload dti_unload_2
|
|
#define dti_save dti_save_2
|
|
#define dti_lock dti_lock_2
|
|
#define dti_unlock dti_unlock_2
|
|
|
|
#define LetXrLength LetXrLength_2
|
|
|
|
#define GetNumVarsOfChar GetNumVarsOfChar_2
|
|
#define GetVarOfChar GetVarOfChar_2
|
|
#define GetVarLenOfChar GetVarLenOfChar_2
|
|
#define GetVarVex GetVarVex_2
|
|
#define GetVarExtra GetVarExtra_2
|
|
#define SetVarVex SetVarVex_2
|
|
#define SetDefVexes SetDefVexes_2
|
|
#define SetVarCounter SetVarCounter_2
|
|
#define GetVarGroup GetVarGroup_2
|
|
|
|
#define OSToRec OSToRec_2
|
|
#define RecToOS RecToOS_2
|
|
|
|
#endif // DTE_CONVERTER
|
|
|
|
_INT dti_load(p_CHAR dtiname, _INT what_to_load, p_VOID _PTR dp);
|
|
_INT dti_unload(p_VOID _PTR dp);
|
|
_INT dti_save(p_CHAR fname, _INT what_to_save, p_VOID dp);
|
|
_INT dti_lock(p_VOID dti_ptr);
|
|
_INT dti_unlock(p_VOID dti_ptr);
|
|
|
|
//#if PG_DEBUG
|
|
//_VOID LoadLRMIfAny( p_dti_descr_type dti_descr,
|
|
// _CHAR szLrmName[LRM_FNAME_LEN],
|
|
// _BOOL bLoadLRM, _BOOL bSaveLRM );
|
|
//#endif /*PG_DEBUG*/
|
|
|
|
_VOID LetXrLength(p_UCHAR min, p_UCHAR max, _SHORT let, _VALUE hdte);
|
|
|
|
_INT CheckVarActive(_UCHAR chIn, _UCHAR nv, _UCHAR ww, p_VOID dtp);
|
|
_INT GetNumVarsOfChar(_UCHAR chIn, p_VOID dtp);
|
|
_INT GetVarOfChar(_UCHAR chIn, _UCHAR nv, p_xrp_type xvb, p_VOID dtp);
|
|
_INT GetVarLenOfChar(_UCHAR chIn, _UCHAR nv, p_VOID dtp);
|
|
_INT GetVarVex(_UCHAR chIn, _UCHAR nv, p_VOID dtp);
|
|
_INT GetVarExtra(_UCHAR chIn, _UCHAR nv, p_VOID dtp);
|
|
_INT SetVarVex(_UCHAR chIn, _UCHAR nv, _UCHAR vex, p_VOID dtp);
|
|
_INT SetDefVexes(p_VOID dtp);
|
|
_INT SetVarCounter(_UCHAR chIn, _UCHAR nv, _UCHAR cnt, p_VOID dtp);
|
|
_INT GetVarGroup(_UCHAR chIn, _UCHAR nv, p_VOID dtp);
|
|
|
|
_INT GetPairCapGroup(_UCHAR let, _UCHAR groupNum, _UCHAR EnableVariantSet);
|
|
_INT SetDefCaps(p_VOID dtp);
|
|
_INT SetVarCap(_UCHAR chIn, _UCHAR nv, _UCHAR cap, p_VOID dtp);
|
|
_INT GetVarCap(_UCHAR chIn, _UCHAR nv, p_VOID dtp);
|
|
_INT GetVarRewcapAllow(_UCHAR chIn, _UCHAR nv, p_VOID dtp);
|
|
|
|
_INT GetAutoCorr(_UCHAR chIn, _UCHAR nv, p_VOID dtp);
|
|
_INT GetShiftCorr(_UCHAR chIn, _UCHAR nv,_UCHAR nXr, _UCHAR nIn, p_VOID dtp);
|
|
_INT GetSymDescriptor(_UCHAR sym, _UCHAR numv, p_dte_sym_header_type _PTR psfc, p_VOID dtp);
|
|
_INT GetVarPosSize(_UCHAR chIn, _UCHAR nv, p_VOID dtp);
|
|
#if DTI_COMPRESSED
|
|
_INT GetSymIndexTable(_UCHAR sym, _UCHAR numv, p_dte_index_type _PTR pi, p_VOID dtp);
|
|
_INT GetVarHeader(_UCHAR sym, _UCHAR var_num, p_dte_var_header_type _PTR ppvh, p_VOID dtp);
|
|
#endif
|
|
/* ---------------- Definitions for OS to REC conversions ------------------ */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
_INT OSToRec(_INT sym);
|
|
_INT RecToOS(_INT sym);
|
|
_INT MacToOS(_INT sym);
|
|
_INT OSToMac(_INT sym);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
/* For FOR_INTERNATIONAL versions: changes the os-rec table */
|
|
/* and charset used: */
|
|
|
|
#define TBL_AMERICAN 0
|
|
#define TBL_FOR_INTERNATIONAL 1
|
|
#define TBL_INTER_NODIACR 2
|
|
|
|
_VOID SetOsRecTableAndCharSet( _INT interTable );
|
|
_INT SetFOR_INTERNATIONALCharSet( _INT interTable, p_VOID rcv, p_VOID xrd );
|
|
|
|
/* --------------------------------------------------------------------------- */
|
|
|
|
#endif
|
|
/* ************************************************************************ */
|
|
/* * End Of All ... * */
|
|
/* ************************************************************************ */
|
|
|