summaryrefslogtreecommitdiffstats
path: root/plug-ins/file-faxg3/g3.h
diff options
context:
space:
mode:
Diffstat (limited to 'plug-ins/file-faxg3/g3.h')
-rw-r--r--plug-ins/file-faxg3/g3.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/plug-ins/file-faxg3/g3.h b/plug-ins/file-faxg3/g3.h
new file mode 100644
index 0000000..50c7e16
--- /dev/null
+++ b/plug-ins/file-faxg3/g3.h
@@ -0,0 +1,55 @@
+/* #ident "@(#)g3.h 3.1 95/08/30 Copyright (c) Gert Doering" */
+
+#ifndef NULL
+#define NULL 0L
+#endif
+
+/* nr_bits is set to ( bit_length MOD FBITS ) by build_g3_tree,
+ * nr_pels is the number of pixels to write for that code,
+ * bit_code is the code itself (msb2lsb), and bit_length its length
+ */
+
+struct g3code { int nr_bits, nr_pels, bit_code, bit_length; };
+
+/* tables for makeup / terminal codes white / black, extended m_codes */
+extern struct g3code t_white[], m_white[], t_black[], m_black[], m_ext[];
+
+/* The number of bits looked up simultaneously determines the amount
+ * of memory used by the program - some values:
+ * 10 bits : 87 Kbytes, 8 bits : 20 Kbytes
+ * 5 bits : 6 Kbytes, 1 bit : 4 Kbytes
+ * - naturally, using less bits is also slower...
+ */
+
+/*
+#define FBITS 5
+#define BITM 0x1f
+*/
+
+#define FBITS 8
+#define BITM 0xff
+
+/*
+#define FBITS 12
+#define BITM 0xfff
+*/
+
+#define BITN 1<<FBITS
+
+struct g3_tree { int nr_bits;
+ struct g3_tree * nextb[ BITN ];
+ };
+
+#define g3_leaf g3code
+
+extern void tree_add_node ( struct g3_tree *p, struct g3code * g3c,
+ int bit_code, int bit_length );
+extern void build_tree ( struct g3_tree ** p, struct g3code * c );
+
+#ifdef DEBUG
+extern void print_g3_tree ( char * t, struct g3_tree * p );
+#endif
+
+extern void init_byte_tab ( int reverse, int byte_tab[] );
+
+