summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Vogelgesang <matthias.vogelgesang@kit.edu>2017-12-08 11:27:11 +0100
committerMatthias Vogelgesang <matthias.vogelgesang@kit.edu>2017-12-08 11:27:25 +0100
commitf8efbe7090662cda1d2fb89920c203ba725c9901 (patch)
treece83514189247a138e25fdafc6fc8fd33816345e
parentce79916561268c51a69bbff9e61bae98ebe4aa1c (diff)
downloaduca-net-f8efbe7090662cda1d2fb89920c203ba725c9901.tar.gz
uca-net-f8efbe7090662cda1d2fb89920c203ba725c9901.tar.bz2
uca-net-f8efbe7090662cda1d2fb89920c203ba725c9901.tar.xz
uca-net-f8efbe7090662cda1d2fb89920c203ba725c9901.zip
Transmit enum value names
-rw-r--r--uca-net-camera.c3
-rw-r--r--uca-net-protocol.h4
-rw-r--r--ucad.c6
3 files changed, 9 insertions, 4 deletions
diff --git a/uca-net-camera.c b/uca-net-camera.c
index f265fc6..03e4996 100644
--- a/uca-net-camera.c
+++ b/uca-net-camera.c
@@ -491,8 +491,7 @@ deserialize_param_spec (UcaNetMessageProperty *prop)
for (guint i = 0; i < prop->spec.genum.n_values; i++) {
gchar *name;
- name = g_strdup_printf ("%s_%i", prop->name, i);
-
+ name = g_strdup (prop->spec.genum.value_names[i]);
values[i].value = prop->spec.genum.values[i];
values[i].value_name = name;
values[i].value_nick = name;
diff --git a/uca-net-protocol.h b/uca-net-protocol.h
index e3a827d..ee10b72 100644
--- a/uca-net-protocol.h
+++ b/uca-net-protocol.h
@@ -3,7 +3,8 @@
#include <gio/gio.h>
-#define UCA_NET_MAX_ENUM_LENGTH 128
+#define UCA_NET_MAX_ENUM_LENGTH 32
+#define UCA_NET_MAX_ENUM_NAME_LENGTH 32
typedef enum {
UCA_NET_MESSAGE_INVALID = 0,
@@ -95,6 +96,7 @@ typedef struct {
gint maximum;
guint n_values;
gint values[UCA_NET_MAX_ENUM_LENGTH];
+ gchar value_names[UCA_NET_MAX_ENUM_LENGTH][UCA_NET_MAX_ENUM_NAME_LENGTH];
} genum;
NUMERIC_STRUCT (gint)
NUMERIC_STRUCT (gint64)
diff --git a/ucad.c b/ucad.c
index cd35118..28d83d8 100644
--- a/ucad.c
+++ b/ucad.c
@@ -134,8 +134,12 @@ serialize_param_spec (GParamSpec *pspec, UcaNetMessageProperty *prop)
g_warning ("Cannot serialize all values of %s", prop->name);
/* We do not transfer the enum value names (yet) ... */
- for (guint i = 0; i < MIN (enum_class->n_values, UCA_NET_MAX_ENUM_LENGTH); i++)
+ for (guint i = 0; i < MIN (enum_class->n_values, UCA_NET_MAX_ENUM_LENGTH); i++) {
prop->spec.genum.values[i] = enum_class->values[i].value;
+ strncpy (prop->spec.genum.value_names[i], enum_class->values[i].value_name,
+ UCA_NET_MAX_ENUM_NAME_LENGTH);
+ g_print ("copied %s\n", prop->spec.genum.value_names[i]);
+ }
return;
}