mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-06 13:30:01 -05:00
misc hacking
Add introspect API Move private things to private.h Use custom main-context for the context, and ensure everything is called from the custom main-context. does not work well with glib proxy signals yet. Work with custom mainloop in the gstreamer element.
This commit is contained in:
parent
592e99a317
commit
c185755b3f
16 changed files with 489 additions and 157 deletions
|
|
@ -91,6 +91,8 @@ on_sender_subscription_event (PvSubscribe *sender_subscribe,
|
|||
SenderData *data = user_data;
|
||||
PvSubscribe *subscribe = data->subscribe;
|
||||
|
||||
g_print ("on sender subscription def: %p\n", g_main_context_get_thread_default ());
|
||||
|
||||
g_signal_emit (subscribe,
|
||||
signals[SIGNAL_SUBSCRIPTION_EVENT],
|
||||
0,
|
||||
|
|
@ -145,6 +147,11 @@ client_name_appeared_handler (GDBusConnection *connection,
|
|||
{
|
||||
SenderData *data = user_data;
|
||||
|
||||
g_print ("client name appeared def: %p\n", g_main_context_get_thread_default ());
|
||||
|
||||
if (!g_strcmp0 (name, g_dbus_connection_get_unique_name (connection)))
|
||||
return;
|
||||
|
||||
g_print ("appeared client %s %p\n", name, data);
|
||||
/* subscribe to Source events. We want to be notified when this new
|
||||
* sender add/change/remove sources and outputs */
|
||||
|
|
@ -215,6 +222,7 @@ sender_data_new (PvSubscribe *subscribe, const gchar *sender)
|
|||
data->subscribe = subscribe;
|
||||
data->sender = g_strdup (sender);
|
||||
|
||||
g_print ("watch name def: %p\n", g_main_context_get_thread_default ());
|
||||
g_print ("watch name %s %p\n", sender, data);
|
||||
|
||||
data->id = g_bus_watch_name_on_connection (priv->connection,
|
||||
|
|
@ -239,6 +247,9 @@ notify_subscription (PvSubscribe *subscribe,
|
|||
{
|
||||
PvSubscribePrivate *priv = subscribe->priv;
|
||||
|
||||
g_print ("notify subscription def: %p\n", g_main_context_get_thread_default ());
|
||||
//g_assert (g_main_context_get_thread_default ());
|
||||
|
||||
if (priv->subscription_mask & PV_SUBSCRIPTION_FLAGS_DAEMON) {
|
||||
PvDaemon1 *daemon;
|
||||
|
||||
|
|
@ -384,6 +395,8 @@ client_manager_appeared (PvSubscribe *subscribe)
|
|||
PvSubscribePrivate *priv = subscribe->priv;
|
||||
GList *objects, *walk;
|
||||
|
||||
g_print ("client manager appeared def: %p\n", g_main_context_get_thread_default ());
|
||||
|
||||
objects = g_dbus_object_manager_get_objects (G_DBUS_OBJECT_MANAGER (priv->client_manager));
|
||||
for (walk = objects; walk ; walk = g_list_next (walk)) {
|
||||
on_client_manager_object_added (G_DBUS_OBJECT_MANAGER (priv->client_manager),
|
||||
|
|
@ -408,6 +421,8 @@ on_client_manager_name_owner (GObject *object,
|
|||
PvSubscribePrivate *priv = subscribe->priv;
|
||||
gchar *name_owner;
|
||||
|
||||
g_print ("client manager owner def: %p\n", g_main_context_get_thread_default ());
|
||||
|
||||
g_object_get (priv->client_manager, "name-owner", &name_owner, NULL);
|
||||
g_print ("client manager %s %s\n",
|
||||
g_dbus_object_manager_client_get_name (G_DBUS_OBJECT_MANAGER_CLIENT (priv->client_manager)),
|
||||
|
|
@ -427,6 +442,8 @@ connect_client_signals (PvSubscribe *subscribe)
|
|||
{
|
||||
PvSubscribePrivate *priv = subscribe->priv;
|
||||
|
||||
g_print ("add signals def: %p\n", g_main_context_get_thread_default ());
|
||||
|
||||
g_signal_connect (priv->client_manager, "notify::name-owner",
|
||||
(GCallback) on_client_manager_name_owner, subscribe);
|
||||
g_signal_connect (priv->client_manager, "interface-added",
|
||||
|
|
@ -452,6 +469,8 @@ on_client_manager_ready (GObject *source_object,
|
|||
PvSubscribePrivate *priv = subscribe->priv;
|
||||
GError *error = NULL;
|
||||
|
||||
g_print ("client manager ready def: %p\n", g_main_context_get_thread_default ());
|
||||
|
||||
priv->client_manager = pv_object_manager_client_new_finish (res, &error);
|
||||
if (priv->client_manager == NULL)
|
||||
goto manager_error;
|
||||
|
|
@ -481,6 +500,8 @@ install_subscription (PvSubscribe *subscribe)
|
|||
|
||||
subscription_set_state (subscribe, PV_SUBSCRIPTION_STATE_CONNECTING);
|
||||
|
||||
g_print ("new client manager def: %p\n", g_main_context_get_thread_default ());
|
||||
|
||||
g_print ("new client manager for %s\n", priv->service);
|
||||
pv_object_manager_client_new (priv->connection,
|
||||
G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue