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
|
import time
|
||||||
|
|
||||||
class MaxSizeList(list):
|
class MaxSizeList(list):
|
||||||
maxsize = 0
|
|
||||||
|
|
||||||
def __init__(self, maxcount=100):
|
def __init__(self, maxcount=100):
|
||||||
self.maxsize = maxcount
|
self.maxsize = maxcount
|
||||||
|
|
@ -25,7 +24,6 @@ class MaxSizeList(list):
|
||||||
if self.__len__() == self.maxsize:
|
if self.__len__() == self.maxsize:
|
||||||
raise IndexError('max size reached')
|
raise IndexError('max size reached')
|
||||||
|
|
||||||
|
|
||||||
def RGBPixel(x, y, r, g, b, a=None): # pylint: disable=C0103
|
def RGBPixel(x, y, r, g, b, a=None): # pylint: disable=C0103
|
||||||
"""Generates the packed data for a pixel"""
|
"""Generates the packed data for a pixel"""
|
||||||
if a:
|
if a:
|
||||||
|
|
@ -55,7 +53,7 @@ def RandomFill(width=640, height=480):
|
||||||
message.append(pixel)
|
message.append(pixel)
|
||||||
except IndexError:
|
except IndexError:
|
||||||
yield ''.join(message)
|
yield ''.join(message)
|
||||||
message[:] = []
|
message[2:] = []
|
||||||
message.append(pixel)
|
message.append(pixel)
|
||||||
yield ''.join(message)
|
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
|
# while we have stuff in the queue, and its not our next time to draw a
|
||||||
# frame, lets process packets from the queue
|
# frame, lets process packets from the queue
|
||||||
while time.time() < returntime and not self.queue.empty():
|
while time.time() < returntime and not self.queue.empty():
|
||||||
data = self.queue.get()
|
try:
|
||||||
preamble = struct.unpack_from("<?", data)[0]
|
data = self.queue.get()
|
||||||
protocol = struct.unpack_from("<B", data, 1)[0]
|
preamble = struct.unpack_from("<?", data)[0]
|
||||||
packetformat = ("<2H4B" if preamble else "<2H3B")
|
protocol = struct.unpack_from("<B", data, 1)[0]
|
||||||
pixellength = (8 #xx,yy,r,g,b,a
|
packetformat = ("<2H4B" if preamble else "<2H3B")
|
||||||
if preamble else
|
pixellength = (8 #xx,yy,r,g,b,a
|
||||||
7 #xx,yy,r,g,b
|
if preamble else
|
||||||
)
|
7 #xx,yy,r,g,b
|
||||||
pixelcount = (len(data)-1) / pixellength
|
)
|
||||||
if self.debug:
|
pixelcount = (len(data)-1) / pixellength
|
||||||
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:
|
if self.debug:
|
||||||
print pixel
|
print '%d pixels received, protocol V %d ' % (
|
||||||
self.Pixel(*pixel)
|
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
|
# indicate that we have been drawing stuff
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue