mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-12-19 08:57:14 -05:00
WIP
Change object model
This commit is contained in:
parent
d0f95fc323
commit
190f01d88e
38 changed files with 1594 additions and 3562 deletions
|
|
@ -35,6 +35,7 @@ extern "C" {
|
|||
typedef struct _PinosRegistry PinosRegistry;
|
||||
|
||||
typedef struct {
|
||||
uint32_t core;
|
||||
uint32_t daemon;
|
||||
uint32_t registry;
|
||||
uint32_t node;
|
||||
|
|
@ -42,6 +43,7 @@ typedef struct {
|
|||
uint32_t link;
|
||||
uint32_t node_factory;
|
||||
uint32_t client;
|
||||
uint32_t monitor;
|
||||
uint32_t spa_node;
|
||||
uint32_t spa_clock;
|
||||
uint32_t spa_monitor;
|
||||
|
|
@ -70,17 +72,27 @@ pinos_registry_add_object (PinosRegistry *reg,
|
|||
PinosObject *object)
|
||||
{
|
||||
object->id = pinos_map_insert_new (®->objects, object);
|
||||
pinos_signal_emit (®->object_added, object);
|
||||
pinos_signal_emit (®->object_added, reg, object);
|
||||
}
|
||||
|
||||
static inline void
|
||||
pinos_registry_remove_object (PinosRegistry *reg,
|
||||
PinosObject *object)
|
||||
{
|
||||
pinos_signal_emit (®->object_removed, object);
|
||||
pinos_signal_emit (®->object_removed, reg, object);
|
||||
pinos_map_remove (®->objects, object->id);
|
||||
}
|
||||
|
||||
|
||||
PinosObject * pinos_registry_iterate_objects (PinosRegistry *reg,
|
||||
uint32_t type,
|
||||
void **state);
|
||||
|
||||
#define pinos_registry_iterate_nodes(reg,state) \
|
||||
pinos_registry_iterate_objects(reg, (reg)->uri.node,state)
|
||||
#define pinos_registry_iterate_node_factoriess(reg,state) \
|
||||
pinos_registry_iterate_objects(reg, (reg)->uri.node_factory,state)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue