summaryrefslogtreecommitdiff
path: root/tools/gbagfx/huff.h
diff options
context:
space:
mode:
authorDiegoisawesome <diego@domoreaweso.me>2019-09-04 13:18:49 -0700
committerDiegoisawesome <diego@domoreaweso.me>2019-09-04 13:18:49 -0700
commita7ef6c4cbf5ef481281917685a633ccd842335d5 (patch)
tree44674b0580f41426eb5112e31cdc0245237d1666 /tools/gbagfx/huff.h
parent1ec2c86089fd933a46ef405da63c131aee52d7e0 (diff)
Update tool sources and binaries from pokeemeraldHEADmaster
Diffstat (limited to 'tools/gbagfx/huff.h')
-rw-r--r--tools/gbagfx/huff.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/tools/gbagfx/huff.h b/tools/gbagfx/huff.h
new file mode 100644
index 0000000..6002fe9
--- /dev/null
+++ b/tools/gbagfx/huff.h
@@ -0,0 +1,38 @@
+#ifndef HUFF_H
+#define HUFF_H
+
+union HuffNode;
+
+struct HuffData {
+ unsigned value:31;
+ unsigned isLeaf:1;
+};
+
+struct HuffLeaf {
+ struct HuffData header;
+ unsigned char key;
+};
+
+struct HuffBranch {
+ struct HuffData header;
+ union HuffNode * left;
+ union HuffNode * right;
+};
+
+union HuffNode {
+ struct HuffData header;
+ struct HuffLeaf leaf;
+ struct HuffBranch branch;
+};
+
+typedef union HuffNode HuffNode_t;
+
+struct BitEncoding {
+ unsigned long long nbits:6;
+ unsigned long long bitstring:58;
+};
+
+unsigned char * HuffCompress(unsigned char * buffer, int srcSize, int * compressedSize_p, int bitDepth);
+unsigned char * HuffDecompress(unsigned char * buffer, int srcSize, int * uncompressedSize_p);
+
+#endif //HUFF_H