mirror of
https://gitlab.freedesktop.org/pipewire/wireplumber.git
synced 2026-05-09 09:48:04 +02:00
102 lines
2.3 KiB
C
102 lines
2.3 KiB
C
/* WirePlumber
|
|
*
|
|
* Copyright © 2026 Collabora Ltd.
|
|
* @author Julian Bouzas <julian.bouzas@collabora.com>
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*/
|
|
|
|
#ifndef __WIREPLUMBER_COLLECTION_H__
|
|
#define __WIREPLUMBER_COLLECTION_H__
|
|
|
|
#include "global-proxy.h"
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
/*!
|
|
* \brief An extension of WpProxyFeatures for WpCollection objects
|
|
* \ingroup wpcollection
|
|
*/
|
|
typedef enum { /*< flags >*/
|
|
/*! caches collection data locally */
|
|
WP_COLLECTION_FEATURE_DATA = (WP_PROXY_FEATURE_CUSTOM_START << 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,
|
|
WpGlobalProxy)
|
|
|
|
WP_API
|
|
const gchar *wp_collection_get_name (WpCollection * self);
|
|
|
|
WP_API
|
|
gsize wp_collection_get_size (WpCollection * self);
|
|
|
|
WP_API
|
|
gboolean wp_collection_contains_global (WpCollection * self, guint32 global_id);
|
|
|
|
WP_API
|
|
void wp_collection_collect_global (WpCollection * self, guint32 global_id);
|
|
|
|
WP_API
|
|
void wp_collection_drop_global (WpCollection * self, guint32 global_id);
|
|
|
|
WP_API
|
|
void wp_collection_clear (WpCollection * self);
|
|
|
|
WP_API
|
|
WpIterator * wp_collection_new_iterator (WpCollection * self);
|
|
|
|
|
|
/* WpImplCollection */
|
|
|
|
/*!
|
|
* \brief The WpImplCollection GType
|
|
* \ingroup wpcollection
|
|
*/
|
|
#define WP_TYPE_IMPL_COLLECTION (wp_impl_collection_get_type ())
|
|
|
|
WP_API
|
|
G_DECLARE_FINAL_TYPE (WpImplCollection, wp_impl_collection, WP, IMPL_COLLECTION,
|
|
WpProxy)
|
|
|
|
WP_API
|
|
WpImplCollection * wp_impl_collection_new (WpCore * core, const gchar *name,
|
|
WpProperties *properties);
|
|
|
|
WP_API
|
|
WpProperties * wp_impl_collection_get_properties (WpImplCollection *self);
|
|
|
|
WP_API
|
|
const gchar * wp_impl_collection_get_name (WpImplCollection *self);
|
|
|
|
WP_API
|
|
gsize wp_impl_collection_get_size (WpImplCollection * self);
|
|
|
|
WP_API
|
|
gboolean wp_impl_collection_contains_global (WpImplCollection * self,
|
|
guint32 global_id);
|
|
|
|
WP_API
|
|
void wp_impl_collection_collect_global (WpImplCollection * self,
|
|
guint32 global_id);
|
|
|
|
WP_API
|
|
void wp_impl_collection_drop_global (WpImplCollection * self,
|
|
guint32 global_id);
|
|
|
|
WP_API
|
|
void wp_impl_collection_clear (WpImplCollection * self);
|
|
|
|
WP_API
|
|
WpIterator * wp_impl_collection_new_iterator (WpImplCollection * self);
|
|
|
|
G_END_DECLS
|
|
|
|
#endif
|