mirror of
				https://github.com/alsa-project/alsa-lib.git
				synced 2025-11-03 09:01:52 -05:00 
			
		
		
		
	enable dmix-ing and proper 5.1 routing for USB audio devices
add a configuration file for USB audio devices
This commit is contained in:
		
							parent
							
								
									f54f03bfc4
								
							
						
					
					
						commit
						09eb800771
					
				
					 1 changed files with 334 additions and 0 deletions
				
			
		
							
								
								
									
										334
									
								
								src/conf/cards/USB-Audio.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										334
									
								
								src/conf/cards/USB-Audio.conf
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,334 @@
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  USB-Audio.conf - configuration for USB Audio devices
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  DO NO EDIT; this is an internal ALSA file.
 | 
				
			||||||
 | 
					#  If you want to add your own definitions, put them into /etc/asound.conf or
 | 
				
			||||||
 | 
					#  ~/.asoundrc, with "cards." before the "USB-Audio", e.g.:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  cards.USB-Audio.pcm.use_dmix."NoiseBlaster 3000" no
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  If your device requires such a definition to work correctly, please report it
 | 
				
			||||||
 | 
					#  to <alsa-devel@lists.sourceforge.net>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If a device has sample formats not supported by dmix, dmix can be disabled
 | 
				
			||||||
 | 
					# here.
 | 
				
			||||||
 | 
					USB-Audio.pcm.use_dmix {
 | 
				
			||||||
 | 
						"AudioPhile" no    # uses big-endian 24-bit samples
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If a device does not have a four-channel mode for the front/rear outputs,
 | 
				
			||||||
 | 
					# other modes can be selected here.
 | 
				
			||||||
 | 
					# six_channels       - for devices that route the last two of the four channels
 | 
				
			||||||
 | 
					#                      to the center/LFE outputs
 | 
				
			||||||
 | 
					# two_stereo_devices - for devices that have two stereo audio interfaces
 | 
				
			||||||
 | 
					USB-Audio.pcm.surround40_type {
 | 
				
			||||||
 | 
						"AudioPhile" two_stereo_devices
 | 
				
			||||||
 | 
						"OmniStudio" two_stereo_devices
 | 
				
			||||||
 | 
						"Quattro" two_stereo_devices
 | 
				
			||||||
 | 
						"SB Audigy 2 NX" six_channels
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If a device does not use the first PCM device for digital data, the device
 | 
				
			||||||
 | 
					# number for the iec958 device can be changed here.
 | 
				
			||||||
 | 
					USB-Audio.pcm.iec958_device {
 | 
				
			||||||
 | 
						# "NoiseBlaster 3000" 42
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If a device requires non-standard definitions for front, surround40,
 | 
				
			||||||
 | 
					# surround51, surround71 or iec958, they can be defined here.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# USB-Audio."NoiseBlaster 3000".pcm.surround51 {
 | 
				
			||||||
 | 
					#	@args [ CARD ]
 | 
				
			||||||
 | 
					#	@args.CARD { type string }
 | 
				
			||||||
 | 
					#	...
 | 
				
			||||||
 | 
					# }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					################################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<confdir:pcm/front.conf>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USB-Audio.pcm.front.0 {
 | 
				
			||||||
 | 
						@args [ CARD ]
 | 
				
			||||||
 | 
						@args.CARD { type string }
 | 
				
			||||||
 | 
						@func refer
 | 
				
			||||||
 | 
						name {
 | 
				
			||||||
 | 
							@func concat
 | 
				
			||||||
 | 
							strings [
 | 
				
			||||||
 | 
								"cards.USB-Audio."
 | 
				
			||||||
 | 
								{ @func card_name card $CARD }
 | 
				
			||||||
 | 
								".pcm.front:CARD=" $CARD
 | 
				
			||||||
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						default {
 | 
				
			||||||
 | 
							# We could use softvol, but the driver might have guessed a
 | 
				
			||||||
 | 
							# wrong name for the real volume control.
 | 
				
			||||||
 | 
							type hw
 | 
				
			||||||
 | 
							card $CARD
 | 
				
			||||||
 | 
							device 0
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}	
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USB-Audio.pcm.default {
 | 
				
			||||||
 | 
						@args [ CARD ]
 | 
				
			||||||
 | 
						@args.CARD { type string }
 | 
				
			||||||
 | 
						type asym
 | 
				
			||||||
 | 
						playback.pcm {
 | 
				
			||||||
 | 
							type plug
 | 
				
			||||||
 | 
							slave.pcm {
 | 
				
			||||||
 | 
								@func refer
 | 
				
			||||||
 | 
								name {
 | 
				
			||||||
 | 
									@func concat
 | 
				
			||||||
 | 
									strings [
 | 
				
			||||||
 | 
										"cards.USB-Audio.pcm.default_playback_dmix_"
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											@func refer
 | 
				
			||||||
 | 
											name {
 | 
				
			||||||
 | 
												@func concat
 | 
				
			||||||
 | 
												strings [
 | 
				
			||||||
 | 
													"cards.USB-Audio.pcm.use_dmix."
 | 
				
			||||||
 | 
													{ @func card_name card $CARD }
 | 
				
			||||||
 | 
												]
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											default yes
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										":CARD=" $CARD
 | 
				
			||||||
 | 
									]
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						capture.pcm {
 | 
				
			||||||
 | 
							type plug
 | 
				
			||||||
 | 
							slave.pcm {
 | 
				
			||||||
 | 
								@func concat
 | 
				
			||||||
 | 
								strings [ "dsnoop:" $CARD ]
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USB-Audio.pcm.default_playback_dmix_yes {
 | 
				
			||||||
 | 
						@args [ CARD ]
 | 
				
			||||||
 | 
						@args.CARD { type string }
 | 
				
			||||||
 | 
						@func concat
 | 
				
			||||||
 | 
						strings [ "dmix:" $CARD ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USB-Audio.pcm.default_playback_dmix_no {
 | 
				
			||||||
 | 
						@args [ CARD ]
 | 
				
			||||||
 | 
						@args.CARD { type string }
 | 
				
			||||||
 | 
						type hw
 | 
				
			||||||
 | 
						card $CARD
 | 
				
			||||||
 | 
						device 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<confdir:pcm/surround40.conf>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USB-Audio.pcm.surround40.0 {
 | 
				
			||||||
 | 
						@args [ CARD ]
 | 
				
			||||||
 | 
						@args.CARD { type string }
 | 
				
			||||||
 | 
						@func refer
 | 
				
			||||||
 | 
						name {
 | 
				
			||||||
 | 
							@func concat
 | 
				
			||||||
 | 
							strings [
 | 
				
			||||||
 | 
								"cards.USB-Audio."
 | 
				
			||||||
 | 
								{ @func card_name card $CARD }
 | 
				
			||||||
 | 
								".pcm.surround40:CARD=" $CARD
 | 
				
			||||||
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						default {
 | 
				
			||||||
 | 
							@func refer
 | 
				
			||||||
 | 
							name {
 | 
				
			||||||
 | 
								@func concat
 | 
				
			||||||
 | 
								strings [
 | 
				
			||||||
 | 
									"cards.USB-Audio.pcm.surround40_"
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										@func refer
 | 
				
			||||||
 | 
										name {
 | 
				
			||||||
 | 
											@func concat
 | 
				
			||||||
 | 
											strings [
 | 
				
			||||||
 | 
												"cards.USB-Audio.pcm.surround40_type."
 | 
				
			||||||
 | 
												{ @func card_name card $CARD }
 | 
				
			||||||
 | 
											]
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										default default
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									":CARD=" $CARD
 | 
				
			||||||
 | 
								]
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USB-Audio.pcm.surround40_default {
 | 
				
			||||||
 | 
						@args [ CARD ]
 | 
				
			||||||
 | 
						@args.CARD { type string }
 | 
				
			||||||
 | 
						type hw
 | 
				
			||||||
 | 
						card $CARD
 | 
				
			||||||
 | 
						device 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USB-Audio.pcm.surround40_six_channels {
 | 
				
			||||||
 | 
						@args [ CARD ]
 | 
				
			||||||
 | 
						@args.CARD { type string }
 | 
				
			||||||
 | 
						type route
 | 
				
			||||||
 | 
						ttable.0.0 1
 | 
				
			||||||
 | 
						ttable.1.1 1
 | 
				
			||||||
 | 
						ttable.2.4 1
 | 
				
			||||||
 | 
						ttable.3.5 1
 | 
				
			||||||
 | 
						slave {
 | 
				
			||||||
 | 
							pcm {
 | 
				
			||||||
 | 
								type hw
 | 
				
			||||||
 | 
								card $CARD
 | 
				
			||||||
 | 
								device 0
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							channels 6
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USB-Audio.pcm.surround40_two_stereo_devices {
 | 
				
			||||||
 | 
						@args [ CARD ]
 | 
				
			||||||
 | 
						@args.CARD { type string }
 | 
				
			||||||
 | 
						type route
 | 
				
			||||||
 | 
						ttable.0.0 1
 | 
				
			||||||
 | 
						ttable.1.1 1
 | 
				
			||||||
 | 
						ttable.2.2 1
 | 
				
			||||||
 | 
						ttable.3.3 1
 | 
				
			||||||
 | 
						slave.pcm {
 | 
				
			||||||
 | 
							type multi
 | 
				
			||||||
 | 
							slaves {
 | 
				
			||||||
 | 
								a {
 | 
				
			||||||
 | 
									pcm {
 | 
				
			||||||
 | 
										type hw
 | 
				
			||||||
 | 
										card $CARD
 | 
				
			||||||
 | 
										device 0
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									channels 2
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								b {
 | 
				
			||||||
 | 
									pcm {
 | 
				
			||||||
 | 
										type hw
 | 
				
			||||||
 | 
										card $CARD
 | 
				
			||||||
 | 
										device 1
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									channels 2
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							bindings [
 | 
				
			||||||
 | 
								{ slave a channel 0 }
 | 
				
			||||||
 | 
								{ slave a channel 1 }
 | 
				
			||||||
 | 
								{ slave b channel 0 }
 | 
				
			||||||
 | 
								{ slave b channel 1 }
 | 
				
			||||||
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<confdir:pcm/surround41.conf>
 | 
				
			||||||
 | 
					<confdir:pcm/surround50.conf>
 | 
				
			||||||
 | 
					<confdir:pcm/surround51.conf>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USB-Audio.pcm.surround51.0 {
 | 
				
			||||||
 | 
						@args [ CARD ]
 | 
				
			||||||
 | 
						@args.CARD { type string }
 | 
				
			||||||
 | 
						@func refer
 | 
				
			||||||
 | 
						name {
 | 
				
			||||||
 | 
							@func concat
 | 
				
			||||||
 | 
							strings [
 | 
				
			||||||
 | 
								"cards.USB-Audio."
 | 
				
			||||||
 | 
								{ @func card_name card $CARD }
 | 
				
			||||||
 | 
								".pcm.surround51:CARD=" $CARD
 | 
				
			||||||
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						default {
 | 
				
			||||||
 | 
							type route
 | 
				
			||||||
 | 
							ttable.0.0 1
 | 
				
			||||||
 | 
							ttable.1.1 1
 | 
				
			||||||
 | 
							ttable.2.4 1
 | 
				
			||||||
 | 
							ttable.3.5 1
 | 
				
			||||||
 | 
							ttable.4.2 1
 | 
				
			||||||
 | 
							ttable.5.3 1
 | 
				
			||||||
 | 
							slave {
 | 
				
			||||||
 | 
								pcm {
 | 
				
			||||||
 | 
									type hw
 | 
				
			||||||
 | 
									card $CARD
 | 
				
			||||||
 | 
									device 0
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								channels 6
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<confdir:pcm/surround71.conf>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USB-Audio.pcm.surround71.0 {
 | 
				
			||||||
 | 
						@args [ CARD ]
 | 
				
			||||||
 | 
						@args.CARD { type string }
 | 
				
			||||||
 | 
						@func refer
 | 
				
			||||||
 | 
						name {
 | 
				
			||||||
 | 
							@func concat
 | 
				
			||||||
 | 
							strings [
 | 
				
			||||||
 | 
								"cards.USB-Audio."
 | 
				
			||||||
 | 
								{ @func card_name card $CARD }
 | 
				
			||||||
 | 
								".pcm.surround71:CARD=" $CARD
 | 
				
			||||||
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						default {
 | 
				
			||||||
 | 
							type route
 | 
				
			||||||
 | 
							ttable.0.0 1
 | 
				
			||||||
 | 
							ttable.1.1 1
 | 
				
			||||||
 | 
							ttable.2.4 1
 | 
				
			||||||
 | 
							ttable.3.5 1
 | 
				
			||||||
 | 
							ttable.4.2 1
 | 
				
			||||||
 | 
							ttable.5.3 1
 | 
				
			||||||
 | 
							ttable.6.6 1
 | 
				
			||||||
 | 
							ttable.7.7 1
 | 
				
			||||||
 | 
							slave {
 | 
				
			||||||
 | 
								pcm {
 | 
				
			||||||
 | 
									type hw
 | 
				
			||||||
 | 
									card $CARD
 | 
				
			||||||
 | 
									device 0
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								channels 8
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<confdir:pcm/iec958.conf>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USB-Audio.pcm.iec958.0 {
 | 
				
			||||||
 | 
						@args [ CARD AES0 AES1 AES2 AES3 ]
 | 
				
			||||||
 | 
						@args.CARD { type string }
 | 
				
			||||||
 | 
						@args.AES0 { type integer }
 | 
				
			||||||
 | 
						@args.AES1 { type integer }
 | 
				
			||||||
 | 
						@args.AES2 { type integer }
 | 
				
			||||||
 | 
						@args.AES3 { type integer }
 | 
				
			||||||
 | 
						@func refer
 | 
				
			||||||
 | 
						name {
 | 
				
			||||||
 | 
							@func concat
 | 
				
			||||||
 | 
							strings [
 | 
				
			||||||
 | 
								"cards.USB-Audio."
 | 
				
			||||||
 | 
								{ @func card_name card $CARD }
 | 
				
			||||||
 | 
								".pcm.iec958:CARD=" $CARD
 | 
				
			||||||
 | 
								",AES0=" $AES0 ",AES1=" $AES1 ",AES2=" $AES2 ",AES3=" $AES3
 | 
				
			||||||
 | 
							]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						default {
 | 
				
			||||||
 | 
							# FIXME: we cannot set the AES parameters
 | 
				
			||||||
 | 
							type hw
 | 
				
			||||||
 | 
							card $CARD
 | 
				
			||||||
 | 
							device {
 | 
				
			||||||
 | 
								@func refer
 | 
				
			||||||
 | 
								name {
 | 
				
			||||||
 | 
									@func concat
 | 
				
			||||||
 | 
									strings [
 | 
				
			||||||
 | 
										"cards.USB-Audio.pcm.iec958_device."
 | 
				
			||||||
 | 
										{ @func card_name card $CARD }
 | 
				
			||||||
 | 
									]
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								default 0
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim: ft=alsaconf
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue