Hi ----- Original Message ----- > As soon as playback-start and record-start are handled, sync volume/mute > with guest. It sounds like this may make a glitch whenever audio start (especially because the volume units are not specified and differ between client, guest and hw). Why not sync only when the agent is started? > --- > gtk/channel-playback.c | 4 ++++ > gtk/channel-record.c | 4 ++++ > 2 files changed, 8 insertions(+) > > diff --git a/gtk/channel-playback.c b/gtk/channel-playback.c > index ae8a75d..550346e 100644 > --- a/gtk/channel-playback.c > +++ b/gtk/channel-playback.c > @@ -21,6 +21,7 @@ > #include "spice-common.h" > #include "spice-channel-priv.h" > #include "spice-session-priv.h" > +#include "spice-audio-priv.h" > > #include "spice-marshal.h" > > @@ -364,6 +365,8 @@ static void playback_handle_start(SpiceChannel *channel, > SpiceMsgIn *in) > { > SpicePlaybackChannelPrivate *c = SPICE_PLAYBACK_CHANNEL(channel)->priv; > SpiceMsgPlaybackStart *start = spice_msg_in_parsed(in); > + SpiceSession *session = spice_channel_get_session(channel); > + SpiceChannel *main_channel = spice_session_get_main_channel(session); > > CHANNEL_DEBUG(channel, "%s: fmt %d channels %d freq %d time %d", > __FUNCTION__, > start->format, start->channels, start->frequency, > start->time); > @@ -382,6 +385,7 @@ static void playback_handle_start(SpiceChannel *channel, > SpiceMsgIn *in) > } > g_coroutine_signal_emit(channel, signals[SPICE_PLAYBACK_START], 0, > start->format, start->channels, > start->frequency); > + agent_sync_audio_playback(main_channel); > } > > /* coroutine context */ > diff --git a/gtk/channel-record.c b/gtk/channel-record.c > index ac71999..efd9526 100644 > --- a/gtk/channel-record.c > +++ b/gtk/channel-record.c > @@ -23,6 +23,7 @@ > > #include "spice-marshal.h" > #include "spice-session-priv.h" > +#include "spice-audio-priv.h" > > #include "common/snd_codec.h" > > @@ -397,6 +398,8 @@ static void record_handle_start(SpiceChannel *channel, > SpiceMsgIn *in) > { > SpiceRecordChannelPrivate *c = SPICE_RECORD_CHANNEL(channel)->priv; > SpiceMsgRecordStart *start = spice_msg_in_parsed(in); > + SpiceSession *session = spice_channel_get_session(channel); > + SpiceChannel *main_channel = spice_session_get_main_channel(session); > int frame_size = SND_CODEC_MAX_FRAME_SIZE; > > c->mode = spice_record_desired_mode(channel, start->frequency); > @@ -423,6 +426,7 @@ static void record_handle_start(SpiceChannel *channel, > SpiceMsgIn *in) > > g_coroutine_signal_emit(channel, signals[SPICE_RECORD_START], 0, > start->format, start->channels, > start->frequency); > + agent_sync_audio_record(main_channel); > } > > /* coroutine context */ > -- > 2.1.0 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/spice-devel > _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel