Use softvol for PCM outputs

Use softvol plugin for codecs without PCM volume controls (e.g. c-media).
The default PCM is redefined to use softvol for playback.
This commit is contained in:
Takashi Iwai 2005-01-03 17:17:43 +00:00
parent 82e408d08b
commit 156eb1228e
3 changed files with 255 additions and 96 deletions

View file

@ -7,29 +7,70 @@
ICH.pcm.front.0 { ICH.pcm.front.0 {
@args [ CARD ] @args [ CARD ]
@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> <confdir:pcm/surround40.conf>
ICH.pcm.surround40.0 { ICH.pcm.surround40.0 {
@args [ CARD ] @args [ CARD ]
@args.CARD { @args.CARD {
type string type integer
} }
type hooks type softvol
slave.pcm { slave.pcm {
type hw type hooks
card $CARD slave.pcm {
device 0 type hw
} card $CARD
hooks.0 { device 0
type ctl_elems }
hook_args [ hooks.0 {
type ctl_elems
hook_args [
{ {
name "Line-In As Surround" name "Line-In As Surround"
preserve true preserve true
@ -44,7 +85,12 @@ ICH.pcm.surround40.0 {
lock true lock true
optional true optional true
} }
] ]
}
}
control {
name "PCM Playback Volume"
card $CARD
} }
} }
@ -55,25 +101,27 @@ ICH.pcm.surround40.0 {
ICH.pcm.surround51.0 { ICH.pcm.surround51.0 {
@args [ CARD ] @args [ CARD ]
@args.CARD { @args.CARD {
type string type integer
} }
type route type softvol
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 { 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 { slave.pcm {
type hw type hooks
card $CARD slave.pcm {
device 0 type hw
} card $CARD
hooks.0 { device 0
type ctl_elems }
hook_args [ hooks.0 {
type ctl_elems
hook_args [
{ {
name "Line-In As Surround" name "Line-In As Surround"
preserve true preserve true
@ -102,10 +150,15 @@ ICH.pcm.surround51.0 {
lock true lock true
optional true optional true
} }
] ]
}
} }
slave.channels 6
}
control {
name "PCM Playback Volume"
card $CARD
} }
slave.channels 6
} }
<confdir:pcm/iec958.conf> <confdir:pcm/iec958.conf>

View file

@ -7,29 +7,70 @@
ICH4.pcm.front.0 { ICH4.pcm.front.0 {
@args [ CARD ] @args [ CARD ]
@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> <confdir:pcm/surround40.conf>
ICH4.pcm.surround40.0 { ICH4.pcm.surround40.0 {
@args [ CARD ] @args [ CARD ]
@args.CARD { @args.CARD {
type string type integer
} }
type hooks type softvol
slave.pcm { slave.pcm {
type hw type hooks
card $CARD slave.pcm {
device 0 type hw
} card $CARD
hooks.0 { device 0
type ctl_elems }
hook_args [ hooks.0 {
type ctl_elems
hook_args [
{ {
name "Line-In As Surround" name "Line-In As Surround"
preserve true preserve true
@ -44,7 +85,12 @@ ICH4.pcm.surround40.0 {
lock true lock true
optional true optional true
} }
] ]
}
}
control {
name "PCM Playback Volume"
card $CARD
} }
} }
@ -55,25 +101,27 @@ ICH4.pcm.surround40.0 {
ICH4.pcm.surround51.0 { ICH4.pcm.surround51.0 {
@args [ CARD ] @args [ CARD ]
@args.CARD { @args.CARD {
type string type integer
} }
type route type softvol
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 { 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 { slave.pcm {
type hw type hooks
card $CARD slave.pcm {
device 0 type hw
} card $CARD
hooks.0 { device 0
type ctl_elems }
hook_args [ hooks.0 {
type ctl_elems
hook_args [
{ {
name "Line-In As Surround" name "Line-In As Surround"
preserve true preserve true
@ -102,10 +150,15 @@ ICH4.pcm.surround51.0 {
lock true lock true
optional true optional true
} }
] ]
}
} }
slave.channels 6
}
control {
name "PCM Playback Volume"
card $CARD
} }
slave.channels 6
} }
<confdir:pcm/iec958.conf> <confdir:pcm/iec958.conf>

View file

@ -7,29 +7,70 @@
NFORCE.pcm.front.0 { NFORCE.pcm.front.0 {
@args [ CARD ] @args [ CARD ]
@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> <confdir:pcm/surround40.conf>
NFORCE.pcm.surround40.0 { NFORCE.pcm.surround40.0 {
@args [ CARD ] @args [ CARD ]
@args.CARD { @args.CARD {
type string type integer
} }
type hooks type softvol
slave.pcm { slave.pcm {
type hw type hooks
card $CARD slave.pcm {
device 0 type hw
} card $CARD
hooks.0 { device 0
type ctl_elems }
hook_args [ hooks.0 {
type ctl_elems
hook_args [
{ {
name "Line-In As Surround" name "Line-In As Surround"
preserve true preserve true
@ -44,7 +85,12 @@ NFORCE.pcm.surround40.0 {
lock true lock true
optional true optional true
} }
] ]
}
}
control {
name "PCM Playback Volume"
card $CARD
} }
} }
@ -55,25 +101,27 @@ NFORCE.pcm.surround40.0 {
NFORCE.pcm.surround51.0 { NFORCE.pcm.surround51.0 {
@args [ CARD ] @args [ CARD ]
@args.CARD { @args.CARD {
type string type integer
} }
type route type softvol
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 { 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 { slave.pcm {
type hw type hooks
card $CARD slave.pcm {
device 0 type hw
} card $CARD
hooks.0 { device 0
type ctl_elems }
hook_args [ hooks.0 {
type ctl_elems
hook_args [
{ {
name "Line-In As Surround" name "Line-In As Surround"
preserve true preserve true
@ -102,10 +150,15 @@ NFORCE.pcm.surround51.0 {
lock true lock true
optional true optional true
} }
] ]
}
} }
slave.channels 6
}
control {
name "PCM Playback Volume"
card $CARD
} }
slave.channels 6
} }
<confdir:pcm/iec958.conf> <confdir:pcm/iec958.conf>