The list is used only to iterate playback channels Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- server/sound.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/server/sound.c b/server/sound.c index be7e607..64cd6d4 100644 --- a/server/sound.c +++ b/server/sound.c @@ -234,7 +234,7 @@ G_DEFINE_TYPE(RecordChannelClient, record_channel_client, TYPE_SND_CHANNEL_CLIEN /* A list of all Spice{Playback,Record}State objects */ -static GList *snd_channels; +static GList *snd_playback_channels; static void snd_send(SndChannelClient * client); @@ -980,12 +980,10 @@ void snd_set_playback_latency(RedClient *client, uint32_t latency) { GList *l; - for (l = snd_channels; l != NULL; l = l->next) { + for (l = snd_playback_channels; l != NULL; l = l->next) { SndChannel *now = l->data; SndChannelClient *scc = snd_channel_get_client(now); - uint32_t type; - g_object_get(RED_CHANNEL(now), "channel-type", &type, NULL); - if (type == SPICE_CHANNEL_PLAYBACK && scc && + if (scc && red_channel_client_get_client(RED_CHANNEL_CLIENT(scc)) == client) { if (red_channel_client_test_remote_cap(RED_CHANNEL_CLIENT(scc), @@ -1285,12 +1283,12 @@ static void snd_set_record_peer(RedChannel *red_channel, RedClient *client, Reds static void add_channel(SndChannel *channel) { - snd_channels = g_list_prepend(snd_channels, channel); + snd_playback_channels = g_list_prepend(snd_playback_channels, channel); } static void remove_channel(SndChannel *channel) { - snd_channels = g_list_remove(snd_channels, channel); + snd_playback_channels = g_list_remove(snd_playback_channels, channel); } static void @@ -1396,7 +1394,6 @@ record_channel_constructed(GObject *object) } red_channel_set_cap(RED_CHANNEL(self), SPICE_RECORD_CAP_VOLUME); - add_channel(self); reds_register_channel(reds, RED_CHANNEL(self)); } @@ -1448,12 +1445,10 @@ void snd_set_playback_compression(bool on) { GList *l; - for (l = snd_channels; l != NULL; l = l->next) { + for (l = snd_playback_channels; l != NULL; l = l->next) { SndChannel *now = l->data; SndChannelClient *client = snd_channel_get_client(now); - uint32_t type; - g_object_get(RED_CHANNEL(now), "channel-type", &type, NULL); - if (type == SPICE_CHANNEL_PLAYBACK && client) { + if (client) { PlaybackChannelClient* playback = PLAYBACK_CHANNEL_CLIENT(client); RedChannelClient *rcc = RED_CHANNEL_CLIENT(playback); bool client_can_celt = red_channel_client_test_remote_cap(rcc, -- 2.9.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel