default scrolling works now
This commit is contained in:
parent
d8fba4ec52
commit
39884b49ed
1 changed files with 25 additions and 4 deletions
|
|
@ -13,10 +13,8 @@ import numpy as np
|
||||||
|
|
||||||
from matelight import sendframe, DISPLAY_WIDTH, DISPLAY_HEIGHT, FRAME_SIZE
|
from matelight import sendframe, DISPLAY_WIDTH, DISPLAY_HEIGHT, FRAME_SIZE
|
||||||
|
|
||||||
|
|
||||||
UDP_TIMEOUT = 3.0
|
UDP_TIMEOUT = 3.0
|
||||||
|
|
||||||
|
|
||||||
class COLOR(Structure):
|
class COLOR(Structure):
|
||||||
_fields_ = [('r', c_uint8), ('g', c_uint8), ('b', c_uint8), ('a', c_uint8)]
|
_fields_ = [('r', c_uint8), ('g', c_uint8), ('b', c_uint8), ('a', c_uint8)]
|
||||||
|
|
||||||
|
|
@ -193,6 +191,10 @@ def udp_sub_loop():
|
||||||
break
|
break
|
||||||
|
|
||||||
def tcp_sub_loop():
|
def tcp_sub_loop():
|
||||||
|
"""
|
||||||
|
Send as many frames as there are texts in the buffer until the text deque
|
||||||
|
is empty.
|
||||||
|
"""
|
||||||
while True:
|
while True:
|
||||||
next_frame = tserver.get_next_frame()
|
next_frame = tserver.get_next_frame()
|
||||||
if next_frame is not None:
|
if next_frame is not None:
|
||||||
|
|
@ -200,14 +202,33 @@ def tcp_sub_loop():
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
|
|
||||||
|
class MateLightDefaultScroller():
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
# A deque for the texts, contains a tuple of the form (text, width, height)
|
||||||
|
self.text_deque = deque(maxlen=32)
|
||||||
|
self.current_text = None
|
||||||
|
|
||||||
|
def get_next_frame(self):
|
||||||
|
if self.current_text is None or self.i > self.current_text[1][0]:
|
||||||
|
self.current_text = None
|
||||||
|
text = next(defaulttexts).text
|
||||||
|
self.current_text = (text, compute_text_bounds(text))
|
||||||
|
self.i = -DISPLAY_WIDTH
|
||||||
|
|
||||||
|
frame = render_text(self.current_text[0], self.i)
|
||||||
|
self.i += 1
|
||||||
|
return frame
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
print('\033[?1049h'+'\n'*9)
|
||||||
|
default_scroller = MateLightDefaultScroller()
|
||||||
while True:
|
while True:
|
||||||
udp_sub_loop()
|
udp_sub_loop()
|
||||||
tcp_sub_loop()
|
tcp_sub_loop()
|
||||||
|
sendframe(default_scroller.get_next_frame())
|
||||||
|
|
||||||
def bla():
|
def bla():
|
||||||
print('\033[2J'+'\n'*9)
|
|
||||||
while True:
|
while True:
|
||||||
if current_entry.entrytype == 'text':
|
if current_entry.entrytype == 'text':
|
||||||
if scroll(current_entry.text):
|
if scroll(current_entry.text):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue