/* * Class: Drone * Method: emergency * Signature: ()V */ JNIEXPORT void JNICALL Java_cbccore_ARDrone_emergency(JNIEnv * env, jobject obj){ drone_emergency(); }
int ui_flight_run (UI * ui, Drone * drone) { int ret = 0; int is_flying = 0; while (running) { SceCtrlData pad; SceCtrlLatch latch; int yaw = 0; int pitch = 0; int roll = 0; int gaz = 0; if (!drone->connected) { ui_msg_dialog (ui, "Connection to drone lost"); ret = FLIGHT_UI_MAIN_MENU; break; } ui_flight_update (ui, drone); sceCtrlReadBufferPositive (&pad, 1); sceCtrlReadLatch (&latch); is_flying = (drone->state == DRONE_STATE_TAKING_OFF) || (drone->state == DRONE_STATE_FLYING); /* Check triangle and circle transition */ if (EVENT_BUTTON_DOWN (&latch, PSP_CTRL_TRIANGLE)) { if (is_flying) drone_landing (drone); else drone_takeoff (drone); } if (EVENT_BUTTON_DOWN (&latch, PSP_CTRL_CIRCLE)) { drone_emergency (drone); is_flying = 0; } if (EVENT_BUTTON_DOWN (&latch, PSP_CTRL_SELECT)) { switch (ui->setting_select_binding) { case SELECT_BIND_TAKE_PICTURE: drone_take_picture (drone); break; case SELECT_BIND_FLIP_FRONT: drone_do_flip (drone, DRONE_FLIP_FRONT); break; case SELECT_BIND_FLIP_BACK: drone_do_flip (drone, DRONE_FLIP_BACK); break; case SELECT_BIND_FLIP_RIGHT: drone_do_flip (drone, DRONE_FLIP_RIGHT); break; case SELECT_BIND_FLIP_LEFT: drone_do_flip (drone, DRONE_FLIP_LEFT); break; default: break; } } if (EVENT_BUTTON_DOWN (&latch, PSP_CTRL_START)) { if (ui_flight_main_menu (ui, drone) == FLIGHT_MAIN_MENU_QUIT) { ret = FLIGHT_UI_MAIN_MENU; break; } } /* Send flight control */ if (pad.Buttons != 0) { if (pad.Buttons & PSP_CTRL_CROSS) gaz += ui->setting_gaz; if (pad.Buttons & PSP_CTRL_SQUARE) gaz -= ui->setting_gaz; if (pad.Buttons & PSP_CTRL_LTRIGGER) yaw -= ui->setting_yaw; if (pad.Buttons & PSP_CTRL_RTRIGGER) yaw += ui->setting_yaw; if (pad.Buttons & PSP_CTRL_UP) pitch += ui->setting_pitch; if (pad.Buttons & PSP_CTRL_DOWN) pitch -= ui->setting_pitch; if (pad.Buttons & PSP_CTRL_LEFT) roll -= ui->setting_roll; if (pad.Buttons & PSP_CTRL_RIGHT) roll += ui->setting_roll; } if (gaz || yaw || pitch || roll) drone_flight_control (drone, gaz, yaw, pitch, roll); sceDisplayWaitVblankStart (); SDL_Flip (ui->screen); } return ret; }