Last active
August 29, 2015 14:22
-
-
Save ashaindlin/efc5d6a791307a3e35c9 to your computer and use it in GitHub Desktop.
i3status 2.9 without audio
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 0237a9fb589cd11c5409f55c84e1fb1e4037516f Mon Sep 17 00:00:00 2001 | |
From: Alex Shaindlin <me@ashaindlin.com> | |
Date: Tue, 26 May 2015 20:25:48 -0400 | |
Subject: [PATCH] Remove everything audio-related | |
--- | |
Makefile | 1 - | |
i3status.c | 22 ------- | |
src/print_volume.c | 181 ----------------------------------------------------- | |
3 files changed, 204 deletions(-) | |
delete mode 100644 src/print_volume.c | |
diff --git a/Makefile b/Makefile | |
index 625b522..45ed1e6 100644 | |
--- a/Makefile | |
+++ b/Makefile | |
@@ -27,7 +27,6 @@ ifeq ($(OS),Linux) | |
CPPFLAGS+=-DLINUX | |
CPPFLAGS+=-D_GNU_SOURCE | |
LIBS+=-liw | |
-LIBS+=-lasound | |
endif | |
ifeq ($(OS),GNU/kFreeBSD) | |
diff --git a/i3status.c b/i3status.c | |
index 8749933..4bde369 100644 | |
--- a/i3status.c | |
+++ b/i3status.c | |
@@ -394,17 +394,6 @@ int main(int argc, char *argv[]) { | |
CFG_CUSTOM_MIN_WIDTH_OPT, | |
CFG_END()}; | |
- cfg_opt_t volume_opts[] = { | |
- CFG_STR("format", "♪: %volume", CFGF_NONE), | |
- CFG_STR("format_muted", "♪: 0%%", CFGF_NONE), | |
- CFG_STR("device", "default", CFGF_NONE), | |
- CFG_STR("mixer", "Master", CFGF_NONE), | |
- CFG_INT("mixer_idx", 0, CFGF_NONE), | |
- CFG_CUSTOM_ALIGN_OPT, | |
- CFG_CUSTOM_COLOR_OPTS, | |
- CFG_CUSTOM_MIN_WIDTH_OPT, | |
- CFG_END()}; | |
- | |
cfg_opt_t opts[] = { | |
CFG_STR_LIST("order", "{}", CFGF_NONE), | |
CFG_SEC("general", general_opts, CFGF_NONE), | |
@@ -415,7 +404,6 @@ int main(int argc, char *argv[]) { | |
CFG_SEC("battery", battery_opts, CFGF_TITLE | CFGF_MULTI), | |
CFG_SEC("cpu_temperature", temp_opts, CFGF_TITLE | CFGF_MULTI), | |
CFG_SEC("disk", disk_opts, CFGF_TITLE | CFGF_MULTI), | |
- CFG_SEC("volume", volume_opts, CFGF_TITLE | CFGF_MULTI), | |
CFG_SEC("ipv6", ipv6_opts, CFGF_NONE), | |
CFG_SEC("time", time_opts, CFGF_NONE), | |
CFG_SEC("tztime", tztime_opts, CFGF_TITLE | CFGF_MULTI), | |
@@ -643,16 +631,6 @@ int main(int argc, char *argv[]) { | |
SEC_CLOSE_MAP; | |
} | |
- CASE_SEC_TITLE("volume") { | |
- SEC_OPEN_MAP("volume"); | |
- print_volume(json_gen, buffer, cfg_getstr(sec, "format"), | |
- cfg_getstr(sec, "format_muted"), | |
- cfg_getstr(sec, "device"), | |
- cfg_getstr(sec, "mixer"), | |
- cfg_getint(sec, "mixer_idx")); | |
- SEC_CLOSE_MAP; | |
- } | |
- | |
CASE_SEC_TITLE("cpu_temperature") { | |
SEC_OPEN_MAP("cpu_temperature"); | |
print_cpu_temperature_info(json_gen, buffer, atoi(title), cfg_getstr(sec, "path"), cfg_getstr(sec, "format"), cfg_getint(sec, "max_threshold")); | |
diff --git a/src/print_volume.c b/src/print_volume.c | |
deleted file mode 100644 | |
index ef1c913..0000000 | |
--- a/src/print_volume.c | |
+++ /dev/null | |
@@ -1,181 +0,0 @@ | |
-// vim:ts=4:sw=4:expandtab | |
-#include <time.h> | |
-#include <string.h> | |
-#include <stdlib.h> | |
-#include <stdio.h> | |
-#include <yajl/yajl_gen.h> | |
-#include <yajl/yajl_version.h> | |
- | |
-#ifdef LINUX | |
-#include <alsa/asoundlib.h> | |
-#include <alloca.h> | |
-#endif | |
- | |
-#if defined(__FreeBSD__) || defined(__DragonFly__) | |
-#include <fcntl.h> | |
-#include <unistd.h> | |
-#include <sys/soundcard.h> | |
-#endif | |
- | |
-#ifdef __OpenBSD__ | |
-#include <fcntl.h> | |
-#include <unistd.h> | |
-#include <soundcard.h> | |
-#endif | |
- | |
-#include "i3status.h" | |
-#include "queue.h" | |
- | |
-void print_volume(yajl_gen json_gen, char *buffer, const char *fmt, const char *fmt_muted, const char *device, const char *mixer, int mixer_idx) { | |
- char *outwalk = buffer; | |
- int pbval = 1; | |
- | |
- /* Printing volume only works with ALSA at the moment */ | |
- if (output_format == O_I3BAR) { | |
- char *instance; | |
- asprintf(&instance, "%s.%s.%d", device, mixer, mixer_idx); | |
- INSTANCE(instance); | |
- free(instance); | |
- } | |
-#ifdef LINUX | |
- int err; | |
- snd_mixer_t *m; | |
- snd_mixer_selem_id_t *sid; | |
- snd_mixer_elem_t *elem; | |
- long min, max, val; | |
- int avg; | |
- | |
- if ((err = snd_mixer_open(&m, 0)) < 0) { | |
- fprintf(stderr, "i3status: ALSA: Cannot open mixer: %s\n", snd_strerror(err)); | |
- goto out; | |
- } | |
- | |
- /* Attach this mixer handle to the given device */ | |
- if ((err = snd_mixer_attach(m, device)) < 0) { | |
- fprintf(stderr, "i3status: ALSA: Cannot attach mixer to device: %s\n", snd_strerror(err)); | |
- snd_mixer_close(m); | |
- goto out; | |
- } | |
- | |
- /* Register this mixer */ | |
- if ((err = snd_mixer_selem_register(m, NULL, NULL)) < 0) { | |
- fprintf(stderr, "i3status: ALSA: snd_mixer_selem_register: %s\n", snd_strerror(err)); | |
- snd_mixer_close(m); | |
- goto out; | |
- } | |
- | |
- if ((err = snd_mixer_load(m)) < 0) { | |
- fprintf(stderr, "i3status: ALSA: snd_mixer_load: %s\n", snd_strerror(err)); | |
- snd_mixer_close(m); | |
- goto out; | |
- } | |
- | |
- snd_mixer_selem_id_malloc(&sid); | |
- if (sid == NULL) { | |
- snd_mixer_close(m); | |
- goto out; | |
- } | |
- | |
- /* Find the given mixer */ | |
- snd_mixer_selem_id_set_index(sid, mixer_idx); | |
- snd_mixer_selem_id_set_name(sid, mixer); | |
- if (!(elem = snd_mixer_find_selem(m, sid))) { | |
- fprintf(stderr, "i3status: ALSA: Cannot find mixer %s (index %i)\n", | |
- snd_mixer_selem_id_get_name(sid), snd_mixer_selem_id_get_index(sid)); | |
- snd_mixer_close(m); | |
- snd_mixer_selem_id_free(sid); | |
- goto out; | |
- } | |
- | |
- /* Get the volume range to convert the volume later */ | |
- snd_mixer_selem_get_playback_volume_range(elem, &min, &max); | |
- | |
- snd_mixer_handle_events(m); | |
- snd_mixer_selem_get_playback_volume(elem, 0, &val); | |
- if (max != 100) { | |
- float avgf = ((float)val / max) * 100; | |
- avg = (int)avgf; | |
- avg = (avgf - avg < 0.5 ? avg : (avg + 1)); | |
- } else | |
- avg = (int)val; | |
- | |
- /* Check for mute */ | |
- if (snd_mixer_selem_has_playback_switch(elem)) { | |
- if ((err = snd_mixer_selem_get_playback_switch(elem, 0, &pbval)) < 0) | |
- fprintf(stderr, "i3status: ALSA: playback_switch: %s\n", snd_strerror(err)); | |
- if (!pbval) { | |
- START_COLOR("color_degraded"); | |
- fmt = fmt_muted; | |
- } | |
- } | |
- | |
- snd_mixer_close(m); | |
- snd_mixer_selem_id_free(sid); | |
- | |
- const char *walk = fmt; | |
- for (; *walk != '\0'; walk++) { | |
- if (*walk != '%') { | |
- *(outwalk++) = *walk; | |
- continue; | |
- } | |
- if (BEGINS_WITH(walk + 1, "%")) { | |
- outwalk += sprintf(outwalk, "%%"); | |
- walk += strlen("%"); | |
- } | |
- if (BEGINS_WITH(walk + 1, "volume")) { | |
- outwalk += sprintf(outwalk, "%d%%", avg); | |
- walk += strlen("volume"); | |
- } | |
- } | |
-#endif | |
-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) | |
- char *mixerpath; | |
- char defaultmixer[] = "/dev/mixer"; | |
- int mixfd, vol, devmask = 0; | |
- pbval = 1; | |
- | |
- if (mixer_idx > 0) | |
- asprintf(&mixerpath, "/dev/mixer%d", mixer_idx); | |
- else | |
- mixerpath = defaultmixer; | |
- | |
- if ((mixfd = open(mixerpath, O_RDWR)) < 0) | |
- return; | |
- | |
- if (mixer_idx > 0) | |
- free(mixerpath); | |
- | |
- if (ioctl(mixfd, SOUND_MIXER_READ_DEVMASK, &devmask) == -1) | |
- return; | |
- if (ioctl(mixfd, MIXER_READ(0), &vol) == -1) | |
- return; | |
- | |
- if (((vol & 0x7f) == 0) && (((vol >> 8) & 0x7f) == 0)) { | |
- START_COLOR("color_degraded"); | |
- pbval = 0; | |
- } | |
- | |
- const char *walk = fmt; | |
- for (; *walk != '\0'; walk++) { | |
- if (*walk != '%') { | |
- *(outwalk++) = *walk; | |
- continue; | |
- } | |
- if (BEGINS_WITH(walk + 1, "%")) { | |
- outwalk += sprintf(outwalk, "%%"); | |
- walk += strlen("%"); | |
- } | |
- if (BEGINS_WITH(walk + 1, "volume")) { | |
- outwalk += sprintf(outwalk, "%d%%", vol & 0x7f); | |
- walk += strlen("volume"); | |
- } | |
- } | |
- close(mixfd); | |
-#endif | |
- | |
-out: | |
- *outwalk = '\0'; | |
- if (!pbval) | |
- END_COLOR; | |
- OUTPUT_FULL_TEXT(buffer); | |
-} | |
-- | |
2.4.1 | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- /usr/portage/x11-misc/i3status/i3status-2.9.ebuild 2015-03-22 14:25:24.000000000 -0400 | |
+++ /usr/local/portage/x11-misc/i3status/i3status-2.9.ebuild 2015-05-26 20:05:55.969766065 -0400 | |
@@ -13,17 +13,18 @@ | |
LICENSE="BSD" | |
SLOT="0" | |
KEYWORDS="~amd64 ~x86" | |
-IUSE="" | |
+IUSE="sound" | |
RDEPEND="dev-libs/confuse | |
>=dev-libs/yajl-2.0.2 | |
- media-libs/alsa-lib | |
+ sound? ( media-libs/alsa-lib ) | |
net-wireless/wireless-tools" | |
DEPEND="${RDEPEND}" | |
src_prepare() { | |
sed -e "/@echo/d" -e "s:@\$(:\$(:g" -e "/setcap/d" \ | |
-e '/CFLAGS+=-g/d' -i Makefile || die | |
+ use sound || epatch "${FILESDIR}"/"${P}"-no-sound.patch | |
} | |
src_compile() { |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment