Files
wireplumber/lib/wp/spa-type.h
Jason Francis ed8346e77d docs: Add brief descriptions to all functions
This ensures all of these functions are picked up by g-ir-scanner.
2021-06-02 17:38:34 +00:00

150 lines
3.0 KiB
C

/* WirePlumber
*
* Copyright © 2020 Collabora Ltd.
* @author Julian Bouzas <julian.bouzas@collabora.com>
*
* SPDX-License-Identifier: MIT
*/
#ifndef __WIREPLUMBER_SPA_TYPE_H__
#define __WIREPLUMBER_SPA_TYPE_H__
#include "defs.h"
#include "iterator.h"
G_BEGIN_DECLS
/*!
* \ingroup wpspatype
*/
typedef guint32 WpSpaType;
/*!
* \ingroup wpspatype
*/
typedef gconstpointer WpSpaIdTable;
/*!
* \ingroup wpspatype
*/
typedef gconstpointer WpSpaIdValue;
struct spa_type_info;
/* WpSpaType */
/*!
* \brief The WpSpaType GType
* \ingroup wpspatype
*/
#define WP_TYPE_SPA_TYPE (wp_spa_type_get_type ())
WP_API
GType wp_spa_type_get_type (void);
/*!
* \brief Type id representing an invalid SPA type
* \ingroup wpspatype
*/
static const WpSpaType WP_SPA_TYPE_INVALID = 0xffffffff;
WP_API
WpSpaType wp_spa_type_from_name (const gchar *name);
WP_API
WpSpaType wp_spa_type_parent (WpSpaType type);
WP_API
const gchar * wp_spa_type_name (WpSpaType type);
WP_API
gboolean wp_spa_type_is_fundamental (WpSpaType type);
WP_API
gboolean wp_spa_type_is_id (WpSpaType type);
WP_API
gboolean wp_spa_type_is_object (WpSpaType type);
WP_API
WpSpaIdTable wp_spa_type_get_object_id_values_table (WpSpaType type);
WP_API
WpSpaIdTable wp_spa_type_get_values_table (WpSpaType type);
/*!
* \brief The WpSpaIdTable GType
* \ingroup wpspatype
*/
#define WP_TYPE_SPA_ID_TABLE (wp_spa_id_table_get_type ())
WP_API
GType wp_spa_id_table_get_type (void);
WP_API
WpSpaIdTable wp_spa_id_table_from_name (const gchar *name);
WP_API
WpIterator * wp_spa_id_table_new_iterator (WpSpaIdTable table);
WP_API
WpSpaIdValue wp_spa_id_table_find_value (WpSpaIdTable table, guint value);
WP_API
WpSpaIdValue wp_spa_id_table_find_value_from_name (WpSpaIdTable table,
const gchar * name);
WP_API
WpSpaIdValue wp_spa_id_table_find_value_from_short_name (WpSpaIdTable table,
const gchar * short_name);
/*!
* \brief The WpSpaIdValue GType
* \ingroup wpspatype
*/
#define WP_TYPE_SPA_ID_VALUE (wp_spa_id_value_get_type ())
WP_API
GType wp_spa_id_value_get_type (void);
WP_API
WpSpaIdValue wp_spa_id_value_from_name (const gchar * name);
WP_API
WpSpaIdValue wp_spa_id_value_from_short_name (const gchar * table_name,
const gchar * short_name);
WP_API
WpSpaIdValue wp_spa_id_value_from_number (const gchar * table_name, guint id);
WP_API
guint wp_spa_id_value_number (WpSpaIdValue id);
WP_API
const gchar * wp_spa_id_value_name (WpSpaIdValue id);
WP_API
const gchar * wp_spa_id_value_short_name (WpSpaIdValue id);
WP_API
WpSpaType wp_spa_id_value_get_value_type (WpSpaIdValue id, WpSpaIdTable *table);
WP_API
WpSpaType wp_spa_id_value_array_get_item_type (WpSpaIdValue id,
WpSpaIdTable *table);
/* Dynamic type registration */
WP_API
void wp_spa_dynamic_type_init (void);
WP_API
void wp_spa_dynamic_type_deinit (void);
WP_API
WpSpaType wp_spa_dynamic_type_register (const gchar *name, WpSpaType parent,
const struct spa_type_info * values);
WP_API
WpSpaIdTable wp_spa_dynamic_id_table_register (const gchar *name,
const struct spa_type_info * values);
G_END_DECLS
#endif