Merge pull request #5 from CodePanter/master
Fixed the problem with pixels missing in the message and prevented ge…
This commit is contained in:
commit
0fcbcff7f8
2 changed files with 26 additions and 25 deletions
|
|
@ -14,7 +14,6 @@ import random
|
|||
import time
|
||||
|
||||
class MaxSizeList(list):
|
||||
maxsize = 0
|
||||
|
||||
def __init__(self, maxcount=100):
|
||||
self.maxsize = maxcount
|
||||
|
|
@ -25,7 +24,6 @@ class MaxSizeList(list):
|
|||
if self.__len__() == self.maxsize:
|
||||
raise IndexError('max size reached')
|
||||
|
||||
|
||||
def RGBPixel(x, y, r, g, b, a=None): # pylint: disable=C0103
|
||||
"""Generates the packed data for a pixel"""
|
||||
if a:
|
||||
|
|
@ -55,7 +53,7 @@ def RandomFill(width=640, height=480):
|
|||
message.append(pixel)
|
||||
except IndexError:
|
||||
yield ''.join(message)
|
||||
message[:] = []
|
||||
message[2:] = []
|
||||
message.append(pixel)
|
||||
yield ''.join(message)
|
||||
|
||||
|
|
|
|||
41
vloed.py
41
vloed.py
|
|
@ -91,26 +91,29 @@ class Canvas(object):
|
|||
# while we have stuff in the queue, and its not our next time to draw a
|
||||
# frame, lets process packets from the queue
|
||||
while time.time() < returntime and not self.queue.empty():
|
||||
data = self.queue.get()
|
||||
preamble = struct.unpack_from("<?", data)[0]
|
||||
protocol = struct.unpack_from("<B", data, 1)[0]
|
||||
packetformat = ("<2H4B" if preamble else "<2H3B")
|
||||
pixellength = (8 #xx,yy,r,g,b,a
|
||||
if preamble else
|
||||
7 #xx,yy,r,g,b
|
||||
)
|
||||
pixelcount = (len(data)-1) / pixellength
|
||||
if self.debug:
|
||||
print '%d pixels received, protocol V %d ' % (
|
||||
min(pixelcount, self.limit), protocol)
|
||||
for i in xrange(0, pixelcount):
|
||||
pixel = struct.unpack_from(
|
||||
packetformat,
|
||||
data,
|
||||
self.pixeloffset + (i*pixellength))
|
||||
try:
|
||||
data = self.queue.get()
|
||||
preamble = struct.unpack_from("<?", data)[0]
|
||||
protocol = struct.unpack_from("<B", data, 1)[0]
|
||||
packetformat = ("<2H4B" if preamble else "<2H3B")
|
||||
pixellength = (8 #xx,yy,r,g,b,a
|
||||
if preamble else
|
||||
7 #xx,yy,r,g,b
|
||||
)
|
||||
pixelcount = (len(data)-1) / pixellength
|
||||
if self.debug:
|
||||
print pixel
|
||||
self.Pixel(*pixel)
|
||||
print '%d pixels received, protocol V %d ' % (
|
||||
min(pixelcount, self.limit), protocol)
|
||||
for i in xrange(0, pixelcount):
|
||||
pixel = struct.unpack_from(
|
||||
packetformat,
|
||||
data,
|
||||
self.pixeloffset + (i*pixellength))
|
||||
if self.debug:
|
||||
print pixel
|
||||
self.Pixel(*pixel)
|
||||
except Exception as e: #All exceptions will be printed, but won't result in a crash.
|
||||
print e
|
||||
# indicate that we have been drawing stuff
|
||||
return True
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue