def paint(self, surface): surface.fill(0) surface.center_text(self.font, self.title, y=2) surface.hline(11) # Lame multi-line text rendering: words = self.episode_title.split() line1 = ' '.join(words[:len(words) / 2]) line2 = ' '.join(words[len(words) / 2:]) surface.center_text(self.font, line1, y=22) surface.center_text(self.font, line2, y=32) ui.render_progressbar(surface, 0, 48, surface.width, 14, self.audio_service.playback_progress)
def addpanel(self, panel_class, config): self.framebuffer.fill(0) ui.render_progressbar(self.framebuffer, 2, self.framebuffer.height / 2 - 8, self.framebuffer.width - 2 * 2, 16, len(self.panels) / float(len(self.panel_defs))) self.framebuffer.center_text(self.font, panel_class.__name__, rop=graphics.rop_xor) self.lcd_update() lcd.readkeys() logging.info('Initializing %s', panel_class.__name__) try: instance = self.broker.instantiate(panel_class, config) self.panels.append(instance) self.backing_stores[instance] = graphics.Surface(lcd.LCD_WIDTH, lcd.LCD_HEIGHT) except Exception as e: logging.error('Failed to initialize panel %s', panel_class.__name__) logging.exception(e)
def addpanel(self, panel_class, config): self.framebuffer.fill(0) ui.render_progressbar(self.framebuffer, 2, self.framebuffer.height / 2 - 8, self.framebuffer.width - 2 * 2, 16, len(self.panels) / float(len(self.panel_defs))) self.framebuffer.center_text(self.font, panel_class.__name__, rop=graphics.rop_xor) self.lcd_update() lcd.readkeys() logging.info('Initializing %s', panel_class.__name__) try: instance = self.broker.instantiate(panel_class, config) self.panels.append(instance) self.backing_stores[instance] = graphics.Surface( lcd.LCD_WIDTH, lcd.LCD_HEIGHT) except Exception as e: logging.error('Failed to initialize panel %s', panel_class.__name__) logging.exception(e)