int setFlag(freenect_flag flag, bool value) { return freenect_set_flag(m_dev, flag, value ? FREENECT_ON : FREENECT_OFF); }
void keyPressed(unsigned char key, int x, int y) { if (key == 27) { die = 1; pthread_join(freenect_thread, NULL); glutDestroyWindow(window); free(depth_mid); free(depth_front); free(rgb_back); free(rgb_mid); free(rgb_front); // Not pthread_exit because OSX leaves a thread lying around and doesn't exit exit(0); } if (key == 'w') { freenect_angle++; if (freenect_angle > 30) { freenect_angle = 30; } tilt_changed++; } if (key == 's') { freenect_angle = 0; tilt_changed++; } if (key == 'f') { if (requested_format == FREENECT_VIDEO_IR_8BIT) requested_format = FREENECT_VIDEO_RGB; else if (requested_format == FREENECT_VIDEO_RGB) requested_format = FREENECT_VIDEO_YUV_RGB; else requested_format = FREENECT_VIDEO_IR_8BIT; } if (key == 'x') { freenect_angle--; if (freenect_angle < -30) { freenect_angle = -30; } tilt_changed++; } if (key == 'e') { static freenect_flag_value auto_exposure = FREENECT_ON; freenect_set_flag(f_dev, FREENECT_AUTO_EXPOSURE, auto_exposure); auto_exposure = auto_exposure ? FREENECT_OFF : FREENECT_ON; } if (key == 'b') { static freenect_flag_value white_balance = FREENECT_ON; freenect_set_flag(f_dev, FREENECT_AUTO_WHITE_BALANCE, white_balance); white_balance = white_balance ? FREENECT_OFF : FREENECT_ON; } if (key == 'r') { static freenect_flag_value raw_color = FREENECT_ON; freenect_set_flag(f_dev, FREENECT_RAW_COLOR, raw_color); raw_color = raw_color ? FREENECT_OFF : FREENECT_ON; } if (key == 'm') { static freenect_flag_value mirror = FREENECT_ON; freenect_set_flag(f_dev, FREENECT_MIRROR_DEPTH, mirror); freenect_set_flag(f_dev, FREENECT_MIRROR_VIDEO, mirror); mirror = mirror ? FREENECT_OFF : FREENECT_ON; } if (key == 'n') { static freenect_flag_value near_mode = FREENECT_ON; freenect_set_flag(f_dev, FREENECT_NEAR_MODE, near_mode); near_mode = near_mode ? FREENECT_OFF : FREENECT_ON; } if (key == '+') { uint16_t brightness = freenect_get_ir_brightness(f_dev) + 2; freenect_set_ir_brightness(f_dev, brightness); } if (key == '-') { uint16_t brightness = freenect_get_ir_brightness(f_dev) - 2; freenect_set_ir_brightness(f_dev, brightness); } if (key == '1') { freenect_set_led(f_dev,LED_GREEN); } if (key == '2') { freenect_set_led(f_dev,LED_RED); } if (key == '3') { freenect_set_led(f_dev,LED_YELLOW); } if (key == '4') { freenect_set_led(f_dev,LED_BLINK_GREEN); } if (key == '5') { // 5 is the same as 4 freenect_set_led(f_dev,LED_BLINK_GREEN); } if (key == '6') { freenect_set_led(f_dev,LED_BLINK_RED_YELLOW); } if (key == '0') { freenect_set_led(f_dev,LED_OFF); } if (key == 'o') { if (camera_rotate) { camera_rotate = 0; glDisable(GL_DEPTH_TEST); } else { camera_rotate = 1; glEnable(GL_DEPTH_TEST); } } if (tilt_changed) { freenect_set_tilt_degs(f_dev, freenect_angle); tilt_changed = 0; } }
void keyPressed(unsigned char key, int x, int y) { if (key == 27) { die = 1; pthread_join(freenect_thread, NULL); glutDestroyWindow(window); free(depth_mid); free(depth_front); free(rgb_back); free(rgb_mid); free(rgb_front); // Not pthread_exit because OSX leaves a thread lying around and doesn't exit exit(0); } if (key == 'w') { freenect_angle++; if (freenect_angle > 30) { freenect_angle = 30; } } if (key == 's') { freenect_angle = 0; } if (key == 'f') { if (requested_format == FREENECT_VIDEO_IR_8BIT) requested_format = FREENECT_VIDEO_RGB; else if (requested_format == FREENECT_VIDEO_RGB) requested_format = FREENECT_VIDEO_YUV_RGB; else requested_format = FREENECT_VIDEO_IR_8BIT; } if (key == 'x') { freenect_angle--; if (freenect_angle < -30) { freenect_angle = -30; } } if (key == 'e') { static freenect_flag_value auto_exposure = FREENECT_ON; freenect_set_flag(f_dev, FREENECT_AUTO_EXPOSURE, auto_exposure); auto_exposure = !auto_exposure; } if (key == 'b') { static freenect_flag_value white_balance = FREENECT_ON; freenect_set_flag(f_dev, FREENECT_AUTO_WHITE_BALANCE, white_balance); white_balance = !white_balance; } if (key == 'r') { static freenect_flag_value raw_color = FREENECT_ON; freenect_set_flag(f_dev, FREENECT_RAW_COLOR, raw_color); raw_color = !raw_color; } if (key == 'm') { static freenect_flag_value mirror = FREENECT_ON; freenect_set_flag(f_dev, FREENECT_MIRROR_DEPTH, mirror); freenect_set_flag(f_dev, FREENECT_MIRROR_VIDEO, mirror); mirror = !mirror; } if (key == '1') { freenect_set_led(f_dev,LED_GREEN); } if (key == '2') { freenect_set_led(f_dev,LED_RED); } if (key == '3') { freenect_set_led(f_dev,LED_YELLOW); } if (key == '4') { freenect_set_led(f_dev,LED_BLINK_GREEN); } if (key == '5') { // 5 is the same as 4 freenect_set_led(f_dev,LED_BLINK_GREEN); } if (key == '6') { freenect_set_led(f_dev,LED_BLINK_RED_YELLOW); } if (key == '0') { freenect_set_led(f_dev,LED_OFF); } freenect_set_tilt_degs(f_dev,freenect_angle); }