/*!
* This file is part of CameraPlus.
*
- * Copyright (C) 2012 Mohammed Sameer <msameer@foolab.org>
+ * Copyright (C) 2012-2013 Mohammed Sameer <msameer@foolab.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
#include "qtcamvideomode.h"
#include "qtcamgraphicsviewfinder.h"
#include "qtcamconfig.h"
-#include "notifications.h"
+#include "sounds.h"
#include "notificationscontainer.h"
#include "sounds.h"
#include <QDeclarativeInfo>
#include "videomute.h"
#include "videotorch.h"
+#include "cameraconfig.h"
Camera::Camera(QDeclarativeItem *parent) :
QDeclarativeItem(parent),
m_autoFocus(0),
m_roi(0),
m_videoMute(0),
- m_videoTorch(0) {
+ m_videoTorch(0),
+ m_config(new CameraConfig(this)) {
+
+ m_config->componentComplete();
QObject::connect(m_vf, SIGNAL(renderAreaChanged()), this, SIGNAL(renderAreaChanged()));
QObject::connect(m_vf, SIGNAL(videoResolutionChanged()), this, SIGNAL(videoResolutionChanged()));
void Camera::geometryChanged(const QRectF& newGeometry, const QRectF& oldGeometry) {
QDeclarativeItem::geometryChanged(newGeometry, oldGeometry);
- m_vf->setGeometry(newGeometry);
+ // TODO: seems setting geometry breaks rendering somehow
+ // m_vf->setGeometry(newGeometry);
+ m_vf->resize(newGeometry.size());
}
QtCamDevice *Camera::device() const {
return m_cam->config()->videoSuffix();
}
-Notifications *Camera::notifications() const {
- return m_notifications->notifications();
+Sounds *Camera::sounds() const {
+ return m_notifications->sounds();
}
-
-void Camera::setNotifications(Notifications *notifications) {
- if (m_notifications->setNotifications(notifications)) {
-
- if (Sounds *s = dynamic_cast<Sounds *>(notifications)) {
- s->setConfig(m_cam->config());
- s->reload();
- }
-
- emit notificationsChanged();
+void Camera::setSounds(Sounds *sounds) {
+ if (m_notifications->setSounds(sounds)) {
+ sounds->reload();
+ emit soundsChanged();
}
}
void Camera::setRenderingEnabled(bool enabled) {
m_vf->setRenderingEnabled(enabled);
}
+
+CameraConfig *Camera::cameraConfig() const {
+ return m_config;
+}