[Spice-devel] [PATCH spice-server 06/18] sound: Rename {Record, Playback}Channel to *ChannelClient

Frediano Ziglio fziglio at redhat.com
Thu Nov 24 14:09:27 UTC 2016


> 
> On 11/23/2016 08:07 PM, Frediano Ziglio wrote:
> > Make easier to understand that they refer to client and not
> > all channel.
> >
> > Specifically:
> > - RecordChannel -> RecordChannelClient
> > - PlaybackChannel -> PlaybackChannelClient
> > - playback_channel -> playback_client
> > - record_channel -> record_client
> 
> Maybe better playback_channel_client (or pcc)
> and          record_channel_client   (rcc not good here)
> 
> Also maybe replace
>    SndChannelClient *channel ->  SndChannelClient *scc (sound channel
> client)
> 
> Otherwise, looks good.
> 
> Uri.
> 

I think that different people don't like rcc either.

I think that based on the context of the function "client" would be usually
enough but you have to understand when it's a SndChannelClient or
a derived class object. Also these new names are more similar to
previous names.

Frediano

> >
> > Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> > ---
> >  server/sound.c | 364
> >  ++++++++++++++++++++++++++++-----------------------------
> >  1 file changed, 182 insertions(+), 182 deletions(-)
> >
> > diff --git a/server/sound.c b/server/sound.c
> > index 29e8df2..256b3da 100644
> > --- a/server/sound.c
> > +++ b/server/sound.c
> > @@ -116,17 +116,17 @@ struct SndChannelClient {
> >      snd_channel_cleanup_channel_proc cleanup;
> >  };
> >
> > -typedef struct PlaybackChannel PlaybackChannel;
> > +typedef struct PlaybackChannelClient PlaybackChannelClient;
> >
> >  typedef struct AudioFrame AudioFrame;
> >  struct AudioFrame {
> >      uint32_t time;
> >      uint32_t samples[SND_CODEC_MAX_FRAME_SIZE];
> > -    PlaybackChannel *channel;
> > +    PlaybackChannelClient *channel;
> >      AudioFrame *next;
> >  };
> >
> > -struct PlaybackChannel {
> > +struct PlaybackChannelClient {
> >      SndChannelClient base;
> >      AudioFrame frames[3];
> >      AudioFrame *free_frames;
> > @@ -163,7 +163,7 @@ struct SpiceRecordState {
> >      struct SndChannel worker;
> >  };
> >
> > -typedef struct RecordChannel {
> > +typedef struct RecordChannelClient {
> >      SndChannelClient base;
> >      uint32_t samples[RECORD_SAMPLES_SIZE];
> >      uint32_t write_pos;
> > @@ -173,7 +173,7 @@ typedef struct RecordChannel {
> >      uint32_t start_time;
> >      SndCodec codec;
> >      uint8_t  decode_buf[SND_CODEC_MAX_FRAME_BYTES];
> > -} RecordChannel;
> > +} RecordChannelClient;
> >
> >  /* A list of all Spice{Playback,Record}State objects */
> >  static SndChannel *snd_channels;
> > @@ -233,20 +233,20 @@ static void snd_disconnect_channel(SndChannelClient
> > *channel)
> >      worker->connection = NULL;
> >  }
> >
> > -static void snd_playback_free_frame(PlaybackChannel *playback_channel,
> > AudioFrame *frame)
> > +static void snd_playback_free_frame(PlaybackChannelClient
> > *playback_client, AudioFrame *frame)
> >  {
> > -    frame->channel = playback_channel;
> > -    frame->next = playback_channel->free_frames;
> > -    playback_channel->free_frames = frame;
> > +    frame->channel = playback_client;
> > +    frame->next = playback_client->free_frames;
> > +    playback_client->free_frames = frame;
> >  }
> >
> >  static void snd_playback_on_message_done(SndChannelClient *channel)
> >  {
> > -    PlaybackChannel *playback_channel = (PlaybackChannel *)channel;
> > -    if (playback_channel->in_progress) {
> > -        snd_playback_free_frame(playback_channel,
> > playback_channel->in_progress);
> > -        playback_channel->in_progress = NULL;
> > -        if (playback_channel->pending_frame) {
> > +    PlaybackChannelClient *playback_client = (PlaybackChannelClient
> > *)channel;
> > +    if (playback_client->in_progress) {
> > +        snd_playback_free_frame(playback_client,
> > playback_client->in_progress);
> > +        playback_client->in_progress = NULL;
> > +        if (playback_client->pending_frame) {
> >              channel->command |= SND_PLAYBACK_PCM_MASK;
> >          }
> >      }
> > @@ -311,7 +311,7 @@ static int snd_send_data(SndChannelClient *channel)
> >      return TRUE;
> >  }
> >
> > -static int snd_record_handle_write(RecordChannel *record_channel, size_t
> > size, void *message)
> > +static int snd_record_handle_write(RecordChannelClient *record_client,
> > size_t size, void *message)
> >  {
> >      SpiceMsgcRecordPacket *packet;
> >      uint32_t write_pos;
> > @@ -319,39 +319,39 @@ static int snd_record_handle_write(RecordChannel
> > *record_channel, size_t size, v
> >      uint32_t len;
> >      uint32_t now;
> >
> > -    if (!record_channel) {
> > +    if (!record_client) {
> >          return FALSE;
> >      }
> >
> >      packet = (SpiceMsgcRecordPacket *)message;
> >
> > -    if (record_channel->mode == SPICE_AUDIO_DATA_MODE_RAW) {
> > +    if (record_client->mode == SPICE_AUDIO_DATA_MODE_RAW) {
> >          data = (uint32_t *)packet->data;
> >          size = packet->data_size >> 2;
> >          size = MIN(size, RECORD_SAMPLES_SIZE);
> >       } else {
> >          int decode_size;
> > -        decode_size = sizeof(record_channel->decode_buf);
> > -        if (snd_codec_decode(record_channel->codec, packet->data,
> > packet->data_size,
> > -                    record_channel->decode_buf, &decode_size) !=
> > SND_CODEC_OK)
> > +        decode_size = sizeof(record_client->decode_buf);
> > +        if (snd_codec_decode(record_client->codec, packet->data,
> > packet->data_size,
> > +                    record_client->decode_buf, &decode_size) !=
> > SND_CODEC_OK)
> >              return FALSE;
> > -        data = (uint32_t *) record_channel->decode_buf;
> > +        data = (uint32_t *) record_client->decode_buf;
> >          size = decode_size >> 2;
> >      }
> >
> > -    write_pos = record_channel->write_pos % RECORD_SAMPLES_SIZE;
> > -    record_channel->write_pos += size;
> > +    write_pos = record_client->write_pos % RECORD_SAMPLES_SIZE;
> > +    record_client->write_pos += size;
> >      len = RECORD_SAMPLES_SIZE - write_pos;
> >      now = MIN(len, size);
> >      size -= now;
> > -    memcpy(record_channel->samples + write_pos, data, now << 2);
> > +    memcpy(record_client->samples + write_pos, data, now << 2);
> >
> >      if (size) {
> > -        memcpy(record_channel->samples, data + now, size << 2);
> > +        memcpy(record_client->samples, data + now, size << 2);
> >      }
> >
> > -    if (record_channel->write_pos - record_channel->read_pos >
> > RECORD_SAMPLES_SIZE) {
> > -        record_channel->read_pos = record_channel->write_pos -
> > RECORD_SAMPLES_SIZE;
> > +    if (record_client->write_pos - record_client->read_pos >
> > RECORD_SAMPLES_SIZE) {
> > +        record_client->read_pos = record_client->write_pos -
> > RECORD_SAMPLES_SIZE;
> >      }
> >      return TRUE;
> >  }
> > @@ -374,41 +374,41 @@ static int
> > snd_playback_handle_message(SndChannelClient *channel, size_t size, u
> >
> >  static int snd_record_handle_message(SndChannelClient *channel, size_t
> >  size, uint32_t type, void *message)
> >  {
> > -    RecordChannel *record_channel = (RecordChannel *)channel;
> > +    RecordChannelClient *record_client = (RecordChannelClient *)channel;
> >
> >      if (!channel) {
> >          return FALSE;
> >      }
> >      switch (type) {
> >      case SPICE_MSGC_RECORD_DATA:
> > -        return snd_record_handle_write((RecordChannel *)channel, size,
> > message);
> > +        return snd_record_handle_write((RecordChannelClient *)channel,
> > size, message);
> >      case SPICE_MSGC_RECORD_MODE: {
> >          SpiceMsgcRecordMode *mode = (SpiceMsgcRecordMode *)message;
> >          SndChannel *worker = channel->worker;
> > -        record_channel->mode_time = mode->time;
> > +        record_client->mode_time = mode->time;
> >          if (mode->mode != SPICE_AUDIO_DATA_MODE_RAW) {
> >              if (snd_codec_is_capable(mode->mode, worker->frequency)) {
> > -                if (snd_codec_create(&record_channel->codec, mode->mode,
> > worker->frequency,
> > +                if (snd_codec_create(&record_client->codec, mode->mode,
> > worker->frequency,
> >                                       SND_CODEC_DECODE) == SND_CODEC_OK) {
> > -                    record_channel->mode = mode->mode;
> > +                    record_client->mode = mode->mode;
> >                  } else {
> >                      spice_printerr("create decoder failed");
> >                      return FALSE;
> >                  }
> >              }
> >              else {
> > -                spice_printerr("unsupported mode %d",
> > record_channel->mode);
> > +                spice_printerr("unsupported mode %d",
> > record_client->mode);
> >                  return FALSE;
> >              }
> >          }
> >          else
> > -            record_channel->mode = mode->mode;
> > +            record_client->mode = mode->mode;
> >          break;
> >      }
> >
> >      case SPICE_MSGC_RECORD_START_MARK: {
> >          SpiceMsgcRecordStartMark *mark = (SpiceMsgcRecordStartMark
> >          *)message;
> > -        record_channel->start_time = mark->time;
> > +        record_client->start_time = mark->time;
> >          break;
> >      }
> >      case SPICE_MSGC_DISCONNECTING:
> > @@ -562,7 +562,7 @@ static int snd_channel_send_migrate(SndChannelClient
> > *channel)
> >      return snd_begin_send_message(channel);
> >  }
> >
> > -static int snd_playback_send_migrate(PlaybackChannel *channel)
> > +static int snd_playback_send_migrate(PlaybackChannelClient *channel)
> >  {
> >      return snd_channel_send_migrate(&channel->base);
> >  }
> > @@ -591,9 +591,9 @@ static int snd_send_volume(SndChannelClient *channel,
> > uint32_t cap, int msg)
> >      return snd_begin_send_message(channel);
> >  }
> >
> > -static int snd_playback_send_volume(PlaybackChannel *playback_channel)
> > +static int snd_playback_send_volume(PlaybackChannelClient
> > *playback_client)
> >  {
> > -    return snd_send_volume(&playback_channel->base,
> > SPICE_PLAYBACK_CAP_VOLUME,
> > +    return snd_send_volume(&playback_client->base,
> > SPICE_PLAYBACK_CAP_VOLUME,
> >                             SPICE_MSG_PLAYBACK_VOLUME);
> >  }
> >
> > @@ -615,29 +615,29 @@ static int snd_send_mute(SndChannelClient *channel,
> > uint32_t cap, int msg)
> >      return snd_begin_send_message(channel);
> >  }
> >
> > -static int snd_playback_send_mute(PlaybackChannel *playback_channel)
> > +static int snd_playback_send_mute(PlaybackChannelClient *playback_client)
> >  {
> > -    return snd_send_mute(&playback_channel->base,
> > SPICE_PLAYBACK_CAP_VOLUME,
> > +    return snd_send_mute(&playback_client->base,
> > SPICE_PLAYBACK_CAP_VOLUME,
> >                           SPICE_MSG_PLAYBACK_MUTE);
> >  }
> >
> > -static int snd_playback_send_latency(PlaybackChannel *playback_channel)
> > +static int snd_playback_send_latency(PlaybackChannelClient
> > *playback_client)
> >  {
> > -    SndChannelClient *channel = &playback_channel->base;
> > +    SndChannelClient *channel = &playback_client->base;
> >      SpiceMsgPlaybackLatency latency_msg;
> >
> > -    spice_debug("latency %u", playback_channel->latency);
> > +    spice_debug("latency %u", playback_client->latency);
> >      if (!snd_reset_send_data(channel, SPICE_MSG_PLAYBACK_LATENCY)) {
> >          return FALSE;
> >      }
> > -    latency_msg.latency_ms = playback_channel->latency;
> > +    latency_msg.latency_ms = playback_client->latency;
> >      spice_marshall_msg_playback_latency(channel->send_data.marshaller,
> >      &latency_msg);
> >
> >      return snd_begin_send_message(channel);
> >  }
> > -static int snd_playback_send_start(PlaybackChannel *playback_channel)
> > +static int snd_playback_send_start(PlaybackChannelClient *playback_client)
> >  {
> > -    SndChannelClient *channel = (SndChannelClient *)playback_channel;
> > +    SndChannelClient *channel = (SndChannelClient *)playback_client;
> >      SpiceMsgPlaybackStart start;
> >
> >      if (!snd_reset_send_data(channel, SPICE_MSG_PLAYBACK_START)) {
> > @@ -654,9 +654,9 @@ static int snd_playback_send_start(PlaybackChannel
> > *playback_channel)
> >      return snd_begin_send_message(channel);
> >  }
> >
> > -static int snd_playback_send_stop(PlaybackChannel *playback_channel)
> > +static int snd_playback_send_stop(PlaybackChannelClient *playback_client)
> >  {
> > -    SndChannelClient *channel = (SndChannelClient *)playback_channel;
> > +    SndChannelClient *channel = (SndChannelClient *)playback_client;
> >
> >      if (!snd_reset_send_data(channel, SPICE_MSG_PLAYBACK_STOP)) {
> >          return FALSE;
> > @@ -665,20 +665,20 @@ static int snd_playback_send_stop(PlaybackChannel
> > *playback_channel)
> >      return snd_begin_send_message(channel);
> >  }
> >
> > -static int snd_playback_send_ctl(PlaybackChannel *playback_channel)
> > +static int snd_playback_send_ctl(PlaybackChannelClient *playback_client)
> >  {
> > -    SndChannelClient *channel = (SndChannelClient *)playback_channel;
> > +    SndChannelClient *channel = (SndChannelClient *)playback_client;
> >
> >      if ((channel->client_active = channel->active)) {
> > -        return snd_playback_send_start(playback_channel);
> > +        return snd_playback_send_start(playback_client);
> >      } else {
> > -        return snd_playback_send_stop(playback_channel);
> > +        return snd_playback_send_stop(playback_client);
> >      }
> >  }
> >
> > -static int snd_record_send_start(RecordChannel *record_channel)
> > +static int snd_record_send_start(RecordChannelClient *record_client)
> >  {
> > -    SndChannelClient *channel = (SndChannelClient *)record_channel;
> > +    SndChannelClient *channel = (SndChannelClient *)record_client;
> >      SpiceMsgRecordStart start;
> >
> >      if (!snd_reset_send_data(channel, SPICE_MSG_RECORD_START)) {
> > @@ -694,9 +694,9 @@ static int snd_record_send_start(RecordChannel
> > *record_channel)
> >      return snd_begin_send_message(channel);
> >  }
> >
> > -static int snd_record_send_stop(RecordChannel *record_channel)
> > +static int snd_record_send_stop(RecordChannelClient *record_client)
> >  {
> > -    SndChannelClient *channel = (SndChannelClient *)record_channel;
> > +    SndChannelClient *channel = (SndChannelClient *)record_client;
> >
> >      if (!snd_reset_send_data(channel, SPICE_MSG_RECORD_STOP)) {
> >          return FALSE;
> > @@ -705,41 +705,41 @@ static int snd_record_send_stop(RecordChannel
> > *record_channel)
> >      return snd_begin_send_message(channel);
> >  }
> >
> > -static int snd_record_send_ctl(RecordChannel *record_channel)
> > +static int snd_record_send_ctl(RecordChannelClient *record_client)
> >  {
> > -    SndChannelClient *channel = (SndChannelClient *)record_channel;
> > +    SndChannelClient *channel = (SndChannelClient *)record_client;
> >
> >      if ((channel->client_active = channel->active)) {
> > -        return snd_record_send_start(record_channel);
> > +        return snd_record_send_start(record_client);
> >      } else {
> > -        return snd_record_send_stop(record_channel);
> > +        return snd_record_send_stop(record_client);
> >      }
> >  }
> >
> > -static int snd_record_send_volume(RecordChannel *record_channel)
> > +static int snd_record_send_volume(RecordChannelClient *record_client)
> >  {
> > -    return snd_send_volume(&record_channel->base, SPICE_RECORD_CAP_VOLUME,
> > +    return snd_send_volume(&record_client->base, SPICE_RECORD_CAP_VOLUME,
> >                             SPICE_MSG_RECORD_VOLUME);
> >  }
> >
> > -static int snd_record_send_mute(RecordChannel *record_channel)
> > +static int snd_record_send_mute(RecordChannelClient *record_client)
> >  {
> > -    return snd_send_mute(&record_channel->base, SPICE_RECORD_CAP_VOLUME,
> > +    return snd_send_mute(&record_client->base, SPICE_RECORD_CAP_VOLUME,
> >                           SPICE_MSG_RECORD_MUTE);
> >  }
> >
> > -static int snd_record_send_migrate(RecordChannel *record_channel)
> > +static int snd_record_send_migrate(RecordChannelClient *record_client)
> >  {
> >      /* No need for migration data: if recording has started before
> >      migration,
> >       * the client receives RECORD_STOP from the src before the migration
> >       completion
> >       * notification (when the vm is stopped).
> >       * Afterwards, when the vm starts on the dest, the client receives
> >       RECORD_START. */
> > -    return snd_channel_send_migrate(&record_channel->base);
> > +    return snd_channel_send_migrate(&record_client->base);
> >  }
> >
> > -static int snd_playback_send_write(PlaybackChannel *playback_channel)
> > +static int snd_playback_send_write(PlaybackChannelClient *playback_client)
> >  {
> > -    SndChannelClient *channel = (SndChannelClient *)playback_channel;
> > +    SndChannelClient *channel = (SndChannelClient *)playback_client;
> >      AudioFrame *frame;
> >      SpiceMsgPlaybackPacket msg;
> >
> > @@ -747,41 +747,41 @@ static int snd_playback_send_write(PlaybackChannel
> > *playback_channel)
> >          return FALSE;
> >      }
> >
> > -    frame = playback_channel->in_progress;
> > +    frame = playback_client->in_progress;
> >      msg.time = frame->time;
> >
> >      spice_marshall_msg_playback_data(channel->send_data.marshaller, &msg);
> >
> > -    if (playback_channel->mode == SPICE_AUDIO_DATA_MODE_RAW) {
> > +    if (playback_client->mode == SPICE_AUDIO_DATA_MODE_RAW) {
> >          spice_marshaller_add_ref(channel->send_data.marshaller,
> >                                   (uint8_t *)frame->samples,
> > -
> > snd_codec_frame_size(playback_channel->codec)
> > * sizeof(frame->samples[0]));
> > +
> > snd_codec_frame_size(playback_client->codec)
> > * sizeof(frame->samples[0]));
> >      }
> >      else {
> > -        int n = sizeof(playback_channel->encode_buf);
> > -        if (snd_codec_encode(playback_channel->codec, (uint8_t *)
> > frame->samples,
> > -
> > snd_codec_frame_size(playback_channel->codec)
> > * sizeof(frame->samples[0]),
> > -                                    playback_channel->encode_buf, &n) !=
> > SND_CODEC_OK) {
> > +        int n = sizeof(playback_client->encode_buf);
> > +        if (snd_codec_encode(playback_client->codec, (uint8_t *)
> > frame->samples,
> > +
> > snd_codec_frame_size(playback_client->codec)
> > * sizeof(frame->samples[0]),
> > +                                    playback_client->encode_buf, &n) !=
> > SND_CODEC_OK) {
> >              spice_printerr("encode failed");
> >              snd_disconnect_channel(channel);
> >              return FALSE;
> >          }
> > -        spice_marshaller_add_ref(channel->send_data.marshaller,
> > playback_channel->encode_buf, n);
> > +        spice_marshaller_add_ref(channel->send_data.marshaller,
> > playback_client->encode_buf, n);
> >      }
> >
> >      return snd_begin_send_message(channel);
> >  }
> >
> > -static int playback_send_mode(PlaybackChannel *playback_channel)
> > +static int playback_send_mode(PlaybackChannelClient *playback_client)
> >  {
> > -    SndChannelClient *channel = (SndChannelClient *)playback_channel;
> > +    SndChannelClient *channel = (SndChannelClient *)playback_client;
> >      SpiceMsgPlaybackMode mode;
> >
> >      if (!snd_reset_send_data(channel, SPICE_MSG_PLAYBACK_MODE)) {
> >          return FALSE;
> >      }
> >      mode.time = reds_get_mm_time();
> > -    mode.mode = playback_channel->mode;
> > +    mode.mode = playback_client->mode;
> >      spice_marshall_msg_playback_mode(channel->send_data.marshaller,
> >      &mode);
> >
> >      return snd_begin_send_message(channel);
> > @@ -789,51 +789,51 @@ static int playback_send_mode(PlaybackChannel
> > *playback_channel)
> >
> >  static void snd_playback_send(void* data)
> >  {
> > -    PlaybackChannel *playback_channel = (PlaybackChannel*)data;
> > -    SndChannelClient *channel = (SndChannelClient*)playback_channel;
> > +    PlaybackChannelClient *playback_client = (PlaybackChannelClient*)data;
> > +    SndChannelClient *channel = (SndChannelClient*)playback_client;
> >
> > -    if (!playback_channel || !snd_send_data(data)) {
> > +    if (!playback_client || !snd_send_data(data)) {
> >          return;
> >      }
> >
> >      while (channel->command) {
> >          if (channel->command & SND_PLAYBACK_MODE_MASK) {
> > -            if (!playback_send_mode(playback_channel)) {
> > +            if (!playback_send_mode(playback_client)) {
> >                  return;
> >              }
> >              channel->command &= ~SND_PLAYBACK_MODE_MASK;
> >          }
> >          if (channel->command & SND_PLAYBACK_PCM_MASK) {
> > -            spice_assert(!playback_channel->in_progress &&
> > playback_channel->pending_frame);
> > -            playback_channel->in_progress =
> > playback_channel->pending_frame;
> > -            playback_channel->pending_frame = NULL;
> > +            spice_assert(!playback_client->in_progress &&
> > playback_client->pending_frame);
> > +            playback_client->in_progress = playback_client->pending_frame;
> > +            playback_client->pending_frame = NULL;
> >              channel->command &= ~SND_PLAYBACK_PCM_MASK;
> > -            if (!snd_playback_send_write(playback_channel)) {
> > +            if (!snd_playback_send_write(playback_client)) {
> >                  spice_printerr("snd_send_playback_write failed");
> >                  return;
> >              }
> >          }
> >          if (channel->command & SND_CTRL_MASK) {
> > -            if (!snd_playback_send_ctl(playback_channel)) {
> > +            if (!snd_playback_send_ctl(playback_client)) {
> >                  return;
> >              }
> >              channel->command &= ~SND_CTRL_MASK;
> >          }
> >          if (channel->command & SND_VOLUME_MASK) {
> > -            if (!snd_playback_send_volume(playback_channel) ||
> > -                !snd_playback_send_mute(playback_channel)) {
> > +            if (!snd_playback_send_volume(playback_client) ||
> > +                !snd_playback_send_mute(playback_client)) {
> >                  return;
> >              }
> >              channel->command &= ~SND_VOLUME_MASK;
> >          }
> >          if (channel->command & SND_MIGRATE_MASK) {
> > -            if (!snd_playback_send_migrate(playback_channel)) {
> > +            if (!snd_playback_send_migrate(playback_client)) {
> >                  return;
> >              }
> >              channel->command &= ~SND_MIGRATE_MASK;
> >          }
> >          if (channel->command & SND_PLAYBACK_LATENCY_MASK) {
> > -            if (!snd_playback_send_latency(playback_channel)) {
> > +            if (!snd_playback_send_latency(playback_client)) {
> >                  return;
> >              }
> >              channel->command &= ~SND_PLAYBACK_LATENCY_MASK;
> > @@ -843,29 +843,29 @@ static void snd_playback_send(void* data)
> >
> >  static void snd_record_send(void* data)
> >  {
> > -    RecordChannel *record_channel = (RecordChannel*)data;
> > -    SndChannelClient *channel = (SndChannelClient*)record_channel;
> > +    RecordChannelClient *record_client = (RecordChannelClient*)data;
> > +    SndChannelClient *channel = (SndChannelClient*)record_client;
> >
> > -    if (!record_channel || !snd_send_data(data)) {
> > +    if (!record_client || !snd_send_data(data)) {
> >          return;
> >      }
> >
> >      while (channel->command) {
> >          if (channel->command & SND_CTRL_MASK) {
> > -            if (!snd_record_send_ctl(record_channel)) {
> > +            if (!snd_record_send_ctl(record_client)) {
> >                  return;
> >              }
> >              channel->command &= ~SND_CTRL_MASK;
> >          }
> >          if (channel->command & SND_VOLUME_MASK) {
> > -            if (!snd_record_send_volume(record_channel) ||
> > -                !snd_record_send_mute(record_channel)) {
> > +            if (!snd_record_send_volume(record_client) ||
> > +                !snd_record_send_mute(record_client)) {
> >                  return;
> >              }
> >              channel->command &= ~SND_VOLUME_MASK;
> >          }
> >          if (channel->command & SND_MIGRATE_MASK) {
> > -            if (!snd_record_send_migrate(record_channel)) {
> > +            if (!snd_record_send_migrate(record_client)) {
> >                  return;
> >              }
> >              channel->command &= ~SND_MIGRATE_MASK;
> > @@ -1000,7 +1000,7 @@ SPICE_GNUC_VISIBLE void
> > spice_server_playback_set_volume(SpicePlaybackInstance *
> >  {
> >      SpiceVolumeState *st = &sin->st->worker.volume;
> >      SndChannelClient *channel = sin->st->worker.connection;
> > -    PlaybackChannel *playback_channel = SPICE_CONTAINEROF(channel,
> > PlaybackChannel, base);
> > +    PlaybackChannelClient *playback_client = SPICE_CONTAINEROF(channel,
> > PlaybackChannelClient, base);
> >
> >      st->volume_nchannels = nchannels;
> >      free(st->volume);
> > @@ -1009,21 +1009,21 @@ SPICE_GNUC_VISIBLE void
> > spice_server_playback_set_volume(SpicePlaybackInstance *
> >      if (!channel || nchannels == 0)
> >          return;
> >
> > -    snd_playback_send_volume(playback_channel);
> > +    snd_playback_send_volume(playback_client);
> >  }
> >
> >  SPICE_GNUC_VISIBLE void
> >  spice_server_playback_set_mute(SpicePlaybackInstance *sin, uint8_t mute)
> >  {
> >      SpiceVolumeState *st = &sin->st->worker.volume;
> >      SndChannelClient *channel = sin->st->worker.connection;
> > -    PlaybackChannel *playback_channel = SPICE_CONTAINEROF(channel,
> > PlaybackChannel, base);
> > +    PlaybackChannelClient *playback_client = SPICE_CONTAINEROF(channel,
> > PlaybackChannelClient, base);
> >
> >      st->mute = mute;
> >
> >      if (!channel)
> >          return;
> >
> > -    snd_playback_send_mute(playback_channel);
> > +    snd_playback_send_mute(playback_client);
> >  }
> >
> >  static void snd_playback_start(SndChannel *worker)
> > @@ -1052,26 +1052,26 @@ SPICE_GNUC_VISIBLE void
> > spice_server_playback_start(SpicePlaybackInstance *sin)
> >  SPICE_GNUC_VISIBLE void spice_server_playback_stop(SpicePlaybackInstance
> >  *sin)
> >  {
> >      SndChannelClient *channel = sin->st->worker.connection;
> > -    PlaybackChannel *playback_channel = SPICE_CONTAINEROF(channel,
> > PlaybackChannel, base);
> > +    PlaybackChannelClient *playback_client = SPICE_CONTAINEROF(channel,
> > PlaybackChannelClient, base);
> >
> >      sin->st->worker.active = 0;
> >      if (!channel)
> >          return;
> > -    spice_assert(playback_channel->base.active);
> > +    spice_assert(playback_client->base.active);
> >      reds_enable_mm_time(snd_channel_get_server(channel));
> > -    playback_channel->base.active = FALSE;
> > -    if (playback_channel->base.client_active) {
> > -        snd_set_command(&playback_channel->base, SND_CTRL_MASK);
> > -        snd_playback_send(&playback_channel->base);
> > +    playback_client->base.active = FALSE;
> > +    if (playback_client->base.client_active) {
> > +        snd_set_command(&playback_client->base, SND_CTRL_MASK);
> > +        snd_playback_send(&playback_client->base);
> >      } else {
> > -        playback_channel->base.command &= ~SND_CTRL_MASK;
> > -        playback_channel->base.command &= ~SND_PLAYBACK_PCM_MASK;
> > -
> > -        if (playback_channel->pending_frame) {
> > -            spice_assert(!playback_channel->in_progress);
> > -            snd_playback_free_frame(playback_channel,
> > -                                    playback_channel->pending_frame);
> > -            playback_channel->pending_frame = NULL;
> > +        playback_client->base.command &= ~SND_CTRL_MASK;
> > +        playback_client->base.command &= ~SND_PLAYBACK_PCM_MASK;
> > +
> > +        if (playback_client->pending_frame) {
> > +            spice_assert(!playback_client->in_progress);
> > +            snd_playback_free_frame(playback_client,
> > +                                    playback_client->pending_frame);
> > +            playback_client->pending_frame = NULL;
> >          }
> >      }
> >  }
> > @@ -1080,44 +1080,44 @@ SPICE_GNUC_VISIBLE void
> > spice_server_playback_get_buffer(SpicePlaybackInstance *
> >                                                           uint32_t **frame,
> >                                                           uint32_t
> >                                                           *num_samples)
> >  {
> >      SndChannelClient *channel = sin->st->worker.connection;
> > -    PlaybackChannel *playback_channel = SPICE_CONTAINEROF(channel,
> > PlaybackChannel, base);
> > +    PlaybackChannelClient *playback_client = SPICE_CONTAINEROF(channel,
> > PlaybackChannelClient, base);
> >
> > -    if (!channel || !playback_channel->free_frames) {
> > +    if (!channel || !playback_client->free_frames) {
> >          *frame = NULL;
> >          *num_samples = 0;
> >          return;
> >      }
> > -    spice_assert(playback_channel->base.active);
> > +    spice_assert(playback_client->base.active);
> >      snd_channel_ref(channel);
> >
> > -    *frame = playback_channel->free_frames->samples;
> > -    playback_channel->free_frames = playback_channel->free_frames->next;
> > -    *num_samples = snd_codec_frame_size(playback_channel->codec);
> > +    *frame = playback_client->free_frames->samples;
> > +    playback_client->free_frames = playback_client->free_frames->next;
> > +    *num_samples = snd_codec_frame_size(playback_client->codec);
> >  }
> >
> >  SPICE_GNUC_VISIBLE void
> >  spice_server_playback_put_samples(SpicePlaybackInstance *sin, uint32_t
> >  *samples)
> >  {
> > -    PlaybackChannel *playback_channel;
> > +    PlaybackChannelClient *playback_client;
> >      AudioFrame *frame;
> >
> >      frame = SPICE_CONTAINEROF(samples, AudioFrame, samples[0]);
> > -    playback_channel = frame->channel;
> > -    spice_assert(playback_channel);
> > -    if (!snd_channel_unref(&playback_channel->base) ||
> > -        sin->st->worker.connection != &playback_channel->base) {
> > +    playback_client = frame->channel;
> > +    spice_assert(playback_client);
> > +    if (!snd_channel_unref(&playback_client->base) ||
> > +        sin->st->worker.connection != &playback_client->base) {
> >          /* lost last reference, channel has been destroyed previously */
> >          spice_info("audio samples belong to a disconnected channel");
> >          return;
> >      }
> > -    spice_assert(playback_channel->base.active);
> > +    spice_assert(playback_client->base.active);
> >
> > -    if (playback_channel->pending_frame) {
> > -        snd_playback_free_frame(playback_channel,
> > playback_channel->pending_frame);
> > +    if (playback_client->pending_frame) {
> > +        snd_playback_free_frame(playback_client,
> > playback_client->pending_frame);
> >      }
> >      frame->time = reds_get_mm_time();
> > -    playback_channel->pending_frame = frame;
> > -    snd_set_command(&playback_channel->base, SND_PLAYBACK_PCM_MASK);
> > -    snd_playback_send(&playback_channel->base);
> > +    playback_client->pending_frame = frame;
> > +    snd_set_command(&playback_client->base, SND_PLAYBACK_PCM_MASK);
> > +    snd_playback_send(&playback_client->base);
> >  }
> >
> >  void snd_set_playback_latency(RedClient *client, uint32_t latency)
> > @@ -1132,7 +1132,7 @@ void snd_set_playback_latency(RedClient *client,
> > uint32_t latency)
> >
> >              if
> >              (red_channel_client_test_remote_cap(now->connection->channel_client,
> >                  SPICE_PLAYBACK_CAP_LATENCY)) {
> > -                PlaybackChannel* playback =
> > (PlaybackChannel*)now->connection;
> > +                PlaybackChannelClient* playback =
> > (PlaybackChannelClient*)now->connection;
> >
> >                  playback->latency = latency;
> >                  snd_set_command(now->connection,
> >                  SND_PLAYBACK_LATENCY_MASK);
> > @@ -1180,13 +1180,13 @@ static void on_new_playback_channel(SndChannel
> > *worker, SndChannelClient *snd_ch
> >
> >  static void snd_playback_cleanup(SndChannelClient *channel)
> >  {
> > -    PlaybackChannel *playback_channel = SPICE_CONTAINEROF(channel,
> > PlaybackChannel, base);
> > +    PlaybackChannelClient *playback_client = SPICE_CONTAINEROF(channel,
> > PlaybackChannelClient, base);
> >
> > -    if (playback_channel->base.active) {
> > +    if (playback_client->base.active) {
> >          reds_enable_mm_time(snd_channel_get_server(channel));
> >      }
> >
> > -    snd_codec_destroy(&playback_channel->codec);
> > +    snd_codec_destroy(&playback_client->codec);
> >  }
> >
> >  static void snd_set_playback_peer(RedChannel *channel, RedClient *client,
> >  RedsStream *stream,
> > @@ -1194,12 +1194,12 @@ static void snd_set_playback_peer(RedChannel
> > *channel, RedClient *client, RedsSt
> >                                    int num_caps, uint32_t *caps)
> >  {
> >      SndChannel *worker = g_object_get_data(G_OBJECT(channel),
> >      "sound-worker");
> > -    PlaybackChannel *playback_channel;
> > +    PlaybackChannelClient *playback_client;
> >
> >      snd_disconnect_channel(worker->connection);
> >
> > -    if (!(playback_channel = (PlaybackChannel *)__new_channel(worker,
> > -
> > sizeof(*playback_channel),
> > +    if (!(playback_client = (PlaybackChannelClient *)__new_channel(worker,
> > +
> > sizeof(*playback_client),
> >                                                                SPICE_CHANNEL_PLAYBACK,
> >                                                                client,
> >                                                                stream,
> > @@ -1212,30 +1212,30 @@ static void snd_set_playback_peer(RedChannel
> > *channel, RedClient *client, RedsSt
> >                                                                caps,
> >                                                                num_caps)))
> >                                                                {
> >          return;
> >      }
> > -    snd_playback_free_frame(playback_channel,
> > &playback_channel->frames[0]);
> > -    snd_playback_free_frame(playback_channel,
> > &playback_channel->frames[1]);
> > -    snd_playback_free_frame(playback_channel,
> > &playback_channel->frames[2]);
> > +    snd_playback_free_frame(playback_client, &playback_client->frames[0]);
> > +    snd_playback_free_frame(playback_client, &playback_client->frames[1]);
> > +    snd_playback_free_frame(playback_client, &playback_client->frames[2]);
> >
> > -    int client_can_celt =
> > red_channel_client_test_remote_cap(playback_channel->base.channel_client,
> > +    int client_can_celt =
> > red_channel_client_test_remote_cap(playback_client->base.channel_client,
> >                                            SPICE_PLAYBACK_CAP_CELT_0_5_1);
> > -    int client_can_opus =
> > red_channel_client_test_remote_cap(playback_channel->base.channel_client,
> > +    int client_can_opus =
> > red_channel_client_test_remote_cap(playback_client->base.channel_client,
> >                                            SPICE_PLAYBACK_CAP_OPUS);
> >      int playback_compression =
> >          reds_config_get_playback_compression(red_channel_get_server(channel));
> >      int desired_mode = snd_desired_audio_mode(playback_compression,
> >      worker->frequency,
> >                                                client_can_celt,
> >                                                client_can_opus);
> > -    playback_channel->mode = SPICE_AUDIO_DATA_MODE_RAW;
> > +    playback_client->mode = SPICE_AUDIO_DATA_MODE_RAW;
> >      if (desired_mode != SPICE_AUDIO_DATA_MODE_RAW) {
> > -        if (snd_codec_create(&playback_channel->codec, desired_mode,
> > worker->frequency,
> > +        if (snd_codec_create(&playback_client->codec, desired_mode,
> > worker->frequency,
> >                               SND_CODEC_ENCODE) == SND_CODEC_OK) {
> > -            playback_channel->mode = desired_mode;
> > +            playback_client->mode = desired_mode;
> >          } else {
> >              spice_printerr("create encoder failed");
> >          }
> >      }
> >
> >      if (!red_client_during_migrate_at_target(client)) {
> > -        on_new_playback_channel(worker, &playback_channel->base);
> > +        on_new_playback_channel(worker, &playback_client->base);
> >      }
> >
> >      if (worker->active) {
> > @@ -1267,7 +1267,7 @@ SPICE_GNUC_VISIBLE void
> > spice_server_record_set_volume(SpiceRecordInstance *sin,
> >  {
> >      SpiceVolumeState *st = &sin->st->worker.volume;
> >      SndChannelClient *channel = sin->st->worker.connection;
> > -    RecordChannel *record_channel = SPICE_CONTAINEROF(channel,
> > RecordChannel, base);
> > +    RecordChannelClient *record_client = SPICE_CONTAINEROF(channel,
> > RecordChannelClient, base);
> >
> >      st->volume_nchannels = nchannels;
> >      free(st->volume);
> > @@ -1276,33 +1276,33 @@ SPICE_GNUC_VISIBLE void
> > spice_server_record_set_volume(SpiceRecordInstance *sin,
> >      if (!channel || nchannels == 0)
> >          return;
> >
> > -    snd_record_send_volume(record_channel);
> > +    snd_record_send_volume(record_client);
> >  }
> >
> >  SPICE_GNUC_VISIBLE void spice_server_record_set_mute(SpiceRecordInstance
> >  *sin, uint8_t mute)
> >  {
> >      SpiceVolumeState *st = &sin->st->worker.volume;
> >      SndChannelClient *channel = sin->st->worker.connection;
> > -    RecordChannel *record_channel = SPICE_CONTAINEROF(channel,
> > RecordChannel, base);
> > +    RecordChannelClient *record_client = SPICE_CONTAINEROF(channel,
> > RecordChannelClient, base);
> >
> >      st->mute = mute;
> >
> >      if (!channel)
> >          return;
> >
> > -    snd_record_send_mute(record_channel);
> > +    snd_record_send_mute(record_client);
> >  }
> >
> >  static void snd_record_start(SndChannel *worker)
> >  {
> >      SndChannelClient *channel = worker->connection;
> > -    RecordChannel *record_channel = SPICE_CONTAINEROF(channel,
> > RecordChannel, base);
> > +    RecordChannelClient *record_client = SPICE_CONTAINEROF(channel,
> > RecordChannelClient, base);
> >
> >      worker->active = 1;
> >      if (!channel)
> >          return;
> >      spice_assert(!channel->active);
> > -    record_channel->read_pos = record_channel->write_pos = 0;   //todo:
> > improve by
> > +    record_client->read_pos = record_client->write_pos = 0;   //todo:
> > improve by
> >                                                                  //stream
> >                                                                  generation
> >      channel->active = TRUE;
> >      if (!channel->client_active) {
> > @@ -1321,18 +1321,18 @@ SPICE_GNUC_VISIBLE void
> > spice_server_record_start(SpiceRecordInstance *sin)
> >  SPICE_GNUC_VISIBLE void spice_server_record_stop(SpiceRecordInstance *sin)
> >  {
> >      SndChannelClient *channel = sin->st->worker.connection;
> > -    RecordChannel *record_channel = SPICE_CONTAINEROF(channel,
> > RecordChannel, base);
> > +    RecordChannelClient *record_client = SPICE_CONTAINEROF(channel,
> > RecordChannelClient, base);
> >
> >      sin->st->worker.active = 0;
> >      if (!channel)
> >          return;
> > -    spice_assert(record_channel->base.active);
> > -    record_channel->base.active = FALSE;
> > -    if (record_channel->base.client_active) {
> > -        snd_set_command(&record_channel->base, SND_CTRL_MASK);
> > -        snd_record_send(&record_channel->base);
> > +    spice_assert(record_client->base.active);
> > +    record_client->base.active = FALSE;
> > +    if (record_client->base.client_active) {
> > +        snd_set_command(&record_client->base, SND_CTRL_MASK);
> > +        snd_record_send(&record_client->base);
> >      } else {
> > -        record_channel->base.command &= ~SND_CTRL_MASK;
> > +        record_client->base.command &= ~SND_CTRL_MASK;
> >      }
> >  }
> >
> > @@ -1340,36 +1340,36 @@ SPICE_GNUC_VISIBLE uint32_t
> > spice_server_record_get_samples(SpiceRecordInstance
> >                                                              uint32_t
> >                                                              *samples,
> >                                                              uint32_t
> >                                                              bufsize)
> >  {
> >      SndChannelClient *channel = sin->st->worker.connection;
> > -    RecordChannel *record_channel = SPICE_CONTAINEROF(channel,
> > RecordChannel, base);
> > +    RecordChannelClient *record_client = SPICE_CONTAINEROF(channel,
> > RecordChannelClient, base);
> >      uint32_t read_pos;
> >      uint32_t now;
> >      uint32_t len;
> >
> >      if (!channel)
> >          return 0;
> > -    spice_assert(record_channel->base.active);
> > +    spice_assert(record_client->base.active);
> >
> > -    if (record_channel->write_pos < RECORD_SAMPLES_SIZE / 2) {
> > +    if (record_client->write_pos < RECORD_SAMPLES_SIZE / 2) {
> >          return 0;
> >      }
> >
> > -    len = MIN(record_channel->write_pos - record_channel->read_pos,
> > bufsize);
> > +    len = MIN(record_client->write_pos - record_client->read_pos,
> > bufsize);
> >
> >      if (len < bufsize) {
> > -        SndChannel *worker = record_channel->base.worker;
> > -        snd_receive(&record_channel->base);
> > +        SndChannel *worker = record_client->base.worker;
> > +        snd_receive(&record_client->base);
> >          if (!worker->connection) {
> >              return 0;
> >          }
> > -        len = MIN(record_channel->write_pos - record_channel->read_pos,
> > bufsize);
> > +        len = MIN(record_client->write_pos - record_client->read_pos,
> > bufsize);
> >      }
> >
> > -    read_pos = record_channel->read_pos % RECORD_SAMPLES_SIZE;
> > -    record_channel->read_pos += len;
> > +    read_pos = record_client->read_pos % RECORD_SAMPLES_SIZE;
> > +    record_client->read_pos += len;
> >      now = MIN(len, RECORD_SAMPLES_SIZE - read_pos);
> > -    memcpy(samples, &record_channel->samples[read_pos], now * 4);
> > +    memcpy(samples, &record_client->samples[read_pos], now * 4);
> >      if (now < len) {
> > -        memcpy(samples + now, record_channel->samples, (len - now) * 4);
> > +        memcpy(samples + now, record_client->samples, (len - now) * 4);
> >      }
> >      return len;
> >  }
> > @@ -1431,8 +1431,8 @@ static void on_new_record_channel(SndChannel *worker,
> > SndChannelClient *snd_chan
> >
> >  static void snd_record_cleanup(SndChannelClient *channel)
> >  {
> > -    RecordChannel *record_channel = SPICE_CONTAINEROF(channel,
> > RecordChannel, base);
> > -    snd_codec_destroy(&record_channel->codec);
> > +    RecordChannelClient *record_client = SPICE_CONTAINEROF(channel,
> > RecordChannelClient, base);
> > +    snd_codec_destroy(&record_client->codec);
> >  }
> >
> >  static void snd_set_record_peer(RedChannel *channel, RedClient *client,
> >  RedsStream *stream,
> > @@ -1440,12 +1440,12 @@ static void snd_set_record_peer(RedChannel
> > *channel, RedClient *client, RedsStre
> >                                  int num_caps, uint32_t *caps)
> >  {
> >      SndChannel *worker = g_object_get_data(G_OBJECT(channel),
> >      "sound-worker");
> > -    RecordChannel *record_channel;
> > +    RecordChannelClient *record_client;
> >
> >      snd_disconnect_channel(worker->connection);
> >
> > -    if (!(record_channel = (RecordChannel *)__new_channel(worker,
> > -
> > sizeof(*record_channel),
> > +    if (!(record_client = (RecordChannelClient *)__new_channel(worker,
> > +
> > sizeof(*record_client),
> >                                                            SPICE_CHANNEL_RECORD,
> >                                                            client,
> >                                                            stream,
> > @@ -1459,9 +1459,9 @@ static void snd_set_record_peer(RedChannel *channel,
> > RedClient *client, RedsStre
> >          return;
> >      }
> >
> > -    record_channel->mode = SPICE_AUDIO_DATA_MODE_RAW;
> > +    record_client->mode = SPICE_AUDIO_DATA_MODE_RAW;
> >
> > -    on_new_record_channel(worker, &record_channel->base);
> > +    on_new_record_channel(worker, &record_client->base);
> >      if (worker->active) {
> >          snd_record_start(worker);
> >      }
> > @@ -1594,7 +1594,7 @@ void snd_set_playback_compression(int on)
> >          uint32_t type;
> >          g_object_get(now->base_channel, "channel-type", &type, NULL);
> >          if (type == SPICE_CHANNEL_PLAYBACK && now->connection) {
> > -            PlaybackChannel* playback = (PlaybackChannel*)now->connection;
> > +            PlaybackChannelClient* playback =
> > (PlaybackChannelClient*)now->connection;
> >              int client_can_celt =
> >              red_channel_client_test_remote_cap(playback->base.channel_client,
> >                                      SPICE_PLAYBACK_CAP_CELT_0_5_1);
> >              int client_can_opus =
> >              red_channel_client_test_remote_cap(playback->base.channel_client,
> >
> 
> 


More information about the Spice-devel mailing list