Updated the camera virtual interface

git-svn-id: http://find-object.googlecode.com/svn/trunk/find_object@45 620bd6b2-0a58-f614-fd9a-1bd335dccda9
This commit is contained in:
matlabbe 2011-11-24 00:00:37 +00:00
parent d3d90bc6a9
commit 708cfa9cff
2 changed files with 37 additions and 17 deletions

View File

@ -25,7 +25,7 @@ Camera::~Camera()
void Camera::stop() void Camera::stop()
{ {
cameraTimer_.stop(); stopTimer();
if(capture_) if(capture_)
{ {
cvReleaseCapture(&capture_); cvReleaseCapture(&capture_);
@ -72,8 +72,6 @@ void Camera::takeImage()
} }
bool Camera::start() bool Camera::start()
{
if(!capture_)
{ {
if(!capture_) if(!capture_)
{ {
@ -89,14 +87,31 @@ bool Camera::start()
printf("Failed to create a capture object!\n"); printf("Failed to create a capture object!\n");
return false; return false;
} }
startTimer();
return true;
} }
cameraTimer_.start(1000/Settings::getCamera_imageRate().toInt()); void Camera::startTimer()
return true; {
updateImageRate();
cameraTimer_.start();
}
void Camera::stopTimer()
{
cameraTimer_.stop();
} }
void Camera::updateImageRate() void Camera::updateImageRate()
{
if(Settings::getCamera_imageRate().toInt())
{ {
cameraTimer_.setInterval(1000/Settings::getCamera_imageRate().toInt()); cameraTimer_.setInterval(1000/Settings::getCamera_imageRate().toInt());
} }
else
{
cameraTimer_.setInterval(0);
}
}

View File

@ -20,15 +20,20 @@ public:
virtual bool start(); virtual bool start();
virtual void stop(); virtual void stop();
virtual bool isRunning() {return cameraTimer_.isActive();}
signals: signals:
void imageReceived(const cv::Mat & image); void imageReceived(const cv::Mat & image);
public slots: public slots:
void updateImageRate(); virtual void updateImageRate();
private slots: private slots:
void takeImage(); virtual void takeImage();
protected:
void startTimer();
void stopTimer();
private: private:
CvCapture * capture_; CvCapture * capture_;