From 7b20baa6715f00fa8ee8373b9c63dc48e51a0615 Mon Sep 17 00:00:00 2001
From: George Kiagiadakis <george.kiagiadakis@collabora.com>
Date: Thu, 19 Mar 2020 18:20:25 +0200
Subject: [PATCH] modules: drop module-session

---
 modules/meson.build      |  11 ---
 modules/module-session.c | 147 ---------------------------------------
 2 files changed, 158 deletions(-)
 delete mode 100644 modules/module-session.c

diff --git a/modules/meson.build b/modules/meson.build
index 2fc7f890..3fe9c1cd 100644
--- a/modules/meson.build
+++ b/modules/meson.build
@@ -103,17 +103,6 @@ shared_library(
   dependencies : [wp_dep, wptoml_dep, pipewire_dep],
 )
 
-shared_library(
-  'wireplumber-module-session',
-  [
-    'module-session.c',
-  ],
-  c_args : [common_c_args, '-DG_LOG_DOMAIN="m-session"'],
-  install : true,
-  install_dir : wireplumber_module_dir,
-  dependencies : [wp_dep, pipewire_dep],
-)
-
 shared_library(
   'wireplumber-module-si-adapter',
   [
diff --git a/modules/module-session.c b/modules/module-session.c
deleted file mode 100644
index 064cc3c3..00000000
--- a/modules/module-session.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/* WirePlumber
- *
- * Copyright © 2019 Collabora Ltd.
- *    @author George Kiagiadakis <george.kiagiadakis@collabora.com>
- *
- * SPDX-License-Identifier: MIT
- */
-
-#include <wp/wp.h>
-#include <pipewire/pipewire.h>
-#include <pipewire/extensions/session-manager.h>
-
-struct module_data
-{
-  WpImplSession *session;
-  WpObjectManager *om;
-};
-
-static void
-select_new_default_ep (struct module_data * data, WpDefaultEndpointType type,
-    const gchar * media_class, guint32 blacklist_id)
-{
-  g_autoptr (GPtrArray) arr = wp_object_manager_get_objects (data->om, 0);
-  guint32 max_priority = 0;
-  guint32 best_id = 0, def_id;
-
-  for (guint i = 0; i < arr->len; i++) {
-    WpEndpoint *ep = g_ptr_array_index (arr, i);
-    guint32 id = wp_proxy_get_bound_id (WP_PROXY (ep));
-    guint32 priority = 0;
-    const gchar *priority_str;
-
-    /* skip blacklisted */
-    if (id == blacklist_id)
-      continue;
-
-    /* skip if the endpoint is of another type */
-    if (g_strcmp0 (media_class, wp_endpoint_get_media_class (ep)) != 0)
-      continue;
-
-    g_autoptr (WpProperties) properties = wp_proxy_get_properties (WP_PROXY (ep));
-
-    priority_str = wp_properties_get (properties, "endpoint.priority");
-    if (priority_str)
-      priority = atoi (priority_str);
-
-    if (priority >= max_priority) {
-      best_id = id;
-      max_priority = priority;
-    }
-  }
-
-  def_id = wp_session_get_default_endpoint (WP_SESSION (data->session), type);
-  if (def_id != best_id) {
-    g_autofree gchar *type_str =
-        g_enum_to_string (WP_TYPE_DEFAULT_ENDPOINT_TYPE, type);
-    g_debug ("selecting default endpoint for %s, old:%u, new:%u (priority %u)",
-        type_str, def_id, best_id, max_priority);
-    wp_session_set_default_endpoint (WP_SESSION (data->session), type, best_id);
-  }
-}
-
-static void
-on_endpoint_added (WpObjectManager * om, WpEndpoint * ep,
-    struct module_data * data)
-{
-  WpDefaultEndpointType type;
-  const gchar *media_class;
-
-  media_class = wp_endpoint_get_media_class (ep);
-  if (g_strcmp0 (media_class, "Audio/Source") == 0)
-    type = WP_DEFAULT_ENDPOINT_TYPE_AUDIO_SOURCE;
-  else if (g_strcmp0 (media_class, "Audio/Sink") == 0)
-    type = WP_DEFAULT_ENDPOINT_TYPE_AUDIO_SINK;
-  else if (g_strcmp0 (media_class, "Video/Source") == 0)
-    type = WP_DEFAULT_ENDPOINT_TYPE_VIDEO_SOURCE;
-  else
-    return;
-
-  select_new_default_ep (data, type, media_class, 0);
-}
-
-static void
-on_endpoint_removed (WpObjectManager * om, WpEndpoint * ep,
-    struct module_data * data)
-{
-  guint32 ep_id, def_id;
-  WpDefaultEndpointType type;
-  const gchar *media_class;
-
-  media_class = wp_endpoint_get_media_class (ep);
-  if (g_strcmp0 (media_class, "Audio/Source") == 0)
-    type = WP_DEFAULT_ENDPOINT_TYPE_AUDIO_SOURCE;
-  else if (g_strcmp0 (media_class, "Audio/Sink") == 0)
-    type = WP_DEFAULT_ENDPOINT_TYPE_AUDIO_SINK;
-  else if (g_strcmp0 (media_class, "Video/Source") == 0)
-    type = WP_DEFAULT_ENDPOINT_TYPE_VIDEO_SOURCE;
-  else
-    return;
-
-  ep_id = wp_proxy_get_bound_id (WP_PROXY (ep));
-  def_id = wp_session_get_default_endpoint (WP_SESSION (data->session), type);
-
-  if (ep_id == def_id)
-    select_new_default_ep (data, type, media_class, ep_id);
-}
-
-static void
-export_session (WpImplSession * session)
-{
-  wp_proxy_augment (WP_PROXY (session),
-      WP_PROXY_FEATURE_BOUND, NULL, NULL, NULL);
-}
-
-static void
-module_destroy (gpointer d)
-{
-  struct module_data *data = d;
-
-  g_clear_object (&data->om);
-  g_clear_object (&data->session);
-
-  g_slice_free (struct module_data, data);
-}
-
-WP_PLUGIN_EXPORT void
-wireplumber__module_init (WpModule * module, WpCore * core, GVariant * args)
-{
-  struct module_data *data = g_slice_new0 (struct module_data);
-  wp_module_set_destroy_callback (module, module_destroy, data);
-
-  data->session = wp_impl_session_new (core);
-  wp_impl_session_set_property (data->session,
-      PW_KEY_SESSION_ID, "wireplumber");
-  g_signal_connect_object (core, "connected", (GCallback) export_session,
-      data->session, G_CONNECT_SWAPPED);
-
-  data->om = wp_object_manager_new ();
-  g_signal_connect (data->om, "object-added",
-      (GCallback) on_endpoint_added, data);
-  g_signal_connect (data->om, "object-removed",
-      (GCallback) on_endpoint_removed, data);
-  wp_object_manager_add_interest (data->om,
-      WP_TYPE_IMPL_ENDPOINT, NULL,
-      WP_PROXY_FEATURES_STANDARD | WP_ENDPOINT_FEATURE_CONTROLS);
-  wp_core_install_object_manager (core, data->om);
-}
-- 
GitLab