wireplumber/lib/wp/collection.h
Julian Bouzas c3ebd79f00 lib: Add new WpCollection API
This API allows grouping globals into collections. A collection is essentially
a metadata object with information about all the globals it collects. Grouping
globals into collections has the advantage of avoiding defining complex set of
properties to match the interested globals, and they are also a more generic way
to represent a set of globals that share something in common.
2026-01-29 08:27:21 -05:00

49 lines
1,008 B
C

/* WirePlumber
*
* Copyright © 2025 Collabora Ltd.
* @author Julian Bouzas <julian.bouzas@ollabora.com>
*
* SPDX-License-Identifier: MIT
*/
#ifndef __WIREPLUMBER_COLLECTION_H__
#define __WIREPLUMBER_COLLECTION_H__
#include "metadata.h"
G_BEGIN_DECLS
/*!
* \brief Flags to be used as WpObjectFeatures for WpCollection.
* \ingroup wpcollection
*/
typedef enum { /*< flags >*/
/*! Loads the collection */
WP_COLLECTION_LOADED = (1 << 0),
} WpCollectionFeatures;
/*!
* \brief The WpCollection GType
* \ingroup wpcollection
*/
#define WP_TYPE_COLLECTION (wp_collection_get_type ())
WP_API
G_DECLARE_FINAL_TYPE (WpCollection, wp_collection, WP, COLLECTION, WpObject)
WP_API
const gchar * wp_collection_get_name (WpCollection *self);
WP_API
WpMetadata *wp_collection_get_metadata (WpCollection *self);
WP_API
gboolean wp_collection_contains_global (WpCollection *self,
WpGlobalProxy *global);
WP_API
guint wp_collection_get_global_count (WpCollection *self);
G_END_DECLS
#endif