Merge pull request #650 from ey6es/kinected

Bugfix: Turn the camera off when disabled.
This commit is contained in:
Philip Rosedale 2013-07-11 12:15:17 -07:00
commit 489742f1e1
2 changed files with 15 additions and 4 deletions

View file

@ -50,7 +50,7 @@ void Webcam::setEnabled(bool enabled) {
QMetaObject::invokeMethod(_grabber, "grabFrame");
} else {
_grabberThread.quit();
QMetaObject::invokeMethod(_grabber, "shutdown");
_active = false;
}
}
@ -267,8 +267,8 @@ FrameGrabber::FrameGrabber() : _initialized(false), _capture(0), _searchWindow(0
}
FrameGrabber::~FrameGrabber() {
if (_capture != 0) {
cvReleaseCapture(&_capture);
if (_initialized) {
shutdown();
}
}
@ -366,6 +366,16 @@ void FrameGrabber::reset() {
#endif
}
void FrameGrabber::shutdown() {
if (_capture != 0) {
cvReleaseCapture(&_capture);
_capture = 0;
}
_initialized = false;
thread()->quit();
}
void FrameGrabber::grabFrame() {
if (!(_initialized || init())) {
return;
@ -475,7 +485,7 @@ bool FrameGrabber::init() {
// load our face cascade
switchToResourcesParentIfRequired();
if (!_faceCascade.load("resources/haarcascades/haarcascade_frontalface_alt.xml")) {
if (_faceCascade.empty() && !_faceCascade.load("resources/haarcascades/haarcascade_frontalface_alt.xml")) {
printLog("Failed to load Haar cascade for face tracking.\n");
return false;
}

View file

@ -94,6 +94,7 @@ public:
public slots:
void reset();
void shutdown();
void grabFrame();
private: