[Spice-devel] [PATCH spice-server 2/2] fixup! sound: Don't mute recording when client reconnects
Frediano Ziglio
fziglio at redhat.com
Wed Jun 27 14:46:39 UTC 2018
Attempt to reduce diff size moving code back where it was.
Also reuse scc variable to reduce changes too.
---
server/sound.c | 56 +++++++++++++++++++++++++-------------------------
1 file changed, 28 insertions(+), 28 deletions(-)
diff --git a/server/sound.c b/server/sound.c
index cf8d504e..4b41f5fb 100644
--- a/server/sound.c
+++ b/server/sound.c
@@ -1244,6 +1244,33 @@ record_channel_client_finalize(GObject *object)
G_OBJECT_CLASS(record_channel_client_parent_class)->finalize(object);
}
+static gboolean record_channel_client_initable_init(GInitable *initable,
+ GCancellable *cancellable,
+ GError **error)
+{
+ gboolean success;
+ RecordChannelClient *record_client = RECORD_CHANNEL_CLIENT(initable);
+ RedChannel *red_channel = red_channel_client_get_channel(RED_CHANNEL_CLIENT(record_client));
+ SndChannel *channel = SND_CHANNEL(red_channel);
+ SndChannelClient *scc = SND_CHANNEL_CLIENT(record_client);
+
+ success = record_channel_client_parent_initable_iface->init(initable, cancellable, error);
+ if (!success) {
+ return FALSE;
+ }
+
+ if (channel->volume.volume_nchannels) {
+ snd_set_command(scc, SND_VOLUME_MUTE_MASK);
+ }
+
+ if (channel->active) {
+ record_channel_client_start(scc);
+ }
+ snd_send(scc);
+
+ return TRUE;
+}
+
static void snd_set_record_peer(RedChannel *red_channel, RedClient *client, RedStream *stream,
G_GNUC_UNUSED int migration,
RedChannelCapabilities *caps)
@@ -1476,7 +1503,7 @@ static gboolean playback_channel_client_initable_init(GInitable *initable,
if (channel->active) {
playback_channel_client_start(scc);
}
- snd_send(SND_CHANNEL_CLIENT(initable));
+ snd_send(scc);
return TRUE;
}
@@ -1515,33 +1542,6 @@ playback_channel_client_init(PlaybackChannelClient *playback)
snd_playback_alloc_frames(playback);
}
-static gboolean record_channel_client_initable_init(GInitable *initable,
- GCancellable *cancellable,
- GError **error)
-{
- gboolean success;
- RecordChannelClient *record_client = RECORD_CHANNEL_CLIENT(initable);
- RedChannel *red_channel = red_channel_client_get_channel(RED_CHANNEL_CLIENT(record_client));
- SndChannel *channel = SND_CHANNEL(red_channel);
- SndChannelClient *scc = SND_CHANNEL_CLIENT(record_client);
-
- success = record_channel_client_parent_initable_iface->init(initable, cancellable, error);
- if (!success) {
- return FALSE;
- }
-
- if (channel->volume.volume_nchannels) {
- snd_set_command(scc, SND_VOLUME_MUTE_MASK);
- }
-
- if (channel->active) {
- record_channel_client_start(scc);
- }
- snd_send(SND_CHANNEL_CLIENT(initable));
-
- return TRUE;
-}
-
static void record_channel_client_initable_interface_init(GInitableIface *iface)
{
record_channel_client_parent_initable_iface = g_type_interface_peek_parent(iface);
--
2.17.1
More information about the Spice-devel
mailing list