qcam: Store CameraManager as class member

Intialise a local copy of the CameraManager instance to ease
access to the CameraManager which is frequently utilised.

Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Kieran Bingham 2020-02-07 16:18:03 +00:00
parent de584a58f7
commit 871879eb73
2 changed files with 12 additions and 11 deletions

View file

@ -23,7 +23,7 @@
using namespace libcamera; using namespace libcamera;
MainWindow::MainWindow(CameraManager *cm, const OptionsParser::Options &options) MainWindow::MainWindow(CameraManager *cm, const OptionsParser::Options &options)
: options_(options), allocator_(nullptr), isCapturing_(false) : options_(options), cm_(cm), allocator_(nullptr), isCapturing_(false)
{ {
int ret; int ret;
@ -35,7 +35,7 @@ MainWindow::MainWindow(CameraManager *cm, const OptionsParser::Options &options)
setCentralWidget(viewfinder_); setCentralWidget(viewfinder_);
adjustSize(); adjustSize();
ret = openCamera(cm); ret = openCamera();
if (!ret) if (!ret)
ret = startCapture(); ret = startCapture();
@ -66,15 +66,15 @@ void MainWindow::updateTitle()
setWindowTitle(title_ + " : " + QString::number(fps, 'f', 2) + " fps"); setWindowTitle(title_ + " : " + QString::number(fps, 'f', 2) + " fps");
} }
std::string MainWindow::chooseCamera(CameraManager *cm) std::string MainWindow::chooseCamera()
{ {
QStringList cameras; QStringList cameras;
bool result; bool result;
if (cm->cameras().size() == 1) if (cm_->cameras().size() == 1)
return cm->cameras()[0]->name(); return cm_->cameras()[0]->name();
for (const std::shared_ptr<Camera> &cam : cm->cameras()) for (const std::shared_ptr<Camera> &cam : cm_->cameras())
cameras.append(QString::fromStdString(cam->name())); cameras.append(QString::fromStdString(cam->name()));
QString name = QInputDialog::getItem(this, "Select Camera", QString name = QInputDialog::getItem(this, "Select Camera",
@ -86,19 +86,19 @@ std::string MainWindow::chooseCamera(CameraManager *cm)
return name.toStdString(); return name.toStdString();
} }
int MainWindow::openCamera(CameraManager *cm) int MainWindow::openCamera()
{ {
std::string cameraName; std::string cameraName;
if (options_.isSet(OptCamera)) if (options_.isSet(OptCamera))
cameraName = static_cast<std::string>(options_[OptCamera]); cameraName = static_cast<std::string>(options_[OptCamera]);
else else
cameraName = chooseCamera(cm); cameraName = chooseCamera();
if (cameraName == "") if (cameraName == "")
return -EINVAL; return -EINVAL;
camera_ = cm->get(cameraName); camera_ = cm_->get(cameraName);
if (!camera_) { if (!camera_) {
std::cout << "Camera " << cameraName << " not found" std::cout << "Camera " << cameraName << " not found"
<< std::endl; << std::endl;

View file

@ -44,8 +44,8 @@ private Q_SLOTS:
void updateTitle(); void updateTitle();
private: private:
std::string chooseCamera(CameraManager *cm); std::string chooseCamera();
int openCamera(CameraManager *cm); int openCamera();
int startCapture(); int startCapture();
void stopCapture(); void stopCapture();
@ -58,6 +58,7 @@ private:
const OptionsParser::Options &options_; const OptionsParser::Options &options_;
CameraManager *cm_;
std::shared_ptr<Camera> camera_; std::shared_ptr<Camera> camera_;
FrameBufferAllocator *allocator_; FrameBufferAllocator *allocator_;