projects
/
harmattan
/
cameraplus
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
9765fcd
)
Added renderArea property to Camera
author
Mohammed Sameer
<msameer@foolab.org>
Sat, 15 Dec 2012 19:06:06 +0000
(21:06 +0200)
committer
Mohammed Sameer
<msameer@foolab.org>
Sat, 15 Dec 2012 19:06:06 +0000
(21:06 +0200)
imports/camera.cpp
patch
|
blob
|
history
imports/camera.h
patch
|
blob
|
history
lib/qtcamgraphicsviewfinder.cpp
patch
|
blob
|
history
lib/qtcamgraphicsviewfinder.h
patch
|
blob
|
history
lib/qtcamviewfinderrenderer.h
patch
|
blob
|
history
lib/qtcamviewfinderrenderergeneric.cpp
patch
|
blob
|
history
lib/qtcamviewfinderrenderergeneric.h
patch
|
blob
|
history
lib/qtcamviewfinderrenderermeego.cpp
patch
|
blob
|
history
lib/qtcamviewfinderrenderermeego.h
patch
|
blob
|
history
diff --git
a/imports/camera.cpp
b/imports/camera.cpp
index
833b580
..
1b36d73
100644
(file)
--- a/
imports/camera.cpp
+++ b/
imports/camera.cpp
@@
-48,8
+48,6
@@
#include "videomute.h"
#include "videotorch.h"
#include "videomute.h"
#include "videotorch.h"
-// TODO: a viewfinder class that inherits QDeclarativeItem
-
Camera::Camera(QDeclarativeItem *parent) :
QDeclarativeItem(parent),
m_cam(new QtCamera(this)),
Camera::Camera(QDeclarativeItem *parent) :
QDeclarativeItem(parent),
m_cam(new QtCamera(this)),
@@
-73,7
+71,7
@@
Camera::Camera(QDeclarativeItem *parent) :
m_videoMute(0),
m_videoTorch(0) {
m_videoMute(0),
m_videoTorch(0) {
- // TODO:
+ QObject::connect(m_vf, SIGNAL(renderAreaChanged()), this, SIGNAL(renderAreaChanged()));
}
Camera::~Camera() {
}
Camera::~Camera() {
@@
-284,6
+282,10
@@
void Camera::setNotifications(Notifications *notifications) {
}
}
}
}
+QRectF Camera::renderArea() const {
+ return m_vf->renderArea();
+}
+
void Camera::resetCapabilities() {
QtCamDevice *dev = device();
void Camera::resetCapabilities() {
QtCamDevice *dev = device();
diff --git
a/imports/camera.h
b/imports/camera.h
index
13bcb30
..
60333f7
100644
(file)
--- a/
imports/camera.h
+++ b/
imports/camera.h
@@
-60,6
+60,8
@@
class Camera : public QDeclarativeItem {
Q_PROPERTY(QString videoSuffix READ videoSuffix CONSTANT);
Q_PROPERTY(Notifications *notifications READ notifications WRITE setNotifications NOTIFY notificationsChanged);
Q_PROPERTY(QString videoSuffix READ videoSuffix CONSTANT);
Q_PROPERTY(Notifications *notifications READ notifications WRITE setNotifications NOTIFY notificationsChanged);
+ Q_PROPERTY(QRectF renderArea READ renderArea NOTIFY renderAreaChanged);
+
Q_PROPERTY(Zoom *zoom READ zoom NOTIFY zoomChanged);
Q_PROPERTY(Flash *flash READ flash NOTIFY flashChanged);
Q_PROPERTY(Scene *scene READ scene NOTIFY sceneChanged);
Q_PROPERTY(Zoom *zoom READ zoom NOTIFY zoomChanged);
Q_PROPERTY(Flash *flash READ flash NOTIFY flashChanged);
Q_PROPERTY(Scene *scene READ scene NOTIFY sceneChanged);
@@
-132,6
+134,8
@@
public:
VideoMute *videoMute() const;
VideoTorch *videoTorch() const;
VideoMute *videoMute() const;
VideoTorch *videoTorch() const;
+ QRectF renderArea() const;
+
signals:
void deviceCountChanged();
void deviceIdChanged();
signals:
void deviceCountChanged();
void deviceIdChanged();
@@
-141,6
+145,7
@@
signals:
void runningStateChanged();
void error(const QString& message, int code, const QString& debug);
void notificationsChanged();
void runningStateChanged();
void error(const QString& message, int code, const QString& debug);
void notificationsChanged();
+ void renderAreaChanged();
void zoomChanged();
void flashChanged();
void zoomChanged();
void flashChanged();
diff --git
a/lib/qtcamgraphicsviewfinder.cpp
b/lib/qtcamgraphicsviewfinder.cpp
index
f701fb4
..
2c9b82f
100644
(file)
--- a/
lib/qtcamgraphicsviewfinder.cpp
+++ b/
lib/qtcamgraphicsviewfinder.cpp
@@
-38,6
+38,7
@@
public:
renderer->resize(q_ptr->size());
QObject::connect(renderer, SIGNAL(updateRequested()), q_ptr, SLOT(updateRequested()));
renderer->resize(q_ptr->size());
QObject::connect(renderer, SIGNAL(updateRequested()), q_ptr, SLOT(updateRequested()));
+ QObject::connect(renderer, SIGNAL(renderAreaChanged()), q_ptr, SIGNAL(renderAreaChanged()));
}
}
}
}
@@
-134,3
+135,11
@@
void QtCamGraphicsViewfinder::updateRequested() {
void QtCamGraphicsViewfinder::stop() {
d_ptr->resetBackend();
}
void QtCamGraphicsViewfinder::stop() {
d_ptr->resetBackend();
}
+
+QRectF QtCamGraphicsViewfinder::renderArea() const {
+ if (!d_ptr->renderer) {
+ return QRectF();
+ }
+
+ return d_ptr->renderer->renderArea();
+}
diff --git
a/lib/qtcamgraphicsviewfinder.h
b/lib/qtcamgraphicsviewfinder.h
index
dbccbc4
..
25edab1
100644
(file)
--- a/
lib/qtcamgraphicsviewfinder.h
+++ b/
lib/qtcamgraphicsviewfinder.h
@@
-43,6
+43,11
@@
public:
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
QWidget *widget = 0);
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
QWidget *widget = 0);
+ QRectF renderArea() const;
+
+signals:
+ void renderAreaChanged();
+
protected:
void resizeEvent(QGraphicsSceneResizeEvent *event);
protected:
void resizeEvent(QGraphicsSceneResizeEvent *event);
diff --git
a/lib/qtcamviewfinderrenderer.h
b/lib/qtcamviewfinderrenderer.h
index
4415862
..
e7b7b6b
100644
(file)
--- a/
lib/qtcamviewfinderrenderer.h
+++ b/
lib/qtcamviewfinderrenderer.h
@@
-25,6
+25,7
@@
#include <QObject>
#include <gst/gst.h>
#include <QObject>
#include <gst/gst.h>
+#include <QRectF>
class QtCamConfig;
class QMetaObject;
class QtCamConfig;
class QMetaObject;
@@
-45,11
+46,14
@@
public:
virtual void reset() = 0;
virtual GstElement *sinkElement() = 0;
virtual void reset() = 0;
virtual GstElement *sinkElement() = 0;
+ virtual QRectF renderArea() = 0;
+
protected:
QtCamViewfinderRenderer(QtCamConfig *config, QObject *parent = 0);
signals:
void updateRequested();
protected:
QtCamViewfinderRenderer(QtCamConfig *config, QObject *parent = 0);
signals:
void updateRequested();
+ void renderAreaChanged();
};
#define QT_CAM_VIEWFINDER_RENDERER(key, klass) \
};
#define QT_CAM_VIEWFINDER_RENDERER(key, klass) \
diff --git
a/lib/qtcamviewfinderrenderergeneric.cpp
b/lib/qtcamviewfinderrenderergeneric.cpp
index
5d78f9e
..
8b85000
100644
(file)
--- a/
lib/qtcamviewfinderrenderergeneric.cpp
+++ b/
lib/qtcamviewfinderrenderergeneric.cpp
@@
-126,6
+126,11
@@
GstElement *QtCamViewfinderRendererGeneric::sinkElement() {
return m_elem;
}
return m_elem;
}
+QRectF QtCamViewfinderRendererGeneric::renderArea() {
+ // TODO: calculate this and emit renderAreaChanged() signal when needed
+ return QRectF();
+}
+
void QtCamViewfinderRendererGeneric::on_gst_buffer(GstElement *element,
GstBuffer *buf, GstPad *pad,
QtCamViewfinderRendererGeneric *q) {
void QtCamViewfinderRendererGeneric::on_gst_buffer(GstElement *element,
GstBuffer *buf, GstPad *pad,
QtCamViewfinderRendererGeneric *q) {
diff --git
a/lib/qtcamviewfinderrenderergeneric.h
b/lib/qtcamviewfinderrenderergeneric.h
index
9988afd
..
f16f07c
100644
(file)
--- a/
lib/qtcamviewfinderrenderergeneric.h
+++ b/
lib/qtcamviewfinderrenderergeneric.h
@@
-39,6
+39,7
@@
public:
virtual void resize(const QSizeF& size);
virtual void reset();
virtual GstElement *sinkElement();
virtual void resize(const QSizeF& size);
virtual void reset();
virtual GstElement *sinkElement();
+ QRectF renderArea();
private:
static void on_gst_buffer(GstElement *element, GstBuffer *buf, GstPad *pad,
private:
static void on_gst_buffer(GstElement *element, GstBuffer *buf, GstPad *pad,
diff --git
a/lib/qtcamviewfinderrenderermeego.cpp
b/lib/qtcamviewfinderrenderermeego.cpp
index
b3d9866
..
87bcc9d
100644
(file)
--- a/
lib/qtcamviewfinderrenderermeego.cpp
+++ b/
lib/qtcamviewfinderrenderermeego.cpp
@@
-123,6
+123,8
@@
void QtCamViewfinderRendererMeeGo::resize(const QSizeF& size) {
// TODO: this will destroy everything
// but we need a way to reset the viewport and the transformation matrix only.
m_needsInit = true;
// TODO: this will destroy everything
// but we need a way to reset the viewport and the transformation matrix only.
m_needsInit = true;
+
+ emit renderAreaChanged();
}
void QtCamViewfinderRendererMeeGo::reset() {
}
void QtCamViewfinderRendererMeeGo::reset() {
@@
-341,4
+343,6
@@
void QtCamViewfinderRendererMeeGo::setVideoSize(const QSizeF& size) {
calculateCoords();
m_needsInit = true;
calculateCoords();
m_needsInit = true;
+
+ emit renderAreaChanged();
}
}
diff --git
a/lib/qtcamviewfinderrenderermeego.h
b/lib/qtcamviewfinderrenderermeego.h
index
714ff12
..
a48d850
100644
(file)
--- a/
lib/qtcamviewfinderrenderermeego.h
+++ b/
lib/qtcamviewfinderrenderermeego.h
@@
-44,6
+44,8
@@
public:
virtual void reset();
virtual GstElement *sinkElement();
virtual void reset();
virtual GstElement *sinkElement();
+ QRectF renderArea();
+
private slots:
void setVideoSize(const QSizeF& size);
private slots:
void setVideoSize(const QSizeF& size);
@@
-56,7
+58,6
@@
private:
void createProgram();
void paintFrame(QPainter *painter, int frame);
void calculateCoords();
void createProgram();
void paintFrame(QPainter *painter, int frame);
void calculateCoords();
- QRectF renderArea();
QtCamConfig *m_conf;
GstElement *m_sink;
QtCamConfig *m_conf;
GstElement *m_sink;