summaryrefslogtreecommitdiffstats
path: root/src/cameras
diff options
context:
space:
mode:
Diffstat (limited to 'src/cameras')
-rw-r--r--src/cameras/uca-mock-camera.c50
-rw-r--r--src/cameras/uca-mock-camera.h7
-rw-r--r--src/cameras/uca-pco-camera.c20
-rw-r--r--src/cameras/uca-pco-camera.h5
4 files changed, 45 insertions, 37 deletions
diff --git a/src/cameras/uca-mock-camera.c b/src/cameras/uca-mock-camera.c
index ba92a67..12ba070 100644
--- a/src/cameras/uca-mock-camera.c
+++ b/src/cameras/uca-mock-camera.c
@@ -15,21 +15,18 @@
with this library; if not, write to the Free Software Foundation, Inc., 51
Franklin St, Fifth Floor, Boston, MA 02110, USA */
-#include "uca-camera.h"
+#include <string.h>
#include "uca-mock-camera.h"
#define UCA_MOCK_CAMERA_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), UCA_TYPE_MOCK_CAMERA, UcaMockCameraPrivate))
-static void uca_mock_camera_interface_init(UcaCameraInterface *iface);
-
-G_DEFINE_TYPE_WITH_CODE(UcaMockCamera, uca_mock_camera, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE(UCA_TYPE_CAMERA,
- uca_mock_camera_interface_init));
+G_DEFINE_TYPE(UcaMockCamera, uca_mock_camera, UCA_TYPE_CAMERA)
enum {
PROP_0,
PROP_SENSOR_WIDTH,
PROP_SENSOR_HEIGHT,
+ PROP_SENSOR_BITDEPTH,
N_INTERFACE_PROPERTIES,
N_PROPERTIES
@@ -37,7 +34,8 @@ enum {
static const gchar *mock_overrideables[N_PROPERTIES] = {
"sensor-width",
- "sensor-height"
+ "sensor-height",
+ "sensor-bitdepth"
};
struct _UcaMockCameraPrivate {
@@ -46,22 +44,28 @@ struct _UcaMockCameraPrivate {
guint16 *dummy_data;
};
+UcaMockCamera *uca_mock_camera_new(GError **error)
+{
+ UcaMockCamera *camera = g_object_new(UCA_TYPE_MOCK_CAMERA, NULL);
+ return camera;
+}
+
static void uca_mock_camera_start_recording(UcaCamera *camera, GError **error)
{
g_return_if_fail(UCA_IS_MOCK_CAMERA(camera));
- g_print("start recording\n");
}
static void uca_mock_camera_stop_recording(UcaCamera *camera, GError **error)
{
g_return_if_fail(UCA_IS_MOCK_CAMERA(camera));
- g_print("stop recording\n");
+ UcaMockCameraPrivate *priv = UCA_MOCK_CAMERA_GET_PRIVATE(camera);
}
static void uca_mock_camera_grab(UcaCamera *camera, gchar *data, GError **error)
{
g_return_if_fail(UCA_IS_MOCK_CAMERA(camera));
- /* g_memmove(data, camera->priv->dummy_data, camera->priv->width * camera->priv->height * 2); */
+ UcaMockCameraPrivate *priv = UCA_MOCK_CAMERA_GET_PRIVATE(camera);
+ g_memmove(data, priv->dummy_data, priv->width * priv->height);
}
static void uca_mock_camera_set_property(GObject *object, guint property_id, const GValue *value, GParamSpec *pspec)
@@ -81,7 +85,13 @@ static void uca_mock_camera_get_property(GObject *object, guint property_id, GVa
switch (property_id) {
case PROP_SENSOR_WIDTH:
- g_value_set_uint(value, 1024);
+ g_value_set_uint(value, priv->width);
+ break;
+ case PROP_SENSOR_HEIGHT:
+ g_value_set_uint(value, priv->height);
+ break;
+ case PROP_SENSOR_BITDEPTH:
+ g_value_set_uint(value, 8);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
@@ -98,13 +108,6 @@ static void uca_mock_camera_finalize(GObject *object)
G_OBJECT_CLASS(uca_mock_camera_parent_class)->finalize(object);
}
-static void uca_mock_camera_interface_init(UcaCameraInterface *iface)
-{
- iface->start_recording = uca_mock_camera_start_recording;
- iface->stop_recording = uca_mock_camera_stop_recording;
- iface->grab = uca_mock_camera_grab;
-}
-
static void uca_mock_camera_class_init(UcaMockCameraClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS(klass);
@@ -112,6 +115,11 @@ static void uca_mock_camera_class_init(UcaMockCameraClass *klass)
gobject_class->get_property = uca_mock_camera_get_property;
gobject_class->finalize = uca_mock_camera_finalize;
+ UcaCameraClass *camera_class = UCA_CAMERA_CLASS(klass);
+ camera_class->start_recording = uca_mock_camera_start_recording;
+ camera_class->stop_recording = uca_mock_camera_stop_recording;
+ camera_class->grab = uca_mock_camera_grab;
+
for (guint id = PROP_0 + 1; id < N_INTERFACE_PROPERTIES; id++)
g_object_class_override_property(gobject_class, id, mock_overrideables[id-1]);
@@ -121,7 +129,7 @@ static void uca_mock_camera_class_init(UcaMockCameraClass *klass)
static void uca_mock_camera_init(UcaMockCamera *self)
{
self->priv = UCA_MOCK_CAMERA_GET_PRIVATE(self);
- self->priv->width = 1024;
- self->priv->height = 768;
- self->priv->dummy_data = (guint16 *) g_malloc0(self->priv->width * self->priv->height * 2);
+ self->priv->width = 640;
+ self->priv->height = 480;
+ self->priv->dummy_data = (guint16 *) g_malloc0(self->priv->width * self->priv->height);
}
diff --git a/src/cameras/uca-mock-camera.h b/src/cameras/uca-mock-camera.h
index 708542a..aa196db 100644
--- a/src/cameras/uca-mock-camera.h
+++ b/src/cameras/uca-mock-camera.h
@@ -19,6 +19,7 @@
#define __UCA_MOCK_CAMERA_H
#include <glib-object.h>
+#include "uca-camera.h"
#define UCA_TYPE_MOCK_CAMERA (uca_mock_camera_get_type())
#define UCA_MOCK_CAMERA(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), UCA_TYPE_MOCK_CAMERA, UcaMockCamera))
@@ -40,7 +41,7 @@ typedef struct _UcaMockCameraPrivate UcaMockCameraPrivate;
*/
struct _UcaMockCamera {
/*< private >*/
- GObject parent;
+ UcaCamera parent;
UcaMockCameraPrivate *priv;
};
@@ -52,9 +53,11 @@ struct _UcaMockCamera {
*/
struct _UcaMockCameraClass {
/*< private >*/
- GObjectClass parent;
+ UcaCameraClass parent;
};
+UcaMockCamera *uca_mock_camera_new(GError **error);
+
GType uca_mock_camera_get_type(void);
#endif
diff --git a/src/cameras/uca-pco-camera.c b/src/cameras/uca-pco-camera.c
index 332d3ea..0e1267c 100644
--- a/src/cameras/uca-pco-camera.c
+++ b/src/cameras/uca-pco-camera.c
@@ -27,9 +27,7 @@
static void uca_pco_camera_interface_init(UcaCameraInterface *iface);
-G_DEFINE_TYPE_WITH_CODE(UcaPcoCamera, uca_pco_camera, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE(UCA_TYPE_CAMERA,
- uca_pco_camera_interface_init));
+G_DEFINE_TYPE(UcaPcoCamera, uca_pco_camera, UCA_TYPE_CAMERA)
/**
* UcaPcoCameraError:
@@ -54,7 +52,7 @@ enum {
N_PROPERTIES
};
-static const gchar *pco_overrideables[N_PROPERTIES] = {
+static const gchar *base_overrideables[N_PROPERTIES] = {
"sensor-width",
"sensor-height",
"sensor-bitdepth"
@@ -229,13 +227,6 @@ static void uca_pco_camera_finalize(GObject *object)
G_OBJECT_CLASS(uca_pco_camera_parent_class)->finalize(object);
}
-static void uca_pco_camera_interface_init(UcaCameraInterface *iface)
-{
- iface->start_recording = uca_pco_camera_start_recording;
- iface->stop_recording = uca_pco_camera_stop_recording;
- iface->grab = uca_pco_camera_grab;
-}
-
static void uca_pco_camera_class_init(UcaPcoCameraClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS(klass);
@@ -243,8 +234,13 @@ static void uca_pco_camera_class_init(UcaPcoCameraClass *klass)
gobject_class->get_property = uca_pco_camera_get_property;
gobject_class->finalize = uca_pco_camera_finalize;
+ UcaCameraClass *camera_class = UCA_CAMERA_CLASS(klass);
+ camera_class->start_recording = uca_pco_camera_start_recording;
+ camera_class->stop_recording = uca_pco_camera_stop_recording;
+ camera_class->grab = uca_pco_camera_grab;
+
for (guint id = PROP_0 + 1; id < N_INTERFACE_PROPERTIES; id++)
- g_object_class_override_property(gobject_class, id, pco_overrideables[id-1]);
+ g_object_class_override_property(gobject_class, id, base_overrideables[id-1]);
pco_properties[PROP_NAME] =
g_param_spec_string("name",
diff --git a/src/cameras/uca-pco-camera.h b/src/cameras/uca-pco-camera.h
index 68e92fa..ba6a105 100644
--- a/src/cameras/uca-pco-camera.h
+++ b/src/cameras/uca-pco-camera.h
@@ -19,6 +19,7 @@
#define __UCA_PCO_CAMERA_H
#include <glib-object.h>
+#include "uca-camera.h"
#define UCA_TYPE_PCO_CAMERA (uca_pco_camera_get_type())
#define UCA_PCO_CAMERA(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), UCA_TYPE_PCO_CAMERA, UcaPcoCamera))
@@ -48,7 +49,7 @@ typedef struct _UcaPcoCameraPrivate UcaPcoCameraPrivate;
*/
struct _UcaPcoCamera {
/*< private >*/
- GObject parent;
+ UcaCamera parent;
UcaPcoCameraPrivate *priv;
};
@@ -60,7 +61,7 @@ struct _UcaPcoCamera {
*/
struct _UcaPcoCameraClass {
/*< private >*/
- GObjectClass parent;
+ UcaCameraClass parent;
};
UcaPcoCamera *uca_pco_camera_new(GError **error);