mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-11-04 13:30:08 -05:00
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:
parent
82e408d08b
commit
156eb1228e
3 changed files with 255 additions and 96 deletions
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue