[aravis] gv_device: add a default node description for GevSCPSPacketSize if not present in the camera genicam
- From: Emmanuel Pacaud <emmanuel src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [aravis] gv_device: add a default node description for GevSCPSPacketSize if not present in the camera genicam
- Date: Tue, 3 Apr 2012 08:22:43 +0000 (UTC)
commit 1e805e2ac4244cd27aa457b06dfc0a50a91da3cf
Author: Emmanuel Pacaud <emmanuel gnome org>
Date: Mon Apr 2 22:49:00 2012 +0200
gv_device: add a default node description for GevSCPSPacketSize if not present in the camera genicam file.
docs/reference/aravis/aravis-sections.txt | 1 +
src/arvgc.c | 13 +++++++++++++
src/arvgc.h | 1 +
src/arvgvdevice.c | 16 +++++++++++++++-
4 files changed, 30 insertions(+), 1 deletions(-)
---
diff --git a/docs/reference/aravis/aravis-sections.txt b/docs/reference/aravis/aravis-sections.txt
index a774e8e..73c8533 100644
--- a/docs/reference/aravis/aravis-sections.txt
+++ b/docs/reference/aravis/aravis-sections.txt
@@ -137,6 +137,7 @@ ArvGcPort
arv_gc_port_new
arv_gc_port_read
arv_gc_port_write
+arv_gc_set_default_node_data
<SUBSECTION Standard>
ARV_GC_PORT
ARV_IS_GC_PORT
diff --git a/src/arvgc.c b/src/arvgc.c
index 8d929c8..e931734 100644
--- a/src/arvgc.c
+++ b/src/arvgc.c
@@ -259,6 +259,19 @@ arv_gc_register_feature_node (ArvGc *genicam, ArvGcFeatureNode *node)
arv_dom_node_get_node_name (ARV_DOM_NODE (node)));
}
+void
+arv_gc_set_default_node_data (ArvGc *genicam, const char *node_name, const char *node_data)
+{
+ g_return_if_fail (ARV_IS_GC (genicam));
+ g_return_if_fail (node_name != NULL);
+ g_return_if_fail (node_data != NULL);
+
+ if (arv_gc_get_node (genicam, node_name) != NULL)
+ return;
+
+ arv_dom_document_append_from_memory (ARV_DOM_DOCUMENT (genicam), NULL, node_data, -1, NULL);
+}
+
ArvGc *
arv_gc_new (ArvDevice *device, const void *xml, size_t size)
{
diff --git a/src/arvgc.h b/src/arvgc.h
index 3b6f5f9..18f8953 100644
--- a/src/arvgc.h
+++ b/src/arvgc.h
@@ -52,6 +52,7 @@ GType arv_gc_get_type (void);
ArvGc * arv_gc_new (ArvDevice *device, const void *xml, size_t size);
void arv_gc_register_feature_node (ArvGc *genicam, ArvGcFeatureNode *node);
+void arv_gc_set_default_node_data (ArvGc *genicam, const char *node_name, const char *node_data);
ArvGcNode * arv_gc_get_node (ArvGc *genicam, const char *name);
ArvDevice * arv_gc_get_device (ArvGc *genicam);
diff --git a/src/arvgvdevice.c b/src/arvgvdevice.c
index c29bd08..3b68ecb 100644
--- a/src/arvgvdevice.c
+++ b/src/arvgvdevice.c
@@ -589,8 +589,22 @@ arv_gv_device_load_genicam (ArvGvDevice *gv_device)
size_t size;
genicam = arv_gv_device_get_genicam_xml (ARV_DEVICE (gv_device), &size);
- if (genicam != NULL)
+ if (genicam != NULL) {
gv_device->priv->genicam = arv_gc_new (ARV_DEVICE (gv_device), genicam, size);
+
+ arv_gc_set_default_node_data (gv_device->priv->genicam, "GevSCPSPacketSize",
+ "<MaskedIntReg Name=\"GevSCPSPacketSize\">"
+ "<Address>0xd04</Address>"
+ "<Length>4</Length>"
+ "<AccessMode>RW</AccessMode>"
+ "<pPort>Device</pPort>"
+ "<LSB>31</LSB>"
+ "<MSB>16</MSB>"
+ "<Sign>Unsigned</Sign>"
+ "<Endianess>BigEndian</Endianess>"
+ "</MaskedIntReg>"
+ );
+ }
}
/* ArvDevice implemenation */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]