diff options
author | Jonas Ådahl <jadahl@gmail.com> | 2020-04-21 17:25:23 +0200 |
---|---|---|
committer | Jonas Ådahl <jadahl@gmail.com> | 2020-07-31 10:41:38 +0200 |
commit | 34579d71ccfaa432fd9069e1085f5ff4d7f18c8f (patch) | |
tree | 753dcd143876f16fc403a9130b80358fced307c7 /src/backends/meta-screen-cast-session.c | |
parent | 153357cd3634e8e5bae217f93c140e794ced1ad3 (diff) | |
download | mutter-34579d71ccfaa432fd9069e1085f5ff4d7f18c8f.tar.gz |
remote-access-handle: Add 'is-recording' property
Will be TRUE if it is a screen cast session where all streams have the
'is-recording' set to TRUE. For other screen casts or remote desktop
sessions, it'll be FALSE.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1377
Diffstat (limited to 'src/backends/meta-screen-cast-session.c')
-rw-r--r-- | src/backends/meta-screen-cast-session.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/backends/meta-screen-cast-session.c b/src/backends/meta-screen-cast-session.c index d89ef4690..10c37ee88 100644 --- a/src/backends/meta-screen-cast-session.c +++ b/src/backends/meta-screen-cast-session.c @@ -677,12 +677,37 @@ meta_screen_cast_session_class_init (MetaScreenCastSessionClass *klass) object_class->finalize = meta_screen_cast_session_finalize; } +static gboolean +meta_screen_cast_session_is_recording (MetaScreenCastSession *session) +{ + GList *l; + + if (!session->streams) + return FALSE; + + for (l = session->streams; l; l = l->next) + { + MetaScreenCastStream *stream = l->data; + MetaScreenCastFlag flags; + + flags = meta_screen_cast_stream_get_flags (stream); + if (!(flags & META_SCREEN_CAST_FLAG_IS_RECORDING)) + return FALSE; + } + + return TRUE; +} + static MetaScreenCastSessionHandle * meta_screen_cast_session_handle_new (MetaScreenCastSession *session) { MetaScreenCastSessionHandle *handle; + gboolean is_recording; - handle = g_object_new (META_TYPE_SCREEN_CAST_SESSION_HANDLE, NULL); + is_recording = meta_screen_cast_session_is_recording (session); + handle = g_object_new (META_TYPE_SCREEN_CAST_SESSION_HANDLE, + "is-recording", is_recording, + NULL); handle->session = session; return handle; |