fd6b7ecb5d9689d07c830c21b8faf4391ebdf840
[AGL/meta-agl.git] / meta-pipewire / recipes-multimedia / wireplumber / wireplumber-config-agl / 30-alsa-monitor.lua
1 -- ALSA monitor config file --
2
3 alsa_monitor = {}
4
5 alsa_monitor.properties = {
6   ["alsa.jack-device"] = false,
7   ["alsa.reserve"] = false,
8 }
9
10 alsa_monitor.rules = {
11   -- disable ACP (PulseAudio-like profiles)
12   {
13     matches = {
14       {
15         { "device.name", "matches", "alsa_card.*" },
16       },
17     },
18     apply_properties = {
19       ["api.alsa.use-acp"] = false,
20     },
21   },
22
23   --
24   -- Bump priority of well-known output devices
25   -- Higher priority means it gets selected as the default if it's present
26   --
27
28   -- USB card
29   {
30     matches = {
31       {
32         { "node.name", "matches", "alsa_output.*" },
33         { "api.alsa.card.driver", "=", "USB-Audio" },
34       },
35     },
36     apply_properties = {
37       ["priority.driver"]        = 1300,
38       ["priority.session"]       = 1300,
39     }
40   },
41
42   -- fiberdyne amp
43   {
44     matches = {
45       {
46         { "node.name", "matches", "alsa_output.*" },
47         { "api.alsa.card.id", "=", "ep016ch" },
48       },
49     },
50     apply_properties = {
51       ["priority.driver"]        = 1200,
52       ["priority.session"]       = 1200,
53     }
54   },
55
56   -- well-known internal devices
57   {
58     matches = {
59       {
60         -- ak4613
61         { "node.name", "matches", "alsa_output.*" },
62         { "api.alsa.card.id", "=", "ak4613" },
63         { "api.alsa.pcm.device", "=", "0" },
64       },
65       {
66         -- dra7xx
67         { "node.name", "matches", "alsa_output.*" },
68         { "api.alsa.card.id", "=", "DRA7xx-EVM" },
69       },
70       {
71         -- imx8mq
72         { "node.name", "matches", "alsa_output.*" },
73         { "api.alsa.card.id", "=", "wm8524audio" },
74       },
75       {
76         -- rcarsound
77         { "node.name", "matches", "alsa_output.*" },
78         { "api.alsa.card.id", "=", "rcarsound" },
79         { "api.alsa.pcm.device", "=", "0" },
80       },
81       {
82         -- rpi3
83         { "node.name", "matches", "alsa_output.*" },
84         { "api.alsa.pcm.name", "=", "bcm2835 ALSA" },
85       },
86     },
87     apply_properties = {
88       ["priority.driver"]        = 1100,
89       ["priority.session"]       = 1100,
90     }
91   },
92
93   --
94   -- Same for input devices
95   --
96
97   -- USB card
98   {
99     matches = {
100       {
101         { "node.name", "matches", "alsa_input.*" },
102         { "api.alsa.card.driver", "=", "USB-Audio" },
103       },
104     },
105     apply_properties = {
106       ["priority.driver"]        = 2300,
107       ["priority.session"]       = 2300,
108     }
109   },
110
111   -- microchip mic
112   {
113     matches = {
114       {
115         { "node.name", "matches", "alsa_input.*" },
116         { "api.alsa.card.id", "=", "ep811ch" },
117       },
118     },
119     apply_properties = {
120       ["priority.driver"]        = 2200,
121       ["priority.session"]       = 2200,
122     }
123   },
124
125   -- well-known internal devices
126   {
127     matches = {
128       {
129         -- ak4613
130         { "node.name", "matches", "alsa_input.*" },
131         { "api.alsa.card.id", "=", "ak4613" },
132       },
133       {
134         -- dra7xx
135         { "node.name", "matches", "alsa_input.*" },
136         { "api.alsa.card.id", "=", "DRA7xx-EVM" },
137       },
138       {
139         -- imx8mq
140         { "node.name", "matches", "alsa_input.*" },
141         { "api.alsa.card.id", "=", "wm8524audio" },
142       },
143       {
144         -- rcarsound
145         { "node.name", "matches", "alsa_input.*" },
146         { "api.alsa.card.id", "=", "rcarsound" },
147       },
148     },
149     apply_properties = {
150       ["priority.driver"]        = 2100,
151       ["priority.session"]       = 2100,
152     }
153   },
154 }
155
156 function alsa_monitor.enable()
157   load_monitor("alsa", {
158     properties = alsa_monitor.properties,
159     rules = alsa_monitor.rules,
160   })
161 end