Removed extra new line
[harmattan/cameraplus] / lib / qtcamera.cpp
1 #include "qtcamera.h"
2 #include "qtcamscanner.h"
3 #include "qtcamconfig.h"
4 #include "qtcamdevice.h"
5 #include <gst/gst.h>
6
7 class QtCameraPrivate {
8 public:
9   QtCamConfig *conf;
10   QtCamScanner *scanner;
11 };
12
13 QtCamera::QtCamera(QObject *parent) :
14   QObject(parent), d_ptr(new QtCameraPrivate) {
15
16   gst_init(0, 0);
17
18   d_ptr->conf = new QtCamConfig(this);
19   d_ptr->scanner = new QtCamScanner(d_ptr->conf, this);
20
21   refreshDevices();
22 }
23
24 QtCamera::QtCamera(const QString& configPath, QObject *parent) :
25   QObject(parent), d_ptr(new QtCameraPrivate) {
26
27   gst_init(0, 0);
28
29   d_ptr->conf = new QtCamConfig(configPath, this);
30   d_ptr->scanner = new QtCamScanner(d_ptr->conf, this);
31
32   refreshDevices();
33 }
34
35 QtCamera::QtCamera(QtCamConfig *config, QObject *parent) :
36   QObject(parent), d_ptr(new QtCameraPrivate) {
37
38   gst_init(0, 0);
39
40   d_ptr->conf = config;
41   d_ptr->scanner = new QtCamScanner(d_ptr->conf, this);
42
43   refreshDevices();
44 }
45
46 QtCamera::~QtCamera() {
47   delete d_ptr; d_ptr = 0;
48
49   gst_deinit();
50 }
51
52 void QtCamera::refreshDevices() {
53   d_ptr->scanner->refresh();
54 }
55
56 QList<QPair<QString, QVariant> > QtCamera::devices() const {
57   return d_ptr->scanner->devices();
58 }
59
60 QtCamDevice *QtCamera::device(const QVariant& id, QObject *parent) {
61   QList<QPair<QString, QVariant> > devs = devices();
62
63   // G++ barfs with foreach and class templates.
64   typedef QPair<QString, QVariant> Dev;
65   foreach (const Dev& dev, devs) {
66     if (dev.second == id) {
67       return new QtCamDevice(d_ptr->conf, dev.first, dev.second, parent ? parent : this);
68     }
69   }
70
71   return 0;
72 }
73
74 QtCamConfig *QtCamera::config() const {
75   return d_ptr->conf;
76 }