from hardware import * import utils import time import harmonic_demo import melodic_demo import demo_worms MODULES = [ harmonic_demo, melodic_demo, demo_worms, ] CURRENT_APP_RUN = None VOLUME = 0 ctx = None BACKGROUND_COLOR = 0 def run_menu(): global CURRENT_APP_RUN global ctx display_fill(BACKGROUND_COLOR) utils.draw_volume_slider(ctx, VOLUME) ctx.move_to(0,0).rgb(255,0,255).text("select :3") display_update() selected_petal = None selected_module = None for petal, module in enumerate(MODULES): if utils.long_bottom_petal_captouch_blocking(petal, 20): selected_petal = petal selected_module = module break if selected_petal is not None: utils.clear_all_leds() utils.highlight_bottom_petal(selected_petal, 55, 0, 0) display_fill(BACKGROUND_COLOR) display_update() CURRENT_APP_RUN = selected_module.run time.sleep_ms(100) utils.clear_all_leds() selected_module.foreground() def foreground_menu(): utils.clear_all_leds() utils.highlight_bottom_petal(0,0,55,55); utils.highlight_bottom_petal(1,55,0,55); utils.highlight_bottom_petal(2,55,55,0); display_fill(BACKGROUND_COLOR) display_update() def set_rel_volume(vol): global VOLUME vol += VOLUME if vol > 20: vol = 20 if vol < -40: vol = -40 VOLUME = vol if vol == -40: #mute set_global_volume_dB(-90) else: set_global_volume_dB(VOLUME) time.sleep_ms(100) def main(): global CURRENT_APP_RUN global ctx while not init_done(): pass captouch_autocalib() ctx = get_ctx() ctx.text_align = ctx.CENTER ctx.text_baseline = ctx.MIDDLE for module in MODULES: module.init() CURRENT_APP_RUN = run_menu foreground_menu() set_global_volume_dB(VOLUME) while True: if((get_button(1) == 2) and (CURRENT_APP_RUN == run_menu)): captouch_autocalib() foreground_menu() else: if(get_button(0) == 2): if CURRENT_APP_RUN != run_menu: CURRENT_APP_RUN = run_menu display_scope_stop() foreground_menu() else: if(get_button(0) == 1): set_rel_volume(+1) if(get_button(0) == -1): set_rel_volume(-1) CURRENT_APP_RUN() main()