[xdg-desktop-portal-gnome/gbsneto/screencast-cleanup: 4/6] screencast: More code shuffling and cleanups




commit 367f05b980ab780ae3b3380164f2135ce4f487fa
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Wed Nov 10 16:04:59 2021 -0300

    screencast: More code shuffling and cleanups
    
    No funcional changes.

 src/screencast.c | 350 ++++++++++++++++++++++++++-----------------------------
 1 file changed, 168 insertions(+), 182 deletions(-)
---
diff --git a/src/screencast.c b/src/screencast.c
index 98390ab..4ba67aa 100644
--- a/src/screencast.c
+++ b/src/screencast.c
@@ -82,10 +82,6 @@ start_session (ScreenCastSession *session,
                GVariant *selections,
                GError **error);
 
-static void
-cancel_start_session (ScreenCastSession *session,
-                      int response);
-
 static gboolean
 is_screen_cast_session (Session *session)
 {
@@ -108,10 +104,23 @@ screen_cast_dialog_handle_close (ScreenCastDialogHandle *dialog_handle)
   screen_cast_dialog_handle_free (dialog_handle);
 }
 
+static void
+cancel_start_session (ScreenCastSession *screen_cast_session,
+                      int response)
+{
+  GVariantBuilder results_builder;
+
+  g_variant_builder_init (&results_builder, G_VARIANT_TYPE_VARDICT);
+  xdp_impl_screen_cast_complete_start (XDP_IMPL_SCREEN_CAST (impl),
+                                       screen_cast_session->start_invocation,
+                                       response,
+                                       g_variant_builder_end (&results_builder));
+}
+
 static gboolean
-handle_close (XdpImplRequest *object,
-              GDBusMethodInvocation *invocation,
-              ScreenCastDialogHandle *dialog_handle)
+on_request_handle_close_cb (XdpImplRequest         *object,
+                            GDBusMethodInvocation  *invocation,
+                            ScreenCastDialogHandle *dialog_handle)
 {
   cancel_start_session (dialog_handle->session, 2);
 
@@ -121,10 +130,10 @@ handle_close (XdpImplRequest *object,
 }
 
 static void
-screen_cast_dialog_done (GtkWidget *widget,
-                         int dialog_response,
-                         GVariant *selections,
-                         ScreenCastDialogHandle *dialog_handle)
+on_screen_cast_dialog_done_cb (GtkWidget              *widget,
+                               int                     dialog_response,
+                               GVariant               *selections,
+                               ScreenCastDialogHandle *dialog_handle)
 {
   int response;
 
@@ -165,10 +174,10 @@ screen_cast_dialog_done (GtkWidget *widget,
 }
 
 static ScreenCastDialogHandle *
-create_screen_cast_dialog (ScreenCastSession *session,
+create_screen_cast_dialog (ScreenCastSession     *session,
                            GDBusMethodInvocation *invocation,
-                           Request *request,
-                           const char *parent_window)
+                           Request               *request,
+                           const char            *parent_window)
 {
   ScreenCastDialogHandle *dialog_handle;
   ExternalWindow *external_parent;
@@ -210,10 +219,9 @@ create_screen_cast_dialog (ScreenCastSession *session,
   dialog_handle->dialog = dialog;
 
   g_signal_connect (request, "handle-close",
-                    G_CALLBACK (handle_close), dialog_handle);
-
+                    G_CALLBACK (on_request_handle_close_cb), dialog_handle);
   g_signal_connect (dialog, "done",
-                    G_CALLBACK (screen_cast_dialog_done), dialog_handle);
+                    G_CALLBACK (on_screen_cast_dialog_done_cb), dialog_handle);
 
   gtk_widget_realize (dialog);
 
@@ -226,145 +234,6 @@ create_screen_cast_dialog (ScreenCastSession *session,
   return dialog_handle;
 }
 
-static ScreenCastSession *
-screen_cast_session_new (const char *app_id,
-                         const char *session_handle)
-{
-  ScreenCastSession *screen_cast_session;
-
-  screen_cast_session = g_object_new (screen_cast_session_get_type (),
-                                      "id", session_handle,
-                                      NULL);
-
-  return screen_cast_session;
-}
-
-static gboolean
-handle_create_session (XdpImplScreenCast *object,
-                       GDBusMethodInvocation *invocation,
-                       const char *arg_handle,
-                       const char *arg_session_handle,
-                       const char *arg_app_id,
-                       GVariant *arg_options)
-{
-  g_autoptr(GError) error = NULL;
-  int response;
-  Session *session;
-  GVariantBuilder results_builder;
-
-  session = (Session *)screen_cast_session_new (arg_app_id,
-                                                arg_session_handle);
-
-  if (!session_export (session,
-                       g_dbus_method_invocation_get_connection (invocation),
-                       &error))
-    {
-      g_clear_object (&session);
-      g_warning ("Failed to create screen cast session: %s", error->message);
-      response = 2;
-      goto out;
-    }
-
-  response = 0;
-
-out:
-  g_variant_builder_init (&results_builder, G_VARIANT_TYPE_VARDICT);
-  xdp_impl_screen_cast_complete_create_session (object,
-                                                invocation,
-                                                response,
-                                                g_variant_builder_end (&results_builder));
-
-  return TRUE;
-}
-
-static gboolean
-handle_select_sources (XdpImplScreenCast *object,
-                       GDBusMethodInvocation *invocation,
-                       const char *arg_handle,
-                       const char *arg_session_handle,
-                       const char *arg_app_id,
-                       GVariant *arg_options)
-{
-  Session *session;
-  int response;
-  uint32_t types;
-  gboolean multiple;
-  ScreenCastCursorMode cursor_mode;
-  ScreenCastSelection select;
-  GVariantBuilder results_builder;
-  GVariant *results;
-
-  session = lookup_session (arg_session_handle);
-  if (!session)
-    {
-      g_warning ("Tried to select sources on non-existing %s", arg_session_handle);
-      response = 2;
-      goto out;
-    }
-
-  if (!g_variant_lookup (arg_options, "multiple", "b", &multiple))
-    multiple = FALSE;
-
-  if (!g_variant_lookup (arg_options, "types", "u", &types))
-    types = SCREEN_CAST_SOURCE_TYPE_MONITOR;
-
-  if (!(types & (SCREEN_CAST_SOURCE_TYPE_MONITOR |
-                 SCREEN_CAST_SOURCE_TYPE_WINDOW)))
-    {
-      g_warning ("Unknown screen cast source type");
-      response = 2;
-      goto out;
-    }
-
-  if (!g_variant_lookup (arg_options, "cursor_mode", "u", &cursor_mode))
-    cursor_mode = SCREEN_CAST_CURSOR_MODE_HIDDEN;
-
-  switch (cursor_mode)
-    {
-    case SCREEN_CAST_CURSOR_MODE_HIDDEN:
-    case SCREEN_CAST_CURSOR_MODE_EMBEDDED:
-    case SCREEN_CAST_CURSOR_MODE_METADATA:
-      break;
-    default:
-      g_warning ("Unknown screen cast cursor mode");
-      response = 2;
-      goto out;
-    }
-
-  select.multiple = multiple;
-  select.source_types = types;
-  select.cursor_mode = cursor_mode;
-
-  if (is_screen_cast_session (session))
-    {
-      ScreenCastSession *screen_cast_session = (ScreenCastSession *)session;
-
-      screen_cast_session->select = select;
-      response = 0;
-    }
-  else if (is_remote_desktop_session (session))
-    {
-      RemoteDesktopSession *remote_desktop_session =
-        (RemoteDesktopSession *)session;
-
-      remote_desktop_session_sources_selected (remote_desktop_session, &select);
-      response = 0;
-    }
-  else
-    {
-      g_warning ("Tried to select sources on invalid session type");
-      response = 2;
-    }
-
-out:
-  g_variant_builder_init (&results_builder, G_VARIANT_TYPE_VARDICT);
-  results = g_variant_builder_end (&results_builder);
-  xdp_impl_screen_cast_complete_select_sources (object, invocation,
-                                                response, results);
-
-  return TRUE;
-}
-
 static void
 start_done (ScreenCastSession *screen_cast_session)
 {
@@ -391,14 +260,14 @@ start_done (ScreenCastSession *screen_cast_session)
 
 static void
 on_gnome_screen_cast_session_ready (GnomeScreenCastSession *gnome_screen_cast_session,
-                                    ScreenCastSession *screen_cast_session)
+                                    ScreenCastSession      *screen_cast_session)
 {
   start_done (screen_cast_session);
 }
 
 static void
 on_gnome_screen_cast_session_closed (GnomeScreenCastSession *gnome_screen_cast_session,
-                                     ScreenCastSession *screen_cast_session)
+                                     ScreenCastSession      *screen_cast_session)
 {
   session_close ((Session *)screen_cast_session);
 }
@@ -441,27 +310,14 @@ start_session (ScreenCastSession *screen_cast_session,
   return TRUE;
 }
 
-static void
-cancel_start_session (ScreenCastSession *screen_cast_session,
-                      int response)
-{
-  GVariantBuilder results_builder;
-
-  g_variant_builder_init (&results_builder, G_VARIANT_TYPE_VARDICT);
-  xdp_impl_screen_cast_complete_start (XDP_IMPL_SCREEN_CAST (impl),
-                                       screen_cast_session->start_invocation,
-                                       response,
-                                       g_variant_builder_end (&results_builder));
-}
-
 static gboolean
-handle_start (XdpImplScreenCast *object,
+handle_start (XdpImplScreenCast     *object,
               GDBusMethodInvocation *invocation,
-              const char *arg_handle,
-              const char *arg_session_handle,
-              const char *arg_app_id,
-              const char *arg_parent_window,
-              GVariant *arg_options)
+              const char            *arg_handle,
+              const char            *arg_session_handle,
+              const char            *arg_app_id,
+              const char            *arg_parent_window,
+              GVariant              *arg_options)
 {
   const char *sender;
   g_autoptr(Request) request = NULL;
@@ -507,6 +363,133 @@ err:
   return TRUE;
 }
 
+static gboolean
+handle_select_sources (XdpImplScreenCast     *object,
+                       GDBusMethodInvocation *invocation,
+                       const char            *arg_handle,
+                       const char            *arg_session_handle,
+                       const char            *arg_app_id,
+                       GVariant              *arg_options)
+{
+  Session *session;
+  int response;
+  uint32_t types;
+  gboolean multiple;
+  ScreenCastCursorMode cursor_mode;
+  ScreenCastSelection select;
+  GVariantBuilder results_builder;
+  GVariant *results;
+
+  session = lookup_session (arg_session_handle);
+  if (!session)
+    {
+      g_warning ("Tried to select sources on non-existing %s", arg_session_handle);
+      response = 2;
+      goto out;
+    }
+
+  if (!g_variant_lookup (arg_options, "multiple", "b", &multiple))
+    multiple = FALSE;
+
+  if (!g_variant_lookup (arg_options, "types", "u", &types))
+    types = SCREEN_CAST_SOURCE_TYPE_MONITOR;
+
+  if (!(types & (SCREEN_CAST_SOURCE_TYPE_MONITOR |
+                 SCREEN_CAST_SOURCE_TYPE_WINDOW)))
+    {
+      g_warning ("Unknown screen cast source type");
+      response = 2;
+      goto out;
+    }
+
+  if (!g_variant_lookup (arg_options, "cursor_mode", "u", &cursor_mode))
+    cursor_mode = SCREEN_CAST_CURSOR_MODE_HIDDEN;
+
+  switch (cursor_mode)
+    {
+    case SCREEN_CAST_CURSOR_MODE_HIDDEN:
+    case SCREEN_CAST_CURSOR_MODE_EMBEDDED:
+    case SCREEN_CAST_CURSOR_MODE_METADATA:
+      break;
+    default:
+      g_warning ("Unknown screen cast cursor mode");
+      response = 2;
+      goto out;
+    }
+
+  select.multiple = multiple;
+  select.source_types = types;
+  select.cursor_mode = cursor_mode;
+
+  if (is_screen_cast_session (session))
+    {
+      ScreenCastSession *screen_cast_session = (ScreenCastSession *)session;
+
+      screen_cast_session->select = select;
+      response = 0;
+    }
+  else if (is_remote_desktop_session (session))
+    {
+      RemoteDesktopSession *remote_desktop_session =
+        (RemoteDesktopSession *)session;
+
+      remote_desktop_session_sources_selected (remote_desktop_session, &select);
+      response = 0;
+    }
+  else
+    {
+      g_warning ("Tried to select sources on invalid session type");
+      response = 2;
+    }
+
+out:
+  g_variant_builder_init (&results_builder, G_VARIANT_TYPE_VARDICT);
+  results = g_variant_builder_end (&results_builder);
+  xdp_impl_screen_cast_complete_select_sources (object, invocation,
+                                                response, results);
+
+  return TRUE;
+}
+
+static gboolean
+handle_create_session (XdpImplScreenCast     *object,
+                       GDBusMethodInvocation *invocation,
+                       const char            *arg_handle,
+                       const char            *arg_session_handle,
+                       const char            *arg_app_id,
+                       GVariant              *arg_options)
+{
+  g_autoptr(GError) error = NULL;
+  int response;
+  Session *session;
+  GVariantBuilder results_builder;
+
+  session = g_object_new (screen_cast_session_get_type (),
+                          "id", arg_session_handle,
+                          NULL);
+
+  if (!session_export (session,
+                       g_dbus_method_invocation_get_connection (invocation),
+                       &error))
+    {
+      g_clear_object (&session);
+      g_warning ("Failed to create screen cast session: %s", error->message);
+      response = 2;
+      goto out;
+    }
+
+  response = 0;
+
+out:
+  g_variant_builder_init (&results_builder, G_VARIANT_TYPE_VARDICT);
+  xdp_impl_screen_cast_complete_create_session (object,
+                                                invocation,
+                                                response,
+                                                g_variant_builder_end (&results_builder));
+
+  return TRUE;
+}
+
 static void
 on_gnome_screen_cast_enabled (GnomeScreenCast *gnome_screen_cast)
 {
@@ -535,9 +518,12 @@ on_gnome_screen_cast_enabled (GnomeScreenCast *gnome_screen_cast)
 
   available_cursor_modes = SCREEN_CAST_CURSOR_MODE_NONE;
   if (gnome_api_version >= 2)
-    available_cursor_modes |= (SCREEN_CAST_CURSOR_MODE_HIDDEN |
-                               SCREEN_CAST_CURSOR_MODE_EMBEDDED |
-                               SCREEN_CAST_CURSOR_MODE_METADATA);
+    {
+      available_cursor_modes |= SCREEN_CAST_CURSOR_MODE_HIDDEN |
+                                SCREEN_CAST_CURSOR_MODE_EMBEDDED |
+                                SCREEN_CAST_CURSOR_MODE_METADATA;
+    }
+
   g_object_set (G_OBJECT (impl),
                 "available-cursor-modes", available_cursor_modes,
                 NULL);
@@ -620,8 +606,8 @@ screen_cast_session_class_init (ScreenCastSessionClass *klass)
 }
 
 gboolean
-screen_cast_init (GDBusConnection *connection,
-                  GError **error)
+screen_cast_init (GDBusConnection  *connection,
+                  GError          **error)
 {
   impl_connection = connection;
   gnome_screen_cast = gnome_screen_cast_new (connection);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]