Compare commits
No commits in common. "a5e133084bab74542a40a6833fb143ff12555d2e" and "dc7f72f6ef8549b216aaab3c20c79698db1714c6" have entirely different histories.
a5e133084b
...
dc7f72f6ef
1
Makefile
1
Makefile
|
@ -15,7 +15,6 @@ $(BIN): src/main.c src/plug.c src/socket.c src/util.c
|
||||||
|
|
||||||
|
|
||||||
modules/%.dim: src/modules/%.c
|
modules/%.dim: src/modules/%.c
|
||||||
mkdir -p $(dir $@)
|
|
||||||
$(CC) -o $@ $^ -rdynamic -shared -fPIC $(CCARGS)
|
$(CC) -o $@ $^ -rdynamic -shared -fPIC $(CCARGS)
|
||||||
|
|
||||||
compile_commands.json:
|
compile_commands.json:
|
||||||
|
|
|
@ -1,63 +0,0 @@
|
||||||
// Authored by xomf <xomf@the-atf-shot-my.dog>
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <assert.h>
|
|
||||||
#include <stdbool.h>
|
|
||||||
#include <alsa/asoundlib.h>
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct plug_t {
|
|
||||||
char* name;
|
|
||||||
char* version;
|
|
||||||
} plug_t;
|
|
||||||
|
|
||||||
|
|
||||||
static plug_t* p = {0};
|
|
||||||
|
|
||||||
int get_alsa_volume(void) {
|
|
||||||
long min, max, volume;
|
|
||||||
snd_mixer_t* handle;
|
|
||||||
snd_mixer_selem_id_t* sid;
|
|
||||||
const char* card = "default";
|
|
||||||
const char* selem_name = "Master";
|
|
||||||
snd_mixer_open(&handle, 0);
|
|
||||||
snd_mixer_attach(handle, card);
|
|
||||||
snd_mixer_selem_register(handle, NULL, NULL);
|
|
||||||
snd_mixer_load(handle);
|
|
||||||
snd_mixer_selem_id_alloca(&sid);
|
|
||||||
snd_mixer_selem_id_set_index(sid, 0);
|
|
||||||
snd_mixer_selem_id_set_name(sid, selem_name);
|
|
||||||
snd_mixer_elem_t* elem = snd_mixer_find_selem(handle, sid);
|
|
||||||
snd_mixer_selem_get_playback_volume_range(elem, &min, &max);
|
|
||||||
snd_mixer_selem_get_playback_volume(elem, SND_MIXER_SCHN_MONO, &volume);
|
|
||||||
snd_mixer_close(handle);
|
|
||||||
|
|
||||||
int percentage = (volume - min) * 100 / (max - min);
|
|
||||||
return percentage;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void* plug_init(void) {
|
|
||||||
p = malloc(sizeof(plug_t));
|
|
||||||
assert(p);
|
|
||||||
p->name = "Volume";
|
|
||||||
p->version = "0.0.1";
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
void* plug_pre_reload(void) {
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
void plug_post_reload(void* pp) {
|
|
||||||
p = pp;
|
|
||||||
}
|
|
||||||
|
|
||||||
void plug_poll(char* buf, size_t len) {
|
|
||||||
int volume = get_alsa_volume();
|
|
||||||
snprintf(buf, len, "Volume: %d%%", volume);
|
|
||||||
}
|
|
||||||
|
|
||||||
void plug_free(void) {}
|
|
Loading…
Reference in New Issue
Block a user