diff --git a/src/pipewire/array.h b/src/pipewire/array.h index 93184d668..4ed109ca1 100644 --- a/src/pipewire/array.h +++ b/src/pipewire/array.h @@ -33,13 +33,18 @@ extern "C" { #include -/** \class pw_array +/** \defgroup pw_array Array Objects * * \brief An array object * * The array is a dynamically resizable data structure that can * hold items of the same size. */ + +/** + * \addtogroup pw_array + * \{ + */ struct pw_array { void *data; /**< pointer to array data */ size_t size; /**< length of array in bytes */ @@ -53,11 +58,11 @@ struct pw_array { #define pw_array_get_unchecked_s(a,idx,s,t) SPA_PTROFF((a)->data,(idx)*(s),t) #define pw_array_check_index_s(a,idx,s) ((idx) < pw_array_get_len_s(a,s)) -/** Get the number of items of type \a t in array \memberof pw_array */ +/** Get the number of items of type \a t in array */ #define pw_array_get_len(a,t) pw_array_get_len_s(a,sizeof(t)) -/** Get the item with index \a idx and type \a t from array \memberof pw_array */ +/** Get the item with index \a idx and type \a t from array */ #define pw_array_get_unchecked(a,idx,t) pw_array_get_unchecked_s(a,idx,sizeof(t),t) -/** Check if an item with index \a idx and type \a t exist in array \memberof pw_array */ +/** Check if an item with index \a idx and type \a t exist in array */ #define pw_array_check_index(a,idx,t) pw_array_check_index_s(a,idx,sizeof(t)) #define pw_array_first(a) ((a)->data) @@ -81,7 +86,7 @@ struct pw_array { SPA_PTRDIFF(pw_array_end(a),(p))); \ }) -/** Initialize the array with given extend \memberof pw_array */ +/** Initialize the array with given extend */ static inline void pw_array_init(struct pw_array *arr, size_t extend) { arr->data = NULL; @@ -101,7 +106,7 @@ static inline void pw_array_reset(struct pw_array *arr) arr->size = 0; } -/** Make sure \a size bytes can be added to the array \memberof pw_array */ +/** Make sure \a size bytes can be added to the array */ static inline int pw_array_ensure_size(struct pw_array *arr, size_t size) { size_t alloc, need; @@ -123,7 +128,7 @@ static inline int pw_array_ensure_size(struct pw_array *arr, size_t size) } /** Add \a ref size bytes to \a arr. A pointer to memory that can - * hold at least \a size bytes is returned \memberof pw_array */ + * hold at least \a size bytes is returned */ static inline void *pw_array_add(struct pw_array *arr, size_t size) { void *p; @@ -138,7 +143,7 @@ static inline void *pw_array_add(struct pw_array *arr, size_t size) } /** Add \a ref size bytes to \a arr. When there is not enough memory to - * hold \a size bytes, NULL is returned \memberof pw_array */ + * hold \a size bytes, NULL is returned */ static inline void *pw_array_add_fixed(struct pw_array *arr, size_t size) { void *p; @@ -154,10 +159,14 @@ static inline void *pw_array_add_fixed(struct pw_array *arr, size_t size) return p; } -/** Add a pointer to array \memberof pw_array */ +/** Add a pointer to array */ #define pw_array_add_ptr(a,p) \ *((void**) pw_array_add(a, sizeof(void*))) = (p) +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/client.h b/src/pipewire/client.h index ebf4511c4..89f3376e9 100644 --- a/src/pipewire/client.h +++ b/src/pipewire/client.h @@ -35,6 +35,14 @@ extern "C" { #include #include +/** \defgroup pw_client Pipewire Client + * + */ + +/** + * \addtogroup pw_client + * \{ + */ #define PW_TYPE_INTERFACE_Client PW_TYPE_INFO_INTERFACE_BASE "Client" #define PW_VERSION_CLIENT 3 @@ -43,7 +51,7 @@ struct pw_client; /* default ID of the current client after connect */ #define PW_ID_CLIENT 1 -/** The client information. Extra information can be added in later versions \memberof pw_introspect */ +/** The client information. Extra information can be added in later versions */ struct pw_client_info { uint32_t id; /**< id of the global */ #define PW_CLIENT_CHANGE_MASK_PROPS (1 << 0) @@ -52,12 +60,12 @@ struct pw_client_info { struct spa_dict *props; /**< extra properties */ }; -/** Update and existing \ref pw_client_info with \a update \memberof pw_introspect */ +/** Update and existing \ref pw_client_info with \a update */ struct pw_client_info * pw_client_info_update(struct pw_client_info *info, const struct pw_client_info *update); -/** Free a \ref pw_client_info \memberof pw_introspect */ +/** Free a \ref pw_client_info */ void pw_client_info_free(struct pw_client_info *info); @@ -164,6 +172,10 @@ struct pw_client_methods { #define pw_client_get_permissions(c,...) pw_client_method(c,get_permissions,0,__VA_ARGS__) #define pw_client_update_permissions(c,...) pw_client_method(c,update_permissions,0,__VA_ARGS__) +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/context.c b/src/pipewire/context.c index 388cca633..cdd2b0722 100644 --- a/src/pipewire/context.c +++ b/src/pipewire/context.c @@ -187,8 +187,6 @@ static int try_load_conf(struct pw_context *this, const char *conf_prefix, * \param main_loop the main loop to use * \param properties extra properties for the context, ownership it taken * \return a newly allocated context object - * - * \memberof pw_context */ SPA_EXPORT struct pw_context *pw_context_new(struct pw_loop *main_loop, @@ -396,8 +394,6 @@ error_cleanup: /** Destroy a context object * * \param context a context to destroy - * - * \memberof pw_context */ SPA_EXPORT void pw_context_destroy(struct pw_context *context) @@ -526,8 +522,6 @@ const char *pw_context_get_conf_section(struct pw_context *context, const char * * \param dict properties to update * * Update the context object with the given properties - * - * \memberof pw_context */ SPA_EXPORT int pw_context_update_properties(struct pw_context *context, const struct spa_dict *dict) @@ -593,8 +587,6 @@ struct pw_global *pw_context_find_global(struct pw_context *context, uint32_t id * \param format_filters array of format filters * \param[out] error an error when something is wrong * \return a port that can be used to link to \a otherport or NULL on error - * - * \memberof pw_context */ struct pw_impl_port *pw_context_find_port(struct pw_context *context, struct pw_impl_port *other_port, @@ -731,8 +723,6 @@ SPA_PRINTF_FUNC(7, 8) int pw_context_debug_port_params(struct pw_context *this, * * Find a common format between the given ports. The format will * be restricted to a subset given with the format filters. - * - * \memberof pw_context */ int pw_context_find_format(struct pw_context *context, struct pw_impl_port *output, diff --git a/src/pipewire/context.h b/src/pipewire/context.h index 45ac61288..f8d5fff6b 100644 --- a/src/pipewire/context.h +++ b/src/pipewire/context.h @@ -32,12 +32,25 @@ extern "C" { #include #include -/** \class pw_context +/** \page page_core_api Core API * - * \brief the PipeWire context + * The Core API serves to access a PipeWire instance. It consists of the + * following object-specific APIs: * - * The context object manages all locally available resources. It - * is used by both clients and servers. + * - \ref pw_context + * - \ref pw_global + * - \ref pw_client + * - \ref pw_resource + * - \ref pw_node + * - \ref pw_port + * - \ref pw_link + * + */ + +/** \defgroup pw_context Pipewire Context + * + * \brief The PipeWire context object manages all locally available + * resources. It is used by both clients and servers. * * The context is used to: * @@ -51,11 +64,16 @@ extern "C" { * clients. * * - Connect to another PipeWire instance (the main daemon, for - * example) and interact with it (See \subpage page_core_api). + * example) and interact with it (See \ref page_core_api). * * - Export a local implementation of an object to another * instance. */ + +/** + * \addtogroup pw_context + * @{ + */ struct pw_context; struct pw_global; @@ -65,33 +83,6 @@ struct pw_impl_client; #include #include -/** \page page_context_api Core API - * - * \section page_context_overview Overview - * - * \subpage page_context - * - * \subpage page_global - * - * \subpage page_client - * - * \subpage page_resource - * - * \subpage page_node - * - * \subpage page_port - * - * \subpage page_link - */ - -/** \page page_context Context - * - * \section page_context_overview Overview - * - * The context object is an object that manages the state and - * resources of a PipeWire instance. - */ - /** context events emitted by the context object added with \ref pw_context_add_listener */ struct pw_context_events { #define PW_VERSION_CONTEXT_EVENTS 0 @@ -187,6 +178,9 @@ int pw_context_set_object(struct pw_context *context, const char *type, void *va /** get an object from the context */ void *pw_context_get_object(struct pw_context *context, const char *type); +/** + * \} + */ #ifdef __cplusplus } #endif diff --git a/src/pipewire/control.h b/src/pipewire/control.h index 925cc7ae6..92d89a153 100644 --- a/src/pipewire/control.h +++ b/src/pipewire/control.h @@ -31,15 +31,14 @@ extern "C" { #include -/** \page page_control Control +/** \defgroup pw_control Control * - * \section page_control_overview Overview - * - * A control can be used to control a port property. + * \brief A control can be used to control a port property. */ -/** \class pw_control - * - * The control object + +/** + * \addtogroup pw_control + * \{ */ struct pw_control; @@ -72,6 +71,10 @@ void pw_control_add_listener(struct pw_control *control, const struct pw_control_events *events, void *data); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/core.h b/src/pipewire/core.h index 4213ba738..c88f72170 100644 --- a/src/pipewire/core.h +++ b/src/pipewire/core.h @@ -34,6 +34,18 @@ extern "C" { #include +/** \defgroup pw_core The Core Global Object + * + * \brief The core global object. + * + * This is a special singleton object. It + * is used for internal PipeWire protocol features. + */ + +/** + * \addtogroup pw_core + * \{ + */ #define PW_TYPE_INTERFACE_Core PW_TYPE_INFO_INTERFACE_BASE "Core" #define PW_TYPE_INTERFACE_Registry PW_TYPE_INFO_INTERFACE_BASE "Registry" @@ -51,7 +63,7 @@ struct pw_registry; /* invalid ID that matches any object when used for permissions */ #define PW_ID_ANY (uint32_t)(0xffffffff) -/** The core information. Extra information can be added in later versions \memberof pw_introspect */ +/** The core information. Extra information can be added in later versions */ struct pw_core_info { uint32_t id; /**< id of the global */ uint32_t cookie; /**< a random cookie for identifying this instance of PipeWire */ @@ -69,23 +81,14 @@ struct pw_core_info { #include #include -/** Update and existing \ref pw_core_info with \a update \memberof pw_introspect */ +/** Update and existing \ref pw_core_info with \a update */ struct pw_core_info * pw_core_info_update(struct pw_core_info *info, const struct pw_core_info *update); -/** Free a \ref pw_core_info \memberof pw_introspect */ +/** Free a \ref pw_core_info */ void pw_core_info_free(struct pw_core_info *info); -/** - * \page page_iface_pw_core pw_core - * \section page_iface_pw_core_desc Description - * - * The core global object. This is a special singleton object. It - * is used for internal PipeWire protocol features. - * \section page_iface_pw_core API - */ - /** Core */ #define PW_CORE_EVENT_INFO 0 @@ -372,12 +375,14 @@ pw_core_create_object(struct pw_core *core, #define pw_core_destroy(c,...) pw_core_method(c,destroy,0,__VA_ARGS__) -/** \page page_registry Registry - * - * \section page_registry_overview Overview +/** + * \} + */ + +/** \defgroup pw_registry Registry * * The registry object is a singleton object that keeps track of - * global objects on the PipeWire instance. See also \ref page_global. + * global objects on the PipeWire instance. See also \ref pw_global. * * Global objects typically represent an actual object in PipeWire * (for example, a module or node) or they are singleton @@ -404,6 +409,11 @@ pw_core_create_object(struct pw_core *core, * the access permissions on an object. */ +/** + * \addtogroup pw_registry + * \{ + */ + #define PW_REGISTRY_EVENT_GLOBAL 0 #define PW_REGISTRY_EVENT_GLOBAL_REMOVE 1 #define PW_REGISTRY_EVENT_NUM 2 @@ -504,9 +514,17 @@ pw_registry_bind(struct pw_registry *registry, #define pw_registry_destroy(p,...) pw_registry_method(p,destroy,0,__VA_ARGS__) +/** + * \} + */ -/** Connect to a PipeWire instance \memberof pw_core - * \return a pw_core on success or NULL with errno set on error. The core +/** + * \addtogroup pw_core + * \{ + */ + +/** Connect to a PipeWire instance + * \return a \ref pw_core on success or NULL with errno set on error. The core * will have an id of PW_ID_CORE (0) */ struct pw_core * pw_context_connect(struct pw_context *context, /**< a \ref pw_context */ @@ -514,7 +532,7 @@ pw_context_connect(struct pw_context *context, /**< a \ref pw_context */ * the properties is taken.*/ size_t user_data_size /**< extra user data size */); -/** Connect to a PipeWire instance on the given socket \memberof pw_core +/** Connect to a PipeWire instance on the given socket * \param context a \ref pw_context * \param fd the connected socket to use, the socket will be closed * automatically on disconnect or error. @@ -528,8 +546,8 @@ pw_context_connect_fd(struct pw_context *context, struct pw_properties *properties, size_t user_data_size); -/** Connect to a given PipeWire instance \memberof pw_core - * \return a pw_core on success or NULL with errno set on error */ +/** Connect to a given PipeWire instance + * \return a \ref pw_core on success or NULL with errno set on error */ struct pw_core * pw_context_connect_self(struct pw_context *context, /**< a \ref pw_context to connect to */ struct pw_properties *properties, /**< optional properties, ownership of @@ -579,6 +597,9 @@ struct pw_proxy *pw_core_export(struct pw_core *core, /**< the core */ void *object, /**< object to export */ size_t user_data_size /**< extra user data */); +/** + * \} + */ #ifdef __cplusplus } diff --git a/src/pipewire/data-loop.c b/src/pipewire/data-loop.c index 84f3849fb..44557247a 100644 --- a/src/pipewire/data-loop.c +++ b/src/pipewire/data-loop.c @@ -147,7 +147,6 @@ error_cleanup: /** Create a new \ref pw_data_loop. * \return a newly allocated data loop * - * \memberof pw_data_loop */ SPA_EXPORT struct pw_data_loop *pw_data_loop_new(const struct spa_dict *props) @@ -158,7 +157,6 @@ struct pw_data_loop *pw_data_loop_new(const struct spa_dict *props) /** Destroy a data loop * \param loop the data loop to destroy - * \memberof pw_data_loop */ SPA_EXPORT void pw_data_loop_destroy(struct pw_data_loop *loop) @@ -200,7 +198,6 @@ pw_data_loop_get_loop(struct pw_data_loop *loop) * * This will start the realtime thread that manages the loop. * - * \memberof pw_data_loop */ SPA_EXPORT int pw_data_loop_start(struct pw_data_loop *loop) @@ -224,7 +221,6 @@ int pw_data_loop_start(struct pw_data_loop *loop) * * This will stop and join the realtime thread that manages the loop. * - * \memberof pw_data_loop */ SPA_EXPORT int pw_data_loop_stop(struct pw_data_loop *loop) @@ -250,7 +246,6 @@ int pw_data_loop_stop(struct pw_data_loop *loop) * \param loop the data loop to check * \return true is the current thread is the data loop thread * - * \memberof pw_data_loop */ SPA_EXPORT bool pw_data_loop_in_thread(struct pw_data_loop * loop) diff --git a/src/pipewire/data-loop.h b/src/pipewire/data-loop.h index 928c598ed..b34ee3a36 100644 --- a/src/pipewire/data-loop.h +++ b/src/pipewire/data-loop.h @@ -31,11 +31,16 @@ extern "C" { #include -/** \class pw_data_loop +/** \defgroup pw_data_loop PipeWire rt-loop object * - * PipeWire rt-loop object. This loop starts a new real-time thread that + * This loop starts a new real-time thread that * is designed to run the processing graph. */ + +/** + * \addtogroup pw_data_loop + * \{ + */ struct pw_data_loop; #include @@ -88,6 +93,10 @@ int pw_data_loop_invoke(struct pw_data_loop *loop, spa_invoke_func_t func, uint32_t seq, const void *data, size_t size, bool block, void *user_data); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/device.h b/src/pipewire/device.h index 748146027..94dc691eb 100644 --- a/src/pipewire/device.h +++ b/src/pipewire/device.h @@ -39,7 +39,7 @@ extern "C" { #define PW_VERSION_DEVICE 3 struct pw_device; -/** The device information. Extra information can be added in later versions \memberof pw_introspect */ +/** The device information. Extra information can be added in later versions */ struct pw_device_info { uint32_t id; /**< id of the global */ #define PW_DEVICE_CHANGE_MASK_PROPS (1 << 0) @@ -51,12 +51,12 @@ struct pw_device_info { uint32_t n_params; /**< number of items in \a params */ }; -/** Update and existing \ref pw_device_info with \a update \memberof pw_introspect */ +/** Update and existing \ref pw_device_info with \a update */ struct pw_device_info * pw_device_info_update(struct pw_device_info *info, const struct pw_device_info *update); -/** Free a \ref pw_device_info \memberof pw_introspect */ +/** Free a \ref pw_device_info */ void pw_device_info_free(struct pw_device_info *info); #define PW_DEVICE_EVENT_INFO 0 diff --git a/src/pipewire/filter.h b/src/pipewire/filter.h index 2a5e29a53..81d717d90 100644 --- a/src/pipewire/filter.h +++ b/src/pipewire/filter.h @@ -29,7 +29,7 @@ extern "C" { #endif -/** \class pw_filter +/** \defgroup pw_filter Pipewire Filter * * \brief PipeWire filter object class * @@ -38,6 +38,11 @@ extern "C" { * * See also \ref page_core_api */ + +/** + * \addtogroup pw_filter + * \{ + */ struct pw_filter; #include @@ -47,7 +52,7 @@ struct pw_filter; #include #include -/** \enum pw_filter_state The state of a filter \memberof pw_filter */ +/** \enum pw_filter_state The state of a filter */ enum pw_filter_state { PW_FILTER_STATE_ERROR = -1, /**< the stream is in error */ PW_FILTER_STATE_UNCONNECTED = 0, /**< unconnected */ @@ -100,10 +105,10 @@ struct pw_filter_events { void (*drained) (void *data); }; -/** Convert a filter state to a readable string \memberof pw_filter */ +/** Convert a filter state to a readable string */ const char * pw_filter_state_as_string(enum pw_filter_state state); -/** \enum pw_filter_flags Extra flags that can be used in \ref pw_filter_connect() \memberof pw_filter */ +/** \enum pw_filter_flags Extra flags that can be used in \ref pw_filter_connect() */ enum pw_filter_flags { PW_FILTER_FLAG_NONE = 0, /**< no flags */ PW_FILTER_FLAG_INACTIVE = (1 << 0), /**< start the filter inactive, @@ -122,7 +127,7 @@ enum pw_filter_port_flags { * data of the buffer should be set */ }; -/** Create a new unconneced \ref pw_filter \memberof pw_filter +/** Create a new unconneced \ref pw_filter * \return a newly allocated \ref pw_filter */ struct pw_filter * pw_filter_new(struct pw_core *core, /**< a \ref pw_core */ @@ -136,7 +141,7 @@ pw_filter_new_simple(struct pw_loop *loop, /**< a \ref pw_loop to use */ const struct pw_filter_events *events, /**< filter events */ void *data /**< data passed to events */); -/** Destroy a filter \memberof pw_filter */ +/** Destroy a filter */ void pw_filter_destroy(struct pw_filter *filter); void pw_filter_add_listener(struct pw_filter *filter, @@ -150,7 +155,7 @@ const char *pw_filter_get_name(struct pw_filter *filter); struct pw_core *pw_filter_get_core(struct pw_filter *filter); -/** Connect a filter for processing. \memberof pw_filter +/** Connect a filter for processing. * \return 0 on success < 0 on error. * * You should connect to the process event and use pw_filter_dequeue_buffer() @@ -161,12 +166,12 @@ pw_filter_connect(struct pw_filter *filter, /**< a \ref pw_filter */ const struct spa_pod **params, /**< an array with params. */ uint32_t n_params /**< number of items in \a params */); -/** Get the node ID of the filter. \memberof pw_filter +/** Get the node ID of the filter. * \return node ID. */ uint32_t pw_filter_get_node_id(struct pw_filter *filter); -/** Disconnect \a filter \memberof pw_filter */ +/** Disconnect \a filter */ int pw_filter_disconnect(struct pw_filter *filter); /** add a port to the filter, returns user data of port_data_size. */ @@ -206,7 +211,7 @@ pw_filter_update_params(struct pw_filter *filter, /**< a \ref pw_filter */ #if 0 -/** A time structure \memberof pw_filter */ +/** A time structure */ struct pw_time { int64_t now; /**< the monotonic time */ struct spa_fraction rate; /**< the rate of \a ticks and delay */ @@ -215,7 +220,7 @@ struct pw_time { }; #endif -/** Query the time on the filter \memberof pw_filter */ +/** Query the time on the filter */ int pw_filter_get_time(struct pw_filter *filter, struct pw_time *time); /** Get a buffer that can be filled for output ports or consumed @@ -228,13 +233,17 @@ int pw_filter_queue_buffer(void *port_data, struct pw_buffer *buffer); /** Get a data pointer to the buffer data */ void *pw_filter_get_dsp_buffer(void *port_data, uint32_t n_samples); -/** Activate or deactivate the filter \memberof pw_filter */ +/** Activate or deactivate the filter */ int pw_filter_set_active(struct pw_filter *filter, bool active); /** Flush a filter. When \a drain is true, the drained callback will * be called when all data is played or recorded */ int pw_filter_flush(struct pw_filter *filter, bool drain); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/global.c b/src/pipewire/global.c index fd098d1bd..97483328d 100644 --- a/src/pipewire/global.c +++ b/src/pipewire/global.c @@ -39,8 +39,8 @@ struct impl { struct pw_global this; }; - /** \endcond */ + SPA_EXPORT uint32_t pw_global_get_permissions(struct pw_global *global, struct pw_impl_client *client) { @@ -60,7 +60,6 @@ uint32_t pw_global_get_permissions(struct pw_global *global, struct pw_impl_clie * \param object the associated object * \return a result global * - * \memberof pw_global */ SPA_EXPORT struct pw_global * @@ -122,7 +121,6 @@ error_cleanup: * \param global a global to add * \return 0 on success < 0 errno value on failure * - * \memberof pw_global */ SPA_EXPORT int pw_global_register(struct pw_global *global) @@ -275,7 +273,6 @@ void pw_global_add_listener(struct pw_global *global, * After binding, the client and the global object will be able to * exchange messages on the proxy/resource with \a id. * - * \memberof pw_global */ SPA_EXPORT int pw_global_bind(struct pw_global *global, struct pw_impl_client *client, uint32_t permissions, @@ -368,7 +365,6 @@ int pw_global_update_permissions(struct pw_global *global, struct pw_impl_client * * \param global a global to destroy * - * \memberof pw_global */ SPA_EXPORT void pw_global_destroy(struct pw_global *global) diff --git a/src/pipewire/global.h b/src/pipewire/global.h index a672e75e8..e04c4f47d 100644 --- a/src/pipewire/global.h +++ b/src/pipewire/global.h @@ -29,7 +29,12 @@ extern "C" { #endif -/** \page page_global Global +/** \defgroup pw_global Global Object + * + * \brief A global object visible to remote clients + * + * A global object is visible to remote clients and represents a resource + * that can be used or inspected. * * Global objects represent resources that are available on the PipeWire * context and are accessible to remote clients. @@ -37,19 +42,17 @@ extern "C" { * clients. * * Remote clients receives a list of globals when it binds to the registry - * object. See \ref page_registry. + * object. See \ref pw_registry. * * A client can bind to a global to send methods or receive events from * the global. + * + * See \ref page_proxy */ -/** \class pw_global - * - * \brief A global object visible to remote clients - * - * A global object is visible to remote clients and represents a resource - * that can be used or inspected. - * - * See \ref page_remote_api + +/** + * \addtogroup pw_global + * \{ */ struct pw_global; @@ -148,6 +151,10 @@ int pw_global_update_permissions(struct pw_global *global, struct pw_impl_client /** Destroy a global */ void pw_global_destroy(struct pw_global *global); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/impl-client.c b/src/pipewire/impl-client.c index fb73be916..b0e77dde5 100644 --- a/src/pipewire/impl-client.c +++ b/src/pipewire/impl-client.c @@ -377,7 +377,6 @@ static const struct pw_context_events context_events = { * \param properties optional client properties, ownership is taken * \return a newly allocated client object * - * \memberof pw_impl_client */ SPA_EXPORT struct pw_impl_client *pw_context_create_client(struct pw_impl_core *core, @@ -570,7 +569,6 @@ static int destroy_resource(void *object, void *data) * * \param client the client to destroy * - * \memberof pw_impl_client */ SPA_EXPORT void pw_impl_client_destroy(struct pw_impl_client *client) @@ -632,7 +630,6 @@ const struct pw_client_info *pw_impl_client_get_info(struct pw_impl_client *clie * properties are overwritten. Items can be removed by setting the value * to NULL. * - * \memberof pw_impl_client */ SPA_EXPORT int pw_impl_client_update_properties(struct pw_impl_client *client, const struct spa_dict *dict) diff --git a/src/pipewire/impl-client.h b/src/pipewire/impl-client.h index d861ccb6e..be837ef5e 100644 --- a/src/pipewire/impl-client.h +++ b/src/pipewire/impl-client.h @@ -31,24 +31,6 @@ extern "C" { #include -/** \class pw_impl_client - * - * \brief PipeWire client object class. - * - * The client object represents a client connection with the PipeWire - * server. - * - * Each client has its own list of resources it is bound to along with - * a mapping between the client types and server types. - */ -struct pw_impl_client; - -#include -#include -#include -#include -#include - /** \page page_client Client * * \section sec_page_client_overview Overview @@ -76,9 +58,32 @@ struct pw_impl_client; * When a client binds to context global object, a resource is made for this * binding and a unique id is assigned to the resources. The client and * server will use this id as the destination when exchanging messages. - * See also \ref page_resource + * See also \ref pw_resource */ +/** \defgroup pw_impl_client Client Object + * + * \brief PipeWire client object class + * + * The client object represents a client connection with the PipeWire + * server. + * + * Each client has its own list of resources it is bound to along with + * a mapping between the client types and server types. + */ + +/** + * \addtogroup pw_impl_client + * \{ + */ +struct pw_impl_client; + +#include +#include +#include +#include +#include + /** The events that a client can emit */ struct pw_impl_client_events { #define PW_VERSION_IMPL_CLIENT_EVENTS 0 @@ -167,6 +172,10 @@ void pw_impl_client_add_listener(struct pw_impl_client *client, * started and no further processing is allowed to happen for the client */ void pw_impl_client_set_busy(struct pw_impl_client *client, bool busy); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/impl-core.h b/src/pipewire/impl-core.h index 7e9b8e85b..39353e490 100644 --- a/src/pipewire/impl-core.h +++ b/src/pipewire/impl-core.h @@ -29,12 +29,18 @@ extern "C" { #endif -/** \class pw_impl_core +/** \defgroup pw_impl_core Pipewire Core Interface * * \brief PipeWire core interface. * * The core is used to make objects on demand. */ + +/** + * \addtogroup pw_impl_core + * \{ + */ + struct pw_impl_core; #include @@ -87,6 +93,10 @@ void pw_impl_core_add_listener(struct pw_impl_core *core, const struct pw_impl_core_events *events, void *data); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/impl-device.h b/src/pipewire/impl-device.h index 4e66764ef..5bb0410b0 100644 --- a/src/pipewire/impl-device.h +++ b/src/pipewire/impl-device.h @@ -29,9 +29,7 @@ extern "C" { #endif -/** \class pw_impl_device - * - * \brief PipeWire device interface. +/** \defgroup pw_impl_device Pipewire Device Interface * * The device is an object that manages nodes. It typically * corresponds to a physical hardware device but it does not @@ -40,6 +38,11 @@ extern "C" { * The purpose of the device is to provide an interface to * dynamically create/remove/configure the nodes it manages. */ + +/** + * \addtogroup pw_impl_device + * \{ + */ struct pw_impl_device; #include @@ -102,6 +105,10 @@ int pw_impl_device_for_each_param(struct pw_impl_device *device, uint32_t id, uint32_t index, uint32_t next, struct spa_pod *param), void *data); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/impl-factory.c b/src/pipewire/impl-factory.c index 6b911d8de..76b5b39ab 100644 --- a/src/pipewire/impl-factory.c +++ b/src/pipewire/impl-factory.c @@ -282,7 +282,7 @@ void *pw_impl_factory_create_object(struct pw_impl_factory *factory, * Find in the list of factories registered in \a context for one with * the given \a name. * - * \memberof pw_context + * \ingroup pw_context */ SPA_EXPORT struct pw_impl_factory *pw_context_find_factory(struct pw_context *context, diff --git a/src/pipewire/impl-factory.h b/src/pipewire/impl-factory.h index ca4963143..9bba86f83 100644 --- a/src/pipewire/impl-factory.h +++ b/src/pipewire/impl-factory.h @@ -29,12 +29,15 @@ extern "C" { #endif -/** \class pw_impl_factory - * - * \brief PipeWire factory interface. +/** \defgroup pw_impl_factory Pipewire Factory Interface * * The factory is used to make objects on demand. */ + +/** + * \addtogroup pw_impl_factory + * \{ + */ struct pw_impl_factory; #include @@ -117,6 +120,10 @@ struct pw_impl_factory * pw_context_find_factory(struct pw_context *context /**< the context */, const char *name /**< the factory name */); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/impl-link.h b/src/pipewire/impl-link.h index 822f783c8..0907ddbe6 100644 --- a/src/pipewire/impl-link.h +++ b/src/pipewire/impl-link.h @@ -29,26 +29,20 @@ extern "C" { #endif -/** \class pw_impl_link +/** \defgroup pw_impl_link Link Objects * - * PipeWire link object. + * \brief PipeWire link object. + */ + +/** + * \addtogroup pw_impl_link + * \{ */ struct pw_impl_link; struct pw_impl_port; #include -/** \page page_link Link - * - * \section page_link_overview Overview - * - * A link is the connection between 2 nodes (\ref page_node). Nodes are - * linked together on ports. - * - * The link is responsible for negotiating the format and buffers for - * the nodes. - */ - /** link events added with \ref pw_impl_link_add_listener */ struct pw_impl_link_events { #define PW_VERSION_IMPL_LINK_EVENTS 0 @@ -76,7 +70,7 @@ struct pw_impl_link_events { }; -/** Make a new link between two ports \memberof pw_impl_link +/** Make a new link between two ports * \return a newly allocated link */ struct pw_impl_link * pw_context_create_link(struct pw_context *context, /**< the context object */ @@ -86,7 +80,7 @@ pw_context_create_link(struct pw_context *context, /**< the context object */ struct pw_properties *properties /**< extra properties */, size_t user_data_size /**< extra user data size */); -/** Destroy a link \memberof pw_impl_link */ +/** Destroy a link */ void pw_impl_link_destroy(struct pw_impl_link *link); /** Add an event listener to \a link */ @@ -118,9 +112,13 @@ struct pw_impl_port *pw_impl_link_get_output(struct pw_impl_link *link); /** Get the input port of the link */ struct pw_impl_port *pw_impl_link_get_input(struct pw_impl_link *link); -/** Find the link between 2 ports \memberof pw_impl_link */ +/** Find the link between 2 ports */ struct pw_impl_link *pw_impl_link_find(struct pw_impl_port *output, struct pw_impl_port *input); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/impl-module.c b/src/pipewire/impl-module.c index 2262337b4..ea5790a69 100644 --- a/src/pipewire/impl-module.c +++ b/src/pipewire/impl-module.c @@ -152,7 +152,6 @@ static const struct pw_global_events global_events = { * \param properties extra global properties * \return A \ref pw_impl_module if the module could be loaded, or NULL on failure. * - * \memberof pw_impl_module */ SPA_EXPORT struct pw_impl_module * @@ -300,7 +299,6 @@ error_cleanup: /** Destroy a module * \param module the module to destroy - * \memberof pw_impl_module */ SPA_EXPORT void pw_impl_module_destroy(struct pw_impl_module *module) diff --git a/src/pipewire/impl-module.h b/src/pipewire/impl-module.h index 09a457fc4..6a87d208d 100644 --- a/src/pipewire/impl-module.h +++ b/src/pipewire/impl-module.h @@ -37,10 +37,15 @@ extern "C" { #define PIPEWIRE_SYMBOL_MODULE_INIT "pipewire__module_init" #define PIPEWIRE_MODULE_PREFIX "libpipewire-" -/** \class pw_impl_module +/** \defgroup pw_impl_module Dynamically loadable Module * * A dynamically loadable module */ + +/** + * \addtogropu pw_impl_module + * \{ + */ struct pw_impl_module; /** Module init function signature @@ -51,8 +56,6 @@ struct pw_impl_module; * * A module should provide an init function with this signature. This function * will be called when a module is loaded. - * - * \memberof pw_impl_module */ typedef int (*pw_impl_module_init_func_t) (struct pw_impl_module *module, const char *args); @@ -103,6 +106,10 @@ void pw_impl_module_add_listener(struct pw_impl_module *module, /** Destroy a module */ void pw_impl_module_destroy(struct pw_impl_module *module); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c index 6556a1439..ea0ffbc77 100644 --- a/src/pipewire/impl-node.c +++ b/src/pipewire/impl-node.c @@ -1715,8 +1715,6 @@ void pw_impl_node_add_listener(struct pw_impl_node *node, * * Remove \a node. This will stop the transfer on the node and * free the resources allocated by \a node. - * - * \memberof pw_impl_node */ SPA_EXPORT void pw_impl_node_destroy(struct pw_impl_node *node) @@ -2067,8 +2065,6 @@ static void node_activate(struct pw_impl_node *this) * \return 0 on success < 0 on error * * Set the state of \a node to \a state. - * - * \memberof pw_impl_node */ SPA_EXPORT int pw_impl_node_set_state(struct pw_impl_node *node, enum pw_node_state state) diff --git a/src/pipewire/impl-node.h b/src/pipewire/impl-node.h index 63ca87f0c..565c02e41 100644 --- a/src/pipewire/impl-node.h +++ b/src/pipewire/impl-node.h @@ -29,17 +29,15 @@ extern "C" { #endif -/** \page page_node Node - * - * \section page_node_overview Overview +/** \defgroup pw_impl_node Node * * The node object processes data. The node has a list of - * input and output ports (\ref page_port) on which it + * input and output ports (\ref pw_impl_port) on which it * will receive and send out buffers respectively. */ -/** \class pw_impl_node - * - * PipeWire node class. +/** + * \addtogroup pw_impl_node + * \{ */ struct pw_impl_node; struct pw_impl_port; @@ -97,7 +95,7 @@ struct pw_impl_node_events { void (*peer_removed) (void *data, struct pw_impl_node *peer); }; -/** Create a new node \memberof pw_impl_node */ +/** Create a new node */ struct pw_impl_node * pw_context_create_node(struct pw_context *context, /**< the context */ struct pw_properties *properties, /**< extra properties */ @@ -175,6 +173,10 @@ int pw_impl_node_set_active(struct pw_impl_node *node, bool active); /** Check if a node is active */ bool pw_impl_node_is_active(struct pw_impl_node *node); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/impl-port.h b/src/pipewire/impl-port.h index 589fe5ded..d82b83c94 100644 --- a/src/pipewire/impl-port.h +++ b/src/pipewire/impl-port.h @@ -31,15 +31,14 @@ extern "C" { #include -/** \page page_port Port +/** \defgroup pw_impl_port Port Object * - * \section page_node_overview Overview - * - * A port can be used to link two nodes. + * \brief A port can be used to link two nodes. */ -/** \class pw_impl_port - * - * The port object + +/** + * \addtogroup pw_impl_port + * \{ */ struct pw_impl_port; struct pw_impl_link; @@ -92,7 +91,7 @@ struct pw_impl_port_events { void (*param_changed) (void *data, uint32_t id); }; -/** Create a new port \memberof pw_impl_port +/** Create a new port * \return a newly allocated port */ struct pw_impl_port * pw_context_create_port(struct pw_context *context, @@ -122,7 +121,7 @@ struct pw_impl_node *pw_impl_port_get_node(struct pw_impl_port *port); /** check is a port has links, return 0 if not, 1 if it is linked */ int pw_impl_port_is_linked(struct pw_impl_port *port); -/** Add a port to a node \memberof pw_impl_port */ +/** Add a port to a node */ int pw_impl_port_add(struct pw_impl_port *port, struct pw_impl_node *node); /** Add an event listener on the port */ @@ -131,6 +130,10 @@ void pw_impl_port_add_listener(struct pw_impl_port *port, const struct pw_impl_port_events *events, void *data); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/impl.h b/src/pipewire/impl.h index f500a36a8..9771884f2 100644 --- a/src/pipewire/impl.h +++ b/src/pipewire/impl.h @@ -29,6 +29,28 @@ extern "C" { #endif +/** \page page_implementation_api Implementation API + * + * The implementation API provides the tools to build new objects and ++ * modules. It consists of the following object-specific APIs: + * + * - \ref pw_impl_core + * - \ref pw_impl_client + * - \ref pw_impl_device + * - \ref pw_impl_factory + * - \ref pw_impl_link + * - \ref pw_impl_module + * - \ref pw_impl_node + * - \ref pw_impl_port + * - \ref pw_control + * - \ref pw_global + * - \ref pw_global + * - \ref pw_resource + * - \ref pw_work_queue + * + */ + + struct pw_impl_client; struct pw_impl_module; struct pw_global; diff --git a/src/pipewire/link.h b/src/pipewire/link.h index 3be46b1d3..a0fbfce13 100644 --- a/src/pipewire/link.h +++ b/src/pipewire/link.h @@ -34,6 +34,21 @@ extern "C" { #include +/** \defgroup pw_link Pipewire Link + * + * A link is the connection between 2 nodes (\ref pw_node). Nodes are + * linked together on ports. + * + * The link is responsible for negotiating the format and buffers for + * the nodes. + * + */ + +/** + * \addtogroup pw_link + * \{ + */ + #define PW_TYPE_INTERFACE_Link PW_TYPE_INFO_INTERFACE_BASE "Link" #define PW_VERSION_LINK 3 @@ -50,7 +65,7 @@ enum pw_link_state { PW_LINK_STATE_ACTIVE = 4, /**< the link is active */ }; -/** Convert a \ref pw_link_state to a readable string \memberof pw_link */ +/** Convert a \ref pw_link_state to a readable string */ const char * pw_link_state_as_string(enum pw_link_state state); /** The link information. Extra information can be added in later versions \memberof pw_introspect */ struct pw_link_info { @@ -118,6 +133,10 @@ struct pw_link_methods { #define pw_link_add_listener(c,...) pw_link_method(c,add_listener,0,__VA_ARGS__) +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/log.c b/src/pipewire/log.c index de00bf08c..82c20e116 100644 --- a/src/pipewire/log.c +++ b/src/pipewire/log.c @@ -42,7 +42,6 @@ static struct spa_log *global_log = &default_log.log; /** Set the global log interface * \param log the global log to set - * \memberof pw_log */ SPA_EXPORT void pw_log_set(struct spa_log *log) @@ -58,7 +57,6 @@ bool pw_log_is_default(void) /** Get the global log interface * \return the global log - * \memberof pw_log */ SPA_EXPORT struct spa_log *pw_log_get(void) @@ -68,7 +66,6 @@ struct spa_log *pw_log_get(void) /** Set the global log level * \param level the new log level - * \memberof pw_log */ SPA_EXPORT void pw_log_set_level(enum spa_log_level level) @@ -85,7 +82,6 @@ void pw_log_set_level(enum spa_log_level level) * \param fmt the printf style format * \param ... printf style arguments to log * - * \memberof pw_log */ SPA_EXPORT void @@ -113,7 +109,6 @@ pw_log_log(enum spa_log_level level, * \param fmt the printf style format * \param args a va_list of arguments * - * \memberof pw_log */ SPA_EXPORT void @@ -135,32 +130,27 @@ pw_log_logv(enum spa_log_level level, * Log an error message * \param format a printf style format * \param ... printf style arguments - * \memberof pw_log */ /** \fn void pw_log_warn (const char *format, ...) * Log a warning message * \param format a printf style format * \param ... printf style arguments - * \memberof pw_log */ /** \fn void pw_log_info (const char *format, ...) * Log an info message * \param format a printf style format * \param ... printf style arguments - * \memberof pw_log */ /** \fn void pw_log_debug (const char *format, ...) * Log a debug message * \param format a printf style format * \param ... printf style arguments - * \memberof pw_log */ /** \fn void pw_log_trace (const char *format, ...) * Log a trace message. Trace messages may be generated from * \param format a printf style format * \param ... printf style arguments * realtime threads - * \memberof pw_log */ struct log_ctx { diff --git a/src/pipewire/log.h b/src/pipewire/log.h index 3ea539242..26683de04 100644 --- a/src/pipewire/log.h +++ b/src/pipewire/log.h @@ -31,15 +31,19 @@ extern "C" { #endif -/** \class pw_log +/** \defgroup pw_log Logging * - * Logging functions of PipeWire + * \brief Logging functions of PipeWire * * Logging is performed to stdout and stderr. Trace logging is performed * in a lockfree ringbuffer and written out from the main thread as to not * block the realtime threads. */ +/** + * \addtogroup pw_array + * \{ + */ /** The global log level */ extern enum spa_log_level pw_log_level; @@ -70,7 +74,7 @@ pw_log_logv(enum spa_log_level level, const char *fmt, va_list args) SPA_PRINTF_FUNC(5, 0); -/** Check if a loglevel is enabled \memberof pw_log */ +/** Check if a loglevel is enabled */ #define pw_log_level_enabled(lev) (pw_log_level >= (lev)) #define pw_log(lev,...) \ @@ -91,6 +95,10 @@ pw_log_logv(enum spa_log_level level, #define pw_log_trace_fp(...) #endif +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/loop.h b/src/pipewire/loop.h index bb642c466..b7c439a16 100644 --- a/src/pipewire/loop.h +++ b/src/pipewire/loop.h @@ -32,12 +32,18 @@ extern "C" { #include #include -/** \class pw_loop +/** \defgroup pw_loop Pipewire Loop * * PipeWire loop object provides an implementation of * the spa loop interfaces. It can be used to implement various * event loops. */ + +/** + * \addtogroup pw_loop + * \{ + */ + struct pw_loop { struct spa_system *system; /**< system utils */ struct spa_loop *loop; /**< wrapped loop */ @@ -73,6 +79,10 @@ pw_loop_destroy(struct pw_loop *loop); #define pw_loop_add_signal(l,...) spa_loop_utils_add_signal((l)->utils,__VA_ARGS__) #define pw_loop_destroy_source(l,...) spa_loop_utils_destroy_source((l)->utils,__VA_ARGS__) +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/main-loop.c b/src/pipewire/main-loop.c index bf115bdeb..48e94c18d 100644 --- a/src/pipewire/main-loop.c +++ b/src/pipewire/main-loop.c @@ -81,7 +81,6 @@ error_cleanup: /** Create a new main loop * \return a newly allocated \ref pw_main_loop * - * \memberof pw_main_loop */ SPA_EXPORT struct pw_main_loop *pw_main_loop_new(const struct spa_dict *props) @@ -92,7 +91,6 @@ struct pw_main_loop *pw_main_loop_new(const struct spa_dict *props) /** Destroy a main loop * \param loop the main loop to destroy * - * \memberof pw_main_loop */ SPA_EXPORT void pw_main_loop_destroy(struct pw_main_loop *loop) @@ -128,7 +126,6 @@ struct pw_loop * pw_main_loop_get_loop(struct pw_main_loop *loop) * * The call to \ref pw_main_loop_run() will return * - * \memberof pw_main_loop */ SPA_EXPORT int pw_main_loop_quit(struct pw_main_loop *loop) @@ -143,7 +140,6 @@ int pw_main_loop_quit(struct pw_main_loop *loop) * Start running \a loop. This function blocks until \ref pw_main_loop_quit() * has been called * - * \memberof pw_main_loop */ SPA_EXPORT int pw_main_loop_run(struct pw_main_loop *loop) diff --git a/src/pipewire/main-loop.h b/src/pipewire/main-loop.h index b8ffdf90b..29230608f 100644 --- a/src/pipewire/main-loop.h +++ b/src/pipewire/main-loop.h @@ -29,13 +29,17 @@ extern "C" { #endif -/** \class pw_main_loop - * - * \brief PipeWire main-loop interface. +/** \defgroup pw_main_loop Pipewire Main-Loop Interface * * A main loop object */ -/** A main loop object \memberof pw_main_loop */ + +/** + * \addtogroup pw_main_loop + * \{ + */ + +/** A main loop object */ struct pw_main_loop; #include @@ -71,6 +75,10 @@ int pw_main_loop_run(struct pw_main_loop *loop); /** Quit a main loop */ int pw_main_loop_quit(struct pw_main_loop *loop); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/map.h b/src/pipewire/map.h index ba4c01bc0..5a88daeb4 100644 --- a/src/pipewire/map.h +++ b/src/pipewire/map.h @@ -35,18 +35,23 @@ extern "C" { #include #include -/** \class pw_map +/** \defgroup pw_map Map Objects * - * A map that holds objects indexed by id + * \brief A map that holds objects indexed by id */ -/** An entry in the map \memberof pw_map */ +/** + * \addtogroup pw_map + * \{ + */ + +/** An entry in the map */ union pw_map_item { uint32_t next; /**< next free index */ void *data; /**< data of this item, must be an even address */ }; -/** A map \memberof pw_map */ +/** A map */ struct pw_map { struct pw_array items; /**< an array with the map items */ uint32_t free_list; /**< the free items */ @@ -62,16 +67,15 @@ struct pw_map { #define pw_map_has_item(m,id) (pw_map_check_id(m,id) && !pw_map_id_is_free(m, id)) #define pw_map_lookup_unchecked(m,id) pw_map_get_item(m,id)->data -/** Convert an id to a pointer that can be inserted into the map \memberof pw_map */ +/** Convert an id to a pointer that can be inserted into the map */ #define PW_MAP_ID_TO_PTR(id) (SPA_UINT32_TO_PTR((id)<<1)) -/** Convert a pointer to an id that can be retrieved from the map \memberof pw_map */ +/** Convert a pointer to an id that can be retrieved from the map */ #define PW_MAP_PTR_TO_ID(p) (SPA_PTR_TO_UINT32(p)>>1) /** Initialize a map * \param map the map to initialize * \param size the initial size of the map * \param extend the amount to bytes to grow the map with when needed - * \memberof pw_map */ static inline void pw_map_init(struct pw_map *map, size_t size, size_t extend) { @@ -82,7 +86,6 @@ static inline void pw_map_init(struct pw_map *map, size_t size, size_t extend) /** Clear a map * \param map the map to clear - * \memberof pw_map */ static inline void pw_map_clear(struct pw_map *map) { @@ -100,7 +103,6 @@ static inline void pw_map_reset(struct pw_map *map) * \param data the item to add * \return the id where the item was inserted or SPA_ID_INVALID when the * item can not be inserted. - * \memberof pw_map */ static inline uint32_t pw_map_insert_new(struct pw_map *map, void *data) { @@ -128,7 +130,6 @@ static inline uint32_t pw_map_insert_new(struct pw_map *map, void *data) * \param data the data to insert * \return 0 on success, -ENOSPC value when the index is invalid or a < 0 * errno value. - * \memberof pw_map */ static inline int pw_map_insert_at(struct pw_map *map, uint32_t id, void *data) { @@ -152,7 +153,6 @@ static inline int pw_map_insert_at(struct pw_map *map, uint32_t id, void *data) /** Remove an item at index * \param map the map to remove from * \param id the index to remove - * \memberof pw_map */ static inline void pw_map_remove(struct pw_map *map, uint32_t id) { @@ -164,7 +164,6 @@ static inline void pw_map_remove(struct pw_map *map, uint32_t id) * \param map the map to use * \param id the index to look at * \return the item at \a id or NULL when no such item exists - * \memberof pw_map */ static inline void *pw_map_lookup(struct pw_map *map, uint32_t id) { @@ -183,7 +182,6 @@ static inline void *pw_map_lookup(struct pw_map *map, uint32_t id) * iteration ends and the result is returned. * \param data data to pass to \a func * \return the result of the last call to \a func or 0 when all callbacks returned 0. - * \memberof pw_map */ static inline int pw_map_for_each(struct pw_map *map, int (*func) (void *item_data, void *data), void *data) @@ -199,6 +197,10 @@ static inline int pw_map_for_each(struct pw_map *map, return res; } +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/mem.h b/src/pipewire/mem.h index a695e9814..793e452ac 100644 --- a/src/pipewire/mem.h +++ b/src/pipewire/mem.h @@ -31,7 +31,16 @@ extern "C" { #endif -/** Flags passed to \ref pw_mempool_alloc() \memberof pw_memblock */ +/** \defgroup pw_memblock Memory Blocks + * + */ + +/** + * \addtogroup pw_memblock + * \{ + */ + +/** Flags passed to \ref pw_mempool_alloc() */ enum pw_memblock_flags { PW_MEMBLOCK_FLAG_NONE = 0, PW_MEMBLOCK_FLAG_READABLE = (1 << 0), /**< memory is readable */ @@ -57,14 +66,14 @@ enum pw_memmap_flags { struct pw_memchunk; -/** \class pw_memblock +/** * * A memory pool is a collection of pw_memblocks */ struct pw_mempool { struct pw_properties *props; }; -/** \class pw_memblock +/** * Memory block structure */ struct pw_memblock { struct pw_mempool *pool; /**< owner pool */ @@ -192,6 +201,9 @@ static inline void pw_map_range_init(struct pw_map_range *range, range->size = SPA_ROUND_UP_N(range->start + size, page_size); } +/** + * \} + */ #ifdef __cplusplus } diff --git a/src/pipewire/module.h b/src/pipewire/module.h index 3130f1761..8d6aba42a 100644 --- a/src/pipewire/module.h +++ b/src/pipewire/module.h @@ -39,7 +39,7 @@ extern "C" { #define PW_VERSION_MODULE 3 struct pw_module; -/** The module information. Extra information can be added in later versions \memberof pw_introspect */ +/** The module information. Extra information can be added in later versions */ struct pw_module_info { uint32_t id; /**< id of the global */ const char *name; /**< name of the module */ @@ -51,12 +51,12 @@ struct pw_module_info { struct spa_dict *props; /**< extra properties */ }; -/** Update and existing \ref pw_module_info with \a update \memberof pw_introspect */ +/** Update and existing \ref pw_module_info with \a update */ struct pw_module_info * pw_module_info_update(struct pw_module_info *info, const struct pw_module_info *update); -/** Free a \ref pw_module_info \memberof pw_introspect */ +/** Free a \ref pw_module_info */ void pw_module_info_free(struct pw_module_info *info); #define PW_MODULE_EVENT_INFO 0 diff --git a/src/pipewire/node.h b/src/pipewire/node.h index f83148df9..40e634359 100644 --- a/src/pipewire/node.h +++ b/src/pipewire/node.h @@ -39,6 +39,14 @@ extern "C" { #include +/** \defgroup pw_node Pipewire Node + * + */ + +/** + * \addtogroup pw_node + * \{ + */ #define PW_TYPE_INTERFACE_Node PW_TYPE_INFO_INTERFACE_BASE "Node" #define PW_VERSION_NODE 3 @@ -55,7 +63,7 @@ enum pw_node_state { PW_NODE_STATE_RUNNING = 3, /**< the node is running */ }; -/** Convert a \ref pw_node_state to a readable string \memberof pw_node */ +/** Convert a \ref pw_node_state to a readable string */ const char * pw_node_state_as_string(enum pw_node_state state); /** The node information. Extra information can be added in later versions \memberof pw_introspect */ @@ -193,6 +201,10 @@ struct pw_node_methods { #define pw_node_set_param(c,...) pw_node_method(c,set_param,0,__VA_ARGS__) #define pw_node_send_command(c,...) pw_node_method(c,send_command,0,__VA_ARGS__) +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/permission.h b/src/pipewire/permission.h index fffc18727..6b914bf28 100644 --- a/src/pipewire/permission.h +++ b/src/pipewire/permission.h @@ -31,9 +31,7 @@ extern "C" { #include -/** \class pw_permission - * - * \brief a PipeWire permission +/** \defgroup pw_permission Pipewire Permission * * Permissions are kept for a client and describe what the client is * allowed to do with an object. @@ -41,6 +39,11 @@ extern "C" { * See \ref page_core_api */ +/** + * \addtogroup pw_permission + * \{ + */ + #define PW_PERM_R 0400 /**< object can be seen and events can be received */ #define PW_PERM_W 0200 /**< methods can be called that modify the object */ #define PW_PERM_X 0100 /**< methods can be called on the object. The W flag must be @@ -72,6 +75,10 @@ struct pw_permission { (permission) & PW_PERM_X ? 'x' : '-', \ (permission) & PW_PERM_M ? 'm' : '-' +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/pipewire.c b/src/pipewire/pipewire.c index a7ecd012e..b17c88245 100644 --- a/src/pipewire/pipewire.c +++ b/src/pipewire/pipewire.c @@ -473,7 +473,6 @@ static struct spa_log *load_journal_logger(struct support *support) * * The environment variable \a PIPEWIRE_DEBUG * - * \memberof pw_pipewire */ SPA_EXPORT void pw_init(int *argc, char **argv[]) @@ -581,7 +580,6 @@ void pw_deinit(void) * Debugging categories can be enabled by using the PIPEWIRE_DEBUG * environment variable * - * \memberof pw_pipewire */ SPA_EXPORT bool pw_debug_is_category_enabled(const char *name) @@ -598,7 +596,7 @@ bool pw_debug_is_category_enabled(const char *name) return false; } -/** Get the application name \memberof pw_pipewire */ +/** Get the application name */ SPA_EXPORT const char *pw_get_application_name(void) { @@ -606,7 +604,7 @@ const char *pw_get_application_name(void) return NULL; } -/** Get the program name \memberof pw_pipewire */ +/** Get the program name */ SPA_EXPORT const char *pw_get_prgname(void) { @@ -637,7 +635,7 @@ const char *pw_get_prgname(void) return prgname; } -/** Get the user name \memberof pw_pipewire */ +/** Get the user name */ SPA_EXPORT const char *pw_get_user_name(void) { @@ -649,7 +647,7 @@ const char *pw_get_user_name(void) return NULL; } -/** Get the host name \memberof pw_pipewire */ +/** Get the host name */ SPA_EXPORT const char *pw_get_host_name(void) { @@ -672,7 +670,6 @@ bool pw_in_valgrind(void) * * Make a new PipeWire client name that can be used to construct a remote. * - * \memberof pw_pipewire */ SPA_EXPORT const char *pw_get_client_name(void) @@ -691,7 +688,7 @@ const char *pw_get_client_name(void) } } -/** Reverse the direction \memberof pw_pipewire */ +/** Reverse the direction */ SPA_EXPORT enum pw_direction pw_direction_reverse(enum pw_direction direction) { diff --git a/src/pipewire/pipewire.h b/src/pipewire/pipewire.h index 51ac095d9..070371db2 100644 --- a/src/pipewire/pipewire.h +++ b/src/pipewire/pipewire.h @@ -109,9 +109,13 @@ extern "C" { * + `connection`: to log connection messages */ -/** \class pw_pipewire - * - * \brief PipeWire initialization and infrastructure functions +/** \defgroup pw_pipewire PipeWire initialization and infrastructure functions + */ + + +/** + * \addtogroup pw_pipewire + * \{ */ void pw_init(int *argc, char **argv[]); @@ -154,6 +158,10 @@ struct spa_handle *pw_load_spa_handle(const char *lib, int pw_unload_spa_handle(struct spa_handle *handle); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/port.h b/src/pipewire/port.h index 544b6850e..235b7dc3d 100644 --- a/src/pipewire/port.h +++ b/src/pipewire/port.h @@ -38,6 +38,15 @@ extern "C" { #include +/** \defgroup pw_port Pipewire Port + * + */ + +/** + * \addtogroup pw_port + * \{ + */ + #define PW_TYPE_INTERFACE_Port PW_TYPE_INFO_INTERFACE_BASE "Port" #define PW_VERSION_PORT 3 @@ -48,16 +57,9 @@ struct pw_port; #define PW_DIRECTION_INPUT SPA_DIRECTION_INPUT #define PW_DIRECTION_OUTPUT SPA_DIRECTION_OUTPUT -/** Convert a \ref pw_direction to a readable string \memberof pw_introspect */ +/** Convert a \ref pw_direction to a readable string */ const char * pw_direction_as_string(enum pw_direction direction); - -/** \class pw_introspect - * - * The introspection methods and structures are used to get information - * about the object in the PipeWire server - */ - struct pw_port_info { uint32_t id; /**< id of the global */ enum pw_direction direction; /**< port direction */ @@ -162,6 +164,10 @@ struct pw_port_methods { #define pw_port_subscribe_params(c,...) pw_port_method(c,subscribe_params,0,__VA_ARGS__) #define pw_port_enum_params(c,...) pw_port_method(c,enum_params,0,__VA_ARGS__) +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/properties.h b/src/pipewire/properties.h index b2c42d902..1071087b2 100644 --- a/src/pipewire/properties.h +++ b/src/pipewire/properties.h @@ -33,15 +33,18 @@ extern "C" { #include -/** \class pw_properties - * - * \brief A collection of key/value pairs +/** \defgroup pw_properties Key-Value pairs * * Properties are used to pass around arbitrary key/value pairs. * Both keys and values are strings which keeps things simple. * Encoding of arbitrary values should be done by using a string * serialization such as base64 for binary blobs. */ + +/** + * \addtogroup pw_properties + * \{ + */ struct pw_properties { struct spa_dict dict; /**< dictionary of key/values */ uint32_t flags; /**< extra flags */ @@ -120,6 +123,10 @@ static inline double pw_properties_parse_double(const char *value) { return strtod(value, NULL); } +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/protocol.h b/src/pipewire/protocol.h index 2a1d8a83e..01334ad12 100644 --- a/src/pipewire/protocol.h +++ b/src/pipewire/protocol.h @@ -31,6 +31,16 @@ extern "C" { #include +/** \defgroup pw_protocol PipeWire Protocol + * + * \brief Manages protocols and their implementation + */ + +/** + * \addtogroup pw_protocol + * \{ + */ + struct pw_protocol; #include @@ -133,10 +143,6 @@ void pw_protocol_add_listener(struct pw_protocol *protocol, const struct pw_protocol_events *events, void *data); -/** \class pw_protocol - * - * \brief Manages protocols and their implementation - */ int pw_protocol_add_marshal(struct pw_protocol *protocol, const struct pw_protocol_marshal *marshal); @@ -145,6 +151,10 @@ pw_protocol_get_marshal(struct pw_protocol *protocol, const char *type, uint32_t struct pw_protocol * pw_context_find_protocol(struct pw_context *context, const char *name); +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/proxy.c b/src/pipewire/proxy.c index ec9fb7c00..950b87b81 100644 --- a/src/pipewire/proxy.c +++ b/src/pipewire/proxy.c @@ -84,8 +84,6 @@ error: * proxy object will have an id assigned from the client id space. * * \sa pw_core - * - * \memberof pw_proxy */ SPA_EXPORT struct pw_proxy *pw_proxy_new(struct pw_proxy *factory, @@ -226,7 +224,6 @@ static inline void remove_from_map(struct pw_proxy *proxy) * * \note This is normally called by \ref pw_core when the server * decides to destroy the server side object - * \memberof pw_proxy */ SPA_EXPORT void pw_proxy_destroy(struct pw_proxy *proxy) diff --git a/src/pipewire/proxy.h b/src/pipewire/proxy.h index ef7530b88..537ec622a 100644 --- a/src/pipewire/proxy.h +++ b/src/pipewire/proxy.h @@ -44,7 +44,7 @@ extern "C" { * * A proxy for a remote core object can be obtained by making * a remote connection with \ref pw_context_connect. - * See \ref pw_page_remote_api + * See \ref pw_proxy * * Some methods on proxy object allow creation of more proxy objects or * create a binding between a local proxy and global resource. @@ -87,7 +87,7 @@ extern "C" { * associated to the proxy. */ -/** \class pw_proxy +/** \defgroup pw_proxy Proxy Object * * \brief Represents an object on the client side. * @@ -98,6 +98,11 @@ extern "C" { * * See \ref page_proxy */ + +/** + * \addtogroup pw_proxy + * \{ + */ struct pw_proxy; #include @@ -200,6 +205,10 @@ int pw_proxy_install_marshal(struct pw_proxy *proxy, bool implementor); _res; \ }) +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/resource.h b/src/pipewire/resource.h index 97b3f8d47..51a46650b 100644 --- a/src/pipewire/resource.h +++ b/src/pipewire/resource.h @@ -31,9 +31,9 @@ extern "C" { #include -/** \page page_resource Resource +/** \defgroup pw_resource Resources * - * \section sec_page_resource Overview + * \brief Client owned objects * * Resources represent objects owned by a \ref pw_impl_client. They are * the result of binding to a global resource or by calling API that @@ -47,14 +47,10 @@ extern "C" { * */ -/** \class pw_resource - * - * \brief Client owned objects - * - * Resources are objects owned by a client and are destroyed when the - * client disappears. - * - * See also \ref page_resource + +/** + * \addtogroup pw_resource + * \{ */ struct pw_resource; @@ -161,6 +157,12 @@ int pw_resource_install_marshal(struct pw_resource *resource, bool implementor); _res; \ }) + +/** + * \} + */ + + #ifdef __cplusplus } #endif diff --git a/src/pipewire/stream.h b/src/pipewire/stream.h index facd4e9f0..4035a17eb 100644 --- a/src/pipewire/stream.h +++ b/src/pipewire/stream.h @@ -137,21 +137,26 @@ extern "C" { * * Use \ref pw_stream_disconnect() to disconnect a stream after use. */ -/** \class pw_stream +/** \defgroup pw_stream Stream Object * - * \brief PipeWire stream object class + * \brief PipeWire stream objects * * The stream object provides a convenient way to send and * receive data streams from/to PipeWire. * - * See also \ref page_streams and \ref page_context_api + * See also \ref page_streams and \ref page_core_api + */ + +/** + * \addtogroup pw_stream + * \{ */ struct pw_stream; #include #include -/** \enum pw_stream_state The state of a stream \memberof pw_stream */ +/** \enum pw_stream_state The state of a stream */ enum pw_stream_state { PW_STREAM_STATE_ERROR = -1, /**< the stream is in error */ PW_STREAM_STATE_UNCONNECTED = 0, /**< unconnected */ @@ -178,7 +183,7 @@ struct pw_stream_control { uint32_t max_values; /**< max values that can be set on this control */ }; -/** A time structure \memberof pw_stream */ +/** A time structure */ struct pw_time { int64_t now; /**< the monotonic time in nanoseconds */ struct spa_fraction rate; /**< the rate of \a ticks and delay */ @@ -229,10 +234,10 @@ struct pw_stream_events { }; -/** Convert a stream state to a readable string \memberof pw_stream */ +/** Convert a stream state to a readable string */ const char * pw_stream_state_as_string(enum pw_stream_state state); -/** \enum pw_stream_flags Extra flags that can be used in \ref pw_stream_connect() \memberof pw_stream */ +/** \enum pw_stream_flags Extra flags that can be used in \ref pw_stream_connect() */ enum pw_stream_flags { PW_STREAM_FLAG_NONE = 0, /**< no flags */ PW_STREAM_FLAG_AUTOCONNECT = (1 << 0), /**< try to automatically connect @@ -255,7 +260,7 @@ enum pw_stream_flags { * data of the buffer should be set */ }; -/** Create a new unconneced \ref pw_stream \memberof pw_stream +/** Create a new unconneced \ref pw_stream * \return a newly allocated \ref pw_stream */ struct pw_stream * pw_stream_new(struct pw_core *core, /**< a \ref pw_core */ @@ -269,7 +274,7 @@ pw_stream_new_simple(struct pw_loop *loop, /**< a \ref pw_loop to use */ const struct pw_stream_events *events, /**< stream events */ void *data /**< data passed to events */); -/** Destroy a stream \memberof pw_stream */ +/** Destroy a stream */ void pw_stream_destroy(struct pw_stream *stream); void pw_stream_add_listener(struct pw_stream *stream, @@ -287,7 +292,7 @@ const struct pw_properties *pw_stream_get_properties(struct pw_stream *stream); int pw_stream_update_properties(struct pw_stream *stream, const struct spa_dict *dict); -/** Connect a stream for input or output on \a port_path. \memberof pw_stream +/** Connect a stream for input or output on \a port_path. * \return 0 on success < 0 on error. * * You should connect to the process event and use pw_stream_dequeue_buffer() @@ -304,12 +309,12 @@ pw_stream_connect(struct pw_stream *stream, /**< a \ref pw_stream */ * formats. */ uint32_t n_params /**< number of items in \a params */); -/** Get the node ID of the stream. \memberof pw_stream +/** Get the node ID of the stream. * \return node ID. */ uint32_t pw_stream_get_node_id(struct pw_stream *stream); -/** Disconnect \a stream \memberof pw_stream */ +/** Disconnect \a stream */ int pw_stream_disconnect(struct pw_stream *stream); /** Set the stream in error state */ @@ -318,7 +323,7 @@ int pw_stream_set_error(struct pw_stream *stream, /**< a \ref pw_stream */ const char *error, /**< an error message */ ...) SPA_PRINTF_FUNC(3, 4); -/** Complete the negotiation process with result code \a res \memberof pw_stream +/** Complete the negotiation process with result code \a res * * This function should be called after notification of the format. @@ -334,7 +339,7 @@ pw_stream_update_params(struct pw_stream *stream, /**< a \ref pw_stream */ /** Set control values */ int pw_stream_set_control(struct pw_stream *stream, uint32_t id, uint32_t n_values, float *values, ...); -/** Query the time on the stream \memberof pw_stream */ +/** Query the time on the stream */ int pw_stream_get_time(struct pw_stream *stream, struct pw_time *time); /** Get a buffer that can be filled for playback streams or consumed @@ -344,13 +349,17 @@ struct pw_buffer *pw_stream_dequeue_buffer(struct pw_stream *stream); /** Submit a buffer for playback or recycle a buffer for capture. */ int pw_stream_queue_buffer(struct pw_stream *stream, struct pw_buffer *buffer); -/** Activate or deactivate the stream \memberof pw_stream */ +/** Activate or deactivate the stream */ int pw_stream_set_active(struct pw_stream *stream, bool active); /** Flush a stream. When \a drain is true, the drained callback will * be called when all data is played or recorded */ int pw_stream_flush(struct pw_stream *stream, bool drain); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/thread-loop.c b/src/pipewire/thread-loop.c index 60e010d8a..fbda9724a 100644 --- a/src/pipewire/thread-loop.c +++ b/src/pipewire/thread-loop.c @@ -173,7 +173,6 @@ clean_this: * After this function you should probably call pw_thread_loop_start() to * actually start the thread * - * \memberof pw_thread_loop */ SPA_EXPORT struct pw_thread_loop *pw_thread_loop_new(const char *name, @@ -195,7 +194,6 @@ struct pw_thread_loop *pw_thread_loop_new(const char *name, * After this function you should probably call pw_thread_loop_start() to * actually start the thread * - * \memberof pw_thread_loop */ SPA_EXPORT struct pw_thread_loop *pw_thread_loop_new_full(struct pw_loop *loop, @@ -204,7 +202,7 @@ struct pw_thread_loop *pw_thread_loop_new_full(struct pw_loop *loop, return loop_new(loop, name, props); } -/** Destroy a threaded loop \memberof pw_thread_loop */ +/** Destroy a threaded loop */ SPA_EXPORT void pw_thread_loop_destroy(struct pw_thread_loop *loop) { @@ -275,7 +273,6 @@ static void *do_loop(void *user_data) * \param loop a \ref pw_thread_loop * \return 0 on success * - * \memberof pw_thread_loop */ SPA_EXPORT int pw_thread_loop_start(struct pw_thread_loop *loop) @@ -298,7 +295,6 @@ int pw_thread_loop_start(struct pw_thread_loop *loop) * * \param loop a \ref pw_thread_loop * - * \memberof pw_thread_loop */ SPA_EXPORT void pw_thread_loop_stop(struct pw_thread_loop *loop) @@ -319,7 +315,6 @@ void pw_thread_loop_stop(struct pw_thread_loop *loop) * * \param loop a \ref pw_thread_loop * - * \memberof pw_thread_loop */ SPA_EXPORT void pw_thread_loop_lock(struct pw_thread_loop *loop) @@ -332,7 +327,6 @@ void pw_thread_loop_lock(struct pw_thread_loop *loop) * * \param loop a \ref pw_thread_loop * - * \memberof pw_thread_loop */ SPA_EXPORT void pw_thread_loop_unlock(struct pw_thread_loop *loop) @@ -349,7 +343,6 @@ void pw_thread_loop_unlock(struct pw_thread_loop *loop) * Signal the thread of \a loop. If \a wait_for_accept is true, * this function waits until \ref pw_thread_loop_accept() is called. * - * \memberof pw_thread_loop */ SPA_EXPORT void pw_thread_loop_signal(struct pw_thread_loop *loop, bool wait_for_accept) @@ -371,7 +364,6 @@ void pw_thread_loop_signal(struct pw_thread_loop *loop, bool wait_for_accept) * * \param loop a \ref pw_thread_loop to signal * - * \memberof pw_thread_loop */ SPA_EXPORT void pw_thread_loop_wait(struct pw_thread_loop *loop) @@ -390,7 +382,6 @@ void pw_thread_loop_wait(struct pw_thread_loop *loop) * \param wait_max_sec the maximum number of seconds to wait for a \ref pw_thread_loop_signal() * \return 0 on success or ETIMEDOUT on timeout or a negative errno value. * - * \memberof pw_thread_loop */ SPA_EXPORT int pw_thread_loop_timed_wait(struct pw_thread_loop *loop, int wait_max_sec) @@ -412,7 +403,6 @@ int pw_thread_loop_timed_wait(struct pw_thread_loop *loop, int wait_max_sec) * \param timeout the time in nanoseconds to add to \a tp * \return 0 on success or a negative errno value on error. * - * \memberof pw_thread_loop */ SPA_EXPORT int pw_thread_loop_get_time(struct pw_thread_loop *loop, struct timespec *abstime, int64_t timeout) @@ -436,7 +426,6 @@ int pw_thread_loop_get_time(struct pw_thread_loop *loop, struct timespec *abstim * \param abstime the absolute time to wait for a \ref pw_thread_loop_signal() * \return 0 on success or -ETIMEDOUT on timeout or a negative error value * - * \memberof pw_thread_loop */ SPA_EXPORT int pw_thread_loop_timed_wait_full(struct pw_thread_loop *loop, struct timespec *abstime) @@ -452,7 +441,6 @@ int pw_thread_loop_timed_wait_full(struct pw_thread_loop *loop, struct timespec * * \param loop a \ref pw_thread_loop to signal * - * \memberof pw_thread_loop */ SPA_EXPORT void pw_thread_loop_accept(struct pw_thread_loop *loop) @@ -466,7 +454,6 @@ void pw_thread_loop_accept(struct pw_thread_loop *loop) * \param loop a \ref pw_thread_loop to signal * \return true when called inside the thread of \a loop. * - * \memberof pw_thread_loop */ SPA_EXPORT bool pw_thread_loop_in_thread(struct pw_thread_loop *loop) diff --git a/src/pipewire/thread-loop.h b/src/pipewire/thread-loop.h index ed05e26f7..4c33e84b3 100644 --- a/src/pipewire/thread-loop.h +++ b/src/pipewire/thread-loop.h @@ -80,9 +80,7 @@ extern "C" { * All events and callbacks are called with the thread lock held. * */ -/** \class pw_thread_loop - * - * \brief PipeWire threaded loop object +/** \defgroup pw_thread_loop PipeWire Threaded Loop Object * * The threaded loop object runs a \ref pw_loop in a separate thread * and ensures proper locking is done. @@ -92,6 +90,11 @@ extern "C" { * * See also \ref page_thread_loop */ + +/** + * \addtogroup pw_thread_loop + * \{ + */ struct pw_thread_loop; /** Thread loop events */ @@ -161,6 +164,10 @@ void pw_thread_loop_accept(struct pw_thread_loop *loop); /** Check if inside the thread */ bool pw_thread_loop_in_thread(struct pw_thread_loop *loop); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/type.h b/src/pipewire/type.h index f748c348a..e026e839e 100644 --- a/src/pipewire/type.h +++ b/src/pipewire/type.h @@ -31,6 +31,14 @@ extern "C" { #include +/** \defgroup pw_type Pipewire Types + */ + +/** + * \addtogroup pw_type + * \{ + */ + enum { PW_TYPE_FIRST = SPA_TYPE_VENDOR_PipeWire, }; @@ -45,6 +53,10 @@ enum { const struct spa_type_info * pw_type_info(void); +/** + * \} + */ + #ifdef __cplusplus } #endif diff --git a/src/pipewire/utils.c b/src/pipewire/utils.c index f15b88c68..2b08a1895 100644 --- a/src/pipewire/utils.c +++ b/src/pipewire/utils.c @@ -38,8 +38,6 @@ * Repeatedly call this function to split \a str into all substrings * delimited by \a delimiter. \a state should be set to NULL on the first * invocation and passed to the function until NULL is returned. - * - * \memberof pw_utils */ SPA_EXPORT const char *pw_split_walk(const char *str, const char *delimiter, size_t * len, const char **state) @@ -64,8 +62,6 @@ const char *pw_split_walk(const char *str, const char *delimiter, size_t * len, * \param[out] n_tokens the number of tokens * \return a NULL terminated array of strings that should be * freed with \ref pw_free_strv. - * - * \memberof pw_utils */ SPA_EXPORT char **pw_split_strv(const char *str, const char *delimiter, int max_tokens, int *n_tokens) @@ -98,8 +94,6 @@ char **pw_split_strv(const char *str, const char *delimiter, int max_tokens, int * \param str a NULL terminated array of string * * Free all the strings in the array and the array - * - * \memberof pw_utils */ SPA_EXPORT void pw_free_strv(char **str) @@ -117,8 +111,6 @@ void pw_free_strv(char **str) * * Strip whitespace before and after \a str. \a str will be * modified. - * - * \memberof pw_utils */ SPA_EXPORT char *pw_strip(char *str, const char *whitespace) diff --git a/src/pipewire/utils.h b/src/pipewire/utils.h index 4614626d4..95e0081f9 100644 --- a/src/pipewire/utils.h +++ b/src/pipewire/utils.h @@ -34,11 +34,16 @@ extern "C" { #include #include -/** \class pw_utils +/** \defgroup pw_utils Pipewire Utility Functions * * Various utility functions */ +/** + * \addtogroup pw_utils + * \{ + */ + /** a function to destroy an item \memberof pw_utils */ typedef void (*pw_destroy_t) (void *object); @@ -76,6 +81,10 @@ pw_strip(char *str, const char *whitespace); }) #endif +/** + * \} + */ + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/pipewire/work-queue.c b/src/pipewire/work-queue.c index 8e02a058d..040eefc78 100644 --- a/src/pipewire/work-queue.c +++ b/src/pipewire/work-queue.c @@ -94,7 +94,6 @@ static void process_work_queue(void *data, uint64_t count) * \param loop the loop to use * \return a newly allocated work queue * - * \memberof pw_work_queue */ struct pw_work_queue *pw_work_queue_new(struct pw_loop *loop) { @@ -129,7 +128,6 @@ error_free: /** Destroy a work queue * \param queue the work queue to destroy * - * \memberof pw_work_queue */ void pw_work_queue_destroy(struct pw_work_queue *queue) { @@ -158,7 +156,6 @@ void pw_work_queue_destroy(struct pw_work_queue *queue) * \param func a work function * \param data passed to \a func * - * \memberof pw_work_queue */ SPA_EXPORT uint32_t @@ -214,7 +211,6 @@ pw_work_queue_add(struct pw_work_queue *queue, void *obj, int res, pw_work_func_ * \param obj the owner object * \param id the wotk id to cancel * - * \memberof pw_work_queue */ SPA_EXPORT int pw_work_queue_cancel(struct pw_work_queue *queue, void *obj, uint32_t id) @@ -246,7 +242,6 @@ int pw_work_queue_cancel(struct pw_work_queue *queue, void *obj, uint32_t id) * \param seq the sequence number that completed * \param res 0 if the item was found, < 0 on error * - * \memberof pw_work_queue */ SPA_EXPORT int pw_work_queue_complete(struct pw_work_queue *queue, void *obj, uint32_t seq, int res) diff --git a/src/pipewire/work-queue.h b/src/pipewire/work-queue.h index da2099efd..0e85e1bf7 100644 --- a/src/pipewire/work-queue.h +++ b/src/pipewire/work-queue.h @@ -29,9 +29,12 @@ extern "C" { #endif -/** \class pw_work_queue - * - * PipeWire work queue object +/** \defgroup pw_work_queue PipeWire Work Queue Object + */ + +/** + * \addtogroup pw_work_queue + * \{ */ struct pw_work_queue; @@ -56,6 +59,10 @@ pw_work_queue_cancel(struct pw_work_queue *queue, void *obj, uint32_t id); int pw_work_queue_complete(struct pw_work_queue *queue, void *obj, uint32_t seq, int res); +/** + * \} + */ + #ifdef __cplusplus } #endif