1 #include "qtcamcapability.h"
2 #include "qtcamdevice.h"
3 #include "qtcamdevice_p.h"
4 #include "qtcamcapability_p.h"
6 #ifndef GST_USE_UNSTABLE_API
7 #define GST_USE_UNSTABLE_API
9 #include <gst/interfaces/photography.h>
11 QtCamCapability::Capabilities QtCamCapability::capabilities(QtCamDevice *dev) {
12 if (!dev || !dev->d_ptr || !dev->d_ptr->videoSource) {
13 return QtCamCapability::Capabilities(0);
16 if (!GST_IS_PHOTOGRAPHY(dev->d_ptr->videoSource)) {
17 return QtCamCapability::Capabilities(0);
20 GstPhotography *photo = GST_PHOTOGRAPHY(dev->d_ptr->videoSource);
21 return QtCamCapability::Capabilities(gst_photography_get_capabilities(photo));
24 QtCamCapability::QtCamCapability(QtCamCapabilityPrivate *d, QObject *parent) :
25 QObject(parent), d_ptr(d) {
26 d_ptr->bin = d_ptr->dev->d_ptr->cameraBin;
27 d_ptr->src = d_ptr->dev->d_ptr->videoSource;
30 if (!d_ptr->prop.isEmpty()) {
31 d_ptr->startMonitoring();
35 QtCamCapability::~QtCamCapability() {
36 if (!d_ptr->prop.isEmpty()) {
37 d_ptr->stopMonitoring();
40 delete d_ptr; d_ptr = 0;
43 bool QtCamCapability::isSupported() {
44 return QtCamCapability::capabilities(d_ptr->dev).testFlag(d_ptr->cap);