summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2013-04-01 22:10:55 +0200
committerHans de Goede <hdegoede@redhat.com>2013-04-01 22:10:55 +0200
commit71315b2e0983afaca7e6e681bf1ecff01ca3ed9f (patch)
tree04f9a10b7268ce36b67e4c4c853a3f679ad81c0c /server
parentbaa7cab700155201abde86e31018e1a8f28dc330 (diff)
downloadspice-71315b2e0983afaca7e6e681bf1ecff01ca3ed9f.tar.gz
spice-71315b2e0983afaca7e6e681bf1ecff01ca3ed9f.tar.xz
spice-71315b2e0983afaca7e6e681bf1ecff01ca3ed9f.zip
snd_worker: Don't send empty audio-volume messages
If no volume has been set it, we end up sending a volume message with audio-volume for 0 channels (iow an empty message). This is not useful and triggers the following warning in spice-gtk: (remote-viewer:8726): GSpice-WARNING **: set_sink_input_volume() failed: Invalid argument Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Diffstat (limited to 'server')
-rw-r--r--server/snd_worker.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/server/snd_worker.c b/server/snd_worker.c
index bc7be51f..010c1527 100644
--- a/server/snd_worker.c
+++ b/server/snd_worker.c
@@ -1100,6 +1100,7 @@ static void on_new_playback_channel(SndWorker *worker)
{
PlaybackChannel *playback_channel =
SPICE_CONTAINEROF(worker->connection, PlaybackChannel, base);
+ SpicePlaybackState *st = SPICE_CONTAINEROF(worker, SpicePlaybackState, worker);
spice_assert(playback_channel);
@@ -1107,7 +1108,9 @@ static void on_new_playback_channel(SndWorker *worker)
if (playback_channel->base.active) {
snd_set_command((SndChannel *)playback_channel, SND_PLAYBACK_CTRL_MASK);
}
- snd_set_command((SndChannel *)playback_channel, SND_PLAYBACK_VOLUME_MASK);
+ if (st->volume.volume_nchannels) {
+ snd_set_command((SndChannel *)playback_channel, SND_PLAYBACK_VOLUME_MASK);
+ }
if (playback_channel->base.active) {
reds_disable_mm_timer();
}