Ejemplo n.º 1
0
static void
arv_gc_struct_entry_node_post_new_child (ArvDomNode *self, ArvDomNode *child)
{
    ArvGcStructEntryNode *node = ARV_GC_STRUCT_ENTRY_NODE (self);

    if (ARV_IS_GC_PROPERTY_NODE (child)) {
        ArvGcPropertyNode *property_node = ARV_GC_PROPERTY_NODE (child);

        switch (arv_gc_property_node_get_node_type (property_node)) {
        case ARV_GC_PROPERTY_NODE_TYPE_SIGN:
            /* TODO */
            node->sign = property_node;
            break;
        case ARV_GC_PROPERTY_NODE_TYPE_LSB:
            node->lsb = property_node;
            break;
        case ARV_GC_PROPERTY_NODE_TYPE_MSB:
            node->msb = property_node;
            break;
        case ARV_GC_PROPERTY_NODE_TYPE_BIT:
            node->msb = property_node;
            node->lsb = property_node;
            break;
        default:
            ARV_DOM_NODE_CLASS (parent_class)->post_new_child (self, child);
            break;
        }
    }
}
Ejemplo n.º 2
0
static void
arv_gc_struct_entry_node_set_integer_value (ArvGcInteger *gc_integer, gint64 value, GError **error)
{
    ArvGcStructEntryNode *struct_entry = ARV_GC_STRUCT_ENTRY_NODE (gc_integer);
    ArvDomNode *struct_register;
    GError *local_error = NULL;
    guint lsb;
    guint msb;

    struct_register = arv_dom_node_get_parent_node (ARV_DOM_NODE (gc_integer));
    if (!ARV_IS_GC_REGISTER_NODE (struct_register))
        return;

    lsb = _get_lsb (struct_entry, &local_error);

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

    msb = _get_msb (struct_entry, &local_error);

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

    arv_gc_register_node_set_masked_integer_value (ARV_GC_REGISTER_NODE (struct_register), lsb, msb, value, &local_error);

    if (local_error != NULL) {
        g_propagate_error (error, local_error);
        return;
    }
}
Ejemplo n.º 3
0
static const char *
arv_gc_struct_entry_node_get_value_as_string (ArvGcFeatureNode *node)
{
	ArvGcStructEntryNode *gc_struct_entry_node = ARV_GC_STRUCT_ENTRY_NODE (node);

	g_snprintf (gc_struct_entry_node->v_string, G_ASCII_DTOSTR_BUF_SIZE,
		    "0x%08" G_GINT64_MODIFIER "x", arv_gc_integer_get_value (ARV_GC_INTEGER (node)));
	return gc_struct_entry_node->v_string;
}
Ejemplo n.º 4
0
static void
arv_gc_struct_entry_node_set_integer_value (ArvGcInteger *gc_integer, gint64 value)
{
	ArvGcStructEntryNode *struct_entry = ARV_GC_STRUCT_ENTRY_NODE (gc_integer);
	ArvDomNode *struct_register;
	guint lsb;
	guint msb;

	struct_register = arv_dom_node_get_parent_node (ARV_DOM_NODE (gc_integer));
	if (!ARV_IS_GC_REGISTER_NODE (struct_register))
		return;

	lsb = _get_lsb (struct_entry);
	msb = _get_msb (struct_entry);

	arv_gc_register_node_set_masked_integer_value (ARV_GC_REGISTER_NODE (struct_register), lsb, msb, value);
}
Ejemplo n.º 5
0
static const char *
arv_gc_struct_entry_node_get_value_as_string (ArvGcFeatureNode *node, GError **error)
{
    ArvGcStructEntryNode *gc_struct_entry_node = ARV_GC_STRUCT_ENTRY_NODE (node);
    GError *local_error = NULL;
    gint64 value;

    value = arv_gc_integer_get_value (ARV_GC_INTEGER (node), &local_error);

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

    g_snprintf (gc_struct_entry_node->v_string, G_ASCII_DTOSTR_BUF_SIZE,
                "0x%08" G_GINT64_MODIFIER "x", value);

    return gc_struct_entry_node->v_string;
}