mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	port: add filter to pw_port_for_each_filtered_param
This commit is contained in:
		
							parent
							
								
									53e03019da
								
							
						
					
					
						commit
						11f42d6262
					
				
					 2 changed files with 5 additions and 3 deletions
				
			
		| 
						 | 
					@ -651,18 +651,19 @@ int pw_port_for_each_filtered_param(struct pw_port *in_port,
 | 
				
			||||||
				    struct pw_port *out_port,
 | 
									    struct pw_port *out_port,
 | 
				
			||||||
				    uint32_t in_param_id,
 | 
									    uint32_t in_param_id,
 | 
				
			||||||
				    uint32_t out_param_id,
 | 
									    uint32_t out_param_id,
 | 
				
			||||||
 | 
									    const struct spa_pod *filter,
 | 
				
			||||||
				    int (*callback) (void *data,
 | 
									    int (*callback) (void *data,
 | 
				
			||||||
						     uint32_t id, uint32_t index, uint32_t next,
 | 
											     uint32_t id, uint32_t index, uint32_t next,
 | 
				
			||||||
						     struct spa_pod *param),
 | 
											     struct spa_pod *param),
 | 
				
			||||||
				    void *data)
 | 
									    void *data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int res;
 | 
						int res;
 | 
				
			||||||
	struct param_filter filter = { in_port, out_port, in_param_id, out_param_id, callback, data, 0 };
 | 
						struct param_filter fd = { in_port, out_port, in_param_id, out_param_id, callback, data, 0 };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((res = pw_port_for_each_param(in_port, in_param_id, 0, 0, NULL, do_filter, &filter)) < 0)
 | 
						if ((res = pw_port_for_each_param(in_port, in_param_id, 0, 0, filter, do_filter, &fd)) < 0)
 | 
				
			||||||
		return res;
 | 
							return res;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (filter.n_params == 0)
 | 
						if (fd.n_params == 0)
 | 
				
			||||||
		res = do_filter(&filter, 0, 0, 0, NULL);
 | 
							res = do_filter(&filter, 0, 0, 0, NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return res;
 | 
						return res;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -568,6 +568,7 @@ int pw_port_for_each_filtered_param(struct pw_port *in_port,
 | 
				
			||||||
				    struct pw_port *out_port,
 | 
									    struct pw_port *out_port,
 | 
				
			||||||
				    uint32_t in_param_id,
 | 
									    uint32_t in_param_id,
 | 
				
			||||||
				    uint32_t out_param_id,
 | 
									    uint32_t out_param_id,
 | 
				
			||||||
 | 
									    const struct spa_pod *filter,
 | 
				
			||||||
				    int (*callback) (void *data,
 | 
									    int (*callback) (void *data,
 | 
				
			||||||
						     uint32_t id, uint32_t index, uint32_t next,
 | 
											     uint32_t id, uint32_t index, uint32_t next,
 | 
				
			||||||
						     struct spa_pod *param),
 | 
											     struct spa_pod *param),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue