[Spice-devel,v4,13/17] sound: Reuse code for migrating client channels

Submitted by Frediano Ziglio on Dec. 1, 2016, 11:24 a.m.

Details

Message ID 5144e0e01ce8a2e00cb3558156c5b1e6b18c8d24.1480591473.git-series.fziglio@redhat.com
State Accepted
Headers show
Series "Remove DummyChannel* objects" ( rev: 1 ) in Spice

Not browsing as part of any series.

Commit Message

Frediano Ziglio Dec. 1, 2016, 11:24 a.m.
We support only a single client so don't waste code just
to check this.
The worst stuff can happen is that we'll migrate multiple
connections.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
---
 server/sound.c | 37 +++++--------------------------------
 1 file changed, 5 insertions(+), 32 deletions(-)

Patch hide | download patch | download mbox

diff --git a/server/sound.c b/server/sound.c
index 0304fec..30a0c20 100644
--- a/server/sound.c
+++ b/server/sound.c
@@ -1119,20 +1119,10 @@  static void snd_set_playback_peer(RedChannel *red_channel, RedClient *client, Re
                  TYPE_PLAYBACK_CHANNEL_CLIENT);
 }
 
-static void snd_record_migrate_channel_client(RedChannelClient *rcc)
+static void snd_migrate_channel_client(RedChannelClient *rcc)
 {
-    SndChannel *channel;
-    RedChannel *red_channel = red_channel_client_get_channel(rcc);
-
-    spice_assert(red_channel);
-    channel = SND_CHANNEL(red_channel);
-    spice_assert(channel);
-
-    if (channel->connection) {
-        spice_assert(RED_CHANNEL_CLIENT(channel->connection) == rcc);
-        snd_set_command(channel->connection, SND_MIGRATE_MASK);
-        snd_send(channel->connection);
-    }
+    snd_set_command(SND_CHANNEL_CLIENT(rcc), SND_MIGRATE_MASK);
+    snd_send(SND_CHANNEL_CLIENT(rcc));
 }
 
 SPICE_GNUC_VISIBLE void spice_server_record_set_volume(SpiceRecordInstance *sin,
@@ -1342,23 +1332,6 @@  static void snd_set_record_peer(RedChannel *red_channel, RedClient *client, Reds
                  TYPE_RECORD_CHANNEL_CLIENT);
 }
 
-static void snd_playback_migrate_channel_client(RedChannelClient *rcc)
-{
-    SndChannel *channel;
-    RedChannel *red_channel = red_channel_client_get_channel(rcc);
-
-    spice_assert(red_channel);
-    channel = SND_CHANNEL(red_channel);
-    spice_assert(channel);
-    spice_debug(NULL);
-
-    if (channel->connection) {
-        spice_assert(RED_CHANNEL_CLIENT(channel->connection) == rcc);
-        snd_set_command(channel->connection, SND_MIGRATE_MASK);
-        snd_send(channel->connection);
-    }
-}
-
 static void add_channel(SndChannel *channel)
 {
     channel->next = snd_channels;
@@ -1426,7 +1399,7 @@  playback_channel_constructed(GObject *object)
     G_OBJECT_CLASS(playback_channel_parent_class)->constructed(object);
 
     client_cbs.connect = snd_set_playback_peer;
-    client_cbs.migrate = snd_playback_migrate_channel_client;
+    client_cbs.migrate = snd_migrate_channel_client;
     red_channel_register_client_cbs(RED_CHANNEL(self), &client_cbs, self);
 
     if (snd_codec_is_capable(SPICE_AUDIO_DATA_MODE_CELT_0_5_1, SND_CODEC_ANY_FREQUENCY)) {
@@ -1476,7 +1449,7 @@  record_channel_constructed(GObject *object)
     G_OBJECT_CLASS(record_channel_parent_class)->constructed(object);
 
     client_cbs.connect = snd_set_record_peer;
-    client_cbs.migrate = snd_record_migrate_channel_client;
+    client_cbs.migrate = snd_migrate_channel_client;
     red_channel_register_client_cbs(RED_CHANNEL(self), &client_cbs, self);
 
     if (snd_codec_is_capable(SPICE_AUDIO_DATA_MODE_CELT_0_5_1, SND_CODEC_ANY_FREQUENCY)) {