# HG changeset patch # User Patrice Mandin # Date 1168547593 0 # Node ID d8371d2dc5245af663b64e6be65c4ffbbc23915e # Parent 5baad375842757328ce997edc72fa96accc69f19 Disable TurboVeille screensaver if present diff -r 5baad3758427 -r d8371d2dc524 src/video/xbios/SDL_xbios.c --- a/src/video/xbios/SDL_xbios.c Thu Jan 04 19:52:12 2007 +0000 +++ b/src/video/xbios/SDL_xbios.c Thu Jan 11 20:33:13 2007 +0000 @@ -49,6 +49,7 @@ #include "SDL_xbios_blowup.h" #include "SDL_xbios_centscreen.h" #include "SDL_xbios_sb3.h" +#include "SDL_xbios_tveille.h" #define XBIOS_VID_DRIVER_NAME "xbios" @@ -464,6 +465,11 @@ SDL_AtariGL_InitPointers(this); #endif + /* Disable screensavers */ + if (SDL_XBIOS_TveillePresent(this)) { + SDL_XBIOS_TveilleDisable(this); + } + /* We're done! */ return(0); } @@ -928,6 +934,11 @@ } this->screen->pixels = NULL; + + /* Restore screensavers */ + if (SDL_XBIOS_TveillePresent(this)) { + SDL_XBIOS_TveilleRestore(this); + } } #if SDL_VIDEO_OPENGL diff -r 5baad3758427 -r d8371d2dc524 src/video/xbios/SDL_xbios_tveille.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/video/xbios/SDL_xbios_tveille.c Thu Jan 11 20:33:13 2007 +0000 @@ -0,0 +1,52 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2004 Sam Lantinga + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + Sam Lantinga + slouken@libsdl.org +*/ +#include "SDL_config.h" + +/* + Turbo veille screensaver + + Patrice Mandin +*/ + +#include + +#include "SDL_xbios.h" +#include "SDL_xbios_tveille.h" + +static tveille_t *cookie_veil; +static int status; + +int SDL_XBIOS_TveillePresent(_THIS) +{ + return (Getcookie(C_VeiL, (unsigned long *)&cookie_veil) == C_FOUND); +} + +void SDL_XBIOS_TveilleDisable(_THIS) +{ + status = cookie_veil->enabled; + cookie_veil->enabled = 0xff; +} + +void SDL_XBIOS_TveilleRestore(_THIS) +{ + cookie_veil->enabled = status; +} diff -r 5baad3758427 -r d8371d2dc524 src/video/xbios/SDL_xbios_tveille.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/video/xbios/SDL_xbios_tveille.h Thu Jan 11 20:33:13 2007 +0000 @@ -0,0 +1,70 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2004 Sam Lantinga + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + Sam Lantinga + slouken@libsdl.org +*/ +#include "SDL_config.h" + +/* + Turbo veille screensaver + + Patrice Mandin +*/ + +#ifndef _SDL_xbios_tveille_h +#define _SDL_xbios_tveille_h + +#include "SDL_xbios.h" + +/*--- Defines ---*/ + +#ifndef C_VeiL +#define C_VeiL 0x5665694CL +#endif + +/*--- Structures ---*/ + +typedef struct { + unsigned long version; + void (*prg_ptr)(); + void (*kbd_ptr)(); + void (*vbl_ptr)(); + unsigned long vbl_count; + void (*oldkbd_ptr)(); + unsigned long off_count; + unsigned long prg_size; + unsigned long dummy1[4]; + unsigned char dummy2; + unsigned char status; + unsigned short freq; + unsigned short dummy3; + unsigned char clear_first; + unsigned char enabled; /* 0=enabled, 0xff=disabled */ + unsigned char serial_redir; + unsigned char dummy4; + void (*oldserial_ptr)(); +} __attribute__((packed)) tveille_t; + +/*--- Functions prototypes ---*/ + +int SDL_XBIOS_TveillePresent(_THIS); +void SDL_XBIOS_TveilleDisable(_THIS); +void SDL_XBIOS_TveilleEnable(_THIS); + +#endif /* _SDL_xbios_tveille_h */