void * dump_proc(void * args) { struct dump_manager *manager = (struct dump_manager*) args; while (1) { wait_usb_plugin(manager); unmount_usb(manager); if (mount_usb(manager) == 0) { get_record_id(manager); change_led_mode(LED_DUMP); if (exe_update(manager) != 0) { get_config_info(manager); get_time(&(manager->time_export)); dump_status(manager); dump_serial(manager); dump_wave(manager); } unmount_usb(manager); change_led_mode(LED_DUMP_FINISHED); wait_usb_plugout(manager); change_led_mode(LED_NORMAL); } } return NULL; }
//INTENT_TOGGLE toggle usb intentResult* intent_toggle(int argc, char *argv[]) { assert_ui_if_fail(argc == 1); assert_ui_if_fail(argv[0] != NULL); int intent_type = atoi(argv[0]); int result = 0; if (intent_type == 0) { umount_usb(); ensure_path_unmounted("/sdcard"); ensure_path_unmounted("/external_sd"); return miuiIntent_result_set(result, "ok"); } //wait for usb connected //while (is_usb_connected()) ; if (is_usb_connected()) { mount_usb(); return miuiIntent_result_set(result, "mounted"); } LOGE("USB not connect\n"); umount_usb(); ensure_path_unmounted("/sdcard"); ensure_path_unmounted("/external_sd"); return miuiIntent_result_set(result, "ok"); }