[Spice-devel] [PATCH v9 08/11] sound: Reuse code to set volume and mute

Jonathon Jongsma jjongsma at redhat.com
Thu Dec 22 17:13:20 UTC 2016


Acked-by: Jonathon Jongsma <jjongsma at redhat.com>



On Tue, 2016-12-20 at 17:44 +0000, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  server/sound.c | 51 +++++++++++++++++++++---------------------------
> ---
>  1 file changed, 21 insertions(+), 30 deletions(-)
> 
> diff --git a/server/sound.c b/server/sound.c
> index 32c712f..fc3a92c 100644
> --- a/server/sound.c
> +++ b/server/sound.c
> @@ -827,12 +827,11 @@ static void snd_set_command(SndChannelClient
> *client, uint32_t command)
>      client->command |= command;
>  }
>  
> -SPICE_GNUC_VISIBLE void
> spice_server_playback_set_volume(SpicePlaybackInstance *sin,
> -                                                  uint8_t nchannels,
> -                                                  uint16_t *volume)
> +static void snd_channel_set_volume(SndChannel *channel,
> +                                   uint8_t nchannels, uint16_t
> *volume)
>  {
> -    SpiceVolumeState *st = &sin->st->channel.volume;
> -    SndChannelClient *client = sin->st->channel.connection;
> +    SpiceVolumeState *st = &channel->volume;
> +    SndChannelClient *client = channel->connection;
>  
>      st->volume_nchannels = nchannels;
>      free(st->volume);
> @@ -845,10 +844,17 @@ SPICE_GNUC_VISIBLE void
> spice_server_playback_set_volume(SpicePlaybackInstance *
>      snd_send(client);
>  }
>  
> -SPICE_GNUC_VISIBLE void
> spice_server_playback_set_mute(SpicePlaybackInstance *sin, uint8_t
> mute)
> +SPICE_GNUC_VISIBLE void
> spice_server_playback_set_volume(SpicePlaybackInstance *sin,
> +                                                  uint8_t nchannels,
> +                                                  uint16_t *volume)
>  {
> -    SpiceVolumeState *st = &sin->st->channel.volume;
> -    SndChannelClient *client = sin->st->channel.connection;
> +    snd_channel_set_volume(&sin->st->channel, nchannels, volume);
> +}
> +
> +static void snd_channel_set_mute(SndChannel *channel, uint8_t mute)
> +{
> +    SpiceVolumeState *st = &channel->volume;
> +    SndChannelClient *client = channel->connection;
>  
>      st->mute = mute;
>  
> @@ -859,6 +865,11 @@ SPICE_GNUC_VISIBLE void
> spice_server_playback_set_mute(SpicePlaybackInstance *si
>      snd_send(client);
>  }
>  
> +SPICE_GNUC_VISIBLE void
> spice_server_playback_set_mute(SpicePlaybackInstance *sin, uint8_t
> mute)
> +{
> +    snd_channel_set_mute(&sin->st->channel, mute);
> +}
> +
>  static void snd_playback_start(SndChannel *channel)
>  {
>      SndChannelClient *client = channel->connection;
> @@ -1144,32 +1155,12 @@ SPICE_GNUC_VISIBLE void
> spice_server_record_set_volume(SpiceRecordInstance *sin,
>                                                  uint8_t nchannels,
>                                                  uint16_t *volume)
>  {
> -    SpiceVolumeState *st = &sin->st->channel.volume;
> -    SndChannelClient *client = sin->st->channel.connection;
> -
> -    st->volume_nchannels = nchannels;
> -    free(st->volume);
> -    st->volume = spice_memdup(volume, sizeof(uint16_t) * nchannels);
> -
> -    if (!client || nchannels == 0)
> -        return;
> -
> -    snd_set_command(client, SND_VOLUME_MUTE_MASK);
> -    snd_send(client);
> +    snd_channel_set_volume(&sin->st->channel, nchannels, volume);
>  }
>  
>  SPICE_GNUC_VISIBLE void
> spice_server_record_set_mute(SpiceRecordInstance *sin, uint8_t mute)
>  {
> -    SpiceVolumeState *st = &sin->st->channel.volume;
> -    SndChannelClient *client = sin->st->channel.connection;
> -
> -    st->mute = mute;
> -
> -    if (!client)
> -        return;
> -
> -    snd_set_command(client, SND_VOLUME_MUTE_MASK);
> -    snd_send(client);
> +    snd_channel_set_mute(&sin->st->channel, mute);
>  }
>  
>  static void snd_record_start(SndChannel *channel)


More information about the Spice-devel mailing list