Produce beeps using soundcard

Vaclav Haisman V.Haisman@sh.cvut.cz
Thu Feb 13 00:36:00 GMT 2003


Hi,
this small patch adds an ability to produce beeps (\a) using soundcard by
MessageBeep() call. It can be enabled by new CYGWIN option winbeep.

Vaclav Haisman

2003-02-13  Vaclav Haisman  <V.Haisman@sh.cvut.cz>
	* environ.cc (windows_beep): New variable declaration.
	(parse_thing): New CYGWIN option.
	* fhandler_console.cc (windows_beep): New variable definition.
	(fhandler_console::write_normal):  Handle the new option.
	* Makefile.in (DLL_IMPORTS): Add libuser32.a for MessageBeep.

Index: cygwin/environ.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/environ.cc,v
retrieving revision 1.90
diff -p -U1 -r1.90 environ.cc
--- cygwin/environ.cc	30 Sep 2002 03:05:13 -0000	1.90
+++ cygwin/environ.cc	13 Feb 2003 00:11:23 -0000
@@ -38,2 +38,3 @@ extern int pcheck_case;
 extern int subauth_id;
+extern BOOL windows_beep;
 BOOL reset_com = FALSE;
@@ -523,2 +525,3 @@ static struct parse_thing
   {"tty", {NULL}, set_process_state, NULL, {{0}, {PID_USETTY}}},
+  {"winbeep", {&windows_beep}, justset, NULL, {{FALSE}, {TRUE}}},
   {"winsymlinks", {&allow_winsymlinks}, justset, NULL, {{FALSE}, {TRUE}}},
Index: cygwin/fhandler_console.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_console.cc,v
retrieving revision 1.103
diff -p -u -r1.103 fhandler_console.cc
--- cygwin/fhandler_console.cc	4 Feb 2003 03:01:17 -0000	1.103
+++ cygwin/fhandler_console.cc	13 Feb 2003 00:11:38 -0000
@@ -33,6 +33,8 @@ details. */

 #define CONVERT_LIMIT 4096

+BOOL windows_beep;
+
 static BOOL
 cp_convert (UINT destcp, char *dest, UINT srccp, const char *src, DWORD size)
 {
@@ -1406,7 +1408,10 @@ fhandler_console::write_normal (const un
       switch (base_chars[*src])
 	{
 	case BEL:
-	  Beep (412, 100);
+	  if (windows_beep)
+	    MessageBeep ((unsigned)-1);
+	  else
+	    Beep (412, 100);
 	  break;
 	case ESC:
 	  dev_state->state_ = gotesc;
Index: cygwin/Makefile.in
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/Makefile.in,v
retrieving revision 1.114
diff -p -u -r1.114 Makefile.in
--- cygwin/Makefile.in	24 Jan 2003 03:53:46 -0000	1.114
+++ cygwin/Makefile.in	13 Feb 2003 00:16:14 -0000
@@ -141,7 +141,7 @@ EXTRA_OFILES=$(bupdir1)/libiberty/random

 MALLOC_OFILES=@MALLOC_OFILES@

-DLL_IMPORTS:=$(w32api_lib)/libkernel32.a
+DLL_IMPORTS:=$(w32api_lib)/libkernel32.a $(w32api_lib)/libuser32.a

 # Please maintain this list in sorted order, with maximum files per 80 col line
 DLL_OFILES:=assert.o autoload.o cxx.o cygheap.o cygserver_client.o \



More information about the Cygwin-patches mailing list