Mercurial > emacs
changeset 11389:4a8836398f3e
(Fset_message_beep): Defined.
(ring_bell): Support audio cards.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Wed, 12 Apr 1995 02:29:47 +0000 |
parents | 96fa39ad9403 |
children | 5c486ab3c695 |
files | src/w32console.c |
diffstat | 1 files changed, 37 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/src/w32console.c Wed Apr 12 02:27:16 1995 +0000 +++ b/src/w32console.c Wed Apr 12 02:29:47 1995 +0000 @@ -36,7 +36,7 @@ #include "ntinevt.h" -/* frrom window.c */ +/* from window.c */ extern Lisp_Object Frecenter (); /* from keyboard.c */ @@ -101,7 +101,7 @@ cursor_coords.X = col; cursor_coords.Y = row; - if (updating_frame == NULL) + if (updating_frame == (FRAME_PTR) NULL) { SetConsoleCursorPosition (cur_screen, cursor_coords); } @@ -388,14 +388,14 @@ /* Write the attributes. */ if (!WriteConsoleOutputAttribute (cur_screen, attrs, len, cursor_coords, &i)) { - printf ("Failed writing console attributes.\n"); + printf ("Failed writing console attributes: %d\n", GetLastError ()); fflush (stdout); } /* Write the characters. */ if (!WriteConsoleOutputCharacter (cur_screen, chars, len, cursor_coords, &i)) { - printf ("Failed writing console characters.\n"); + printf ("Failed writing console characters: %d\n", GetLastError ()); fflush (stdout); } @@ -413,19 +413,43 @@ scroll_line (n, LEFT); } +static unsigned int sound_type = 0xFFFFFFFF; + void ring_bell (void) { - Beep (666, 100); + if (sound_type == 0xFFFFFFFF) + Beep (666, 100); + else + MessageBeep (sound_type); } -/* Reset to the original console mode but don't get rid of our console - For suspending emacs. */ -void -restore_console (void) +DEFUN ("set-message-beep", Fset_message_beep, Sset_message_beep, 1, 1, 0, + "Set the sound generated when the bell is rung.\n\ +SOUND is 'asterisk, 'exclamation, 'hand, 'question, or 'ok\n\ +to use the corresponding system sound for the bell.\n\ +SOUND is nil to use the normal beep.") + (sound) + Lisp_Object sound; { - unset_kbd (); - SetConsoleActiveScreenBuffer (prev_screen); + CHECK_SYMBOL (sound, 0); + + if (NILP (sound)) + sound_type = 0xFFFFFFFF; + else if (EQ (sound, intern ("asterisk"))) + sound_type = MB_ICONASTERISK; + else if (EQ (sound, intern ("exclamation"))) + sound_type = MB_ICONEXCLAMATION; + else if (EQ (sound, intern ("hand"))) + sound_type = MB_ICONHAND; + else if (EQ (sound, intern ("question"))) + sound_type = MB_ICONQUESTION; + else if (EQ (sound, intern ("ok"))) + sound_type = MB_OK; + else + sound_type = 0xFFFFFFFF; + + return sound; } /* Put our console back up, for ending a suspended session. */ @@ -441,8 +465,6 @@ { unset_kbd (); SetConsoleActiveScreenBuffer (prev_screen); - CloseHandle (cur_screen); - cur_screen = NULL; } void @@ -597,9 +619,10 @@ *pix_y = y; } -_VOID_ +void syms_of_ntterm () { defsubr (&Sset_screen_color); defsubr (&Sset_cursor_size); + defsubr (&Sset_message_beep); }