static void script_run_fun(void* priv, int delta) { if (script_state) { script_stop_requested = 1; } else { script_stop_requested = 0; gui_stop_menu(); task_create("run_script", 0x1c, 0x4000, run_script, 0); } }
static void run_script(const char *script) { extern int ml_started; while (!ml_started) msleep(100); // for startup scripts script_state = SCRIPT_RUNNING; msleep(500); console_clear(); console_show(); console_set_help_text("SET: show/hide"); console_set_status_text("Script running..."); int exit_code = tcc_compile_and_run(get_script_path(script_selected)); if (exit_code == 0) { console_puts( "Script finished.\n"); } else { console_printf( "Script error: %d.\n", exit_code); msleep(500); gui_stop_menu(); msleep(500); console_show(); } // restore some settings to normal, if script changed them //~ script_cleanup_af(); bmp_draw_to_idle(0); canon_gui_enable_front_buffer(0); beep(); script_state = SCRIPT_JUST_FINISHED; console_set_status_text("Script finished. "); msleep(500); redraw(); msleep(500); for (int i = 0; i < 100; i++) { msleep(100); if (gui_menu_shown()) break; if (get_halfshutter_pressed()) break; } console_hide(); script_state = SCRIPT_IDLE; console_set_status_text(""); }
static MENU_SELECT_FUNC(lv_rec_create_task) { gui_stop_menu(); task_create("lv_rec_task", 0x1a, 0x1000, lv_rec_menu_start, (void*)delta); }