Re: [PATCH spice-gtk 2/2] channel-main: Add support for VD_AGENT_CAP_SPARSE_MONITORS_CONFIG (rhbz#881072)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

My understanding of this patch is that you send all monitors config,
regardless if there are disabled. This is a bit wasteful, but not a
real problem.

Why is that needed if the implementation handle "missing" monitors id
as disabled? (which is what the current implementation should do, no?)

On Thu, Jan 10, 2013 at 11:52 PM, Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
> ---
>  gtk/channel-main.c | 20 ++++++++++++++------
>  1 file changed, 14 insertions(+), 6 deletions(-)
>
> diff --git a/gtk/channel-main.c b/gtk/channel-main.c
> index 653b989..720fcfa 100644
> --- a/gtk/channel-main.c
> +++ b/gtk/channel-main.c
> @@ -939,11 +939,15 @@ gboolean spice_main_send_monitor_config(SpiceMainChannel *channel)
>      c = channel->priv;
>      g_return_val_if_fail(c->agent_connected, FALSE);
>
> -    monitors = 0;
> -    /* FIXME: fix MonitorConfig to be per display */
> -    for (i = 0; i < SPICE_N_ELEMENTS(c->display); i++) {
> -        if (c->display[i].enabled)
> -            monitors += 1;
> +    if (spice_main_agent_test_capability(channel,
> +                                     VD_AGENT_CAP_SPARSE_MONITORS_CONFIG)) {
> +        monitors = SPICE_N_ELEMENTS(c->display);
> +    } else {
> +        monitors = 0;
> +        for (i = 0; i < SPICE_N_ELEMENTS(c->display); i++) {
> +            if (c->display[i].enabled)
> +                monitors += 1;
> +        }
>      }
>
>      size = sizeof(VDAgentMonitorsConfig) + sizeof(VDAgentMonConfig) * monitors;
> @@ -956,8 +960,12 @@ gboolean spice_main_send_monitor_config(SpiceMainChannel *channel)
>
>      j = 0;
>      for (i = 0; i < SPICE_N_ELEMENTS(c->display); i++) {
> -        if (!c->display[i].enabled)
> +        if (!c->display[i].enabled) {
> +            if (spice_main_agent_test_capability(channel,
> +                                     VD_AGENT_CAP_SPARSE_MONITORS_CONFIG))
> +                j++;
>              continue;
> +        }
>          mon->monitors[j].depth  = c->display_color_depth ? c->display_color_depth : 32;
>          mon->monitors[j].width  = c->display[j].width;
>          mon->monitors[j].height = c->display[j].height;
> --
> 1.8.0.2
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel@xxxxxxxxxxxxxxxxxxxxx
> http://lists.freedesktop.org/mailman/listinfo/spice-devel



-- 
Marc-André Lureau
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]