From 7061a93f66e72e832af31ea5716a631001382ac1 Mon Sep 17 00:00:00 2001
From: Miro Kropacek <[EMAIL REDACTED]>
Date: Sat, 29 Jun 2024 11:35:26 +0200
Subject: [PATCH] atari:events: use this instead of global pointer
---
src/video/ataricommon/SDL_atarievents.c | 15 +++++++--------
src/video/ataricommon/SDL_atarievents_c.h | 5 +----
src/video/ataricommon/SDL_ikbdevents.c | 2 +-
src/video/ataricommon/SDL_ikbdevents_c.h | 2 +-
src/video/ataricommon/SDL_xbiosevents.c | 2 +-
src/video/ataricommon/SDL_xbiosevents_c.h | 2 +-
src/video/xbios/SDL_xbios.c | 2 +-
src/video/xbios/SDL_xbios.h | 3 +++
8 files changed, 16 insertions(+), 17 deletions(-)
diff --git a/src/video/ataricommon/SDL_atarievents.c b/src/video/ataricommon/SDL_atarievents.c
index a6946910a..aa23d1e8b 100644
--- a/src/video/ataricommon/SDL_atarievents.c
+++ b/src/video/ataricommon/SDL_atarievents.c
@@ -35,6 +35,8 @@
#include "../../events/SDL_events_c.h"
#include "../../timer/SDL_timer_c.h"
+#include "../xbios/SDL_xbios.h" /* XBIOS SDL_PrivateVideoData */
+
#include "SDL_atarikeys.h"
#include "SDL_atarievents_c.h"
#include "SDL_xbiosevents_c.h"
@@ -52,8 +54,6 @@ static SDLKey keymap[ATARIBIOS_MAXKEYS];
static const char *keytab_normal;
static const char *keytab_shift;
-void (*Atari_ShutdownEvents)(void);
-
static void Atari_InitializeEvents(_THIS)
{
const char *envr;
@@ -62,11 +62,11 @@ static void Atari_InitializeEvents(_THIS)
/* Fall back to hardware (TOS 1.x) */
this->InitOSKeymap=AtariIkbd_InitOSKeymap;
this->PumpEvents=AtariIkbd_PumpEvents;
- Atari_ShutdownEvents=AtariIkbd_ShutdownEvents;
+ XBIOS_ShutdownEvents=AtariIkbd_ShutdownEvents;
} else {
this->InitOSKeymap=AtariXbios_InitOSKeymap;
this->PumpEvents=AtariXbios_PumpEvents;
- Atari_ShutdownEvents=AtariXbios_ShutdownEvents;
+ XBIOS_ShutdownEvents=AtariXbios_ShutdownEvents;
}
envr = SDL_getenv("SDL_ATARI_EVENTSDRIVER");
@@ -78,13 +78,13 @@ static void Atari_InitializeEvents(_THIS)
if (SDL_strcmp(envr, "ikbd") == 0) {
this->InitOSKeymap=AtariIkbd_InitOSKeymap;
this->PumpEvents=AtariIkbd_PumpEvents;
- Atari_ShutdownEvents=AtariIkbd_ShutdownEvents;
+ XBIOS_ShutdownEvents=AtariIkbd_ShutdownEvents;
}
if (SDL_strcmp(envr, "xbios") == 0) {
this->InitOSKeymap=AtariXbios_InitOSKeymap;
this->PumpEvents=AtariXbios_PumpEvents;
- Atari_ShutdownEvents=AtariXbios_ShutdownEvents;
+ XBIOS_ShutdownEvents=AtariXbios_ShutdownEvents;
}
}
@@ -155,8 +155,7 @@ void Atari_PumpEvents(_THIS)
}
/* Atari to Unicode charset translation table */
-
-Uint16 SDL_AtariToUnicodeTable[256]={
+const static Uint16 SDL_AtariToUnicodeTable[256]={
/* Standard ASCII characters from 0x00 to 0x7e */
/* Unicode stuff from 0x7f to 0xff */
diff --git a/src/video/ataricommon/SDL_atarievents_c.h b/src/video/ataricommon/SDL_atarievents_c.h
index 04fec5a6a..0eba476bb 100644
--- a/src/video/ataricommon/SDL_atarievents_c.h
+++ b/src/video/ataricommon/SDL_atarievents_c.h
@@ -30,6 +30,7 @@
#ifndef _SDL_ATARI_EVENTS_H_
#define _SDL_ATARI_EVENTS_H_
+#include "SDL_keyboard.h"
#include "../SDL_sysvideo.h"
/* Hidden "this" pointer for the video functions */
@@ -37,8 +38,6 @@
#define ATARIBIOS_MAXKEYS 128
-extern void (*Atari_ShutdownEvents)(void);
-
extern void Atari_InitOSKeymap(_THIS);
extern void Atari_PumpEvents(_THIS);
@@ -46,8 +45,6 @@ extern void SDL_Atari_InitInternalKeymap(_THIS);
extern void SDL_AtariMint_BackgroundTasks(void);
-/* Atari to Unicode charset translation table */
-extern Uint16 SDL_AtariToUnicodeTable[256];
SDL_keysym *SDL_Atari_TranslateKey(int scancode, SDL_keysym *keysym,
SDL_bool pressed, short kstate);
diff --git a/src/video/ataricommon/SDL_ikbdevents.c b/src/video/ataricommon/SDL_ikbdevents.c
index 060743435..9bfbfe45c 100644
--- a/src/video/ataricommon/SDL_ikbdevents.c
+++ b/src/video/ataricommon/SDL_ikbdevents.c
@@ -178,7 +178,7 @@ void AtariIkbd_PumpEvents(_THIS)
}
}
-void AtariIkbd_ShutdownEvents(void)
+void AtariIkbd_ShutdownEvents(_THIS)
{
Supexec(SDL_AtariIkbd_Restore);
}
diff --git a/src/video/ataricommon/SDL_ikbdevents_c.h b/src/video/ataricommon/SDL_ikbdevents_c.h
index 753e777de..7af15f3c6 100644
--- a/src/video/ataricommon/SDL_ikbdevents_c.h
+++ b/src/video/ataricommon/SDL_ikbdevents_c.h
@@ -37,6 +37,6 @@
extern void AtariIkbd_InitOSKeymap(_THIS);
extern void AtariIkbd_PumpEvents(_THIS);
-extern void AtariIkbd_ShutdownEvents(void);
+extern void AtariIkbd_ShutdownEvents(_THIS);
#endif /* _SDL_ATARI_IKBDEVENTS_H_ */
diff --git a/src/video/ataricommon/SDL_xbiosevents.c b/src/video/ataricommon/SDL_xbiosevents.c
index 5ea9693ba..12c5602b2 100644
--- a/src/video/ataricommon/SDL_xbiosevents.c
+++ b/src/video/ataricommon/SDL_xbiosevents.c
@@ -78,7 +78,7 @@ void AtariXbios_PumpEvents(_THIS)
SDL_AtariXbios_PostMouseEvents(this, SDL_TRUE);
}
-void AtariXbios_ShutdownEvents(void)
+void AtariXbios_ShutdownEvents(_THIS)
{
SDL_AtariXbios_RestoreVectors();
}
diff --git a/src/video/ataricommon/SDL_xbiosevents_c.h b/src/video/ataricommon/SDL_xbiosevents_c.h
index 55482d338..e983c9957 100644
--- a/src/video/ataricommon/SDL_xbiosevents_c.h
+++ b/src/video/ataricommon/SDL_xbiosevents_c.h
@@ -43,7 +43,7 @@ extern SDL_bool SDL_AtariXbios_enabled;
extern void AtariXbios_InitOSKeymap(_THIS);
extern void AtariXbios_PumpEvents(_THIS);
-extern void AtariXbios_ShutdownEvents(void);
+extern void AtariXbios_ShutdownEvents(_THIS);
extern void SDL_AtariXbios_InstallVectors(int vectors_mask);
extern void SDL_AtariXbios_RestoreVectors(void);
diff --git a/src/video/xbios/SDL_xbios.c b/src/video/xbios/SDL_xbios.c
index a6b85b2ca..965832101 100644
--- a/src/video/xbios/SDL_xbios.c
+++ b/src/video/xbios/SDL_xbios.c
@@ -719,7 +719,7 @@ static void XBIOS_VideoQuit(_THIS)
{
int i,j;
- Atari_ShutdownEvents();
+ (*XBIOS_ShutdownEvents)(this);
/* Restore video mode and palette */
#ifndef DEBUG_VIDEO_XBIOS
diff --git a/src/video/xbios/SDL_xbios.h b/src/video/xbios/SDL_xbios.h
index ba4c22403..96758a3e8 100644
--- a/src/video/xbios/SDL_xbios.h
+++ b/src/video/xbios/SDL_xbios.h
@@ -81,6 +81,8 @@ struct SDL_PrivateVideoData {
void (*freeVbuffers)(_THIS); /* Free video buffers */
void (*updRects)(_THIS, int numrects, SDL_Rect *rects); /* updateRects to use when video ready */
+
+ void (*ShutdownEvents)(_THIS); /* Shut down related XBIOS/IKBD events driver */
};
/* _VDO cookie values */
@@ -135,6 +137,7 @@ enum {
#define XBIOS_freeVbuffers (this->hidden->freeVbuffers)
#define XBIOS_updRects (this->hidden->updRects)
+#define XBIOS_ShutdownEvents (this->hidden->ShutdownEvents)
/*--- Functions prototypes ---*/