[aravis] pixel_format: don't store them in an enum.



commit 71080a376dadd88aba0d8bce4ac584f6a7c90a9b
Author: Emmanuel Pacaud <emmanuel gnome org>
Date:   Tue May 1 19:02:24 2012 +0200

    pixel_format: don't store them in an enum.
    
    Python gobject introspection expect enum to be int, not unsigned int.

 docs/reference/aravis/aravis-docs.xml     |    1 +
 docs/reference/aravis/aravis-sections.txt |   52 +++++++++++++++
 po/Makefile.in.in                         |   13 +++-
 src/arvcamera.c                           |   15 ++++
 src/arvcamera.h                           |    1 +
 src/arvenums.h                            |  100 ++++++++++++++---------------
 viewer/arvviewer.c                        |   25 +------
 7 files changed, 130 insertions(+), 77 deletions(-)
---
diff --git a/docs/reference/aravis/aravis-docs.xml b/docs/reference/aravis/aravis-docs.xml
index 4a723c8..defc6ef 100644
--- a/docs/reference/aravis/aravis-docs.xml
+++ b/docs/reference/aravis/aravis-docs.xml
@@ -105,6 +105,7 @@
 
 		<chapter>
 			<title>Utils</title>
+			<xi:include href="xml/arvpixelformat.xml"/>
 			<xi:include href="xml/arvdebug.xml"/>
 			<xi:include href="xml/arvevaluator.xml"/>
 			<xi:include href="xml/arvgst.xml"/>
diff --git a/docs/reference/aravis/aravis-sections.txt b/docs/reference/aravis/aravis-sections.txt
index ba86601..7e26dd5 100644
--- a/docs/reference/aravis/aravis-sections.txt
+++ b/docs/reference/aravis/aravis-sections.txt
@@ -20,6 +20,7 @@ arv_camera_set_binning
 arv_camera_get_binning
 arv_camera_set_pixel_format
 arv_camera_get_pixel_format
+arv_camera_get_pixel_format_as_string
 arv_camera_get_available_pixel_formats
 arv_camera_start_acquisition
 arv_camera_stop_acquisition
@@ -56,7 +57,58 @@ ARV_CAMERA_GET_CLASS
 <SUBSECTION Private>
 ArvCameraPrivate
 ArvCameraClass
+</SECTION>
+
+<SECTION>
+<FILE>arvpixelformat</FILE>
+<TITLE>ArvPixelFormat</TITLE>
 ArvPixelFormat
+ARV_PIXEL_FORMAT_BAYER_BG_10
+ARV_PIXEL_FORMAT_BAYER_BG_12
+ARV_PIXEL_FORMAT_BAYER_BG_12_PACKED
+ARV_PIXEL_FORMAT_BAYER_BG_8
+ARV_PIXEL_FORMAT_BAYER_GB_10
+ARV_PIXEL_FORMAT_BAYER_GB_12
+ARV_PIXEL_FORMAT_BAYER_GB_8
+ARV_PIXEL_FORMAT_BAYER_GR_10
+ARV_PIXEL_FORMAT_BAYER_GR_12
+ARV_PIXEL_FORMAT_BAYER_GR_8
+ARV_PIXEL_FORMAT_BAYER_RG_10
+ARV_PIXEL_FORMAT_BAYER_RG_12
+ARV_PIXEL_FORMAT_BAYER_RG_8
+ARV_PIXEL_FORMAT_BGRA_8_PACKED
+ARV_PIXEL_FORMAT_BGR_10_PACKED
+ARV_PIXEL_FORMAT_BGR_12_PACKED
+ARV_PIXEL_FORMAT_BGR_8_PACKED
+ARV_PIXEL_FORMAT_CUSTOM_BAYER_BG_12_PACKED
+ARV_PIXEL_FORMAT_CUSTOM_BAYER_BG_16
+ARV_PIXEL_FORMAT_CUSTOM_BAYER_GB_12_PACKED
+ARV_PIXEL_FORMAT_CUSTOM_BAYER_GB_16
+ARV_PIXEL_FORMAT_CUSTOM_BAYER_GR_12_PACKED
+ARV_PIXEL_FORMAT_CUSTOM_BAYER_GR_16
+ARV_PIXEL_FORMAT_CUSTOM_BAYER_RG_12_PACKED
+ARV_PIXEL_FORMAT_CUSTOM_BAYER_RG_16
+ARV_PIXEL_FORMAT_CUSTOM_YUV_422_YUYV_PACKED
+ARV_PIXEL_FORMAT_MONO_10
+ARV_PIXEL_FORMAT_MONO_10_PACKED
+ARV_PIXEL_FORMAT_MONO_12
+ARV_PIXEL_FORMAT_MONO_12_PACKED
+ARV_PIXEL_FORMAT_MONO_14
+ARV_PIXEL_FORMAT_MONO_16
+ARV_PIXEL_FORMAT_MONO_8
+ARV_PIXEL_FORMAT_MONO_8_SIGNED
+ARV_PIXEL_FORMAT_RGBA_8_PACKED
+ARV_PIXEL_FORMAT_RGB_10_PACKED
+ARV_PIXEL_FORMAT_RGB_10_PLANAR
+ARV_PIXEL_FORMAT_RGB_12_PACKED
+ARV_PIXEL_FORMAT_RGB_12_PLANAR
+ARV_PIXEL_FORMAT_RGB_16_PLANAR
+ARV_PIXEL_FORMAT_RGB_8_PACKED
+ARV_PIXEL_FORMAT_RGB_8_PLANAR
+ARV_PIXEL_FORMAT_YUV_411_PACKED
+ARV_PIXEL_FORMAT_YUV_422_PACKED
+ARV_PIXEL_FORMAT_YUV_422_YUYV_PACKED
+ARV_PIXEL_FORMAT_YUV_444_PACKED
 </SECTION>
 
 <SECTION>
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
index cc8a222..06a8cfe 100644
--- a/po/Makefile.in.in
+++ b/po/Makefile.in.in
@@ -49,8 +49,8 @@ MSGFMT = @MSGFMT@
 XGETTEXT = @XGETTEXT@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
-MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
-GENPOT   = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
+MSGMERGE = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
+GENPOT   = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
 
 ALL_LINGUAS = @ALL_LINGUAS@
 
@@ -73,15 +73,20 @@ CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$l
 .SUFFIXES:
 .SUFFIXES: .po .pox .gmo .mo .msg .cat
 
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V))
+INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY))
+INTLTOOL__v_MSGFMT_0 = @echo "  MSGFMT" $@;
+
 .po.pox:
 	$(MAKE) $(GETTEXT_PACKAGE).pot
 	$(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
 
 .po.mo:
-	$(MSGFMT) -o $@ $<
+	$(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $<
 
 .po.gmo:
-	file=`echo $* | sed 's,.*/,,'`.gmo \
+	$(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \
 	  && rm -f $$file && $(GMSGFMT) -o $$file $<
 
 .po.cat:
diff --git a/src/arvcamera.c b/src/arvcamera.c
index aa9c898..c450036 100644
--- a/src/arvcamera.c
+++ b/src/arvcamera.c
@@ -335,6 +335,21 @@ arv_camera_get_pixel_format (ArvCamera *camera)
 }
 
 /**
+ * arv_camera_get_pixel_format_as_string:
+ * @camera: a #ArvCamera
+ *
+ * Retuns: pixel format as string, NULL on error.
+ */
+
+const char *
+arv_camera_get_pixel_format_as_string (ArvCamera *camera)
+{
+	g_return_val_if_fail (ARV_IS_CAMERA (camera), NULL);
+
+	return arv_device_get_string_feature_value (camera->priv->device, "PixelFormat");
+}
+
+/**
  * arv_camera_get_available_pixel_formats:
  * @camera: a #ArvCamera
  * @n_pixel_formats: (out): number of different pixel formats
diff --git a/src/arvcamera.h b/src/arvcamera.h
index ea28d4e..4214191 100644
--- a/src/arvcamera.h
+++ b/src/arvcamera.h
@@ -73,6 +73,7 @@ void		arv_camera_get_binning		(ArvCamera *camera, gint *dx, gint *dy);
 
 void 		arv_camera_set_pixel_format 		(ArvCamera *camera, ArvPixelFormat format);
 ArvPixelFormat 	arv_camera_get_pixel_format 		(ArvCamera *camera);
+const char * 	arv_camera_get_pixel_format_as_string 	(ArvCamera *camera);
 gint64 *	arv_camera_get_available_pixel_formats 	(ArvCamera *camera, guint *n_pixel_formats);
 
 /* Acquisition control */
diff --git a/src/arvenums.h b/src/arvenums.h
index c00517a..bec96ca 100644
--- a/src/arvenums.h
+++ b/src/arvenums.h
@@ -75,80 +75,76 @@ typedef enum {
 const char * 		arv_acquisition_mode_to_string 		(ArvAcquisitionMode value);
 ArvAcquisitionMode 	arv_acquisition_mode_from_string	(const char *string);
 
-/**
- * ArvPixelFormat:
- */
+/* Grey pixel formats */
 
-typedef enum {
-	/* Grey pixel formats */
+typedef guint32 ArvPixelFormat;
 
-	ARV_PIXEL_FORMAT_MONO_8			= 0x01080001,
-	ARV_PIXEL_FORMAT_MONO_8_SIGNED		= 0x01080002,
+#define	ARV_PIXEL_FORMAT_MONO_8			0x01080001
+#define	ARV_PIXEL_FORMAT_MONO_8_SIGNED		0x01080002
 
-	ARV_PIXEL_FORMAT_MONO_10		= 0x01100003,
-	ARV_PIXEL_FORMAT_MONO_10_PACKED		= 0x010c0004,
+#define	ARV_PIXEL_FORMAT_MONO_10		0x01100003
+#define ARV_PIXEL_FORMAT_MONO_10_PACKED		0x010c0004
 
-	ARV_PIXEL_FORMAT_MONO_12		= 0x01100005,
-	ARV_PIXEL_FORMAT_MONO_12_PACKED		= 0x010c0006,
+#define ARV_PIXEL_FORMAT_MONO_12		0x01100005
+#define ARV_PIXEL_FORMAT_MONO_12_PACKED		0x010c0006
 
-	ARV_PIXEL_FORMAT_MONO_14		= 0x01100025, /* https://bugzilla.gnome.org/show_bug.cgi?id=655131 */
+#define ARV_PIXEL_FORMAT_MONO_14		0x01100025 /* https://bugzilla.gnome.org/show_bug.cgi?id=655131 */
 
-	ARV_PIXEL_FORMAT_MONO_16		= 0x01100007,
+#define ARV_PIXEL_FORMAT_MONO_16		0x01100007
 
-	ARV_PIXEL_FORMAT_BAYER_GR_8		= 0x01080008,
-	ARV_PIXEL_FORMAT_BAYER_RG_8		= 0x01080009,
-	ARV_PIXEL_FORMAT_BAYER_GB_8		= 0x0108000a,
-	ARV_PIXEL_FORMAT_BAYER_BG_8		= 0x0108000b,
+#define ARV_PIXEL_FORMAT_BAYER_GR_8		0x01080008
+#define ARV_PIXEL_FORMAT_BAYER_RG_8		0x01080009
+#define ARV_PIXEL_FORMAT_BAYER_GB_8		0x0108000a
+#define ARV_PIXEL_FORMAT_BAYER_BG_8		0x0108000b
 
-	ARV_PIXEL_FORMAT_BAYER_GR_10		= 0x0110000c,
-	ARV_PIXEL_FORMAT_BAYER_RG_10		= 0x0110000d,
-	ARV_PIXEL_FORMAT_BAYER_GB_10		= 0x0110000e,
-	ARV_PIXEL_FORMAT_BAYER_BG_10		= 0x0110000f,
+#define ARV_PIXEL_FORMAT_BAYER_GR_10		0x0110000c
+#define ARV_PIXEL_FORMAT_BAYER_RG_10		0x0110000d
+#define ARV_PIXEL_FORMAT_BAYER_GB_10		0x0110000e
+#define ARV_PIXEL_FORMAT_BAYER_BG_10		0x0110000f
 
-	ARV_PIXEL_FORMAT_BAYER_GR_12		= 0x01100010,
-	ARV_PIXEL_FORMAT_BAYER_RG_12		= 0x01100011,
-	ARV_PIXEL_FORMAT_BAYER_GB_12		= 0x01100012,
-	ARV_PIXEL_FORMAT_BAYER_BG_12		= 0x01100013,
+#define ARV_PIXEL_FORMAT_BAYER_GR_12		0x01100010
+#define ARV_PIXEL_FORMAT_BAYER_RG_12		0x01100011
+#define ARV_PIXEL_FORMAT_BAYER_GB_12		0x01100012
+#define ARV_PIXEL_FORMAT_BAYER_BG_12		0x01100013
 
-	ARV_PIXEL_FORMAT_BAYER_BG_12_PACKED	= 0x010c002d,
+#define ARV_PIXEL_FORMAT_BAYER_BG_12_PACKED	0x010c002d
 
 	/* Color pixel formats */
 
-	ARV_PIXEL_FORMAT_RGB_8_PACKED		= 0x02180014,
-	ARV_PIXEL_FORMAT_BGR_8_PACKED		= 0x02180015,
+#define ARV_PIXEL_FORMAT_RGB_8_PACKED		0x02180014
+#define ARV_PIXEL_FORMAT_BGR_8_PACKED		0x02180015
 
-	ARV_PIXEL_FORMAT_RGBA_8_PACKED		= 0x02200016,
-	ARV_PIXEL_FORMAT_BGRA_8_PACKED		= 0x02200017,
+#define ARV_PIXEL_FORMAT_RGBA_8_PACKED		0x02200016
+#define ARV_PIXEL_FORMAT_BGRA_8_PACKED		0x02200017
 
-	ARV_PIXEL_FORMAT_RGB_10_PACKED		= 0x02300018,
-	ARV_PIXEL_FORMAT_BGR_10_PACKED		= 0x02300019,
+#define ARV_PIXEL_FORMAT_RGB_10_PACKED		0x02300018
+#define ARV_PIXEL_FORMAT_BGR_10_PACKED		0x02300019
 
-	ARV_PIXEL_FORMAT_RGB_12_PACKED		= 0x0230001a,
-	ARV_PIXEL_FORMAT_BGR_12_PACKED		= 0x0230001b,
+#define ARV_PIXEL_FORMAT_RGB_12_PACKED		0x0230001a
+#define ARV_PIXEL_FORMAT_BGR_12_PACKED		0x0230001b
 
-	ARV_PIXEL_FORMAT_YUV_411_PACKED		= 0x020c001e,
-	ARV_PIXEL_FORMAT_YUV_422_PACKED		= 0x0210001f,
-	ARV_PIXEL_FORMAT_YUV_444_PACKED		= 0x02180020,
+#define ARV_PIXEL_FORMAT_YUV_411_PACKED		0x020c001e
+#define ARV_PIXEL_FORMAT_YUV_422_PACKED		0x0210001f
+#define ARV_PIXEL_FORMAT_YUV_444_PACKED		0x02180020
 
-	ARV_PIXEL_FORMAT_RGB_8_PLANAR		= 0x02180021,
-	ARV_PIXEL_FORMAT_RGB_10_PLANAR		= 0x02300022,
-	ARV_PIXEL_FORMAT_RGB_12_PLANAR		= 0x02300023,
-	ARV_PIXEL_FORMAT_RGB_16_PLANAR		= 0x02300024,
+#define ARV_PIXEL_FORMAT_RGB_8_PLANAR		0x02180021
+#define ARV_PIXEL_FORMAT_RGB_10_PLANAR		0x02300022
+#define ARV_PIXEL_FORMAT_RGB_12_PLANAR		0x02300023
+#define ARV_PIXEL_FORMAT_RGB_16_PLANAR		0x02300024
 
-	ARV_PIXEL_FORMAT_YUV_422_YUYV_PACKED 	= 0x02100032,
+#define ARV_PIXEL_FORMAT_YUV_422_YUYV_PACKED 	0x02100032
 
 	/* Custom */
 
-	ARV_PIXEL_FORMAT_CUSTOM_BAYER_GR_12_PACKED  	= 0x810c0001,
-	ARV_PIXEL_FORMAT_CUSTOM_BAYER_RG_12_PACKED  	= 0x810c0002,
-	ARV_PIXEL_FORMAT_CUSTOM_BAYER_GB_12_PACKED  	= 0x810c0003,
-	ARV_PIXEL_FORMAT_CUSTOM_BAYER_BG_12_PACKED  	= 0x810c0004,
-	ARV_PIXEL_FORMAT_CUSTOM_YUV_422_YUYV_PACKED 	= 0x82100005,
-	ARV_PIXEL_FORMAT_CUSTOM_BAYER_GR_16		= 0x81100006,
-	ARV_PIXEL_FORMAT_CUSTOM_BAYER_RG_16		= 0x81100007,
-	ARV_PIXEL_FORMAT_CUSTOM_BAYER_GB_16		= 0x81100008,
-	ARV_PIXEL_FORMAT_CUSTOM_BAYER_BG_16		= 0x81100009
-} ArvPixelFormat;
+#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_GR_12_PACKED  	0x810c0001
+#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_RG_12_PACKED  	0x810c0002
+#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_GB_12_PACKED  	0x810c0003
+#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_BG_12_PACKED  	0x810c0004
+#define ARV_PIXEL_FORMAT_CUSTOM_YUV_422_YUYV_PACKED 	0x82100005
+#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_GR_16		0x81100006
+#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_RG_16		0x81100007
+#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_GB_16		0x81100008
+#define ARV_PIXEL_FORMAT_CUSTOM_BAYER_BG_16		0x81100009
 
 G_END_DECLS
 
diff --git a/viewer/arvviewer.c b/viewer/arvviewer.c
index d28e4f2..6f5740a 100644
--- a/viewer/arvviewer.c
+++ b/viewer/arvviewer.c
@@ -42,6 +42,8 @@ typedef struct {
 	ArvStream *stream;
 	ArvBuffer *last_buffer;
 
+	const char *pixel_format_string;
+
 	GstElement *pipeline;
 	GstElement *appsrc;
 
@@ -342,25 +344,6 @@ arv_viewer_release_camera (ArvViewer *viewer)
 	viewer->last_timestamp = 0;
 }
 
-static const char *
-arv_enum_to_string (GType type,
-		    guint enum_value)
-{
-	GEnumClass *enum_class;
-	GEnumValue *value;
-	const char *retval = NULL;
-
-	enum_class = g_type_class_ref (type);
-
-	value = g_enum_get_value (enum_class, enum_value);
-	if (value)
-		retval = value->value_nick;
-
-	g_type_class_unref (enum_class);
-
-	return retval;
-}
-
 void
 arv_viewer_snapshot_cb (GtkButton *button, ArvViewer *viewer)
 {
@@ -387,8 +370,7 @@ arv_viewer_snapshot_cb (GtkButton *button, ArvViewer *viewer)
 				    arv_camera_get_device_id (viewer->camera),
 				    viewer->last_buffer->width,
 				    viewer->last_buffer->height,
-				    arv_enum_to_string (ARV_TYPE_PIXEL_FORMAT,
-							viewer->last_buffer->pixel_format),
+				    viewer->pixel_format_string != NULL ? viewer->pixel_format_string : "Unknown",
 				    date_string);
 	path = g_build_filename (g_get_user_special_dir (G_USER_DIRECTORY_PICTURES),
 				 "Aravis", filename, NULL);
@@ -460,6 +442,7 @@ arv_viewer_select_camera_cb (GtkComboBox *combo_box, ArvViewer *viewer)
 
 	arv_camera_get_region (viewer->camera, NULL, NULL, &width, &height);
 	pixel_format = arv_camera_get_pixel_format (viewer->camera);
+	viewer->pixel_format_string = arv_camera_get_pixel_format_as_string (viewer->camera);
 	arv_camera_get_exposure_time_bounds (viewer->camera, &viewer->exposure_min, &viewer->exposure_max);
 	arv_camera_get_gain_bounds (viewer->camera, &gain_min, &gain_max);
 	frame_rate = arv_camera_get_frame_rate (viewer->camera);



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