]> code.delx.au - pulseaudio/blob - src/modules/alsa/mixer/paths/analog-output.conf.common
alsa-mixer: Add possibility to configure ELD device
[pulseaudio] / src / modules / alsa / mixer / paths / analog-output.conf.common
1 # This file is part of PulseAudio.
2 #
3 # PulseAudio is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU Lesser General Public License as
5 # published by the Free Software Foundation; either version 2.1 of the
6 # License, or (at your option) any later version.
7 #
8 # PulseAudio is distributed in the hope that it will be useful, but
9 # WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 # General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public License
14 # along with PulseAudio; if not, write to the Free Software Foundation,
15 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
16
17 ; Common part of all paths
18
19 ; So here's generally how mixer paths are used by PA: PA goes through
20 ; a mixer path file from top to bottom and checks if a mixer element
21 ; described therein exists. If so it is added to the list of mixer
22 ; elements PA will control, keeping the order it read them in. If a
23 ; mixer element described here has set the required= or
24 ; required-absent= directives a path might not be accepted as valid
25 ; and is ignored in its entirety (see below). However usually if a
26 ; element listed here is missing this one element is ignored but not
27 ; the entire path.
28 ;
29 ; When a device shall be muted/unmuted *all* elements listed in a path
30 ; file with "switch = mute" will be toggled.
31 ;
32 ; When a device shall change its volume, PA will got through the list
33 ; of all elements with "volume = merge" and set the volume on the
34 ; first element. If that element does not support dB volumes, this is
35 ; where the story ends. If it does support dB volumes, PA divides the
36 ; requested volume by the volume that was set on this element, and
37 ; then go on to the next element with "volume = merge" and then set
38 ; that there, and so on. That way the first volume element in the
39 ; path will be the one that does the 'biggest' part of the overall
40 ; volume adjustment, with the remaining elements usually being set to
41 ; some value next to 0dB. This logic makes sure we get the full range
42 ; over all volume sliders and a very high granularity of volumes
43 ; already in hardware.
44 ;
45 ; All switches and enumerations set to "select" are exposed via the
46 ; "port" functionality of sinks/sources. Basically every possible
47 ; switch setting and every possible enumeration setting will be
48 ; combined and made into a "port". So make sure you don't list too
49 ; many switches/enums for exposing, because the number of ports might
50 ; rise exponentially.
51 ;
52 ; Only one path can be selected at a time. All paths that are valid
53 ; for an audio device will be exposed as "port" for the sink/source.
54
55
56 ; [General]
57 ; priority = ... # Priority for this path
58 ; description = ...
59 ; mute-during-activation = yes | no # If this path supports hardware mute, should the hw mute be used while activating this
60 ; # path? In some cases this can reduce extra noises during port switching, while in other
61 ; # cases this can increase such noises. Default: no.
62 ; eld-device = ... # If this is an HDMI port, here's where to specify the device number for the ELD mixer
63 ; # control. The default is to not make use of ELD information.
64 ;
65 ; [Properties] # Property list for this path. The list is merged into the port property list.
66 ; <key> = <value> # Each property is defined on its own line.
67 ; ...
68 ;
69 ; [Option ...:...] # For each option of an enumeration or switch element
70 ; # that shall be exposed as a sink/source port. Needs to
71 ; # be named after the Element, followed by a colon, followed
72 ; # by the option name, resp. on/off if the element is a switch.
73 ; name = ... # Logical name to use in the path identifier
74 ; priority = ... # Priority if this is made into a device port
75 ; required = ignore | enumeration | any # In this element, this option must exist or the path will be invalid. ("any" is an alias for "enumeration".)
76 ; required-any = ignore | enumeration | any # In this element, either this or another option must exist (or an element)
77 ; required-absent = ignore | enumeration | any # In this element, this option must not exist or the path will be invalid
78 ;
79 ; [Element ...] # For each element that we shall control
80 ; required = ignore | switch | volume | enumeration | any # If set, require this element to be of this kind and available,
81 ; # otherwise don't consider this path valid for the card
82 ; required-any = ignore | switch | volume | enumeration | any # If set, at least one of the elements or jacks with required-any in this
83 ; # path must be present, otherwise this path is invalid for the card
84 ; required-absent = ignore | switch | volume # If set, require this element to not be of this kind and not
85 ; # available, otherwise don't consider this path valid for the card
86 ;
87 ; switch = ignore | mute | off | on | select # What to do with this switch: ignore it, make it follow mute status,
88 ; # always set it to off, always to on, or make it selectable as port.
89 ; # If set to 'select' you need to define an Option section for on
90 ; # and off
91 ; volume = ignore | merge | off | zero | <volume step> # What to do with this volume: ignore it, merge it into the device
92 ; # volume slider, always set it to the lowest value possible, or always
93 ; # set it to 0 dB (for whatever that means), or always set it to
94 ; # <volume step> (this only makes sense in path configurations where
95 ; # the exact hardware and driver are known beforehand).
96 ; volume-limit = <volume step> # Limit the maximum volume by disabling the volume steps above <volume step>.
97 ; enumeration = ignore | select # What to do with this enumeration, ignore it or make it selectable
98 ; # via device ports. If set to 'select' you need to define an Option section
99 ; # for each of the items you want to expose
100 ; direction = playback | capture # Is this relevant only for playback or capture? If not set this will implicitly be
101 ; # set the direction of the PCM device is opened as. Generally this doesn't need to be set
102 ; # unless you have a broken driver that has playback controls marked for capture or vice
103 ; # versa
104 ; direction-try-other = no | yes # If the element does not supported what is requested, try the other direction, too?
105 ;
106 ; override-map.1 = ... # Override the channel mask of the mixer control if the control only exposes a single channel
107 ; override-map.2 = ... # Override the channel masks of the mixer control if the control only exposes two channels
108 ; # Override maps should list for each element channel which high-level channels it controls via a
109 ; # channel mask. A channel mask may either be the name of a single channel, or the words "all-left",
110 ; # "all-right", "all-center", "all-front", "all-rear", and "all" to encode a specific subset of
111 ; # channels in a mask
112 ; [Jack ...] # For each jack that we will use for jack detection
113 ; # The name 'Jack Foo' must match ALSA's 'Foo Jack' control.
114 ; required = ignore | any # If not set to ignore, make the path invalid if this jack control is not present.
115 ; required-absent = ignore | any # If not set to ignore, make the path invalid if this jack control is present.
116 ; required-any = ignore | any # If not set to ignore, make the path invalid if no jack controls and no elements with
117 ; # the required-any are present.
118 ; state.plugged = yes | no | unknown # Normally a plugged jack would mean the port becomes available, and an unplugged means it's
119 ; state.unplugged = yes | no | unknown # unavailable, but the port status can be overridden by specifying state.plugged and/or state.unplugged.
120
121 [Element PCM]
122 switch = mute
123 volume = merge
124 override-map.1 = all
125 override-map.2 = all-left,all-right
126
127 [Element External Amplifier]
128 switch = select
129
130 [Option External Amplifier:on]
131 name = output-amplifier-on
132 priority = 10
133
134 [Option External Amplifier:off]
135 name = output-amplifier-off
136 priority = 0
137
138 [Element Bass Boost]
139 switch = select
140
141 [Option Bass Boost:on]
142 name = output-bass-boost-on
143 priority = 0
144
145 [Option Bass Boost:off]
146 name = output-bass-boost-off
147 priority = 10
148
149 [Element IEC958]
150 switch = off
151
152 [Element IEC958 Optical Raw]
153 switch = off
154
155 ;;; 'Analog Output'
156
157 [Element Analog Output]
158 enumeration = select
159
160 [Option Analog Output:Speakers]
161 name = output-speaker
162 priority = 10
163
164 [Option Analog Output:Headphones]
165 name = output-headphones
166 priority = 9
167
168 [Option Analog Output:FP Headphones]
169 name = output-headphones
170 priority = 8