[Spice-devel] [spice-gtk PATCH v2 7/7] channel: playback and record sync volume/mute
Marc-André Lureau
mlureau at redhat.com
Mon Mar 23 06:47:07 PDT 2015
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 at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
>
More information about the Spice-devel
mailing list