From: Victor Toso <me@xxxxxxxxxxxxxx> On migration, Qemu notify spice-server with the current Guest volume and mute state values which currently is handled forwarding these values to the client. This patch is a complement of f10de4bc084fcc - Here, volume was jumping regardless of guest's volume value. Resolves: rhbz#1425443 Signed-off-by: Victor Toso <victortoso@xxxxxxxxxx> --- server/sound.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/server/sound.c b/server/sound.c index b1bfaaaa..fc3d8f4a 100644 --- a/server/sound.c +++ b/server/sound.c @@ -823,6 +823,7 @@ static void snd_channel_set_volume(SndChannel *channel, { SpiceVolumeState *st = &channel->volume; SndChannelClient *client = snd_channel_get_client(channel); + RedChannelClient *rcc; st->volume_nchannels = nchannels; g_free(st->volume); @@ -831,6 +832,10 @@ static void snd_channel_set_volume(SndChannel *channel, if (!client || nchannels == 0) return; + rcc = RED_CHANNEL_CLIENT(client); + if (red_client_during_migrate_at_target(red_channel_client_get_client(rcc))) + return; + snd_set_command(client, SND_VOLUME_MASK); snd_send(client); } @@ -846,12 +851,17 @@ static void snd_channel_set_mute(SndChannel *channel, uint8_t mute) { SpiceVolumeState *st = &channel->volume; SndChannelClient *client = snd_channel_get_client(channel); + RedChannelClient *rcc; st->mute = mute; if (!client) return; + rcc = RED_CHANNEL_CLIENT(client); + if (red_client_during_migrate_at_target(red_channel_client_get_client(rcc))) + return; + snd_set_command(client, SND_MUTE_MASK); snd_send(client); } -- 2.15.1 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel