Example #1
0
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");
}