Commit | Line | Data |
---|---|---|
d06e7260 SK |
1 | #! /usr/bin/awk -f |
2 | ||
3 | /^Sink \#[0-9]+$/ { | |
4 | sub("^#", "", $2) | |
5 | sink = $2 | |
6 | next | |
7 | } | |
8 | ||
9 | /\tState:/ { | |
10 | state[sink] = $2 | |
11 | next | |
12 | } | |
13 | ||
14 | /\tMute:/ { | |
15 | mute[sink] = $2 | |
16 | next | |
17 | } | |
18 | ||
19 | # Volume: front-left: 45732 / 70% / -9.38 dB, front-right: 45732 / 70% / -9.38 dB | |
20 | /\tVolume:/ { | |
21 | delete vol_parts | |
22 | delete left_parts | |
23 | delete right_parts | |
24 | sub("^\t+Volume: +", "") | |
25 | split($0, vol_parts, ", +") | |
26 | sub("^front-left: +", "", vol_parts[1]) | |
27 | sub("^front-right: +", "", vol_parts[2]) | |
28 | split(vol_parts[1], left_parts, " +/ +") | |
29 | split(vol_parts[2], right_parts, " +/ +") | |
30 | vol_left[sink] = left_parts[2] | |
31 | vol_right[sink] = right_parts[2] | |
32 | next | |
33 | } | |
34 | ||
35 | END { | |
36 | for (sink in state) { | |
37 | printf(\ | |
38 | "%s %s %s %s %s\n", | |
39 | sink, state[sink], mute[sink], vol_left[sink], vol_right[sink] \ | |
40 | ) | |
41 | } | |
42 | } |