commit e1d1fdaba95c6241a1ed8d738e477ce58f45b4ec
parent d0ad4920b6180a3b93a438de83f6f1e844d7ccf7
Author: blut <CXblut@gmail.com>
Date: Sun, 8 Jun 2014 18:09:00 +0000
dwmstatus alsa volume
Diffstat:
2 files changed, 33 insertions(+), 0 deletions(-)
diff --git a/dwm.suckless.org/dwmstatus/getvol.c b/dwm.suckless.org/dwmstatus/getvol.c
@@ -0,0 +1,32 @@
+#include <alsa/asoundlib.h>
+#include <alsa/control.h>
+
+int
+get_vol(void)
+{
+ long int vol;
+ snd_hctl_t *hctl;
+ snd_ctl_elem_id_t *id;
+ snd_ctl_elem_value_t *control;
+
+// To find card and subdevice: /proc/asound/, aplay -L, amixer controls
+ snd_hctl_open(&hctl, "hw:0", 0);
+ snd_hctl_load(hctl);
+
+ snd_ctl_elem_id_alloca(&id);
+ snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_MIXER);
+
+// amixer controls
+ snd_ctl_elem_id_set_name(id, "Master Playback Volume");
+
+ snd_hctl_elem_t *elem = snd_hctl_find_elem(hctl, id);
+
+ snd_ctl_elem_value_alloca(&control);
+ snd_ctl_elem_value_set_id(control, id);
+
+ snd_hctl_elem_read(elem, control);
+ vol = snd_ctl_elem_value_get_integer(control,0);
+
+ snd_hctl_close(hctl);
+ return (int)vol;
+}
diff --git a/dwm.suckless.org/dwmstatus/index.md b/dwm.suckless.org/dwmstatus/index.md
@@ -46,6 +46,7 @@ add them here as file or as code example.
dynamic_info.
* [Battery function](batterystatus.c) : Battery percentage and status. + if
charging, - if discharging, = if full.
+* [Alsa Volume API](getvol.c) : Alsa Volume via the Alsa API
Questions
---------