Ejemplo n.º 1
0
static void
arv_gc_index_node_finalize (GObject *object)
{
	ArvGcIndexNode *index_node = ARV_GC_INDEX_NODE (object);

	g_free (index_node->offset);

	parent_class->finalize (object);
}
Ejemplo n.º 2
0
static guint64
_get_address (ArvGcRegisterNode *gc_register_node, GError **error)
{
	ArvGc *genicam;
	GError *local_error = NULL;
	GSList *iter;
	guint64 value = 0;

	genicam = arv_gc_node_get_genicam (ARV_GC_NODE (gc_register_node));
	g_return_val_if_fail (ARV_IS_GC (genicam), 0);

	for (iter = gc_register_node->addresses; iter != NULL; iter = iter->next) {
		value += arv_gc_property_node_get_int64 (iter->data, &local_error);

		if (local_error != NULL) {
			g_propagate_error (error, local_error);
			return 0;
		}
	}

	for (iter = gc_register_node->swiss_knives; iter != NULL; iter = iter->next) {
		value += arv_gc_integer_get_value (iter->data, &local_error);

		if (local_error != NULL) {
			g_propagate_error (error, local_error);
			return 0;
		}
	}

	if (gc_register_node->index != NULL) {
		gint64 length;

		length = _get_length (gc_register_node, &local_error);

		if (local_error != NULL) {
			g_propagate_error (error, local_error);
			return 0;
		}

		value += arv_gc_index_node_get_index (ARV_GC_INDEX_NODE (gc_register_node->index), length, &local_error);

		if (local_error != NULL) {
			g_propagate_error (error, local_error);
			return 0;
		}
	}

	return value;
}
Ejemplo n.º 3
0
static void
arv_gc_index_node_set_attribute (ArvDomElement *self, const char *name, const char *value)
{
	ArvGcIndexNode *index_node = ARV_GC_INDEX_NODE (self);

	if (strcmp (name, "Offset") == 0) {
		g_free (index_node->offset);
		index_node->offset = g_strdup (value);
		index_node->is_p_offset = FALSE;
	} else if (strcmp (name, "pOffset") == 0) {
		g_free (index_node->offset);
		index_node->offset = g_strdup (value);
		index_node->is_p_offset = TRUE;
	}
}