[Spice-devel] [PATCH 1/4] sound: Remove on_new_playback_channel_client()
Frediano Ziglio
fziglio at redhat.com
Fri Apr 21 07:37:56 UTC 2017
>
> This function is only called from the constructor, so move all of that
> code into the constructor.
>
> Signed-off-by: Jonathon Jongsma <jjongsma at redhat.com>
> ---
> server/sound.c | 47 ++++++++++++++++++++---------------------------
> 1 file changed, 20 insertions(+), 27 deletions(-)
>
> diff --git a/server/sound.c b/server/sound.c
> index 72dfefb..c24911f 100644
> --- a/server/sound.c
> +++ b/server/sound.c
> @@ -1007,29 +1007,6 @@ static int snd_desired_audio_mode(bool
> playback_compression, int frequency,
> return SPICE_AUDIO_DATA_MODE_RAW;
> }
>
> -static void on_new_playback_channel_client(SndChannel *channel,
> SndChannelClient *client)
> -{
> - RedsState *reds = red_channel_get_server(RED_CHANNEL(channel));
> - RedClient *red_client =
> red_channel_client_get_client(RED_CHANNEL_CLIENT(client));
> -
> - spice_assert(client);
> -
> - channel->connection = client;
> - if (red_client_during_migrate_at_target(red_client)) {
> - return;
> - }
> - snd_set_command(client, SND_PLAYBACK_MODE_MASK);
> - if (client->active) {
> - snd_set_command(client, SND_CTRL_MASK);
> - }
> - if (channel->volume.volume_nchannels) {
> - snd_set_command(client, SND_VOLUME_MUTE_MASK);
> - }
> - if (client->active) {
> - reds_disable_mm_time(reds);
> - }
> -}
> -
> static void
> playback_channel_client_finalize(GObject *object)
> {
> @@ -1058,14 +1035,17 @@ static void
> playback_channel_client_constructed(GObject *object)
> {
> PlaybackChannelClient *playback_client =
> PLAYBACK_CHANNEL_CLIENT(object);
> - RedChannel *red_channel =
> red_channel_client_get_channel(RED_CHANNEL_CLIENT(playback_client));
> + RedChannelClient *rcc = RED_CHANNEL_CLIENT(playback_client);
> + RedChannel *red_channel = red_channel_client_get_channel(rcc);
> SndChannel *channel = SND_CHANNEL(red_channel);
> + RedClient *red_client = red_channel_client_get_client(rcc);
> + RedsState *reds = red_channel_get_server(red_channel);
> + SndChannelClient *scc = SND_CHANNEL_CLIENT(playback_client);
>
> G_OBJECT_CLASS(playback_channel_client_parent_class)->constructed(object);
>
> - SND_CHANNEL_CLIENT(playback_client)->on_message_done =
> snd_playback_on_message_done;
> + scc->on_message_done = snd_playback_on_message_done;
>
> - RedChannelClient *rcc = RED_CHANNEL_CLIENT(playback_client);
> bool client_can_celt = red_channel_client_test_remote_cap(rcc,
> SPICE_PLAYBACK_CAP_CELT_0_5_1);
> bool client_can_opus = red_channel_client_test_remote_cap(rcc,
> @@ -1086,7 +1066,20 @@ playback_channel_client_constructed(GObject *object)
> spice_debug("playback client %p using mode %s", playback_client,
> spice_audio_data_mode_to_string(playback_client->mode));
>
> - on_new_playback_channel_client(channel,
> SND_CHANNEL_CLIENT(playback_client));
> + channel->connection = scc;
> + if (red_client_during_migrate_at_target(red_client)) {
> + return;
This return should execute ...
> + }
> + snd_set_command(scc, SND_PLAYBACK_MODE_MASK);
> + if (scc->active) {
> + snd_set_command(scc, SND_CTRL_MASK);
> + }
> + if (channel->volume.volume_nchannels) {
> + snd_set_command(scc, SND_VOLUME_MUTE_MASK);
> + }
> + if (scc->active) {
> + reds_disable_mm_time(reds);
> + }
>
... this following code:
> if (channel->active) {
> snd_playback_start(channel);
Frediano
More information about the Spice-devel
mailing list