WIP change object model

This commit is contained in:
Wim Taymans 2016-11-14 12:42:00 +01:00
parent 190f01d88e
commit c25ccbb4ba
44 changed files with 1557 additions and 2525 deletions

View file

@ -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 (&reg->objects, object);
pinos_signal_emit (&reg->object_added, reg, object);
}
static inline void
pinos_registry_remove_object (PinosRegistry *reg,
PinosObject *object)
{
pinos_signal_emit (&reg->object_removed, reg, object);
pinos_map_remove (&reg->objects, object->id);
}
PinosObject * pinos_registry_iterate_objects (PinosRegistry *reg,
uint32_t type,
void **state);