camorama r359 - in trunk: . src



Author: herzi
Date: Wed May 28 14:20:25 2008
New Revision: 359
URL: http://svn.gnome.org/viewvc/camorama?rev=359&view=rev

Log:
2008-05-28  Sven Herzberg  <sven imendio com>

	added a cam property to the mmap strategy; we're going to need this
	property so we can properly initialize the "pic" buffer of it

	* src/capture-strategy-mmap.c: (capture_strategy_mmap_init),
	(mmap_constructed), (mmap_finalize), (mmap_set_property),
	(capture_strategy_mmap_class_init), (capture_strategy_mmap_new): added
	the new property
	* src/capture-strategy-mmap.h: changed the new() signature
	* src/capture-strategy-read.h: declare the new() function
	* src/main.c: (main): pass the cam pointer into the mmap's new()
	function


Modified:
   trunk/ChangeLog
   trunk/src/capture-strategy-mmap.c
   trunk/src/capture-strategy-mmap.h
   trunk/src/capture-strategy-read.h
   trunk/src/main.c

Modified: trunk/src/capture-strategy-mmap.c
==============================================================================
--- trunk/src/capture-strategy-mmap.c	(original)
+++ trunk/src/capture-strategy-mmap.c	Wed May 28 14:20:25 2008
@@ -27,6 +27,18 @@
 #include <glib/gi18n.h>
 #include "camorama-globals.h"
 
+struct _CaptureStrategyMmapPrivate {
+	// FIXME: get rid of this
+	cam* cam;
+};
+
+#define PRIV(i) (CAPTURE_STRATEGY_MMAP(i)->_private)
+
+enum {
+	PROP_0,
+	PROP_CAMORAMA
+};
+
 /* GType Implementation */
 
 static void implement_capture_strategy (CaptureStrategyIface* iface);
@@ -36,18 +48,70 @@
 
 static void
 capture_strategy_mmap_init (CaptureStrategyMmap* self)
-{}
+{
+	PRIV(self) = G_TYPE_INSTANCE_GET_PRIVATE (self,
+						  CAMORAMA_TYPE_CAPTURE_STRATEGY_MMAP,
+						  CaptureStrategyMmapPrivate);
+}
+
+static void
+mmap_constructed (GObject* object)
+{
+	if (G_OBJECT_CLASS (capture_strategy_mmap_parent_class)->constructed) {
+		G_OBJECT_CLASS (capture_strategy_mmap_parent_class)->constructed (object);
+	}
+
+	g_return_if_fail (PRIV (object)->cam);
+}
+
+static void
+mmap_finalize (GObject* object)
+{
+	PRIV (object)->cam = NULL;
+
+	G_OBJECT_CLASS (capture_strategy_mmap_parent_class)->finalize (object);
+}
+
+static void
+mmap_set_property (GObject     * object,
+		   guint         prop_id,
+		   GValue const* value,
+		   GParamSpec  * pspec)
+{
+	switch (prop_id) {
+	case PROP_CAMORAMA:
+		PRIV (object)->cam = g_value_get_pointer (value);
+		g_object_notify (object, "cam");
+		break;
+	default:
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+		break;
+	}
+}
 
 static void
 capture_strategy_mmap_class_init (CaptureStrategyMmapClass* self_class)
-{}
+{
+	GObjectClass* object_class = G_OBJECT_CLASS (self_class);
+
+	object_class->constructed  = mmap_constructed;
+	object_class->finalize     = mmap_finalize;
+	object_class->set_property = mmap_set_property;
+
+	g_object_class_install_property (object_class, PROP_CAMORAMA,
+					 g_param_spec_pointer ("cam", "", "",
+							       G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+
+	g_type_class_add_private (self_class, sizeof (CaptureStrategyMmapPrivate));
+}
 
 /* Public API */
 
 CaptureStrategy*
-capture_strategy_mmap_new (void)
+capture_strategy_mmap_new (cam* cam)
 {
 	return g_object_new (CAMORAMA_TYPE_CAPTURE_STRATEGY_MMAP,
+			     "cam", cam,
 			     NULL);
 }
 

Modified: trunk/src/capture-strategy-mmap.h
==============================================================================
--- trunk/src/capture-strategy-mmap.h	(original)
+++ trunk/src/capture-strategy-mmap.h	Wed May 28 14:20:25 2008
@@ -32,11 +32,12 @@
 typedef struct _CaptureStrategyMmapPrivate CaptureStrategyMmapPrivate;
 typedef struct _CaptureStrategyMmapClass   CaptureStrategyMmapClass;
 
-#define CAMORAMA_TYPE_CAPTURE_STRATEGY_MMAP         (capture_strategy_mmap_get_type ())
+#define CAMORAMA_TYPE_CAPTURE_STRATEGY_MMAP (capture_strategy_mmap_get_type ())
+#define CAPTURE_STRATEGY_MMAP(i)            (G_TYPE_CHECK_INSTANCE_CAST ((i), CAMORAMA_TYPE_CAPTURE_STRATEGY_MMAP, CaptureStrategyMmap))
 
 GType capture_strategy_mmap_get_type (void);
 
-CaptureStrategy* capture_strategy_mmap_new (void);
+CaptureStrategy* capture_strategy_mmap_new (cam* cam);
 
 struct _CaptureStrategyMmap {
 	GObject                     base_instance;

Modified: trunk/src/capture-strategy-read.h
==============================================================================
--- trunk/src/capture-strategy-read.h	(original)
+++ trunk/src/capture-strategy-read.h	Wed May 28 14:20:25 2008
@@ -34,6 +34,8 @@
 
 #define CAMORAMA_TYPE_CAPTURE_STRATEGY_READ         (capture_strategy_read_get_type ())
 
+CaptureStrategy* capture_strategy_read_new (void);
+
 struct _CaptureStrategyRead {
 	GObject                     base_instance;
 	CaptureStrategyReadPrivate* _private;

Modified: trunk/src/main.c
==============================================================================
--- trunk/src/main.c	(original)
+++ trunk/src/main.c	Wed May 28 14:20:25 2008
@@ -245,7 +245,7 @@
 
     /* initialize cam and create the window */
     if (cam->read == FALSE) {
-	cam->capture = capture_strategy_mmap_new ();
+	cam->capture = capture_strategy_mmap_new (cam);
         init_cam (cam);
     } else {
 	cam->capture = capture_strategy_read_new ();



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]