From 4de4461947d8b728251692b94cce065fef4aeddb Mon Sep 17 00:00:00 2001 From: FKD13 Date: Thu, 22 Aug 2019 19:43:25 +0200 Subject: [PATCH] color formatting --- server.py | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/server.py b/server.py index a3a81ad..993506a 100644 --- a/server.py +++ b/server.py @@ -6,15 +6,31 @@ import base64 NULL_CHAR = chr(0) +last_c = None + +colors = { + "Z": ["a", "a"], + "B": ["a", "b"], + "G": ["a", "c"], + "b": ["a", "d"], + "R": ["a", "e"], + "r": ["a", "f"], + "Y": ["a", "g"], + "W": ["a", "h"] +} def write_report(report): with open('/dev/hidg0', 'rb+') as fd: fd.write(report.encode()) + def release_keys(): write_report(NULL_CHAR*8) + def printchar(c): + if last_c == 'ยง': + change_color(c) if c.islower(): write_report(NULL_CHAR*2+chr(4 + ord(c) - ord('a'))+NULL_CHAR*5) elif c.isupper(): @@ -24,19 +40,33 @@ def printchar(c): elif c == ' ': write_report(NULL_CHAR*2+chr(44)+NULL_CHAR*5) elif c == '\n': - write_report(NULL_CHAR*2+chr(40)+NULL_CHAR*5) + write_report(NULL_CHAR*2+chr(40)+NULL_CHAR*5) else: write_report(chr(32)+NULL_CHAR+chr(0x38)+NULL_CHAR*5) release_keys() -def change_color(background, foreground): - # DELETE keypress - write_report(NULL_CHAR*2+chr(0x2a)+NULL_CHAR*5) +def change_color(c: str): + if c in colors: + # DELETE keypress + write_report(NULL_CHAR*2+chr(0x2a)+NULL_CHAR*5) + release_keys() + write_report(NULL_CHAR*2+chr(4 + ord(colors[0]) - ord('a'))+NULL_CHAR*5) + release_keys() + write_report(NULL_CHAR*2+chr(4 + ord(colors[1]) - ord('a'))+NULL_CHAR*5) + else: + write_report(chr(32)+NULL_CHAR+chr(0x38)+NULL_CHAR*5) + def printstring(s): for c in s: printchar(c) + last_c = c + + +def reset_color(): + change_color('G') + release_keys() class SimpleHTTPRequestHandler(BaseHTTPRequestHandler): @@ -59,6 +89,7 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler): printstring('\n' * 32) else: printstring(message + '\n') + reset_color() httpd = HTTPServer(('0.0.0.0', 8000), SimpleHTTPRequestHandler)