summaryrefslogtreecommitdiffstats
path: root/main/busybox/0001-add-simple-beep-applet.patch
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2009-08-19 08:32:49 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2009-08-19 08:32:49 +0000
commit35a5dd67e089a801cb2462e71cddeb00caf86f80 (patch)
treec5e9192362d11ccb5e94a33a5ec62a11fae138fb /main/busybox/0001-add-simple-beep-applet.patch
parent87239ae6b56c9bdac3676c2e7c11bc5aedb9855d (diff)
downloadaports-35a5dd67e089a801cb2462e71cddeb00caf86f80.tar.bz2
aports-35a5dd67e089a801cb2462e71cddeb00caf86f80.tar.xz
main/busybox: backport of beep applet
Diffstat (limited to 'main/busybox/0001-add-simple-beep-applet.patch')
-rw-r--r--main/busybox/0001-add-simple-beep-applet.patch155
1 files changed, 155 insertions, 0 deletions
diff --git a/main/busybox/0001-add-simple-beep-applet.patch b/main/busybox/0001-add-simple-beep-applet.patch
new file mode 100644
index 00000000..004d6079
--- /dev/null
+++ b/main/busybox/0001-add-simple-beep-applet.patch
@@ -0,0 +1,155 @@
+From 23c387cd9d1c833679bee898ef49738be8c64727 Mon Sep 17 00:00:00 2001
+From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
+Date: Tue, 18 Aug 2009 22:28:09 +0200
+Subject: [PATCH] add simple beep applet
+
+Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
+---
+ include/applets.h | 1 +
+ include/usage.h | 9 ++++++
+ miscutils/Config.in | 6 ++++
+ miscutils/Kbuild | 1 +
+ miscutils/beep.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 87 insertions(+), 0 deletions(-)
+ create mode 100644 miscutils/beep.c
+
+diff --git a/include/applets.h b/include/applets.h
+index 32c596d..5ddbfe4 100644
+--- a/include/applets.h
++++ b/include/applets.h
+@@ -80,6 +80,7 @@ USE_ASH(APPLET(ash, _BB_DIR_BIN, _BB_SUID_NEVER))
+ USE_AWK(APPLET_NOEXEC(awk, awk, _BB_DIR_USR_BIN, _BB_SUID_NEVER, awk))
+ USE_BASENAME(APPLET_NOFORK(basename, basename, _BB_DIR_USR_BIN, _BB_SUID_NEVER, basename))
+ USE_BBCONFIG(APPLET(bbconfig, _BB_DIR_BIN, _BB_SUID_NEVER))
++USE_BEEP(APPLET(beep, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
+ //USE_BBSH(APPLET(bbsh, _BB_DIR_BIN, _BB_SUID_NEVER))
+ USE_BLKID(APPLET(blkid, _BB_DIR_SBIN, _BB_SUID_NEVER))
+ USE_BRCTL(APPLET(brctl, _BB_DIR_USR_SBIN, _BB_SUID_NEVER))
+diff --git a/include/usage.h b/include/usage.h
+index bfacc56..ac8669c 100644
+--- a/include/usage.h
++++ b/include/usage.h
+@@ -142,6 +142,15 @@
+ "$ basename /foo/bar.txt .txt\n" \
+ "bar"
+
++#define beep_trivial_usage \
++ "-f freq -l length -d delay -r repetitions"
++#define beep_full_usage "\n\n" \
++ "Options:\n" \
++ "\n -f Frequency in Hz" \
++ "\n -l Length in ms" \
++ "\n -d Delay in ms" \
++ "\n -r Repetitions" \
++
+ #define fbsplash_trivial_usage \
+ "-s IMGFILE [-c] [-d DEV] [-i INIFILE] [-f CMD]"
+ #define fbsplash_full_usage "\n\n" \
+diff --git a/miscutils/Config.in b/miscutils/Config.in
+index 7feaf4a..e56a3fc 100644
+--- a/miscutils/Config.in
++++ b/miscutils/Config.in
+@@ -19,6 +19,12 @@ config BBCONFIG
+ The bbconfig applet will print the config file with which
+ busybox was built.
+
++config BEEP
++ bool "beep"
++ default n
++ help
++ The beep applets beeps in a given freq/Hz.
++
+ config CHAT
+ bool "chat"
+ default n
+diff --git a/miscutils/Kbuild b/miscutils/Kbuild
+index 23d7d8d..8cf3406 100644
+--- a/miscutils/Kbuild
++++ b/miscutils/Kbuild
+@@ -7,6 +7,7 @@
+ lib-y:=
+ lib-$(CONFIG_ADJTIMEX) += adjtimex.o
+ lib-$(CONFIG_BBCONFIG) += bbconfig.o
++lib-$(CONFIG_BEEP) += beep.o
+ lib-$(CONFIG_CHAT) += chat.o
+ lib-$(CONFIG_CHRT) += chrt.o
+ lib-$(CONFIG_CROND) += crond.o
+diff --git a/miscutils/beep.c b/miscutils/beep.c
+new file mode 100644
+index 0000000..4c25454
+--- /dev/null
++++ b/miscutils/beep.c
+@@ -0,0 +1,70 @@
++/* vi: set sw=4 ts=4: */
++/*
++ * beep implementation for busybox
++ *
++ * Copyright (C) 2009 Bernhard Reutner-Fischer
++ *
++ * Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
++ *
++ */
++
++#include "libbb.h"
++
++#include <linux/kd.h>
++#ifndef CLOCK_TICK_RATE
++#define CLOCK_TICK_RATE 1193180
++#endif
++
++#define OPT_f (1<<0)
++#define OPT_l (1<<1)
++#define OPT_d (1<<2)
++#define OPT_r (1<<3)
++/* defaults */
++#define FREQ (4440)
++#define LENGTH (50)
++#define DELAY (0)
++#define REPETITIONS (1)
++int beep_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
++int beep_main(int argc UNUSED_PARAM, char **argv)
++{
++ int speaker = get_console_fd_or_die();
++ llist_t *_freq = NULL, *_length = NULL, *_delay = NULL, *_rep = NULL;
++ unsigned freq, length, delay, rep;
++ unsigned long ioctl_arg;
++ unsigned opt;
++
++ opt_complementary = "f::l::d::r::";
++ opt = getopt32(argv, "f:l:d:r:n", &_freq, &_length, &_delay, &_rep);
++
++ do {
++ if (opt & OPT_f && _freq)
++ freq = xatoul((char*)(llist_pop(&_freq)));
++ else
++ freq = FREQ;
++ if (opt & OPT_l && _length)
++ length = xatoul((char*)(llist_pop(&_length)));
++ else
++ length = LENGTH;
++ if (opt & OPT_d && _delay)
++ delay = xatoul((char*)(llist_pop(&_delay)));
++ else
++ delay = DELAY;
++ if (opt & OPT_r && _rep)
++ rep = xatoul((char*)(llist_pop(&_rep)));
++ else
++ rep = REPETITIONS;
++
++ while (rep) {
++//bb_info_msg("rep[%d] freq=%d, length=%d, delay=%d\n", rep, freq, length, delay);
++ ioctl_arg = (int)(CLOCK_TICK_RATE/freq);
++ xioctl(speaker, KIOCSOUND, (void*)ioctl_arg);
++ usleep(1000 * length);
++ ioctl(speaker, KIOCSOUND, 0);
++ if (rep--)
++ usleep(delay);
++ }
++ } while (_freq || _length || _delay || _rep);
++ if (ENABLE_FEATURE_CLEAN_UP)
++ close(speaker);
++ return EXIT_SUCCESS;
++}
+--
+1.6.4
+