mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	alsa-mixer: Use separate profiles for Multichannel Input/Output
This works around bug 80850: a mapping can only have one channel map, and in case of a 6-out 10-in device, the mapping will be adjusted to have both 10 and 6 channels, which does not work. Reported-by: Benjamin Tegge <benjaminosm@googlemail.com> Suggested-by: Raymond Yau <superquad.vortex2@gmail.com> BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=80850 Signed-off-by: David Henningsson <david.henningsson@canonical.com>
This commit is contained in:
		
							parent
							
								
									3ac73598c6
								
							
						
					
					
						commit
						02dc6d84ed
					
				
					 2 changed files with 15 additions and 2 deletions
				
			
		| 
						 | 
					@ -3897,7 +3897,10 @@ static int mapping_verify(pa_alsa_mapping *m, const pa_channel_map *bonus) {
 | 
				
			||||||
    static const struct description_map well_known_descriptions[] = {
 | 
					    static const struct description_map well_known_descriptions[] = {
 | 
				
			||||||
        { "analog-mono",            N_("Analog Mono") },
 | 
					        { "analog-mono",            N_("Analog Mono") },
 | 
				
			||||||
        { "analog-stereo",          N_("Analog Stereo") },
 | 
					        { "analog-stereo",          N_("Analog Stereo") },
 | 
				
			||||||
        { "multichannel",           N_("Multichannel") },
 | 
					        /* Note: Not translated to "Multichannel Input" - then the source name would be "Multichannel Input Input".
 | 
				
			||||||
 | 
					           Same for multichannel-output. */
 | 
				
			||||||
 | 
					        { "multichannel-input",     N_("Multichannel") },
 | 
				
			||||||
 | 
					        { "multichannel-output",    N_("Multichannel") },
 | 
				
			||||||
        { "analog-surround-21",     N_("Analog Surround 2.1") },
 | 
					        { "analog-surround-21",     N_("Analog Surround 2.1") },
 | 
				
			||||||
        { "analog-surround-30",     N_("Analog Surround 3.0") },
 | 
					        { "analog-surround-30",     N_("Analog Surround 3.0") },
 | 
				
			||||||
        { "analog-surround-31",     N_("Analog Surround 3.1") },
 | 
					        { "analog-surround-31",     N_("Analog Surround 3.1") },
 | 
				
			||||||
| 
						 | 
					@ -4049,6 +4052,7 @@ static int profile_verify(pa_alsa_profile *p) {
 | 
				
			||||||
        { "output:analog-mono+input:analog-mono",     N_("Analog Mono Duplex") },
 | 
					        { "output:analog-mono+input:analog-mono",     N_("Analog Mono Duplex") },
 | 
				
			||||||
        { "output:analog-stereo+input:analog-stereo", N_("Analog Stereo Duplex") },
 | 
					        { "output:analog-stereo+input:analog-stereo", N_("Analog Stereo Duplex") },
 | 
				
			||||||
        { "output:iec958-stereo+input:iec958-stereo", N_("Digital Stereo Duplex (IEC958)") },
 | 
					        { "output:iec958-stereo+input:iec958-stereo", N_("Digital Stereo Duplex (IEC958)") },
 | 
				
			||||||
 | 
					        { "output:multichannel-output+input:multichannel-input", N_("Multichannel Duplex") },
 | 
				
			||||||
        { "off",                                      N_("Off") }
 | 
					        { "off",                                      N_("Off") }
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -442,12 +442,21 @@ channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
 | 
				
			||||||
priority = 1
 | 
					priority = 1
 | 
				
			||||||
direction = output
 | 
					direction = output
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[Mapping multichannel]
 | 
					[Mapping multichannel-output]
 | 
				
			||||||
device-strings = hw:%f
 | 
					device-strings = hw:%f
 | 
				
			||||||
channel-map = left,right,rear-left,rear-right
 | 
					channel-map = left,right,rear-left,rear-right
 | 
				
			||||||
exact-channels = false
 | 
					exact-channels = false
 | 
				
			||||||
fallback = yes
 | 
					fallback = yes
 | 
				
			||||||
priority = 1
 | 
					priority = 1
 | 
				
			||||||
 | 
					direction = output
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Mapping multichannel-input]
 | 
				
			||||||
 | 
					device-strings = hw:%f
 | 
				
			||||||
 | 
					channel-map = left,right,rear-left,rear-right
 | 
				
			||||||
 | 
					exact-channels = false
 | 
				
			||||||
 | 
					fallback = yes
 | 
				
			||||||
 | 
					priority = 1
 | 
				
			||||||
 | 
					direction = input
 | 
				
			||||||
 | 
					
 | 
				
			||||||
; An example for defining multiple-sink profiles
 | 
					; An example for defining multiple-sink profiles
 | 
				
			||||||
#[Profile output:analog-stereo+output:iec958-stereo+input:analog-stereo]
 | 
					#[Profile output:analog-stereo+output:iec958-stereo+input:analog-stereo]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue