diff --git a/modules/module-si-adapter.c b/modules/module-si-adapter.c index 8cbf1ff4b986835c93cd0bd34c311713c4b9efe8..e94f625abb34790ac39e0bb87276a5031f4fdbfd 100644 --- a/modules/module-si-adapter.c +++ b/modules/module-si-adapter.c @@ -79,31 +79,6 @@ si_adapter_reset (WpSessionItem * item) WP_SESSION_ITEM_CLASS (si_adapter_parent_class)->reset (item); } -static GVariant * -si_adapter_get_config_spec (WpSessionItem * item) -{ - GVariantBuilder b; - - g_variant_builder_init (&b, G_VARIANT_TYPE_VARDICT); - g_variant_builder_add (&b, "(ssymv)", "node", "t", - WP_SI_CONFIG_OPTION_WRITEABLE | WP_SI_CONFIG_OPTION_REQUIRED, NULL); - g_variant_builder_add (&b, "(ssymv)", "name", "s", - WP_SI_CONFIG_OPTION_WRITEABLE, NULL); - g_variant_builder_add (&b, "(ssymv)", "media-class", "s", - WP_SI_CONFIG_OPTION_WRITEABLE, NULL); - g_variant_builder_add (&b, "(ssymv)", "role", "s", - WP_SI_CONFIG_OPTION_WRITEABLE, NULL); - g_variant_builder_add (&b, "(ssymv)", "priority", "u", - WP_SI_CONFIG_OPTION_WRITEABLE, NULL); - g_variant_builder_add (&b, "(ssymv)", "enable-control-port", "b", - WP_SI_CONFIG_OPTION_WRITEABLE, NULL); - g_variant_builder_add (&b, "(ssymv)", "enable-monitor", "b", - WP_SI_CONFIG_OPTION_WRITEABLE, NULL); - g_variant_builder_add (&b, "(ssymv)", "direction", "y", 0, NULL); - g_variant_builder_add (&b, "(ssymv)", "channels", "u", 0, NULL); - return g_variant_builder_end (&b); -} - static GVariant * si_adapter_get_configuration (WpSessionItem * item) { @@ -378,7 +353,6 @@ si_adapter_class_init (WpSiAdapterClass * klass) object_class->finalize = si_adapter_finalize; - si_class->get_config_spec = si_adapter_get_config_spec; si_class->configure = si_adapter_configure; si_class->get_configuration = si_adapter_get_configuration; si_class->get_next_step = si_adapter_get_next_step; @@ -526,17 +500,29 @@ si_adapter_stream_init (WpSiStreamInterface * iface) iface->get_parent_endpoint = si_adapter_get_stream_parent_endpoint; } -static void -si_adapter_factory (WpFactory * factory, GType type, - GVariant * properties, GAsyncReadyCallback ready, gpointer user_data) -{ - WpSessionItem *item = g_object_new (si_adapter_get_type (), NULL); - wp_session_item_configure (item, properties); - //TODO: return -} - WP_PLUGIN_EXPORT void wireplumber__module_init (WpModule * module, WpCore * core, GVariant * args) { - wp_factory_new (core, "si-adapter", si_adapter_factory); + GVariantBuilder b; + + g_variant_builder_init (&b, G_VARIANT_TYPE_VARDICT); + g_variant_builder_add (&b, "(ssymv)", "node", "t", + WP_SI_CONFIG_OPTION_WRITEABLE | WP_SI_CONFIG_OPTION_REQUIRED, NULL); + g_variant_builder_add (&b, "(ssymv)", "name", "s", + WP_SI_CONFIG_OPTION_WRITEABLE, NULL); + g_variant_builder_add (&b, "(ssymv)", "media-class", "s", + WP_SI_CONFIG_OPTION_WRITEABLE, NULL); + g_variant_builder_add (&b, "(ssymv)", "role", "s", + WP_SI_CONFIG_OPTION_WRITEABLE, NULL); + g_variant_builder_add (&b, "(ssymv)", "priority", "u", + WP_SI_CONFIG_OPTION_WRITEABLE, NULL); + g_variant_builder_add (&b, "(ssymv)", "enable-control-port", "b", + WP_SI_CONFIG_OPTION_WRITEABLE, NULL); + g_variant_builder_add (&b, "(ssymv)", "enable-monitor", "b", + WP_SI_CONFIG_OPTION_WRITEABLE, NULL); + g_variant_builder_add (&b, "(ssymv)", "direction", "y", 0, NULL); + g_variant_builder_add (&b, "(ssymv)", "channels", "u", 0, NULL); + + wp_si_factory_register (core, wp_si_factory_new_simple ( + "si-adapter", si_adapter_get_type (), g_variant_builder_end (&b))); }