mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-05 13:30:02 -05:00
WIP change object model
This commit is contained in:
parent
190f01d88e
commit
c25ccbb4ba
44 changed files with 1557 additions and 2525 deletions
|
|
@ -35,15 +35,13 @@ extern "C" {
|
|||
typedef struct _PinosRegistry PinosRegistry;
|
||||
|
||||
typedef struct {
|
||||
uint32_t core;
|
||||
uint32_t daemon;
|
||||
uint32_t registry;
|
||||
uint32_t node;
|
||||
uint32_t port;
|
||||
uint32_t link;
|
||||
uint32_t node_factory;
|
||||
uint32_t link;
|
||||
uint32_t client;
|
||||
uint32_t monitor;
|
||||
|
||||
uint32_t spa_node;
|
||||
uint32_t spa_clock;
|
||||
uint32_t spa_monitor;
|
||||
|
|
@ -55,35 +53,13 @@ typedef struct {
|
|||
* Pinos registry struct.
|
||||
*/
|
||||
struct _PinosRegistry {
|
||||
PinosObject object;
|
||||
|
||||
SpaIDMap *map;
|
||||
PinosURI uri;
|
||||
PinosMap objects;
|
||||
|
||||
PinosSignal object_added;
|
||||
PinosSignal object_removed;
|
||||
};
|
||||
|
||||
void pinos_registry_init (PinosRegistry *reg);
|
||||
|
||||
static inline void
|
||||
pinos_registry_add_object (PinosRegistry *reg,
|
||||
PinosObject *object)
|
||||
{
|
||||
object->id = pinos_map_insert_new (®->objects, object);
|
||||
pinos_signal_emit (®->object_added, reg, object);
|
||||
}
|
||||
|
||||
static inline void
|
||||
pinos_registry_remove_object (PinosRegistry *reg,
|
||||
PinosObject *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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue