summaryrefslogtreecommitdiffstats
path: root/docs/release/scripts/build/complay.py
diff options
context:
space:
mode:
author Robbbert <pac0446@bigpond.net.au>2016-04-27 18:59:40 +1000
committer Robbbert <pac0446@bigpond.net.au>2016-04-27 18:59:40 +1000
commitbcd8558b02cb54eab92df98f14bf07221d6d358b (patch)
treec29211cecf250a791c074dfc3e1fc9a2d9a1a593 /docs/release/scripts/build/complay.py
parent0d70c1f8cdb9e66fd7bc5bcad128e394a2345607 (diff)
0.173 Release Fileshbmame173
Diffstat (limited to 'docs/release/scripts/build/complay.py')
-rw-r--r--docs/release/scripts/build/complay.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/docs/release/scripts/build/complay.py b/docs/release/scripts/build/complay.py
new file mode 100644
index 00000000000..eea6da0c099
--- /dev/null
+++ b/docs/release/scripts/build/complay.py
@@ -0,0 +1,69 @@
+#!/usr/bin/python
+##
+## license:BSD-3-Clause
+## copyright-holders:Aaron Giles, Andrew Gardner
+
+from __future__ import with_statement
+
+import sys
+import os
+import zlib
+
+if len(sys.argv) < 4:
+ print('Usage:')
+ print(' complay <source.lay> <output.h> <varname>')
+ print('')
+ sys.exit(0)
+
+srcfile = sys.argv[1]
+dstfile = sys.argv[2]
+varname = sys.argv[3]
+type = 'UINT8'
+
+try:
+ myfile = open(srcfile, 'rb')
+except IOError:
+ sys.stderr.write("Unable to open source file '%s'\n" % srcfile)
+ sys.exit(-1)
+
+byteCount = os.path.getsize(srcfile)
+compsize = 0
+compressiontype = 1
+
+try:
+ dst = open(dstfile,'w')
+ dst.write('const %s %s_data[] =\n{\n\t' % ( type, varname))
+ offs = 0
+ with open(srcfile, "rb") as src:
+ while True:
+ chunk = src.read(byteCount)
+ if chunk:
+ compchunk = bytearray(zlib.compress(chunk, 9))
+ compsize = len(compchunk)
+ for b in compchunk:
+ dst.write('%d' % b)
+ offs += 1
+ if offs != compsize:
+ dst.write(',')
+ else:
+ break
+ dst.write('\n\t')
+
+ dst.write('\n};\n')
+
+except IOError:
+ sys.stderr.write("Unable to open output file '%s'\n" % dstfile)
+ sys.exit(-1)
+
+try:
+ dst.write('extern const internal_layout %s;\n' % ( varname ))
+ dst.write('const internal_layout %s = { \n\t' % ( varname ))
+ dst.write('%d,%d,%d,%s_data\n' % ( byteCount, compsize, compressiontype, varname ))
+ dst.write('\n};\n')
+
+
+ dst.close()
+except IOError:
+ sys.stderr.write("Unable to open output file '%s'\n" % dstfile)
+ sys.exit(-1)
+