Allows to run spice-gtk with SPICE_FOO_CAP_BAR=0 disable channel FOO capability BAR. --- gtk/spice-channel-priv.h | 8 ++++++-- gtk/spice-channel.c | 12 +++++++----- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/gtk/spice-channel-priv.h b/gtk/spice-channel-priv.h index ac8bece..4f094d8 100644 --- a/gtk/spice-channel-priv.h +++ b/gtk/spice-channel-priv.h @@ -174,11 +174,15 @@ void spice_channel_handle_migrate(SpiceChannel *channel, SpiceMsgIn *in); gint spice_channel_get_channel_id(SpiceChannel *channel); gint spice_channel_get_channel_type(SpiceChannel *channel); void spice_channel_swap(SpiceChannel *channel, SpiceChannel *swap); -void spice_channel_set_common_capability(SpiceChannel *channel, guint32 cap); gboolean spice_channel_get_read_only(SpiceChannel *channel); - void spice_channel_reset(SpiceChannel *channel, gboolean migrating); +void spice_caps_set(GArray *caps, guint32 cap, const gchar *desc); +#define spice_channel_set_common_capability(channel, cap) \ + spice_caps_set(SPICE_CHANNEL(channel)->priv->common_caps, cap, #cap) +#define spice_channel_set_capability(channel, cap) \ + spice_caps_set(SPICE_CHANNEL(channel)->priv->caps, cap, #cap) + /* coroutine context */ #define emit_main_context(object, event, args...) \ G_STMT_START { \ diff --git a/gtk/spice-channel.c b/gtk/spice-channel.c index 3cd047d..75b171b 100644 --- a/gtk/spice-channel.c +++ b/gtk/spice-channel.c @@ -2538,6 +2538,7 @@ static void set_capability(GArray *caps, guint32 cap) * * Enable specific channel-kind capability. **/ +#undef spice_channel_set_capability /* FIXME: we may want to make caps read only from outside */ void spice_channel_set_capability(SpiceChannel *channel, guint32 cap) { @@ -2550,14 +2551,15 @@ void spice_channel_set_capability(SpiceChannel *channel, guint32 cap) } G_GNUC_INTERNAL -void spice_channel_set_common_capability(SpiceChannel *channel, guint32 cap) +void spice_caps_set(GArray *caps, guint32 cap, const gchar *desc) { - SpiceChannelPrivate *c; + g_return_if_fail(caps != NULL); + g_return_if_fail(desc != NULL); - g_return_if_fail(SPICE_IS_CHANNEL(channel)); + if (g_strcmp0(g_getenv(desc), "0") == 0) + return; - c = channel->priv; - set_capability(c->common_caps, cap); + set_capability(caps, cap); } G_GNUC_INTERNAL -- 1.7.10.2 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel