aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKazutaka YOKOTA <yokota@FreeBSD.org>1998-08-03 09:09:35 +0000
committerKazutaka YOKOTA <yokota@FreeBSD.org>1998-08-03 09:09:35 +0000
commit30f3a4598b1cb45c4ca55512eea15f184b786f82 (patch)
tree7e1473510fea4df08c84251f16dd5919780d57e3
parentcf94fb21249b747441d34be0079603dac2b9d7d0 (diff)
downloadsrc-30f3a4598b1cb45c4ca55512eea15f184b786f82.tar.gz
src-30f3a4598b1cb45c4ca55512eea15f184b786f82.zip
- Add new bell types: "quiet.normal" and "quiet.visual".
When bell is of "quiet" types, the console won't ring (or flush) if the ringing process is in a background vty. PR: i386/2853 - Modify the escape sequence 'ESC[=%d;%dB' so that bell pitch and duration are set in hertz and msecs by kbdcontrol(1). There will be a corresponding kbdcontrol patch. PR: bin/6037 Submitted by: Kouichi Hirabayashi (kh@eve.mogami-wire.co.jp)
Notes
Notes: svn path=/head/; revision=38043
-rw-r--r--sys/dev/syscons/syscons.c13
-rw-r--r--sys/dev/syscons/syscons.h3
-rw-r--r--sys/i386/isa/syscons.c13
-rw-r--r--sys/i386/isa/syscons.h3
-rw-r--r--sys/isa/syscons.c13
-rw-r--r--sys/isa/syscons.h3
6 files changed, 36 insertions, 12 deletions
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c
index 4c0c43d6dc08..98de0e41c564 100644
--- a/sys/dev/syscons/syscons.c
+++ b/sys/dev/syscons/syscons.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscons.c,v 1.266 1998/07/14 11:42:05 bde Exp $
+ * $Id: syscons.c,v 1.267 1998/07/15 12:18:17 bde Exp $
*/
#include "sc.h"
@@ -1072,10 +1072,14 @@ scioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p)
return 0;
case CONS_BELLTYPE: /* set bell type sound/visual */
- if (*data)
+ if ((*(int *)data) & 0x01)
flags |= VISUAL_BELL;
else
flags &= ~VISUAL_BELL;
+ if ((*(int *)data) & 0x02)
+ flags |= QUIET_BELL;
+ else
+ flags &= ~QUIET_BELL;
return 0;
case CONS_HISTORY: /* set history size */
@@ -3070,7 +3074,7 @@ scan_esc(scr_stat *scp, u_char c)
case 'B': /* set bell pitch and duration */
if (scp->term.num_param == 2) {
scp->bell_pitch = scp->term.param[0];
- scp->bell_duration = scp->term.param[1]*10;
+ scp->bell_duration = scp->term.param[1];
}
break;
@@ -5121,6 +5125,9 @@ do_bell(scr_stat *scp, int pitch, int duration)
if (cold)
return;
+ if (scp != cur_console && (flags & QUIET_BELL))
+ return;
+
if (flags & VISUAL_BELL) {
if (blink_in_progress)
return;
diff --git a/sys/dev/syscons/syscons.h b/sys/dev/syscons/syscons.h
index bbb8a1c56e15..e65aff43158b 100644
--- a/sys/dev/syscons/syscons.h
+++ b/sys/dev/syscons/syscons.h
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscons.h,v 1.36 1997/11/21 11:37:07 yokota Exp $
+ * $Id: syscons.h,v 1.37 1998/02/12 22:05:08 phk Exp $
*/
#ifndef _I386_ISA_SYSCONS_H_
@@ -73,6 +73,7 @@
#define DETECT_KBD 0x00008
#define XT_KEYBD 0x00010
#define KBD_NORESET 0x00020
+#define QUIET_BELL 0x00040
/* attribute flags */
#define NORMAL_ATTR 0x00
diff --git a/sys/i386/isa/syscons.c b/sys/i386/isa/syscons.c
index 4c0c43d6dc08..98de0e41c564 100644
--- a/sys/i386/isa/syscons.c
+++ b/sys/i386/isa/syscons.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscons.c,v 1.266 1998/07/14 11:42:05 bde Exp $
+ * $Id: syscons.c,v 1.267 1998/07/15 12:18:17 bde Exp $
*/
#include "sc.h"
@@ -1072,10 +1072,14 @@ scioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p)
return 0;
case CONS_BELLTYPE: /* set bell type sound/visual */
- if (*data)
+ if ((*(int *)data) & 0x01)
flags |= VISUAL_BELL;
else
flags &= ~VISUAL_BELL;
+ if ((*(int *)data) & 0x02)
+ flags |= QUIET_BELL;
+ else
+ flags &= ~QUIET_BELL;
return 0;
case CONS_HISTORY: /* set history size */
@@ -3070,7 +3074,7 @@ scan_esc(scr_stat *scp, u_char c)
case 'B': /* set bell pitch and duration */
if (scp->term.num_param == 2) {
scp->bell_pitch = scp->term.param[0];
- scp->bell_duration = scp->term.param[1]*10;
+ scp->bell_duration = scp->term.param[1];
}
break;
@@ -5121,6 +5125,9 @@ do_bell(scr_stat *scp, int pitch, int duration)
if (cold)
return;
+ if (scp != cur_console && (flags & QUIET_BELL))
+ return;
+
if (flags & VISUAL_BELL) {
if (blink_in_progress)
return;
diff --git a/sys/i386/isa/syscons.h b/sys/i386/isa/syscons.h
index bbb8a1c56e15..e65aff43158b 100644
--- a/sys/i386/isa/syscons.h
+++ b/sys/i386/isa/syscons.h
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscons.h,v 1.36 1997/11/21 11:37:07 yokota Exp $
+ * $Id: syscons.h,v 1.37 1998/02/12 22:05:08 phk Exp $
*/
#ifndef _I386_ISA_SYSCONS_H_
@@ -73,6 +73,7 @@
#define DETECT_KBD 0x00008
#define XT_KEYBD 0x00010
#define KBD_NORESET 0x00020
+#define QUIET_BELL 0x00040
/* attribute flags */
#define NORMAL_ATTR 0x00
diff --git a/sys/isa/syscons.c b/sys/isa/syscons.c
index 4c0c43d6dc08..98de0e41c564 100644
--- a/sys/isa/syscons.c
+++ b/sys/isa/syscons.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscons.c,v 1.266 1998/07/14 11:42:05 bde Exp $
+ * $Id: syscons.c,v 1.267 1998/07/15 12:18:17 bde Exp $
*/
#include "sc.h"
@@ -1072,10 +1072,14 @@ scioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p)
return 0;
case CONS_BELLTYPE: /* set bell type sound/visual */
- if (*data)
+ if ((*(int *)data) & 0x01)
flags |= VISUAL_BELL;
else
flags &= ~VISUAL_BELL;
+ if ((*(int *)data) & 0x02)
+ flags |= QUIET_BELL;
+ else
+ flags &= ~QUIET_BELL;
return 0;
case CONS_HISTORY: /* set history size */
@@ -3070,7 +3074,7 @@ scan_esc(scr_stat *scp, u_char c)
case 'B': /* set bell pitch and duration */
if (scp->term.num_param == 2) {
scp->bell_pitch = scp->term.param[0];
- scp->bell_duration = scp->term.param[1]*10;
+ scp->bell_duration = scp->term.param[1];
}
break;
@@ -5121,6 +5125,9 @@ do_bell(scr_stat *scp, int pitch, int duration)
if (cold)
return;
+ if (scp != cur_console && (flags & QUIET_BELL))
+ return;
+
if (flags & VISUAL_BELL) {
if (blink_in_progress)
return;
diff --git a/sys/isa/syscons.h b/sys/isa/syscons.h
index bbb8a1c56e15..e65aff43158b 100644
--- a/sys/isa/syscons.h
+++ b/sys/isa/syscons.h
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscons.h,v 1.36 1997/11/21 11:37:07 yokota Exp $
+ * $Id: syscons.h,v 1.37 1998/02/12 22:05:08 phk Exp $
*/
#ifndef _I386_ISA_SYSCONS_H_
@@ -73,6 +73,7 @@
#define DETECT_KBD 0x00008
#define XT_KEYBD 0x00010
#define KBD_NORESET 0x00020
+#define QUIET_BELL 0x00040
/* attribute flags */
#define NORMAL_ATTR 0x00