mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	impl-node: move 2 state variables to private
So that they can be used when making scheduler decisions.
This commit is contained in:
		
							parent
							
								
									0ddf80d470
								
							
						
					
					
						commit
						26496724c6
					
				
					 2 changed files with 12 additions and 11 deletions
				
			
		| 
						 | 
					@ -59,8 +59,6 @@ struct impl {
 | 
				
			||||||
	struct spa_list param_list;
 | 
						struct spa_list param_list;
 | 
				
			||||||
	struct spa_list pending_list;
 | 
						struct spa_list pending_list;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	unsigned int pause_on_idle:1;
 | 
					 | 
				
			||||||
	unsigned int suspend_on_idle:1;
 | 
					 | 
				
			||||||
	unsigned int cache_params:1;
 | 
						unsigned int cache_params:1;
 | 
				
			||||||
	unsigned int pending_play:1;
 | 
						unsigned int pending_play:1;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					@ -221,12 +219,12 @@ static int idle_node(struct pw_impl_node *this)
 | 
				
			||||||
	pw_log_debug("%p: idle node state:%s pending:%s pause-on-idle:%d", this,
 | 
						pw_log_debug("%p: idle node state:%s pending:%s pause-on-idle:%d", this,
 | 
				
			||||||
			pw_node_state_as_string(this->info.state),
 | 
								pw_node_state_as_string(this->info.state),
 | 
				
			||||||
			pw_node_state_as_string(impl->pending_state),
 | 
								pw_node_state_as_string(impl->pending_state),
 | 
				
			||||||
			impl->pause_on_idle);
 | 
								this->pause_on_idle);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (impl->pending_state <= PW_NODE_STATE_IDLE)
 | 
						if (impl->pending_state <= PW_NODE_STATE_IDLE)
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!impl->pause_on_idle)
 | 
						if (!this->pause_on_idle)
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	node_deactivate(this);
 | 
						node_deactivate(this);
 | 
				
			||||||
| 
						 | 
					@ -385,7 +383,7 @@ static void node_update_state(struct pw_impl_node *node, enum pw_node_state stat
 | 
				
			||||||
	case PW_NODE_STATE_IDLE:
 | 
						case PW_NODE_STATE_IDLE:
 | 
				
			||||||
	case PW_NODE_STATE_SUSPENDED:
 | 
						case PW_NODE_STATE_SUSPENDED:
 | 
				
			||||||
	case PW_NODE_STATE_ERROR:
 | 
						case PW_NODE_STATE_ERROR:
 | 
				
			||||||
		if (state != PW_NODE_STATE_IDLE || impl->pause_on_idle)
 | 
							if (state != PW_NODE_STATE_IDLE || node->pause_on_idle)
 | 
				
			||||||
			pw_loop_invoke(node->data_loop, do_node_remove, 1, NULL, 0, true, node);
 | 
								pw_loop_invoke(node->data_loop, do_node_remove, 1, NULL, 0, true, node);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
| 
						 | 
					@ -422,8 +420,9 @@ static void node_update_state(struct pw_impl_node *node, enum pw_node_state stat
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (old == PW_NODE_STATE_RUNNING &&
 | 
						if (old == PW_NODE_STATE_RUNNING &&
 | 
				
			||||||
	    state == PW_NODE_STATE_IDLE &&
 | 
						    state == PW_NODE_STATE_IDLE &&
 | 
				
			||||||
	    impl->suspend_on_idle)
 | 
						    node->suspend_on_idle) {
 | 
				
			||||||
		 pw_impl_node_set_state(node, PW_NODE_STATE_SUSPENDED);
 | 
							pw_impl_node_set_state(node, PW_NODE_STATE_SUSPENDED);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int suspend_node(struct pw_impl_node *this)
 | 
					static int suspend_node(struct pw_impl_node *this)
 | 
				
			||||||
| 
						 | 
					@ -917,10 +916,10 @@ static void check_properties(struct pw_impl_node *node)
 | 
				
			||||||
		pw_log_debug("%p: name '%s'", node, node->name);
 | 
							pw_log_debug("%p: name '%s'", node, node->name);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	impl->pause_on_idle = pw_properties_get_bool(node->properties, PW_KEY_NODE_PAUSE_ON_IDLE, true);
 | 
						node->pause_on_idle = pw_properties_get_bool(node->properties, PW_KEY_NODE_PAUSE_ON_IDLE, true);
 | 
				
			||||||
	impl->suspend_on_idle = pw_properties_get_bool(node->properties, PW_KEY_NODE_SUSPEND_ON_IDLE, false);
 | 
						node->suspend_on_idle = pw_properties_get_bool(node->properties, PW_KEY_NODE_SUSPEND_ON_IDLE, false);
 | 
				
			||||||
	impl->cache_params =  pw_properties_get_bool(node->properties, PW_KEY_NODE_CACHE_PARAMS, true);
 | 
					 | 
				
			||||||
	node->transport_sync = pw_properties_get_bool(node->properties, PW_KEY_NODE_TRANSPORT_SYNC, false);
 | 
						node->transport_sync = pw_properties_get_bool(node->properties, PW_KEY_NODE_TRANSPORT_SYNC, false);
 | 
				
			||||||
 | 
						impl->cache_params =  pw_properties_get_bool(node->properties, PW_KEY_NODE_CACHE_PARAMS, true);
 | 
				
			||||||
	driver = pw_properties_get_bool(node->properties, PW_KEY_NODE_DRIVER, false);
 | 
						driver = pw_properties_get_bool(node->properties, PW_KEY_NODE_DRIVER, false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (node->driver != driver) {
 | 
						if (node->driver != driver) {
 | 
				
			||||||
| 
						 | 
					@ -2215,7 +2214,7 @@ int pw_impl_node_set_state(struct pw_impl_node *node, enum pw_node_state state)
 | 
				
			||||||
			pw_node_state_as_string(old),
 | 
								pw_node_state_as_string(old),
 | 
				
			||||||
			pw_node_state_as_string(state),
 | 
								pw_node_state_as_string(state),
 | 
				
			||||||
			node->active,
 | 
								node->active,
 | 
				
			||||||
			impl->pause_on_idle);
 | 
								node->pause_on_idle);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (old != state)
 | 
						if (old != state)
 | 
				
			||||||
		pw_impl_node_emit_state_request(node, state);
 | 
							pw_impl_node_emit_state_request(node, state);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -719,6 +719,8 @@ struct pw_impl_node {
 | 
				
			||||||
	unsigned int current_pending:1;	/**< a quantum/rate update is pending */
 | 
						unsigned int current_pending:1;	/**< a quantum/rate update is pending */
 | 
				
			||||||
	unsigned int moved:1;		/**< the node was moved drivers */
 | 
						unsigned int moved:1;		/**< the node was moved drivers */
 | 
				
			||||||
	unsigned int added:1;		/**< the node was add to graph */
 | 
						unsigned int added:1;		/**< the node was add to graph */
 | 
				
			||||||
 | 
						unsigned int pause_on_idle:1;	/**< Pause processing when IDLE */
 | 
				
			||||||
 | 
						unsigned int suspend_on_idle:1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	uint32_t port_user_data_size;	/**< extra size for port user data */
 | 
						uint32_t port_user_data_size;	/**< extra size for port user data */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue