Use softvol plugin for codecs without PCM volume controls (e.g. c-media).
The default PCM is redefined to use softvol for playback.
ICH.pcm.front.0 {
@args [ CARD ]
@args.CARD {
- type string
+ type integer
+ }
+ type softvol
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
}
- type hw
- card $CARD
- device 0
}
+# with dmix?
+ICH.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type integer
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ type softvol
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ }
+}
+
<confdir:pcm/surround40.conf>
ICH.pcm.surround40.0 {
@args [ CARD ]
@args.CARD {
- type string
+ type integer
}
- type hooks
+ type softvol
slave.pcm {
- type hw
- card $CARD
- device 0
- }
- hooks.0 {
- type ctl_elems
- hook_args [
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
{
name "Line-In As Surround"
preserve true
lock true
optional true
}
- ]
+ ]
+ }
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
}
}
ICH.pcm.surround51.0 {
@args [ CARD ]
@args.CARD {
- type string
+ type integer
}
- 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
+ type softvol
slave.pcm {
- type hooks
+ 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
- }
- hooks.0 {
- type ctl_elems
- hook_args [
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
{
name "Line-In As Surround"
preserve true
lock true
optional true
}
- ]
+ ]
+ }
}
+ slave.channels 6
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
}
- slave.channels 6
}
<confdir:pcm/iec958.conf>
ICH4.pcm.front.0 {
@args [ CARD ]
@args.CARD {
- type string
+ type integer
+ }
+ type softvol
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
}
- type hw
- card $CARD
- device 0
}
+# with dmix?
+ICH4.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type integer
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ type softvol
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ }
+}
+
<confdir:pcm/surround40.conf>
ICH4.pcm.surround40.0 {
@args [ CARD ]
@args.CARD {
- type string
+ type integer
}
- type hooks
+ type softvol
slave.pcm {
- type hw
- card $CARD
- device 0
- }
- hooks.0 {
- type ctl_elems
- hook_args [
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
{
name "Line-In As Surround"
preserve true
lock true
optional true
}
- ]
+ ]
+ }
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
}
}
ICH4.pcm.surround51.0 {
@args [ CARD ]
@args.CARD {
- type string
+ type integer
}
- 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
+ type softvol
slave.pcm {
- type hooks
+ 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
- }
- hooks.0 {
- type ctl_elems
- hook_args [
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
{
name "Line-In As Surround"
preserve true
lock true
optional true
}
- ]
+ ]
+ }
}
+ slave.channels 6
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
}
- slave.channels 6
}
<confdir:pcm/iec958.conf>
NFORCE.pcm.front.0 {
@args [ CARD ]
@args.CARD {
- type string
+ type integer
+ }
+ type softvol
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
}
- type hw
- card $CARD
- device 0
}
+# with dmix?
+NFORCE.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type integer
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ type softvol
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+ }
+ }
+ capture.pcm {
+ type plug
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ }
+}
+
<confdir:pcm/surround40.conf>
NFORCE.pcm.surround40.0 {
@args [ CARD ]
@args.CARD {
- type string
+ type integer
}
- type hooks
+ type softvol
slave.pcm {
- type hw
- card $CARD
- device 0
- }
- hooks.0 {
- type ctl_elems
- hook_args [
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
{
name "Line-In As Surround"
preserve true
lock true
optional true
}
- ]
+ ]
+ }
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
}
}
NFORCE.pcm.surround51.0 {
@args [ CARD ]
@args.CARD {
- type string
+ type integer
}
- 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
+ type softvol
slave.pcm {
- type hooks
+ 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
- }
- hooks.0 {
- type ctl_elems
- hook_args [
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
{
name "Line-In As Surround"
preserve true
lock true
optional true
}
- ]
+ ]
+ }
}
+ slave.channels 6
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
}
- slave.channels 6
}
<confdir:pcm/iec958.conf>