> > From: Victor Toso <me@xxxxxxxxxxxxxx> > > To use a string instead of number (enum) > > Signed-off-by: Victor Toso <victortoso@xxxxxxxxxx> > --- > src/channel-display.c | 26 +++++++++++++++++++++++++- > 1 file changed, 25 insertions(+), 1 deletion(-) > > diff --git a/src/channel-display.c b/src/channel-display.c > index 75d2e32..dece3b9 100644 > --- a/src/channel-display.c > +++ b/src/channel-display.c > @@ -536,6 +536,29 @@ void > spice_display_change_preferred_compression(SpiceChannel *channel, gint comp > spice_display_channel_change_preferred_compression(channel, > compression); > } > > +static const gchar *image_compression_types_str[] = { +const > + [ SPICE_IMAGE_COMPRESSION_INVALID ] = "invalid", > + [ SPICE_IMAGE_COMPRESSION_OFF ] = "off", > + [ SPICE_IMAGE_COMPRESSION_AUTO_GLZ ] = "auto-glz", > + [ SPICE_IMAGE_COMPRESSION_AUTO_LZ ] = "auto-lz", > + [ SPICE_IMAGE_COMPRESSION_QUIC ] = "quic", > + [ SPICE_IMAGE_COMPRESSION_GLZ ] = "glz", > + [ SPICE_IMAGE_COMPRESSION_LZ ] = "lz", > + [ SPICE_IMAGE_COMPRESSION_LZ4 ] = "lz4", > +}; > +G_STATIC_ASSERT(G_N_ELEMENTS(image_compression_types_str) <= > SPICE_IMAGE_COMPRESSION_ENUM_END); > + > +static const gchar *preferred_compression_type_to_string(gint type) > +{ > + const char *str = NULL; > + > + if (type >= 0 && type < G_N_ELEMENTS(image_compression_types_str)) { > + str = image_compression_types_str[type]; > + } > + > + return str ? str : "unknown"; > +} > + > /** > * spice_display_channel_change_preferred_compression: > * @channel: a #SpiceDisplayChannel > @@ -560,7 +583,8 @@ void > spice_display_channel_change_preferred_compression(SpiceChannel *channel, g > return; > } > > - CHANNEL_DEBUG(channel, "changing preferred compression to %d", > compression); > + CHANNEL_DEBUG(channel, "changing preferred compression to %s", > + preferred_compression_type_to_string(compression)); > > pref_comp_msg.image_compression = compression; > out = spice_msg_out_new(channel, > SPICE_MSGC_DISPLAY_PREFERRED_COMPRESSION); There's a similar array in spice-session.c (_spice_image_compress_values) and similar values in spice-option.c (parse_preferred_compression). To avoid such duplications I usually use a macro like #define SPICE_ALL_COMPRESSIONS \ SPICE_COMPRESSION(SPICE_IMAGE_COMPRESSION_OFF, "off) \ SPICE_COMPRESSION(SPICE_IMAGE_COMPRESSION_INVALID, "invalid") \ ... and use like static const GEnumValue _spice_image_compress_values[] = { #define SPICE_COMPRESSION(name, str) { name, #name, str }, SPICE_ALL_COMPRESSIONS #undef SPICE_COMPRESSION { 0, NULL, NULL } }; or static const gchar *const image_compression_types_str[] = { #define SPICE_COMPRESSION(name, str) [ name ] = str, SPICE_ALL_COMPRESSIONS #undef SPICE_COMPRESSION }; In this case you could make _spice_image_compress_values public and use it. Yes, maybe you don't want to slow down the debug code (surely not a problem for option parsing). Frediano _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel