/* WirePlumber * * Copyright © 2019 Collabora Ltd. * @author George Kiagiadakis * * SPDX-License-Identifier: MIT */ #ifndef __WIREPLUMBER_OBJECT_MANAGER_H__ #define __WIREPLUMBER_OBJECT_MANAGER_H__ #include #include "proxy.h" G_BEGIN_DECLS /** * WpObjectManagerConstraintType: * @WP_OBJECT_MANAGER_CONSTRAINT_PW_GLOBAL_PROPERTY: constraint applies * to a PipeWire global property of an object (the ones returned by * wp_proxy_get_global_properties()) * @WP_OBJECT_MANAGER_CONSTRAINT_PW_PROPERTY: constraint applies * to a PipeWire property of the object (the ones returned by * wp_proxy_get_properties()) * @WP_OBJECT_MANAGER_CONSTRAINT_G_PROPERTY: constraint applies to a #GObject * property of the managed object */ typedef enum { WP_OBJECT_MANAGER_CONSTRAINT_PW_GLOBAL_PROPERTY, WP_OBJECT_MANAGER_CONSTRAINT_PW_PROPERTY, WP_OBJECT_MANAGER_CONSTRAINT_G_PROPERTY, } WpObjectManagerConstraintType; /** * WP_TYPE_OBJECT_MANAGER: * * The #WpObjectManager #GType */ #define WP_TYPE_OBJECT_MANAGER (wp_object_manager_get_type ()) WP_API G_DECLARE_FINAL_TYPE (WpObjectManager, wp_object_manager, WP, OBJECT_MANAGER, GObject) WP_API WpObjectManager * wp_object_manager_new (void); WP_API void wp_object_manager_add_interest (WpObjectManager *self, GType gtype, GVariant * constraints, WpProxyFeatures wanted_features); WP_API GPtrArray * wp_object_manager_get_objects (WpObjectManager *self, GType type_filter); G_END_DECLS #endif