def press(x, y, n): if n == 1: frame.moveTo(vertical, x, 0).show(vertical) frame.moveTo(horizontal, 0, y).show(horizontal) renderer.render(frame) else: hide()
def press(x, y, n): "Dumb button press handling: we aren't passing presses to shado." if n == 1: frame.top(inner) else: frame.bottom(inner) renderer.render(frame)
def press(self, x, y, how): '''callback from shado: deal with a button press''' if how != 0: frame.show(block) else: frame.hide(block) renderer.render(self) return True
def bang(): global interval global counter interval += 1 if interval % 10 == 0: counter = (counter + 1) % 100 frame.top(lftBlocks[counter / 10]) frame.top(rhtBlocks[counter % 10]) renderer.render(mainframe)
frame = Frame().add(block, 2, 2).hide(block) class MyViewPort(ViewPort): ''' In order to catch button presses, we'll put a ViewPort around the frame, but build it in Python with a callback. ''' def __init__(self, router, x, y, width, height): ViewPort.__init__(self, router, x, y, width, height) def press(self, x, y, how): '''callback from shado: deal with a button press''' if how != 0: frame.show(block) else: frame.hide(block) renderer.render(self) return True port = MyViewPort(frame, 0, 0, monomeWidth, monomeHeight) manager = PressManager(port) def bang(): pass def press(x, y, how): manager.press(x, y, how) renderer.render(port)
''' A simple raise/lower demo: two tiles in a frame. ''' from net.loadbang.shado import Frame, Block from net.loadbang.shado.types import LampState from config import renderer outer = Block(4, 4).fill(LampState.ON) inner = Block(2, 2).fill(LampState.OFF) frame = Frame().add(inner, 3, 3).add(outer, 2, 2) def bang(): pass def press(x, y, n): "Dumb button press handling: we aren't passing presses to shado." if n == 1: frame.top(inner) else: frame.bottom(inner) renderer.render(frame) renderer.render(frame)
the frame, but build it in Python with a callback. ''' def __init__(self, router, x, y, width, height): ViewPort.__init__(self, router, x, y, width, height) def press(self, x, y, how): '''callback from shado: deal with a button press''' if how != 0: frame.show(block) else: frame.hide(block) renderer.render(self) return True port = MyViewPort(frame, 0, 0, monomeWidth, monomeHeight) manager = PressManager(port) def bang(): pass def press(x, y, how): manager.press(x, y, how) renderer.render(port)
def clear(): renderer.render(blank)
def hide(): frame.hide(vertical) frame.hide(horizontal) renderer.render(frame)
''' When launched, this script turns on all LEDs. ''' from net.loadbang.shado import Block from net.loadbang.shado.types import LampState from config import renderer lightBlock = Block(8, 8) lightBlock.fill(LampState.ON) renderer.render(lightBlock)
def test(): renderer.render(frame)
Needs the 10msec metronome. ''' from net.loadbang.shado import Frame, Block from net.loadbang.shado.types import LampState from config import renderer digits = [ '111 101 101 101 111', '110 010 010 010 010', '111 001 111 100 111', '111 001 111 001 111', '101 101 111 001 001', '111 100 111 001 111', '111 100 111 101 111', '111 001 001 001 001', '111 101 111 101 111', '111 101 111 001 111' ] frame = Frame() renderer.render(frame) mainframe = Frame() f = mainframe.add(frame, 0, 0) lftBlocks = [Block(digits[i]) for i in range(10)] rhtBlocks = [Block(digits[i]) for i in range(10)] for i in range(10): frame.add(lftBlocks[i], 0, 0).add(rhtBlocks[i], 5, 0) counter = 99 interval = 0 def bang():
def draw(): renderer.render(frame)