home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / program / grfx_snd / tifflib / source / t4.h < prev    next >
C/C++ Source or Header  |  1992-11-08  |  8KB  |  268 lines

  1. #ifndef __T4_H__
  2. #define __T4_H__
  3. /*
  4.  * @(#)TIFF/t4.h 1.05, Copyright (c) Sam Leffler, Dieter Linde, Oct 12 1990
  5.  *
  6.  *      fax.h
  7.  *
  8.  *      Copyright (C) 1989 by Jef Poskanzer.
  9.  *
  10.  * Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided
  11.  * that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting
  12.  * documentation.  This software is provided "as is" without express or implied warranty.
  13.  */
  14.  
  15. /*
  16.  * The code + length are placed next to each other and first in the structure so that comparisons can be
  17.  * done 32-bits at a time (instead of as two 16-bit compares) -- on machines where it is worthwhile.
  18.  */
  19. typedef struct    tableentry {
  20.         short     code;
  21.         short     length;
  22.         short     count;
  23.         short    tabid;
  24. } tableentry;
  25.  
  26. /*
  27.  * Table identifiers are coded so that the decoding algorithm can check the sign bit to decide if the
  28.  * current code is "complete".
  29.  */
  30. #define TWTABLE         -2
  31. #define TBTABLE         -1
  32. #define NOTABLE         0
  33. #define MWTABLE         1
  34. #define MBTABLE         2
  35. #define EXTABLE         3
  36. #define MINTABID        TWTABLE
  37. #define MAXTABID        EXTABLE
  38.  
  39. #define EOL             0x001
  40. /*
  41. extern u_char    TIFFFax3wtab[8192];
  42. extern u_char    TIFFFax3btab[8192];
  43. */
  44. #ifdef    G3CODES
  45. tableentry    TIFFFax3wcodes[] = {
  46.     { 0x1b,  5,   64, MWTABLE },
  47.     { 0x12,  5,  128, MWTABLE },
  48.     { 0x17,  6,  192, MWTABLE },
  49.     { 0x37,  7,  256, MWTABLE },
  50.     { 0x36,  8,  320, MWTABLE },
  51.     { 0x37,  8,  384, MWTABLE },
  52.     { 0x64,  8,  448, MWTABLE },
  53.     { 0x65,  8,  512, MWTABLE },
  54.     { 0x68,  8,  576, MWTABLE },
  55.     { 0x67,  8,  640, MWTABLE },
  56.     { 0xcc,  9,  704, MWTABLE },
  57.     { 0xcd,  9,  768, MWTABLE },
  58.     { 0xd2,  9,  832, MWTABLE },
  59.     { 0xd3,  9,  896, MWTABLE },
  60.     { 0xd4,  9,  960, MWTABLE },
  61.     { 0xd5,  9, 1024, MWTABLE },
  62.     { 0xd6,  9, 1088, MWTABLE },
  63.     { 0xd7,  9, 1152, MWTABLE },
  64.     { 0xd8,  9, 1216, MWTABLE },
  65.     { 0xd9,  9, 1280, MWTABLE },
  66.     { 0xda,  9, 1344, MWTABLE },
  67.     { 0xdb,  9, 1408, MWTABLE },
  68.     { 0x98,  9, 1472, MWTABLE },
  69.     { 0x99,  9, 1536, MWTABLE },
  70.     { 0x9a,  9, 1600, MWTABLE },
  71.     { 0x18,  6, 1664, MWTABLE },
  72.     { 0x9b,  9, 1728, MWTABLE },
  73.     
  74.     { 0x08, 11, 1792, EXTABLE },
  75.     { 0x0c, 11, 1856, EXTABLE },
  76.     { 0x0d, 11, 1920, EXTABLE },
  77.     { 0x12, 12, 1984, EXTABLE },
  78.     { 0x13, 12, 2048, EXTABLE },
  79.     { 0x14, 12, 2112, EXTABLE },
  80.     { 0x15, 12, 2176, EXTABLE },
  81.     { 0x16, 12, 2240, EXTABLE },
  82.     { 0x17, 12, 2304, EXTABLE },
  83.     { 0x1c, 12, 2368, EXTABLE },
  84.     { 0x1d, 12, 2432, EXTABLE },
  85.     { 0x1e, 12, 2496, EXTABLE },
  86.     { 0x1f, 12, 2560, EXTABLE },
  87.     
  88.     { 0x35,  8,    0, TWTABLE },
  89.     { 0x07,  6,    1, TWTABLE },
  90.     { 0x07,  4,    2, TWTABLE },
  91.     { 0x08,  4,    3, TWTABLE },
  92.     { 0x0b,  4,    4, TWTABLE },
  93.     { 0x0c,  4,    5, TWTABLE },
  94.     { 0x0e,  4,    6, TWTABLE },
  95.     { 0x0f,  4,    7, TWTABLE },
  96.     { 0x13,  5,    8, TWTABLE },
  97.     { 0x14,  5,    9, TWTABLE },
  98.     { 0x07,  5,   10, TWTABLE },
  99.     { 0x08,  5,   11, TWTABLE },
  100.     { 0x08,  6,   12, TWTABLE },
  101.     { 0x03,  6,   13, TWTABLE },
  102.     { 0x34,  6,   14, TWTABLE },
  103.     { 0x35,  6,   15, TWTABLE },
  104.     { 0x2a,  6,   16, TWTABLE },
  105.     { 0x2b,  6,   17, TWTABLE },
  106.     { 0x27,  7,   18, TWTABLE },
  107.     { 0x0c,  7,   19, TWTABLE },
  108.     { 0x08,  7,   20, TWTABLE },
  109.     { 0x17,  7,   21, TWTABLE },
  110.     { 0x03,  7,   22, TWTABLE },
  111.     { 0x04,  7,   23, TWTABLE },
  112.     { 0x28,  7,   24, TWTABLE },
  113.     { 0x2b,  7,   25, TWTABLE },
  114.     { 0x13,  7,   26, TWTABLE },
  115.     { 0x24,  7,   27, TWTABLE },
  116.     { 0x18,  7,   28, TWTABLE },
  117.     { 0x02,  8,   29, TWTABLE },
  118.     { 0x03,  8,   30, TWTABLE },
  119.     { 0x1a,  8,   31, TWTABLE },
  120.     { 0x1b,  8,   32, TWTABLE },
  121.     { 0x12,  8,   33, TWTABLE },
  122.     { 0x13,  8,   34, TWTABLE },
  123.     { 0x14,  8,   35, TWTABLE },
  124.     { 0x15,  8,   36, TWTABLE },
  125.     { 0x16,  8,   37, TWTABLE },
  126.     { 0x17,  8,   38, TWTABLE },
  127.     { 0x28,  8,   39, TWTABLE },
  128.     { 0x29,  8,   40, TWTABLE },
  129.     { 0x2a,  8,   41, TWTABLE },
  130.     { 0x2b,  8,   42, TWTABLE },
  131.     { 0x2c,  8,   43, TWTABLE },
  132.     { 0x2d,  8,   44, TWTABLE },
  133.     { 0x04,  8,   45, TWTABLE },
  134.     { 0x05,  8,   46, TWTABLE },
  135.     { 0x0a,  8,   47, TWTABLE },
  136.     { 0x0b,  8,   48, TWTABLE },
  137.     { 0x52,  8,   49, TWTABLE },
  138.     { 0x53,  8,   50, TWTABLE },
  139.     { 0x54,  8,   51, TWTABLE },
  140.     { 0x55,  8,   52, TWTABLE },
  141.     { 0x24,  8,   53, TWTABLE },
  142.     { 0x25,  8,   54, TWTABLE },
  143.     { 0x58,  8,   55, TWTABLE },
  144.     { 0x59,  8,   56, TWTABLE },
  145.     { 0x5a,  8,   57, TWTABLE },
  146.     { 0x5b,  8,   58, TWTABLE },
  147.     { 0x4a,  8,   59, TWTABLE },
  148.     { 0x4b,  8,   60, TWTABLE },
  149.     { 0x32,  8,   61, TWTABLE },
  150.     { 0x33,  8,   62, TWTABLE },
  151.     { 0x34,  8,   63, TWTABLE },
  152. };
  153.  
  154. tableentry    TIFFFax3bcodes[] = {
  155.     { 0x0f, 10,   64, MBTABLE },
  156.     { 0xc8, 12,  128, MBTABLE },
  157.     { 0xc9, 12,  192, MBTABLE },
  158.     { 0x5b, 12,  256, MBTABLE },
  159.     { 0x33, 12,  320, MBTABLE },
  160.     { 0x34, 12,  384, MBTABLE },
  161.     { 0x35, 12,  448, MBTABLE },
  162.     { 0x6c, 13,  512, MBTABLE },
  163.     { 0x6d, 13,  576, MBTABLE },
  164.     { 0x4a, 13,  640, MBTABLE },
  165.     { 0x4b, 13,  704, MBTABLE },
  166.     { 0x4c, 13,  768, MBTABLE },
  167.     { 0x4d, 13,  832, MBTABLE },
  168.     { 0x72, 13,  896, MBTABLE },
  169.     { 0x73, 13,  960, MBTABLE },
  170.     { 0x74, 13, 1024, MBTABLE },
  171.     { 0x75, 13, 1088, MBTABLE },
  172.     { 0x76, 13, 1152, MBTABLE },
  173.     { 0x77, 13, 1216, MBTABLE },
  174.     { 0x52, 13, 1280, MBTABLE },
  175.     { 0x53, 13, 1344, MBTABLE },
  176.     { 0x54, 13, 1408, MBTABLE },
  177.     { 0x55, 13, 1472, MBTABLE },
  178.     { 0x5a, 13, 1536, MBTABLE },
  179.     { 0x5b, 13, 1600, MBTABLE },
  180.     { 0x64, 13, 1664, MBTABLE },
  181.     { 0x65, 13, 1728, MBTABLE },
  182.     
  183.     { 0x08, 11, 1792, EXTABLE },
  184.     { 0x0c, 11, 1856, EXTABLE },
  185.     { 0x0d, 11, 1920, EXTABLE },
  186.     { 0x12, 12, 1984, EXTABLE },
  187.     { 0x13, 12, 2048, EXTABLE },
  188.     { 0x14, 12, 2112, EXTABLE },
  189.     { 0x15, 12, 2176, EXTABLE },
  190.     { 0x16, 12, 2240, EXTABLE },
  191.     { 0x17, 12, 2304, EXTABLE },
  192.     { 0x1c, 12, 2368, EXTABLE },
  193.     { 0x1d, 12, 2432, EXTABLE },
  194.     { 0x1e, 12, 2496, EXTABLE },
  195.     { 0x1f, 12, 2560, EXTABLE },
  196.     
  197.     { 0x37, 10,    0, TBTABLE },
  198.     { 0x02,  3,    1, TBTABLE },
  199.     { 0x03,  2,    2, TBTABLE },
  200.     { 0x02,  2,    3, TBTABLE },
  201.     { 0x03,  3,    4, TBTABLE },
  202.     { 0x03,  4,    5, TBTABLE },
  203.     { 0x02,  4,    6, TBTABLE },
  204.     { 0x03,  5,    7, TBTABLE },
  205.     { 0x05,  6,    8, TBTABLE },
  206.     { 0x04,  6,    9, TBTABLE },
  207.     { 0x04,  7,   10, TBTABLE },
  208.     { 0x05,  7,   11, TBTABLE },
  209.     { 0x07,  7,   12, TBTABLE },
  210.     { 0x04,  8,   13, TBTABLE },
  211.     { 0x07,  8,   14, TBTABLE },
  212.     { 0x18,  9,   15, TBTABLE },
  213.     { 0x17, 10,   16, TBTABLE },
  214.     { 0x18, 10,   17, TBTABLE },
  215.     { 0x08, 10,   18, TBTABLE },
  216.     { 0x67, 11,   19, TBTABLE },
  217.     { 0x68, 11,   20, TBTABLE },
  218.     { 0x6c, 11,   21, TBTABLE },
  219.     { 0x37, 11,   22, TBTABLE },
  220.     { 0x28, 11,   23, TBTABLE },
  221.     { 0x17, 11,   24, TBTABLE },
  222.     { 0x18, 11,   25, TBTABLE },
  223.     { 0xca, 12,   26, TBTABLE },
  224.     { 0xcb, 12,   27, TBTABLE },
  225.     { 0xcc, 12,   28, TBTABLE },
  226.     { 0xcd, 12,   29, TBTABLE },
  227.     { 0x68, 12,   30, TBTABLE },
  228.     { 0x69, 12,   31, TBTABLE },
  229.     { 0x6a, 12,   32, TBTABLE },
  230.     { 0x6b, 12,   33, TBTABLE },
  231.     { 0xd2, 12,   34, TBTABLE },
  232.     { 0xd3, 12,   35, TBTABLE },
  233.     { 0xd4, 12,   36, TBTABLE },
  234.     { 0xd5, 12,   37, TBTABLE },
  235.     { 0xd6, 12,   38, TBTABLE },
  236.     { 0xd7, 12,   39, TBTABLE },
  237.     { 0x6c, 12,   40, TBTABLE },
  238.     { 0x6d, 12,   41, TBTABLE },
  239.     { 0xda, 12,   42, TBTABLE },
  240.     { 0xdb, 12,   43, TBTABLE },
  241.     { 0x54, 12,   44, TBTABLE },
  242.     { 0x55, 12,   45, TBTABLE },
  243.     { 0x56, 12,   46, TBTABLE },
  244.     { 0x57, 12,   47, TBTABLE },
  245.     { 0x64, 12,   48, TBTABLE },
  246.     { 0x65, 12,   49, TBTABLE },
  247.     { 0x52, 12,   50, TBTABLE },
  248.     { 0x53, 12,   51, TBTABLE },
  249.     { 0x24, 12,   52, TBTABLE },
  250.     { 0x37, 12,   53, TBTABLE },
  251.     { 0x38, 12,   54, TBTABLE },
  252.     { 0x27, 12,   55, TBTABLE },
  253.     { 0x28, 12,   56, TBTABLE },
  254.     { 0x58, 12,   57, TBTABLE },
  255.     { 0x59, 12,   58, TBTABLE },
  256.     { 0x2b, 12,   59, TBTABLE },
  257.     { 0x2c, 12,   60, TBTABLE },
  258.     { 0x5a, 12,   61, TBTABLE },
  259.     { 0x66, 12,   62, TBTABLE },
  260.     { 0x67, 12,   63, TBTABLE },
  261. };
  262. #else
  263. extern tableentry     TIFFFax3wcodes[];
  264. extern tableentry    TIFFFax3bcodes[];
  265. #endif
  266.  
  267. #endif    /* __T4_H__ */
  268.