class Interface(object): def init(self): info("Initializing interface") Globals().load(self) self.renderer = Renderer() return True def __del__(self): info("Deleting Interface") self.renderer.__del__() if(self.server): self.server.__del___() def start(self): info("Starting interface") # create input handlers self.mouse_handler = eval(self.app.mouse_handler + "()") self.keyboard_handler = eval(self.app.keyboard_handler + "()") # create_console if config.PIL_available: console = Console() self.renderer.register_console_callbacks(console.render_console, console.console_keyboard) # register callbacks & console with Renderer self.renderer.register_callbacks(self.keyboard_handler.do_key, self.mouse_handler.do_button, self.mouse_handler.do_motion) # register cmdcenter with renderer self.renderer.cmdcenter = self.cmdcenter # start server if(self.app.server): self.server = Server() self.server.start() else: self.server = None # start midi if(self.app.midi_enabled): self.app.last_midi_event = self.cmdcenter.time() self.midi = MidiHandler() # sync par & zn lists to controller if(self.app.midi_echo): self.cmdcenter.state.par.add_observer(midi.mirror) self.cmdcenter.state.zn.add_observer(midi.mirror) # start midi self.midi.start() else: self.midi = None # start osc if(self.app.OSC_enabled): self.osc = eval(self.app.OSC_handler + "()") self.osc.start() # sync par & zn lists to controller if(self.app.OSC_echo): self.cmdcenter.state.par.add_observer(self.osc.mirror) self.cmdcenter.state.zn.add_observer(self.osc.mirror) self.cmdcenter.state.components.add_observer(self.osc.mirror) self.cmdcenter.state.add_observer(self.osc.mirror) self.renderer.start() def do(self): # execute renderer self.renderer.do()