--- gtk/channel-playback-priv.h | 1 + gtk/channel-playback.c | 9 +++++++++ gtk/spice-session-priv.h | 1 + gtk/spice-session.c | 15 +++++++++++++++ 4 files changed, 26 insertions(+) diff --git a/gtk/channel-playback-priv.h b/gtk/channel-playback-priv.h index dc89e2d..aa33d2c 100644 --- a/gtk/channel-playback-priv.h +++ b/gtk/channel-playback-priv.h @@ -20,4 +20,5 @@ gboolean spice_playback_channel_is_active(SpicePlaybackChannel *channel); guint32 spice_playback_channel_get_latency(SpicePlaybackChannel *channel); +void spice_playback_channel_sync_latency(SpicePlaybackChannel *channel); #endif diff --git a/gtk/channel-playback.c b/gtk/channel-playback.c index 1c41940..14d70b5 100644 --- a/gtk/channel-playback.c +++ b/gtk/channel-playback.c @@ -570,3 +570,12 @@ guint32 spice_playback_channel_get_latency(SpicePlaybackChannel *channel) } return channel->priv->latency; } + +G_GNUC_INTERNAL +void spice_playback_channel_sync_latency(SpicePlaybackChannel *channel) +{ + g_return_if_fail(SPICE_IS_PLAYBACK_CHANNEL(channel)); + g_return_if_fail(channel->priv->is_active); + SPICE_DEBUG("%s: notify latency update %u", __FUNCTION__, channel->priv->min_latency); + g_object_notify_main_context(G_OBJECT(SPICE_CHANNEL(channel)), "min-latency"); +} diff --git a/gtk/spice-session-priv.h b/gtk/spice-session-priv.h index 4cf5fe9..e12ae2d 100644 --- a/gtk/spice-session-priv.h +++ b/gtk/spice-session-priv.h @@ -157,6 +157,7 @@ void spice_session_set_uuid(SpiceSession *session, guint8 uuid[16]); void spice_session_set_name(SpiceSession *session, const gchar *name); gboolean spice_session_is_playback_active(SpiceSession *session); guint32 spice_session_get_playback_latency(SpiceSession *session); +void spice_session_sync_playback_latency(SpiceSession *session); G_END_DECLS diff --git a/gtk/spice-session.c b/gtk/spice-session.c index 25cd6e4..0d46730 100644 --- a/gtk/spice-session.c +++ b/gtk/spice-session.c @@ -2067,6 +2067,21 @@ void spice_session_set_name(SpiceSession *session, const gchar *name) } G_GNUC_INTERNAL +void spice_session_sync_playback_latency(SpiceSession *session) +{ + SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session); + + g_return_if_fail(s != NULL); + + if (s->playback_channel && + spice_playback_channel_is_active(s->playback_channel)) { + spice_playback_channel_sync_latency(s->playback_channel); + } else { + SPICE_DEBUG("%s: not implemented when there isn't audio playback", __FUNCTION__); + } +} + +G_GNUC_INTERNAL gboolean spice_session_is_playback_active(SpiceSession *session) { SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session); -- 1.8.1 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel