Exemplo n.º 1
0
def makeBasicSketcher(left=0, top=0, width=1024, height=768):
    return Graphline(
        CANVAS=Canvas(position=(left, top + 32), size=(width, height - 32)),
        PAINTER=Painter(),
        #CLEAR = ClearPage(left,top),
        CALIBRATE=Calibrate(),
        TWOWAY=TwoWaySplitter(),
        CALIBBUTTON=calibButton(left, top),
        FILEWRITER=WholeFileWriter(),
        DEBUG=ConsoleEchoer(),
        linkages={
            ("CANVAS", "eventsOut"): ("PAINTER", "inbox"),

            #("PAINTER", "outbox")    : ("CANVAS", "inbox"),
            ("PAINTER", "outbox"): ("TWOWAY", "inbox"),
            #("CLEAR", "outbox")       : ("CANVAS", "inbox"),
            ("CALIBRATE", "outbox"): ("CANVAS", "inbox"),
            #("CANVAS", "toApp") : ("CALIBRATE", "coords"),
            ("TWOWAY", "outbox"): ("CALIBRATE", "coords"),
            ("TWOWAY", "outbox2"): ("CANVAS", "inbox"),
            ("CALIBBUTTON", "outbox"): ("CALIBRATE", "inbox"),
            ("CALIBRATE", "finaldata"): ("FILEWRITER", "inbox"),
            ("FILEWRITER", "outbox"): ("CALIBRATE", "inbox"),
        },
    )
Exemplo n.º 2
0
def makeBasicSketcher(left=0, top=0, width=1024, height=768):
    return Graphline(
        CANVAS=Canvas(position=(left, top + 32 + 1),
                      size=(width - 192, (height - (32 + 15) - 1)),
                      bgcolour=(255, 255, 255),
                      notepad=notepad),
        PAINTER=Painter(),
        PALETTE=buildPalette(cols=colours,
                             order=colours_order,
                             topleft=(left + 64, top),
                             size=32),
        ERASER=Eraser(left, top),
        CLEAR=ClearPage(left + (64 * 5) + 32 * len(colours) + 1, top),
        SAVEDECK=SaveDeck(left + (64 * 8) + 32 * len(colours) + 1, top),
        LOADDECK=LoadDeck(left + (64 * 7) + 32 * len(colours) + 1, top),
        SMARTBOARD=SmartBoard(),
        DELETE=Delete(left + (64 * 6) + 32 * len(colours) + 1, top),
        CLOSEDECK=ClearScribbles(left + (64 * 9) + 32 * len(colours) + 1, top),
        QUIT=Quit(left + (64 * 10) + 32 * len(colours) + 1, top),
        PAGINGCONTROLS=PagingControls(left + 64 + 32 * len(colours) + 1, top),
        #LOCALPAGINGCONTROLS = LocalPagingControls(left+(64*6)+32*len(colours),top),
        LOCALPAGEEVENTS=LocalPageEventsFilter(),
        HISTORY=CheckpointSequencer(
            lambda X: [["LOAD", SLIDESPEC % (X, )]],
            lambda X: [["SAVE", SLIDESPEC % (X, )]],
            lambda X: [["CLEAR"]],
            initial=1,
            highest=num_pages,
            notepad=notepad,
        ),
        PAINT_SPLITTER=TwoWaySplitter(),
        #LOCALEVENT_SPLITTER = TwoWaySplitter(),
        DEBUG=ConsoleEchoer(),
        TICKER=Ticker(position=(left, top + height - 15),
                      background_colour=(220, 220, 220),
                      text_colour=(0, 0, 0),
                      text_height=(17),
                      render_right=(width),
                      render_bottom=(15)),
        linkages={
            ("CANVAS", "eventsOut"): ("PAINTER", "inbox"),
            ("PALETTE", "outbox"): ("PAINTER", "colour"),
            ("ERASER", "outbox"): ("PAINTER", "erase"),
            ("PAINTER", "outbox"): ("PAINT_SPLITTER", "inbox"),
            ("CLEAR", "outbox"): ("PAINT_SPLITTER", "inbox"),
            ("PAINT_SPLITTER", "outbox"): ("CANVAS", "inbox"),
            ("PAINT_SPLITTER", "outbox2"): ("", "outbox"),  # send to network
            ("SAVEDECK", "outbox"): ("CANVAS", "inbox"),
            ("LOADDECK", "outbox"): ("CANVAS", "inbox"),
            ("CLOSEDECK", "outbox"): ("CANVAS", "inbox"),
            ("DELETE", "outbox"): ("CANVAS", "inbox"),
            ("QUIT", "outbox"): ("CANVAS", "inbox"),

            #("LOCALPAGINGCONTROLS","outbox")  : ("LOCALEVENT_SPLITTER", "inbox"),
            #("LOCALEVENT_SPLITTER", "outbox2"): ("", "outbox"), # send to network
            #("LOCALEVENT_SPLITTER", "outbox") : ("LOCALPAGEEVENTS", "inbox"),
            ("", "inbox"): ("LOCALPAGEEVENTS", "inbox"),
            ("LOCALPAGEEVENTS", "false"): ("CANVAS", "inbox"),
            ("LOCALPAGEEVENTS", "true"): ("HISTORY", "inbox"),
            ("PAGINGCONTROLS", "outbox"): ("HISTORY", "inbox"),
            ("HISTORY", "outbox"): ("CANVAS", "inbox"),
            ("CANVAS", "outbox"): ("", "outbox"),
            ("CANVAS", "surfacechanged"): ("HISTORY", "inbox"),
            ("CANVAS", "toTicker"): ("TICKER", "inbox"),
            ("CANVAS", "toHistory"): ("HISTORY", "inbox"),
            ("SMARTBOARD", "colour"): ("PAINTER", "colour"),
            ("SMARTBOARD", "erase"): ("PAINTER", "erase"),
            ("SMARTBOARD", "toTicker"): ("TICKER", "inbox"),
        },
    )
Exemplo n.º 3
0
if __name__=="__main__":
    width = 1024
    height = 768
    top = 0
    left = 0
    colours_order = [ "black", "red", "orange", "yellow", "green", "turquoise", "blue", "purple", "darkgrey", "lightgrey" ]
    ogl_display = OpenGLDisplay(title="Kamaelia Whiteboard",width=width,height=height,background_colour=(255,255,255))
    ogl_display.activate()
    OpenGLDisplay.setDisplayService(ogl_display)
    
    ogl_display = OpenGLDisplay.getDisplayService()
    PygameDisplay.setDisplayService(ogl_display[0])
    
    if (0):
        #PygameDisplay.setDisplayService(ogl_display)
        CANVAS = Canvas( position=(left,top+32),size=(1200,(900-(32+15))),notepad="Test" ).activate() #(replace width with 'width' and height with 'height-(32+15)'
        PAINTER = Painter().activate()
        CANVAS_WRAPPER = PygameWrapper(wrap=CANVAS, position=(0,0,-10), rotation=(0,0,0)).activate() 
        ERASER  = Eraser(left,top).activate()
        PALETTE = buildPalette( cols=colours, order=colours_order, topleft=(left+64,top), size=32 ).activate()
        CLEAR = ClearPage(left+(64*5)+32*len(colours),top).activate()
        #PALETTE_WRAPPER = PygameWrapper(wrap=PALETTE, position=(4,1,-10), rotation=(-20,15,3)).activate()
    
        #PAINTER_WRAPPER = PygameWrapper(wrap=PAINTER, position=(4,1,-10), rotation=(-20,15,3)).activate()
        CANVAS.link( (PAINTER,"outbox"), (CANVAS, "inbox") )
        PAINTER.link( (CANVAS,"eventsOut"), (PAINTER, "inbox") )
        PAINTER.link( (PALETTE,"outbox"), (PAINTER, "colour") )
        PAINTER.link( (ERASER, "outbox"), (PAINTER, "erase") )
        PAINTER.link( (CLEAR, "outbox"), (CANVAS, "inbox") )
        
    CANVAS = Canvas( position=(left,top+32),size=(1200,(900-(32+15))),notepad="Test" ).activate() #(replace width with 'width' and height with 'height-(32+15)'
Exemplo n.º 4
0
).activate()

Pipeline(
    SubscribeTo("STROKES"),
    PublishTo("CONSOLE"),
).activate()

Pipeline(
    SubscribeTo("CONSOLE"),
    ConsoleEchoer(),
).activate()

Graphline(
    CANVAS=Canvas(
        position=(0, 0),
        size=(1024, 50),
        bgcolour=bgcolour,
    ),
    PEN=Pen(bgcolour=bgcolour),
    STROKER=StrokeRecogniser(),
    OUTPUT=PublishTo("STROKES"),
    linkages={
        ("CANVAS", "eventsOut"): ("PEN", "inbox"),
        ("PEN", "outbox"): ("CANVAS", "inbox"),
        ("PEN", "points"): ("STROKER", "inbox"),
        ("STROKER", "outbox"): ("OUTPUT", "inbox"),
        ("STROKER", "drawing"): ("CANVAS", "inbox"),
        ("STROKER", "outbox"): ("OUTPUT", "inbox"),
    },
).run()
Exemplo n.º 5
0
                         ("GRAMMAR", "outbox"): ("self", "outbox"),
                         ("QUANTISE", "drawing"): ("self", "drawing"),
                         ("ANALYSE", "drawing"): ("self", "drawing"),
                     })


if __name__ == "__main__":

    from Kamaelia.UI.Pygame.Display import PygameDisplay
    from Kamaelia.Util.Console import ConsoleEchoer

    width = 1024
    height = 384

    pgd = PygameDisplay(width=width, height=height).activate()
    PygameDisplay.setDisplayService(pgd)

    Graphline(
        CANVAS=Canvas(position=(0, 0), size=(width, height)),
        PEN=Pen(),
        STROKER=StrokeRecogniser(),
        OUTPUT=ConsoleEchoer(),
        linkages={
            ("CANVAS", "eventsOut"): ("PEN", "inbox"),
            ("PEN", "outbox"): ("CANVAS", "inbox"),
            ("PEN", "points"): ("STROKER", "inbox"),
            ("STROKER", "outbox"): ("OUTPUT", "inbox"),
            ("STROKER", "drawing"): ("CANVAS", "inbox"),
        },
    ).run()
Exemplo n.º 6
0

Backplane("SPEECH").activate()    

Pipeline(
    SubscribeTo("SPEECH"),
    Repeater(),
    Reorderer(),
    ConsoleEchoer(1),
    UnixProcess("while read word; do echo $word | espeak -w foo.wav --stdin ; aplay foo.wav ; done"),
).activate()

bgcolour = (255,255,180)

CANVAS  = Canvas( position=(0,40),
                   size=(800,320),
                   bgcolour = bgcolour,
                 ).activate()

CHALLENGE  = TextDisplayer(size = (390, 200),
                            position = (0,40),
                            bgcolour = bgcolour,
                            text_height=48,
                            transparent =1,
                           ).activate()

TEXT  = Textbox(size = (800, 100),
                       position = (0,260),
                       bgcolour = (255,180,255),
                       text_height=48,
                       transparent =1,
                      ).activate()
Exemplo n.º 7
0
def makeBasicSketcher(left=0, top=0, width=1024, height=768, is_client=False):
    if is_client:
        # This is a temporary addition to prevent slide synchronisation issues between server and client
        # This could be removed should full synchronisation of files between clients and servers be achieved
        CLEAR = nullSinkComponent()
        SAVEDECK = nullSinkComponent()
        LOADDECK = nullSinkComponent()
        DELETE = nullSinkComponent()
        CLOSEDECK = nullSinkComponent()
        PAGINGCONTROLS = nullSinkComponent()
    else:
        CLEAR = ClearPage(left + (64 * 5) + 32 * len(colours) + 1, top)
        SAVEDECK = SaveDeck(left + (64 * 8) + 32 * len(colours) + 1, top)
        LOADDECK = LoadDeck(left + (64 * 7) + 32 * len(colours) + 1, top)
        DELETE = Delete(left + (64 * 6) + 32 * len(colours) + 1, top)
        CLOSEDECK = ClearScribbles(left + (64 * 9) + 32 * len(colours) + 1,
                                   top)
        PAGINGCONTROLS = PagingControls(left + 64 + 32 * len(colours) + 1, top)
    return Graphline(
        CANVAS=Canvas(position=(left, top + 32 + 1),
                      size=(width - 192, (height - (32 + 15) - 1)),
                      bgcolour=(255, 255, 255)),
        PAINTER=Painter(),
        PALETTE=buildPalette(cols=colours,
                             order=colours_order,
                             topleft=(left + 64, top),
                             size=32),
        ERASER=Eraser(left, top),
        CLEAR=CLEAR,
        SAVEDECK=SAVEDECK,
        LOADDECK=LOADDECK,
        DECKMANAGER=Decks(config['directories']['scribbles'],
                          config['directories']['decks'], emailavailable),

        #                    SMARTBOARD = SmartBoard(),
        DELETE=DELETE,
        CLOSEDECK=CLOSEDECK,
        QUIT=Quit(left + (64 * 10) + 32 * len(colours) + 1, top),
        PAGINGCONTROLS=PAGINGCONTROLS,
        #LOCALPAGINGCONTROLS = LocalPagingControls(left+(64*6)+32*len(colours),top),
        LOCALPAGEEVENTS=LocalPageEventsFilter(),
        HISTORY=CheckpointSequencer(
            lambda X: [["LOAD", SLIDESPEC % (X, ), 'nopropogate']],
            lambda X: [["LOAD", SLIDESPEC % (X, )]],
            lambda X: [["SAVE", SLIDESPEC % (X, )]],
            lambda X: [["NEW"]],
            initial=1,
            last=num_pages,
        ),
        PAINT_SPLITTER=TwoWaySplitter(),
        #LOCALEVENT_SPLITTER = TwoWaySplitter(),
        DEBUG=ConsoleEchoer(),
        TICKER=Ticker(position=(left, top + height - 15),
                      background_colour=(220, 220, 220),
                      text_colour=(0, 0, 0),
                      text_height=(17),
                      render_right=(width),
                      render_bottom=(15)),
        EMAIL=Email(config['email']['server'], config['email']['port'],
                    config['email']['from'], config['email']['user'],
                    config['email']['pass']),
        linkages={
            ("CANVAS", "eventsOut"): ("PAINTER", "inbox"),
            ("PALETTE", "outbox"): ("PAINTER", "colour"),
            ("ERASER", "outbox"): ("PAINTER", "erase"),
            ("PAINTER", "outbox"): ("PAINT_SPLITTER", "inbox"),
            ("CLEAR", "outbox"): ("PAINT_SPLITTER", "inbox"),
            ("PAINT_SPLITTER", "outbox"): ("CANVAS", "inbox"),
            ("PAINT_SPLITTER", "outbox2"):
            ("self", "outbox"),  # send to network
            ("SAVEDECK", "outbox"): ("DECKMANAGER", "inbox"),
            ("LOADDECK", "outbox"): ("DECKMANAGER", "inbox"),
            ("CLOSEDECK", "outbox"): ("DECKMANAGER", "inbox"),
            ("DELETE", "outbox"): ("HISTORY", "inbox"),
            ("DECKMANAGER", "toTicker"): ("TICKER", "inbox"),
            ("DECKMANAGER", "toCanvas"): ("CANVAS", "inbox"),
            ("DECKMANAGER", "toSequencer"): ("HISTORY", "inbox"),
            ("QUIT", "outbox"): ("DECKMANAGER", "inbox"),

            #("LOCALPAGINGCONTROLS","outbox")  : ("LOCALEVENT_SPLITTER", "inbox"),
            #("LOCALEVENT_SPLITTER", "outbox2"): ("", "outbox"), # send to network
            #("LOCALEVENT_SPLITTER", "outbox") : ("LOCALPAGEEVENTS", "inbox"),
            ("self", "inbox"): ("LOCALPAGEEVENTS", "inbox"),
            ("LOCALPAGEEVENTS", "false"): ("CANVAS", "inbox"),
            ("LOCALPAGEEVENTS", "true"): ("HISTORY", "inbox"),
            ("PAGINGCONTROLS", "outbox"): ("HISTORY", "inbox"),
            ("HISTORY", "outbox"): ("CANVAS", "inbox"),
            ("HISTORY", "toDecks"): ("DECKMANAGER", "inbox"),
            ("CANVAS", "outbox"): ("self", "outbox"),
            ("CANVAS", "surfacechanged"): ("HISTORY", "inbox"),

            #                          ("SMARTBOARD", "colour") : ("PAINTER", "colour"),
            #                          ("SMARTBOARD", "erase") : ("PAINTER", "erase"),
            #                          ("SMARTBOARD", "toTicker") : ("TICKER", "inbox"),
            ("DECKMANAGER", "toEmail"): ("EMAIL", "inbox"),
            ("EMAIL", "outbox"): ("DECKMANAGER", "fromEmail"),
        },
    )