mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	sink: Reduce chat sink priority
Some gaming sound cards have custom profiles with analog-game and analog-chat mappings that exist simultaneously. The game sink should have higher priority than the chat sink, but currently there's no way to affect the sink priorities from the profile-set configuration (the mapping priority is not propagated to the sink priority). I first thought about adding the mapping priority to the sink priority, but that could mess up the prioritization system in pa_device_init_priority(). I ended up checking for the intended roles property to reduce the chat sink priority. I also reduced the iec958 priority so that the chat and iec958 sinks don't end up with the same priority. Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/818 Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/266>
This commit is contained in:
		
							parent
							
								
									3afb7f8c08
								
							
						
					
					
						commit
						6b04e2a89e
					
				
					 1 changed files with 10 additions and 2 deletions
				
			
		| 
						 | 
					@ -3609,10 +3609,18 @@ unsigned pa_device_init_priority(pa_proplist *p) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ((s = pa_proplist_gets(p, PA_PROP_DEVICE_PROFILE_NAME))) {
 | 
					    if ((s = pa_proplist_gets(p, PA_PROP_DEVICE_PROFILE_NAME))) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (pa_startswith(s, "analog-"))
 | 
					        if (pa_startswith(s, "analog-")) {
 | 
				
			||||||
            priority += 9;
 | 
					            priority += 9;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            /* If an analog device has an intended role of "phone", it probably
 | 
				
			||||||
 | 
					             * co-exists with another device that is meant for everything else,
 | 
				
			||||||
 | 
					             * and that other device should have higher priority than the phone
 | 
				
			||||||
 | 
					             * device. */
 | 
				
			||||||
 | 
					            if (pa_str_in_list_spaces(pa_proplist_gets(p, PA_PROP_DEVICE_INTENDED_ROLES), "phone"))
 | 
				
			||||||
 | 
					                priority -= 1;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        else if (pa_startswith(s, "iec958-"))
 | 
					        else if (pa_startswith(s, "iec958-"))
 | 
				
			||||||
            priority += 8;
 | 
					            priority += 7;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return priority;
 | 
					    return priority;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue