diff --git a/client.py b/client.py index 6aaa5c2..4bfcd66 100755 --- a/client.py +++ b/client.py @@ -1,7 +1,7 @@ #!/usr/bin/python """This is an udp / binary client -Inspired by the PixelFlut beamer on eth0:winter 2016 and +Inspired by the PixelFlut projector on eth0:winter 2016 and code from https://github.com/defnull/pixelflut/ """ @@ -9,11 +9,11 @@ __version__ = 0.3 __author__ = "Jan Klopper " import random -from vloed import PixelVloedClient, NewMessage, RGBPixel +from vloed import PixelVloedClient, NewMessage, RGBPixel, MAX_PIXELS def RandomFill(message, width, height): """Generates a random number of pixels with a random color""" - for pixel in xrange(0, random.randint(10, 140)): + for pixel in xrange(0, random.randint(10, MAX_PIXELS)): pixel = RGBPixel(random.randint(0, width), random.randint(0, height), random.randint(0, 255), @@ -23,7 +23,7 @@ def RandomFill(message, width, height): message.append(pixel) except IndexError: yield ''.join(message) - message[2:] = [] + message[2:] = [pixel] yield ''.join(message) def RunClient(): @@ -33,20 +33,20 @@ def RunClient(): False, # show debugging output None, # ip of the server, None for autodetect None, # port of the server None for autodetect - None, # Screen pixels wide, or Autodetect - None # Screen pixels height, or Autodetect + None, # Screen pixels wide, None for autodetect + None # Screen pixels height, None for autodetect ) message = NewMessage() #create a new message that buffers the output etc - # loop the effect untill we cancel by pressing ctrl+c / exit the program + # loop the effect until we cancel by pressing ctrl+c / exit the program while True: - # create a new message and send if everytime the buffer is full + # create a new message and send it every time the buffer is full # the width/height are read from the client's config for packet in RandomFill(message, client.width, client.height): - # send the message we just filled with random pixelfs + # send the message we just filled with random pixels client.SendPacket(packet) if __name__ == '__main__': - # if this script is called from the commandline, and thus not imported - # Start a client and start sending messages + # if this script is called from the command line, and thus not imported + # start a client and start sending messages RunClient() diff --git a/vloed.py b/vloed.py index 1bc9e34..6a2fa1b 100755 --- a/vloed.py +++ b/vloed.py @@ -1,7 +1,7 @@ #!/usr/bin/python """This is a udp / binary version of PixelFlut -Inspired by the PixelFlut beamer on eth0:winter 2016 and +Inspired by the PixelFlut projector on eth0:winter 2016 and code from https://github.com/defnull/pixelflut/ """ @@ -107,7 +107,7 @@ class Canvas(object): def Draw(self): """Draws pixels specified in the received packages in the queue""" if self.queue.empty(): - # indicat that nothing was done, and w can skip flipping the screen + # indicate that nothing was done, and we can skip flipping the screen return False #access the pixel array and lock it self.pixels = pygame.surfarray.pixels2d(self.screen) @@ -145,13 +145,17 @@ class Canvas(object): def SendDiscoveryPacket(self): """Lets send out our ip/port/resolution to any listening clients""" - self.broadcastsocket.sendto( - '%s:%f %s:%d %d*%d' % (PROTOCOL_PREAMBLE, PROTOCOL_VERSION, - UDP_IP, UDP_PORT, - self.width, self.height), - ('', DISCOVER_PORT)) - if self.debug: - print 'sending discovery packet' + try: + self.broadcastsocket.sendto( + '%s:%f %s:%d %d*%d' % (PROTOCOL_PREAMBLE, PROTOCOL_VERSION, + UDP_IP, UDP_PORT, + self.width, self.height), + ('', DISCOVER_PORT)) + if self.debug: + print 'sending discovery packet' + except Exception as error: + if self.debug: + print error def __del__(self): """Clean up any sockets we created""" @@ -204,7 +208,7 @@ class PixelVloedClient(object): servers[0]) else: self.ipaddress = ip - self.port = port + self.port = port if port else UDP_IP self.width = width self.height = height if self.debug: @@ -230,7 +234,7 @@ class PixelVloedClient(object): @staticmethod def DiscoverServers(returnfirst=False, timeout=5): - """Discover servers that send out the pixelfvloed preample""" + """Discover servers that send out the pixelvloed preample""" discoverysock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) discoverysock.bind(('', DISCOVER_PORT)) starttime = time.time() @@ -296,9 +300,9 @@ class MaxSizeList(list): def append(self, item): """Appends an item to the list""" - super(MaxSizeList, self).append(item) if self.__len__() == self.maxsize: raise IndexError('max size reached') + super(MaxSizeList, self).append(item) def RunServer(): """Runs a pixelvloed server"""