diff options
Diffstat (limited to 'src/backends/meta-remote-access-controller.c')
-rw-r--r-- | src/backends/meta-remote-access-controller.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/backends/meta-remote-access-controller.c b/src/backends/meta-remote-access-controller.c index e9b2a70f6..71b7f1f7b 100644 --- a/src/backends/meta-remote-access-controller.c +++ b/src/backends/meta-remote-access-controller.c @@ -22,6 +22,9 @@ #include "backends/meta-remote-access-controller-private.h" +#include "backends/meta-remote-desktop.h" +#include "backends/meta-screen-cast.h" + enum { HANDLE_STOPPED, @@ -54,6 +57,9 @@ G_DEFINE_TYPE_WITH_PRIVATE (MetaRemoteAccessHandle, struct _MetaRemoteAccessController { GObject parent; + + MetaRemoteDesktop *remote_desktop; + MetaScreenCast *screen_cast; }; G_DEFINE_TYPE (MetaRemoteAccessController, @@ -122,6 +128,49 @@ meta_remote_access_controller_notify_new_handle (MetaRemoteAccessController *con handle); } +/** + * meta_remote_access_controller_inhibit_remote_access: + * @controller: a #MetaRemoteAccessController + * + * Inhibits remote access sessions from being created and running. Any active + * remote access session will be terminated. + */ +void +meta_remote_access_controller_inhibit_remote_access (MetaRemoteAccessController *controller) +{ + meta_remote_desktop_inhibit (controller->remote_desktop); + meta_screen_cast_inhibit (controller->screen_cast); +} + +/** + * meta_remote_access_controller_uninhibit_remote_access: + * @controller: a #MetaRemoteAccessController + * + * Uninhibits remote access sessions from being created and running. If this was + * the last inhibitation that was inhibited, new remote access sessions can now + * be created. + */ +void +meta_remote_access_controller_uninhibit_remote_access (MetaRemoteAccessController *controller) +{ + meta_screen_cast_uninhibit (controller->screen_cast); + meta_remote_desktop_uninhibit (controller->remote_desktop); +} + +MetaRemoteAccessController * +meta_remote_access_controller_new (MetaRemoteDesktop *remote_desktop, + MetaScreenCast *screen_cast) +{ + MetaRemoteAccessController *remote_access_controller; + + remote_access_controller = g_object_new (META_TYPE_REMOTE_ACCESS_CONTROLLER, + NULL); + remote_access_controller->remote_desktop = remote_desktop; + remote_access_controller->screen_cast = screen_cast; + + return remote_access_controller; +} + static void meta_remote_access_handle_init (MetaRemoteAccessHandle *handle) { |