| # | 
 | # Configuration for the nVIDIA nForce/2/3 | 
 | # | 
 |  | 
 | <confdir:pcm/front.conf> | 
 |  | 
 | NFORCE.pcm.front.0 { | 
 | 	@args [ CARD ] | 
 | 	@args.CARD { | 
 | 		type string | 
 | 	} | 
 | 	type softvol | 
 | 	slave.pcm { | 
 | 		type hw | 
 | 		card $CARD | 
 | 	} | 
 | 	control { | 
 | 		name "PCM Playback Volume" | 
 | 		card $CARD | 
 | 	} | 
 | }	 | 
 |  | 
 | # default with dmix+softvol & dsnoop | 
 | NFORCE.pcm.default { | 
 | 	@args [ CARD ] | 
 | 	@args.CARD { | 
 | 		type string | 
 | 	} | 
 | 	type asym | 
 | 	playback.pcm { | 
 | 		type plug | 
 | 		slave.pcm { | 
 | 			type softvol | 
 | 			slave.pcm { | 
 | 				@func concat | 
 | 				strings [ "dmix:" $CARD ] | 
 | 			} | 
 | 			control { | 
 | 				name "PCM Playback Volume" | 
 | 				card $CARD | 
 | 			} | 
 | 		} | 
 | 	} | 
 | 	capture.pcm { | 
 | 		type plug | 
 | 		slave.pcm { | 
 | 			@func concat | 
 | 			strings [ "dsnoop:" $CARD ] | 
 | 		} | 
 | 	} | 
 | } | 
 |  | 
 | <confdir:pcm/surround40.conf> | 
 |  | 
 | NFORCE.pcm.surround40.0 { | 
 | 	@args [ CARD ] | 
 | 	@args.CARD { | 
 | 		type string | 
 | 	} | 
 | 	type softvol | 
 | 	slave.pcm { | 
 | 		type hooks | 
 | 		slave.pcm { | 
 | 			type hw | 
 | 			card $CARD | 
 | 			channels 4 | 
 | 		} | 
 | 		hooks.0 { | 
 | 			type ctl_elems | 
 | 			hook_args [ | 
 | 			{ | 
 | 				name "Channel Mode" | 
 | 				preserve true | 
 | 				value "4ch" | 
 | 				lock true | 
 | 				optional true | 
 | 			} | 
 | 			# for old drivers | 
 | 			{ | 
 | 				name "Line-In As Surround" | 
 | 				preserve true | 
 | 				value true | 
 | 				optional true | 
 | 			} | 
 | 			{ | 
 | 				name "Surround Down Mix" | 
 | 				preserve true | 
 | 				value off | 
 | 				lock true | 
 | 				optional true | 
 | 			} | 
 | 			] | 
 | 		} | 
 | 	} | 
 | 	control { | 
 | 		name "PCM Playback Volume" | 
 | 		card $CARD | 
 | 	} | 
 | } | 
 |  | 
 | <confdir:pcm/surround21.conf> | 
 | <confdir:pcm/surround41.conf> | 
 | <confdir:pcm/surround50.conf> | 
 | <confdir:pcm/surround51.conf> | 
 |  | 
 | NFORCE.pcm.surround51.0 { | 
 | 	@args [ CARD ] | 
 | 	@args.CARD { | 
 | 		type string | 
 | 	} | 
 | 	type softvol | 
 | 	slave.pcm { | 
 | 		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 hooks | 
 | 			slave.pcm { | 
 | 				type hw | 
 | 				card $CARD | 
 | 				channels 6 | 
 | 			} | 
 | 			hooks.0 { | 
 | 				type ctl_elems | 
 | 				hook_args [ | 
 | 				{ | 
 | 					name "Channel Mode" | 
 | 					preserve true | 
 | 					value "6ch" | 
 | 					lock true | 
 | 					optional true | 
 | 				} | 
 | 				# for old drivers | 
 | 				{ | 
 | 					name "Line-In As Surround" | 
 | 					preserve true | 
 | 					value true | 
 | 					optional true | 
 | 				} | 
 | 				{ | 
 | 					name "Mic As Center/LFE" | 
 | 					preserve true | 
 | 					value true | 
 | 					optional true | 
 | 				} | 
 | 				{ | 
 | 					name "Surround Down Mix" | 
 | 					preserve true | 
 | 					value off | 
 | 					lock true | 
 | 					optional true | 
 | 				} | 
 | 				{ | 
 | 					name "Center/LFE Down Mix" | 
 | 					preserve true | 
 | 					value off | 
 | 					lock true | 
 | 					optional true | 
 | 				} | 
 | 				] | 
 | 			} | 
 | 		} | 
 | 		slave.channels 6 | 
 | 	} | 
 | 	control { | 
 | 		name "PCM Playback Volume" | 
 | 		card $CARD | 
 | 	} | 
 | } | 
 |  | 
 | <confdir:pcm/surround71.conf> | 
 |  | 
 | NFORCE.pcm.surround71.0 { | 
 |     @args [ CARD ] | 
 |     @args.CARD { | 
 |         type string | 
 |     } | 
 |     type softvol | 
 |     slave.pcm { | 
 |         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 hooks | 
 |             slave.pcm { | 
 |                 type hw | 
 |                 card $CARD | 
 |                 device 0 | 
 |             } | 
 |             hooks.0 { | 
 |                 type ctl_elems | 
 |                 hook_args [ | 
 |                 { | 
 |                     name "Channel Mode" | 
 |                     preserve true | 
 |                     value "8ch" | 
 |                     lock true | 
 |                     optional true | 
 |                 } | 
 |                 # for old drivers | 
 |                 { | 
 |                     name "Line-In As Surround" | 
 |                     preserve true | 
 |                     value true | 
 |                     optional true | 
 |                 } | 
 |                 { | 
 |                     name "Mic As Center/LFE" | 
 |                     preserve true | 
 |                     value true | 
 |                     optional true | 
 |                 } | 
 |                 { | 
 |                     name "Surround Down Mix" | 
 |                     preserve true | 
 |                     value off | 
 |                     lock true | 
 |                     optional true | 
 |                 } | 
 |                 { | 
 |                     name "Center/LFE Down Mix" | 
 |                     preserve true | 
 |                     value off | 
 |                     lock true | 
 |                     optional true | 
 |                 } | 
 |                 ] | 
 |             } | 
 |         } | 
 |         slave.channels 8 | 
 |     } | 
 |     control { | 
 |         name "PCM Playback Volume" | 
 |         card $CARD | 
 |     } | 
 | } | 
 |  | 
 | <confdir:pcm/iec958.conf> | 
 |  | 
 | NFORCE.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 | 
 | 	} | 
 | 	type hooks | 
 | 	slave.pcm { | 
 | 		type hw | 
 | 		card $CARD | 
 | 		device 2 | 
 | 	} | 
 | 	hooks.0 { | 
 | 		type ctl_elems | 
 | 		hook_args [ | 
 | 			{ | 
 | 				name "IEC958 Playback AC97-SPSA" | 
 | 				lock true | 
 | 				preserve true | 
 | 				value 0 | 
 | 			} | 
 | 			{ | 
 | 				name "IEC958 Playback Default" | 
 | 				lock true | 
 | 				preserve true | 
 | 				value [ $AES0 $AES1 $AES2 $AES3 ] | 
 | 			} | 
 | 			{ | 
 | 				name "IEC958 Playback Switch" | 
 | 				lock true | 
 | 				preserve true | 
 | 				value true | 
 | 			} | 
 | 		] | 
 | 	} | 
 | } |