Ejemplo n.º 1
0
		int setFlag(freenect_flag flag, bool value)
		{
			return freenect_set_flag(m_dev, flag, value ? FREENECT_ON : FREENECT_OFF);
		}
Ejemplo n.º 2
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;
		}
		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;
	}
}
Ejemplo n.º 3
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);
}