From 3d214c2655cc38607ab8ea2f94b161a841dc98eb Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Tue, 25 Jun 2013 15:26:07 -0700 Subject: [PATCH] More work on Kinect integration. --- interface/src/Webcam.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/interface/src/Webcam.cpp b/interface/src/Webcam.cpp index f01b9a5804..ce12ee4384 100644 --- a/interface/src/Webcam.cpp +++ b/interface/src/Webcam.cpp @@ -181,6 +181,8 @@ FrameGrabber::FrameGrabber() : _capture(0), _searchWindow(0, 0, 0, 0), _freenect FrameGrabber::~FrameGrabber() { if (_freenectContext != 0) { + freenect_stop_depth(_freenectDevice); + freenect_stop_video(_freenectDevice); freenect_close_device(_freenectDevice); freenect_shutdown(_freenectContext); @@ -198,7 +200,7 @@ void FrameGrabber::grabFrame() { return; } if (_freenectContext != 0) { - + freenect_process_events(_freenectContext); return; } @@ -250,11 +252,21 @@ void FrameGrabber::grabFrame() { Q_ARG(cv::Mat, frame), Q_ARG(cv::RotatedRect, faceRect)); } +static void depthCallback(freenect_device* freenectDevice, void* depth, uint32_t timestamp) { +} + +static void videoCallback(freenect_device* freenectDevice, void* video, uint32_t timestamp) { +} + bool FrameGrabber::init() { // first try for a Kinect if (freenect_init(&_freenectContext, 0) >= 0) { if (freenect_num_devices(_freenectContext) > 0) { if (freenect_open_device(_freenectContext, &_freenectDevice, 0) >= 0) { + freenect_set_depth_callback(_freenectDevice, depthCallback); + freenect_set_video_callback(_freenectDevice, videoCallback); + freenect_start_depth(_freenectDevice); + freenect_start_video(_freenectDevice); return true; } }