2 #include "qtcamscanner.h"
3 #include "qtcamconfig.h"
4 #include "qtcamdevice.h"
7 class QtCameraPrivate {
10 QtCamScanner *scanner;
13 QtCamera::QtCamera(QObject *parent) :
14 QObject(parent), d_ptr(new QtCameraPrivate) {
18 d_ptr->conf = new QtCamConfig(this);
19 d_ptr->scanner = new QtCamScanner(d_ptr->conf, this);
24 QtCamera::QtCamera(const QString& configPath, QObject *parent) :
25 QObject(parent), d_ptr(new QtCameraPrivate) {
29 d_ptr->conf = new QtCamConfig(configPath, this);
30 d_ptr->scanner = new QtCamScanner(d_ptr->conf, this);
35 QtCamera::QtCamera(QtCamConfig *config, QObject *parent) :
36 QObject(parent), d_ptr(new QtCameraPrivate) {
41 d_ptr->scanner = new QtCamScanner(d_ptr->conf, this);
46 QtCamera::~QtCamera() {
47 delete d_ptr; d_ptr = 0;
53 void QtCamera::refreshDevices() {
54 d_ptr->scanner->refresh();
57 QList<QPair<QString, QVariant> > QtCamera::devices() const {
58 return d_ptr->scanner->devices();
61 QtCamDevice *QtCamera::device(const QVariant& id, QObject *parent) {
62 QList<QPair<QString, QVariant> > devs = devices();
64 // G++ barfs with foreach and class templates.
65 typedef QPair<QString, QVariant> Dev;
66 foreach (const Dev& dev, devs) {
67 if (dev.second == id) {
68 return new QtCamDevice(d_ptr->conf, dev.first, dev.second, parent ? parent : this);
75 QtCamConfig *QtCamera::config() const {