mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -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