mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-21 11:25:08 +03:00
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:
parent
de584a58f7
commit
871879eb73
2 changed files with 12 additions and 11 deletions
|
@ -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;
|
||||||
|
|
|
@ -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_;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue