[Spice-devel] [spice-server 3/3] dcc: Add debug log when setting compression
Frediano Ziglio
fziglio at redhat.com
Thu Oct 18 14:17:45 UTC 2018
>
> Without this it's not obvious that a compression setting took effect.
We spoke about, there was also a request for this debug line.
> ---
> server/dcc.c | 3 +++
> server/utils.c | 42 ++++++++++++++++++++++++++++++++++++++++++
> server/utils.h | 3 +++
> 3 files changed, 48 insertions(+)
>
> diff --git a/server/dcc.c b/server/dcc.c
> index 826dd28fe..e27d3dcad 100644
> --- a/server/dcc.c
> +++ b/server/dcc.c
> @@ -1093,6 +1093,9 @@ static bool
> dcc_handle_preferred_compression(DisplayChannelClient *dcc,
> default:
> spice_warning("preferred-compression: unsupported image compression
> setting");
> }
> + g_debug("Setting preferred compression to %s",
> + spice_util_genum_get_nick(SPICE_TYPE_SPICE_IMAGE_COMPRESSION_T,
> + dcc->priv->image_compression));
> return TRUE;
> }
>
> diff --git a/server/utils.c b/server/utils.c
> index b8a40b1d9..4b53aa290 100644
> --- a/server/utils.c
> +++ b/server/utils.c
> @@ -114,3 +114,45 @@ int red_channel_name_to_type(const char *name)
> }
> return -1;
> }
> +
> +/* These 2 functions come from
> + * libvirt-glib/libvirt-gconfig/libvirt-gconfig-helpers.c
> + * Copyright (C) 2010, 2011 Red Hat, Inc.
> + * LGPLv2.1+ licensed */
the license is the same, no reason to state here, if it was different
I would prefer to put these in another new file.
> +G_GNUC_INTERNAL const char *
We don't use G_GNUC_INTERNAL in spice-server and spice-common, not
that hurts but is more coherent without.
OT: maybe these would be also useful in spice-common? I remember
Victor once try to write something like this for spice-gtk.
> +spice_util_genum_get_nick(GType enum_type, gint value)
I don't like much the name:
- in spice-server we tend to use spice_ prefix for public function
(with some old function name exception);
- the function is not dependent to spice, just gobject;
- don't like much the _util_ in the name.
Maybe just genum_get_nick? Or just use the classic prefix, being
red_genum_get_nick.
> +{
> + GEnumClass *enum_class;
> + GEnumValue *enum_value;
> +
> + g_return_val_if_fail (G_TYPE_IS_ENUM (enum_type), NULL);
spaces style
> +
> + enum_class = g_type_class_ref(enum_type);
> + enum_value = g_enum_get_value(enum_class, value);
> + g_type_class_unref(enum_class);
> +
> + if (enum_value != NULL)
> + return enum_value->value_nick;
missing brackets
> +
> + g_return_val_if_reached(NULL);
> +}
> +
> +G_GNUC_INTERNAL int
> +spice_util_genum_get_value(GType enum_type, const char *nick,
similar comments for this function
> + gint default_value)
> +{
> + GEnumClass *enum_class;
> + GEnumValue *enum_value;
> +
> + g_return_val_if_fail(G_TYPE_IS_ENUM(enum_type), default_value);
> + g_return_val_if_fail(nick != NULL, default_value);
> +
> + enum_class = g_type_class_ref(enum_type);
> + enum_value = g_enum_get_value_by_nick(enum_class, nick);
> + g_type_class_unref(enum_class);
> +
> + if (enum_value != NULL)
> + return enum_value->value;
missing brackets
> +
> + g_return_val_if_reached(default_value);
> +}
> diff --git a/server/utils.h b/server/utils.h
> index 5cb0eb0ee..52b7f5b3e 100644
> --- a/server/utils.h
> +++ b/server/utils.h
> @@ -21,6 +21,7 @@
>
> #include <stdint.h>
> #include <glib.h>
> +#include <glib-object.h>
>
> #define SPICE_GNUC_VISIBLE __attribute__ ((visibility ("default")))
>
> @@ -55,5 +56,7 @@ int rgb32_data_has_alpha(int width, int height, size_t
> stride,
>
> const char *red_channel_type_to_str(int type);
> int red_channel_name_to_type(const char *name);
> +int spice_util_genum_get_value(GType enum_type, const char *nick, gint
> default_value);
> +const char *spice_util_genum_get_nick(GType enum_type, gint value);
>
> #endif /* UTILS_H_ */
Frediano
More information about the Spice-devel
mailing list