svn commit: r193184 - in head/sys/dev/syscons: . teken

Ed Schouten ed at FreeBSD.org
Sun May 31 19:35:42 UTC 2009


Author: ed
Date: Sun May 31 19:35:41 2009
New Revision: 193184
URL: http://svn.freebsd.org/changeset/base/193184

Log:
  Restore support for bell pitch/duration.
  
  Because we only support a single argument to tf_param, use 16 bits for
  the pitch and 16 bits for the duration. While there, make the argument
  unsigned. There isn't a single param call that needs a signed integer.
  
  Submitted by:	danfe (modified)

Modified:
  head/sys/dev/syscons/scterm-teken.c
  head/sys/dev/syscons/teken/sequences
  head/sys/dev/syscons/teken/teken.c
  head/sys/dev/syscons/teken/teken.h
  head/sys/dev/syscons/teken/teken_subr_compat.h

Modified: head/sys/dev/syscons/scterm-teken.c
==============================================================================
--- head/sys/dev/syscons/scterm-teken.c	Sun May 31 18:14:40 2009	(r193183)
+++ head/sys/dev/syscons/scterm-teken.c	Sun May 31 19:35:41 2009	(r193184)
@@ -491,7 +491,7 @@ scteken_copy(void *arg, const teken_rect
 }
 
 static void
-scteken_param(void *arg, int cmd, int value)
+scteken_param(void *arg, int cmd, unsigned int value)
 {
 	scr_stat *scp = arg;
 
@@ -508,6 +508,10 @@ scteken_param(void *arg, int cmd, int va
 	case TP_SWITCHVT:
 		sc_switch_scr(scp->sc, value);
 		break;
+	case TP_SETBELLPD:
+		scp->bell_pitch = TP_SETBELLPD_PITCH(value);
+		scp->bell_duration = TP_SETBELLPD_DURATION(value);
+		break;
 	}
 }
 

Modified: head/sys/dev/syscons/teken/sequences
==============================================================================
--- head/sys/dev/syscons/teken/sequences	Sun May 31 18:14:40 2009	(r193183)
+++ head/sys/dev/syscons/teken/sequences	Sun May 31 19:35:41 2009	(r193184)
@@ -102,6 +102,7 @@ VPA	Vertical Position Absolute		^[ [ d		
 # Cons25 compatibility sequences
 C25ADBG	Cons25 set adapter background		^[ [ = G	r
 C25ADFG	Cons25 set adapter foreground		^[ [ = F	r
+C25BLPD	Cons25 set bell pitch duration		^[ [ = B	r r
 C25CURS	Cons25 set cursor type			^[ [ = S	r
 C25VTSW	Cons25 switch virtual terminal		^[ [ z		r
 

Modified: head/sys/dev/syscons/teken/teken.c
==============================================================================
--- head/sys/dev/syscons/teken/teken.c	Sun May 31 18:14:40 2009	(r193183)
+++ head/sys/dev/syscons/teken/teken.c	Sun May 31 19:35:41 2009	(r193184)
@@ -167,7 +167,7 @@ teken_funcs_copy(teken_t *t, const teken
 }
 
 static inline void
-teken_funcs_param(teken_t *t, int cmd, int value)
+teken_funcs_param(teken_t *t, int cmd, unsigned int value)
 {
 
 	t->t_funcs->tf_param(t->t_softc, cmd, value);

Modified: head/sys/dev/syscons/teken/teken.h
==============================================================================
--- head/sys/dev/syscons/teken/teken.h	Sun May 31 18:14:40 2009	(r193183)
+++ head/sys/dev/syscons/teken/teken.h	Sun May 31 19:35:41 2009	(r193184)
@@ -98,13 +98,16 @@ typedef void tf_putchar_t(void *, const 
 typedef void tf_fill_t(void *, const teken_rect_t *, teken_char_t,
     const teken_attr_t *);
 typedef void tf_copy_t(void *, const teken_rect_t *, const teken_pos_t *);
-typedef void tf_param_t(void *, int, int);
+typedef void tf_param_t(void *, int, unsigned int);
 #define	TP_SHOWCURSOR	0
 #define	TP_CURSORKEYS	1
 #define	TP_KEYPADAPP	2
 #define	TP_AUTOREPEAT	3
 #define	TP_SWITCHVT	4
 #define	TP_132COLS	5
+#define	TP_SETBELLPD	6
+#define	TP_SETBELLPD_PITCH(pd)		((pd) >> 16)
+#define	TP_SETBELLPD_DURATION(pd)	((pd) & 0xffff)
 typedef void tf_respond_t(void *, const void *, size_t);
 
 typedef struct {

Modified: head/sys/dev/syscons/teken/teken_subr_compat.h
==============================================================================
--- head/sys/dev/syscons/teken/teken_subr_compat.h	Sun May 31 18:14:40 2009	(r193183)
+++ head/sys/dev/syscons/teken/teken_subr_compat.h	Sun May 31 19:35:41 2009	(r193184)
@@ -66,6 +66,15 @@ teken_subr_cons25_switch_virtual_termina
 	teken_funcs_param(t, TP_SWITCHVT, vt);
 }
 
+static void
+teken_subr_cons25_set_bell_pitch_duration(teken_t *t, unsigned int pitch,
+    unsigned int duration)
+{
+
+	teken_funcs_param(t, TP_SETBELLPD, (pitch << 16) |
+	    (duration & 0xffff));
+}
+
 #if 0
 static void
 teken_subr_vt52_decid(teken_t *t)


More information about the svn-src-all mailing list