Introduction
Introduction Statistics Contact Development Disclaimer Help
getvol.c - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
getvol.c (1095B)
---
1 /* include this into your dwmstatus.c and use get_vol() as volume.
2 * if your audio card and subunit numbers differ from 0,0 you might havo
3 * to use amixer, aplay and the /proc/asound file tree to adapt.
4 *
5 * I had compilation issues. As result i had to drop the -std=c99 and
6 * -pedantic flags from the config.mk
7 */
8
9 #include <alsa/asoundlib.h>
10 #include <alsa/control.h>
11
12 int
13 get_vol(void)
14 {
15 int vol;
16 snd_hctl_t *hctl;
17 snd_ctl_elem_id_t *id;
18 snd_ctl_elem_value_t *control;
19
20 // To find card and subdevice: /proc/asound/, aplay -L, amixer controls
21 snd_hctl_open(&hctl, "hw:0", 0);
22 snd_hctl_load(hctl);
23
24 snd_ctl_elem_id_alloca(&id);
25 snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_MIXER);
26
27 // amixer controls
28 snd_ctl_elem_id_set_name(id, "Master Playback Volume");
29
30 snd_hctl_elem_t *elem = snd_hctl_find_elem(hctl, id);
31
32 snd_ctl_elem_value_alloca(&control);
33 snd_ctl_elem_value_set_id(control, id);
34
35 snd_hctl_elem_read(elem, control);
36 vol = (int)snd_ctl_elem_value_get_integer(control,0);
37
38 snd_hctl_close(hctl);
39 return vol;
40 }
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.