kernel32: Move Beep implementation to conhost.
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
cd9f96c7ce
commit
810873eb75
|
@ -23,21 +23,10 @@
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Reference applications:
|
|
||||||
* - IDA (interactive disassembler) full version 3.75. Works.
|
|
||||||
* - LYNX/W32. Works mostly, some keys crash it.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
#include "wine/port.h"
|
|
||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#ifdef HAVE_UNISTD_H
|
|
||||||
# include <unistd.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define NONAMELESSUNION
|
#define NONAMELESSUNION
|
||||||
#include "ntstatus.h"
|
#include "ntstatus.h"
|
||||||
|
@ -84,9 +73,9 @@ HWND WINAPI GetConsoleWindow(void)
|
||||||
*/
|
*/
|
||||||
BOOL WINAPI Beep( DWORD dwFreq, DWORD dwDur )
|
BOOL WINAPI Beep( DWORD dwFreq, DWORD dwDur )
|
||||||
{
|
{
|
||||||
static const char beep = '\a';
|
/* FIXME: we should not require a console to be attached */
|
||||||
/* dwFreq and dwDur are ignored by Win95 */
|
DeviceIoControl( RtlGetCurrentPeb()->ProcessParameters->ConsoleHandle,
|
||||||
if (isatty(2)) write( 2, &beep, 1 );
|
IOCTL_CONDRV_BEEP, NULL, 0, NULL, 0, NULL, NULL );
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
#define IOCTL_CONDRV_GET_TITLE CTL_CODE(FILE_DEVICE_CONSOLE, 16, METHOD_BUFFERED, FILE_READ_ACCESS)
|
#define IOCTL_CONDRV_GET_TITLE CTL_CODE(FILE_DEVICE_CONSOLE, 16, METHOD_BUFFERED, FILE_READ_ACCESS)
|
||||||
#define IOCTL_CONDRV_SET_TITLE CTL_CODE(FILE_DEVICE_CONSOLE, 17, METHOD_BUFFERED, FILE_WRITE_ACCESS)
|
#define IOCTL_CONDRV_SET_TITLE CTL_CODE(FILE_DEVICE_CONSOLE, 17, METHOD_BUFFERED, FILE_WRITE_ACCESS)
|
||||||
#define IOCTL_CONDRV_CTRL_EVENT CTL_CODE(FILE_DEVICE_CONSOLE, 18, METHOD_BUFFERED, FILE_WRITE_ACCESS)
|
#define IOCTL_CONDRV_CTRL_EVENT CTL_CODE(FILE_DEVICE_CONSOLE, 18, METHOD_BUFFERED, FILE_WRITE_ACCESS)
|
||||||
|
#define IOCTL_CONDRV_BEEP CTL_CODE(FILE_DEVICE_CONSOLE, 19, METHOD_BUFFERED, FILE_ANY_ACCESS)
|
||||||
|
|
||||||
/* console output ioctls */
|
/* console output ioctls */
|
||||||
#define IOCTL_CONDRV_WRITE_CONSOLE CTL_CODE(FILE_DEVICE_CONSOLE, 30, METHOD_BUFFERED, FILE_WRITE_ACCESS)
|
#define IOCTL_CONDRV_WRITE_CONSOLE CTL_CODE(FILE_DEVICE_CONSOLE, 30, METHOD_BUFFERED, FILE_WRITE_ACCESS)
|
||||||
|
|
|
@ -2569,6 +2569,15 @@ static NTSTATUS console_input_ioctl( struct console *console, unsigned int code,
|
||||||
if (in_size % sizeof(WCHAR) || *out_size) return STATUS_INVALID_PARAMETER;
|
if (in_size % sizeof(WCHAR) || *out_size) return STATUS_INVALID_PARAMETER;
|
||||||
return set_console_title( console, in_data, in_size );
|
return set_console_title( console, in_data, in_size );
|
||||||
|
|
||||||
|
case IOCTL_CONDRV_BEEP:
|
||||||
|
if (in_size || *out_size) return STATUS_INVALID_PARAMETER;
|
||||||
|
if (console->is_unix)
|
||||||
|
{
|
||||||
|
tty_write( console, "\a", 1 );
|
||||||
|
tty_sync( console );
|
||||||
|
}
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
FIXME( "unsupported ioctl %x\n", code );
|
FIXME( "unsupported ioctl %x\n", code );
|
||||||
return STATUS_NOT_SUPPORTED;
|
return STATUS_NOT_SUPPORTED;
|
||||||
|
|
Loading…
Reference in New Issue