From 916aced1bef07001ef4eee2a1cde6cd6e33b4bc3 Mon Sep 17 00:00:00 2001 From: jaseg Date: Fri, 3 Jan 2014 00:10:20 +0100 Subject: Now with even more abstract art. --- host/matelight/listeners.py | 98 --------------------------------------------- 1 file changed, 98 deletions(-) delete mode 100755 host/matelight/listeners.py (limited to 'host/matelight/listeners.py') diff --git a/host/matelight/listeners.py b/host/matelight/listeners.py deleted file mode 100755 index f390389..0000000 --- a/host/matelight/listeners.py +++ /dev/null @@ -1,98 +0,0 @@ -#!/usr/bin/env python3 -from socketserver import * -import socket -import threading -import zlib -import random -import struct -import host -import numpy as np -import time -import sys -import traceback -import renderers -from PIL import Image, ImageSequence -from config import * -# Loading frame (for the big font file) -img = Image.open(open('../nyancat.png', 'rb')) -frame = np.array(img.convert('RGB').getdata(), dtype=np.uint8).reshape((DISPLAY_HEIGHT, DISPLAY_WIDTH, 3)) -host.sendframe(frame) -from font import * - -UDP_THRES = 1.0 - -class ThreadingTCPServer(ThreadingMixIn, TCPServer): pass -class ThreadingUDPServer(ThreadingMixIn, UDPServer): pass - -default_renderers = [renderers.TextRenderer('\x1B[92mMate Light\x1B[93m@\x1B[92mPlay store or \x1B[94;101mtcp://ml.jaseg.net:1337\x1B[0;91m ♥ '), - renderers.TextRenderer('\x1B[92mMate Light\x1B[0;91m ♥ \x1B[92mUnicode'), - renderers.TextRenderer('\x1B[92mMate Light\x1B[0m powered by \x1B[95mMicrosoft™ \x1B[96mMarquee Manager® Pro')] -global renderer, count -renderer = default_renderers[0] -count = 0 -lastudp = 0 - -class MateLightUDPHandler(BaseRequestHandler): - def handle(self): - try: - global lastudp - data = self.request[0].strip() - if len(data) != FRAME_SIZE+4: - #raise ValueError('Invalid frame size: Expected {}, got {}'.format(FRAME_SIZE+4, len(data))) - return - frame = data[:-4] - crc1, = struct.unpack('!I', data[-4:]) - crc2, = zlib.crc32(frame, 0), - #if crc1 != crc2: - # raise ValueError('Invalid frame CRC checksum: Expected {}, got {}'.format(crc2, crc1)) - #socket.sendto(b'ACK', self.client_address) - a = np.array(list(frame), dtype=np.uint8) - lastudp = time.time() - host.sendframe(a.reshape((DISPLAY_HEIGHT, DISPLAY_WIDTH, 3))) - except Exception as e: - print('Error receiving UDP frame:', e) - ex_type, ex, tb = sys.exc_info() - traceback.print_tb(tb) - -class MateLightTCPTextHandler(BaseRequestHandler): - def handle(self): - try: - data = str(self.request.recv(1024).strip(), 'UTF-8') - if len(data) > 140: - self.request.sendall('TOO MUCH INFORMATION!\n') - return - global renderer, count - print(data+'\x1B[0m') - renderer = renderers.TextRenderer(data) - count = 3 - self.request.sendall(b'KTHXBYE!\n') - except: - pass - -TCPServer.allow_reuse_address = True -server = TCPServer(('', 1337), MateLightTCPTextHandler) -t = threading.Thread(target=server.serve_forever) -t.daemon = True -t.start() - -UDPServer.allow_reuse_address = True -userver = UDPServer(('', 1337), MateLightUDPHandler) -t = threading.Thread(target=userver.serve_forever) -t.daemon = True -t.start() - -while True: - global renderer, count, lastudp - foo = renderer - if count == 0: - renderer = random.choice(default_renderers) - else: - count = count - 1 - for frame, delay in foo.frames(): - #print(list(frame.flatten())) - now = time.time() - if now-lastudp > UDP_THRES: - host.sendframe(np.swapaxes(frame, 0, 1)) - else: - time.sleep(0.1) - -- cgit