home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / CSAPE32.ARJ / INCLUDE / DIGUTIL.H < prev    next >
C/C++ Source or Header  |  1990-10-30  |  4KB  |  111 lines

  1. /*
  2.     digutil.h
  3.  
  4.     % declarations for DIG utility functions.
  5.  
  6.     5/16/88  by Ted.
  7.  
  8.     OWL 1.2
  9.     Copyright (c) 1986, 1987, 1988 by Oakland Group, Inc.
  10.     ALL RIGHTS RESERVED.
  11.  
  12.     Revision History:
  13.     -----------------
  14.      3/10/89 ted    Added dig_SubHsecs
  15.      2/14/90 ted    Added dig_squeezecmap and pmhist_func & pmcswap_func macros.
  16.      3/10/90 ted    Added pmnearcol_func macro for dig_squeezecmap.
  17.  
  18.      3/28/90 jmd    ansi-fied
  19.      5/08/90 jmd    added underscores to func macros for vms compiler
  20.      7/32/90 ted    added BJ's klex & btree stuff.
  21.     10/31/90 ted    made dig_powof2 return unsigned long instead of long.
  22. */
  23. /* -------------------------------------------------------------------------- */
  24.  
  25. /* DIGCURSB.C */
  26. extern void        DIGPRIV dig_getcursbox(win_type win, cursortype ctype, opbox *cursboxp);
  27.  
  28. /* DIGPOW2.C */
  29. extern unsigned long DIGPRIV dig_powof2(byte power);
  30.  
  31. /* DIGSHSEC.C */
  32. extern unsigned dig_SubHsecs(unsigned tstart, unsigned time);
  33.  
  34. /* DIGFLIP.C */
  35. extern void        dig_flipshort(unsigned short *usp);
  36. extern byte     DIGPRIV dig_testbyteorder(void);
  37.  
  38. /* DIGSCMAP.C */
  39. extern void        DIGPRIV dig_shiftcmap(ocolmap_type cmap, int nright);
  40.  
  41. /* DIGCURSL.C */
  42. extern void        DIGPRIV dig_getcurslines(cursortype ctype, opcoord nlines, opcoord *startp, opcoord *endp);
  43.  
  44. /* DIGSQCM.C */
  45. #define pmhist_func(fname)            void fname(pmap_type _pmap, unsigned short *_histtab);
  46. typedef pmhist_func ((*pmhist_fptr));
  47.  
  48. #define pmcswap_func(fname)            void fname(pmap_type _pmap, byte *_swaptab);
  49. typedef pmcswap_func ((*pmcswap_fptr));
  50.  
  51. #define pmnearcol_func(fname)        opixval fname(orgb_struct *_rgb, ocolmap_type _cmap);
  52. typedef pmnearcol_func ((*pmnearcol_fptr));
  53.  
  54. extern void        DIGPRIV dig_squeezecmap(pmap_type _pmap, ocolmap_type _cmap, 
  55.                                 ocolmap_type _crange, pmhist_fptr _pmhist, 
  56.                                 pmcswap_fptr _pmcswap, pmnearcol_fptr _nearest);
  57.  
  58.  
  59. /* DIGPMCLI.C */
  60. extern boolean    DIGPRIV copypm_clip(ptd_struct *ptd, pmap_type pixmap, opbox *pmboxp, opbox *scrboxp, opcoord *pmxp, opcoord *pmyp);
  61.  
  62. /* DIGBTREE.C */
  63.  
  64. typedef enum _btreecode {
  65.     BTREE_OK = 0,
  66.     BTREE_DUP = 1,
  67.     BTREE_ERROR = 2
  68. } btreecode;
  69.  
  70. typedef struct _btnode {
  71.     struct _btnode *lchild;
  72.     struct _btnode *rchild;
  73.     VOID *data;
  74. } *btnode_type;
  75.  
  76. #define btree_nodecomp_func(fname)   int fname(VOID *_data1, VOID *_data2)
  77. typedef btree_nodecomp_func ((*btree_nodecomp_fptr));
  78.  
  79. #define btree_keycomp_func(fname)    int fname(VOID *_node, byte *_key)
  80. typedef btree_keycomp_func ((*btree_keycomp_fptr));
  81.  
  82. #define btree_freertn_func(fname)    void fname(VOID *_data)
  83. typedef btree_freertn_func ((*btree_freertn_fptr));
  84.  
  85. typedef struct btree {
  86.     btnode_type root;        /* Root node */
  87.     btree_nodecomp_fptr nodecomp;
  88.     btree_keycomp_fptr keycomp;
  89.     btree_freertn_fptr freertn;
  90. } *btree_type;
  91.  
  92. btree_type        DIGPRIV btree_Open(btree_nodecomp_fptr nodecomp, btree_keycomp_fptr keycomp, btree_freertn_fptr freertn);
  93. void            DIGPRIV btree_Close(btree_type bt);
  94. btreecode        DIGPRIV btree_Insert(btree_type bt, VOID *data);
  95. VOID          * DIGPRIV btree_Get(btree_type bt, VOID *key);
  96.  
  97. /* DIGKLEX.C */
  98. typedef VOID *klex_type;
  99. typedef int scancode_type;
  100.  
  101. klex_type        DIGPRIV klex_Open(scancode_type *def_map);
  102. void            DIGPRIV klex_Close(klex_type kl);
  103. int                DIGPRIV klex_AddCode(klex_type kl, byte *seq, int seqlen, scancode_type code);
  104. void            DIGPRIV klex_InByte(klex_type kl, byte b);
  105. void            DIGPRIV klex_TimeOut(klex_type kl);
  106. boolean            DIGPRIV klex_ShouldTimeOut(klex_type kl);
  107. scancode_type    DIGPRIV klex_ReadScanCode(klex_type kl);
  108. boolean            DIGPRIV klex_ScanCodeReady(klex_type kl);
  109. /* -------------------------------------------------------------------------- */
  110.  
  111.