mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	remote: pause with invoke
This commit is contained in:
		
							parent
							
								
									bf344a86e5
								
							
						
					
					
						commit
						67e6a66429
					
				
					 2 changed files with 16 additions and 4 deletions
				
			
		| 
						 | 
					@ -1 +1 @@
 | 
				
			||||||
Subproject commit d02a8375c3c5c59303cb31e43f5addc3517f1f39
 | 
					Subproject commit 2864e7ec75602534795240a376804007d16db213
 | 
				
			||||||
| 
						 | 
					@ -886,6 +886,17 @@ static void client_node_event(void *object, const struct spa_event *event)
 | 
				
			||||||
	pw_log_warn("unhandled node event %d", SPA_EVENT_TYPE(event));
 | 
						pw_log_warn("unhandled node event %d", SPA_EVENT_TYPE(event));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static int
 | 
				
			||||||
 | 
					do_pause_source(struct spa_loop *loop,
 | 
				
			||||||
 | 
					                 bool async, uint32_t seq, const void *data, size_t size, void *user_data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						struct node_data *d = user_data;
 | 
				
			||||||
 | 
						pw_loop_update_io(d->core->data_loop,
 | 
				
			||||||
 | 
								  d->rtsocket_source,
 | 
				
			||||||
 | 
								  SPA_IO_ERR | SPA_IO_HUP);
 | 
				
			||||||
 | 
					        return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void client_node_command(void *object, uint32_t seq, const struct spa_command *command)
 | 
					static void client_node_command(void *object, uint32_t seq, const struct spa_command *command)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct pw_proxy *proxy = object;
 | 
						struct pw_proxy *proxy = object;
 | 
				
			||||||
| 
						 | 
					@ -898,9 +909,8 @@ static void client_node_command(void *object, uint32_t seq, const struct spa_com
 | 
				
			||||||
		pw_log_debug("node %p: pause %d", proxy, seq);
 | 
							pw_log_debug("node %p: pause %d", proxy, seq);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (data->rtsocket_source) {
 | 
							if (data->rtsocket_source) {
 | 
				
			||||||
			pw_loop_update_io(remote->core->data_loop,
 | 
								pw_loop_invoke(data->core->data_loop,
 | 
				
			||||||
				  data->rtsocket_source,
 | 
									do_pause_source, 1, NULL, 0, true, data);
 | 
				
			||||||
				  SPA_IO_ERR | SPA_IO_HUP);
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if ((res = spa_node_send_command(data->node->node, command)) < 0)
 | 
							if ((res = spa_node_send_command(data->node->node, command)) < 0)
 | 
				
			||||||
| 
						 | 
					@ -985,6 +995,8 @@ client_node_port_set_param(void *object,
 | 
				
			||||||
		goto done;
 | 
							goto done;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        pw_log_debug("port %p: set param %d %p", port, id, param);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (id == SPA_PARAM_Format) {
 | 
					        if (id == SPA_PARAM_Format) {
 | 
				
			||||||
		struct mix *mix;
 | 
							struct mix *mix;
 | 
				
			||||||
		spa_list_for_each(mix, &data->mix[direction], link) {
 | 
							spa_list_for_each(mix, &data->mix[direction], link) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue