/* Fonction qui permet d'éteindre une led Argument en entrée le numéro de la diode de 0 à 7 si le numéro de la diode n'est pas l'intervalle la diode 1 sera éteindre Valeur retour 0 si aucun pb 1 sinon */ void led_off(int i) { led_check_init(); if (i >= 0 && i <= 7) PORTD &= ~(1 << i); else led_alert(); }
static int run_bootmenu(void) { time_t start = time(NULL); LOGI("Starting bootmenu on %s", ctime(&start)); if (bypass_check()) { int status = INSTALL_SUCCESS; exec_script(FILE_PRE_MENU, DISABLE); led_alert("blue", ENABLE); status = wait_key(KEY_VOLUMEDOWN); if (status != INSTALL_ERROR) { int mode = get_bootmode(); switch (mode) { case MODE_2NDINIT: led_alert("blue", DISABLE); led_alert("green", ENABLE); snd_init(DISABLE); led_alert("green", DISABLE); break; case MODE_2NDBOOT: led_alert("blue", DISABLE); led_alert("red", ENABLE); snd_boot(DISABLE); led_alert("red", DISABLE); break; case MODE_BOOTMENU: status = INSTALL_ERROR; break; } } if (status != INSTALL_SUCCESS) { ui_init(); ui_set_background(BACKGROUND_ICON_ERROR); ui_show_text(ENABLE); LOGI("Start Android BootMenu....\n"); prompt_and_wait(); ui_finish(); } led_alert("blue", DISABLE); return EXIT_SUCCESS; } return EXIT_SUCCESS; }
int gr_fb_test(void) { release_framebuffer(gr_framebuffer); gr_fb_fd = get_framebuffer(gr_framebuffer); if (gr_fb_fd < 0) { led_alert("red", 1); gr_exit(); return -1; } return 0; }
/** * wait_key() * */ static int wait_key(int key) { int i; int result = 0; evt_init(); //ui_clear_key_queue(); for(i=0; i < 100; i++) { if(ui_key_pressed(key)) { led_alert("blue", DISABLE); result = 1; break; } else { usleep(15000); //15ms * 100 } } evt_exit(); return result; }
static int release_framebuffer(GGLSurface *fb) { int ret; void *bits; bits = fb->data; if (bits == NULL) return -2; close(gr_fb_fd); gr_fb_fd = -1; if (mmap_len == 0) return -1; ret = munmap(bits, mmap_len); if (ret < 0) led_alert("red", 1); return ret; }
/** * run_bootmenu() * */ static int run_bootmenu(void) { int defmode, mode, status = BUTTON_ERROR; int adb_started = 0; time_t start = time(NULL); LOGI("Starting bootmenu on %s", ctime(&start)); if (bypass_check()) { // init rootfs and mount cache exec_script(FILE_PRE_MENU, DISABLE); led_alert("blue", ENABLE); defmode = get_default_bootmode(); // get and clean one shot bootmode (or default) mode = get_bootmode(1,1); if (mode == int_mode("bootmenu") || mode == int_mode("recovery") || mode == int_mode("shell")) { // dont wait if these modes are asked } else { status = (wait_key(KEY_VOLUMEDOWN) ? BUTTON_PRESSED : BUTTON_TIMEOUT); } // only start adb if usb is connected if (usb_connected()) { if (mode == int_mode("2nd-init-adb") || mode == int_mode("2nd-boot-adb") || mode == int_mode("2nd-system-adb")) { exec_script(FILE_ADBD, DISABLE); adb_started = 1; } } // on timeout if (status != BUTTON_PRESSED) { if (mode == int_mode("bootmenu")) { led_alert("blue", DISABLE); status = BUTTON_PRESSED; } else if (mode == int_mode("2nd-init") || mode == int_mode("2nd-init-adb")) { led_alert("blue", DISABLE); led_alert("green", ENABLE); snd_init(DISABLE); led_alert("green", DISABLE); status = BUTTON_TIMEOUT; } else if (mode == int_mode("2nd-boot") || mode == int_mode("2nd-boot-adb")) { led_alert("blue", DISABLE); led_alert("red", ENABLE); snd_boot(DISABLE); led_alert("red", DISABLE); status = BUTTON_TIMEOUT; } else if (mode == int_mode("2nd-system") || mode == int_mode("2nd-system-adb")) { led_alert("blue", DISABLE); led_alert("red", ENABLE); led_alert("green", ENABLE); snd_system(DISABLE); led_alert("red", DISABLE); led_alert("green", DISABLE); status = BUTTON_TIMEOUT; } else if (mode == int_mode("recovery-dev")) { led_alert("blue", DISABLE); exec_script(FILE_CUSTOMRECOVERY, DISABLE); status = BUTTON_TIMEOUT; } else if (mode == int_mode("recovery")) { led_alert("blue", DISABLE); exec_script(FILE_STABLERECOVERY, DISABLE); status = BUTTON_TIMEOUT; } else if (mode == int_mode("shell")) { led_alert("blue", DISABLE); exec_script(FILE_ADBD, DISABLE); status = BUTTON_PRESSED; } else if (mode == int_mode("normal") || mode == int_mode("normal-adb")) { led_alert("blue", DISABLE); stk_boot(DISABLE); status = BUTTON_TIMEOUT; } } if (status == BUTTON_PRESSED ) { ui_init(); ui_set_background(BACKGROUND_DEFAULT); ui_show_text(ENABLE); led_alert("button-backlight", ENABLE); LOGI("Start Android BootMenu....\n"); main_headers = prepend_title((const char**)MENU_HEADERS); /* can be buggy, adb could lock filesystem if (!adb_started && usb_connected()) { ui_print("Usb connected, starting adb...\n\n"); exec_script(FILE_ADBD, DISABLE); } */ ui_print("Default mode: %s\n", str_mode(defmode)); if (mode == int_mode("shell")) { ui_print("\n"); ui_print("Current mode: %s\n", str_mode(mode)); if (!usb_connected()) { ui_print(" But USB is not connected !\n"); } } checkup_report(); ui_reset_progress(); prompt_and_wait(); free_menu_headers(main_headers); ui_finish(); } } return EXIT_SUCCESS; }
void command_alert(void) { led_alert(); led_afficher_int(avancement); }