sdl: additional preliminary sdl 2.0 support
This commit is contained in:
parent
99ff252145
commit
37b0f97f1d
|
@ -83,6 +83,9 @@ int configHotkey(char* hotkeyString)
|
||||||
SDL_Surface *screen;
|
SDL_Surface *screen;
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
KillVideo();
|
KillVideo();
|
||||||
|
#if SDL_VERSION_ATLEAST(2, 0, 0)
|
||||||
|
return 0; // TODO - SDL 2.0
|
||||||
|
#else
|
||||||
screen = SDL_SetVideoMode(420, 200, 8, 0);
|
screen = SDL_SetVideoMode(420, 200, 8, 0);
|
||||||
//SDL_WM_SetCaption("Press a key to bind...", 0);
|
//SDL_WM_SetCaption("Press a key to bind...", 0);
|
||||||
|
|
||||||
|
@ -103,6 +106,7 @@ int configHotkey(char* hotkeyString)
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
// This function configures a single button on a gamepad
|
// This function configures a single button on a gamepad
|
||||||
int configGamepadButton(GtkButton* button, gpointer p)
|
int configGamepadButton(GtkButton* button, gpointer p)
|
||||||
|
@ -506,7 +510,12 @@ void openHotkeyConfig()
|
||||||
g_config->getOption(optionName, &keycode);
|
g_config->getOption(optionName, &keycode);
|
||||||
gtk_tree_store_set(hotkey_store, &iter,
|
gtk_tree_store_set(hotkey_store, &iter,
|
||||||
COMMAND_COLUMN, optionName,
|
COMMAND_COLUMN, optionName,
|
||||||
KEY_COLUMN, SDL_GetKeyName((SDLKey)keycode),
|
KEY_COLUMN,
|
||||||
|
#if SDL_VERSION_ATLEAST(2, 0, 0)
|
||||||
|
SDL_GetKeyName(keycode),
|
||||||
|
#else
|
||||||
|
SDL_GetKeyName((SDLKey)keycode),
|
||||||
|
#endif
|
||||||
-1);
|
-1);
|
||||||
gtk_tree_store_append(hotkey_store, &iter, NULL); // acquire child iterator
|
gtk_tree_store_append(hotkey_store, &iter, NULL); // acquire child iterator
|
||||||
}
|
}
|
||||||
|
@ -591,8 +600,13 @@ void updateGamepadConfig(GtkWidget* w, gpointer p)
|
||||||
GtkWidget* mappedKey = buttonMappings[i];
|
GtkWidget* mappedKey = buttonMappings[i];
|
||||||
if(GamePadConfig[padNo][i].ButtType[configNo] == BUTTC_KEYBOARD)
|
if(GamePadConfig[padNo][i].ButtType[configNo] == BUTTC_KEYBOARD)
|
||||||
{
|
{
|
||||||
|
#if SDL_VERSION_ATLEAST(2, 0, 0)
|
||||||
|
snprintf(strBuf, sizeof(strBuf), "<tt>%s</tt>",
|
||||||
|
SDL_GetKeyName(GamePadConfig[padNo][i].ButtonNum[configNo]));
|
||||||
|
#else
|
||||||
snprintf(strBuf, sizeof(strBuf), "<tt>%s</tt>",
|
snprintf(strBuf, sizeof(strBuf), "<tt>%s</tt>",
|
||||||
SDL_GetKeyName((SDLKey)GamePadConfig[padNo][i].ButtonNum[configNo]));
|
SDL_GetKeyName((SDLKey)GamePadConfig[padNo][i].ButtonNum[configNo]));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else // FIXME: display joystick button/hat/axis names properly
|
else // FIXME: display joystick button/hat/axis names properly
|
||||||
strncpy(strBuf, "<tt>Joystick</tt>", sizeof(strBuf));
|
strncpy(strBuf, "<tt>Joystick</tt>", sizeof(strBuf));
|
||||||
|
@ -1929,8 +1943,28 @@ void changeState(GtkAction *action, GtkRadioAction *current, gpointer data)
|
||||||
{
|
{
|
||||||
FCEUI_SelectState(gtk_radio_action_get_current_value(current), 0);
|
FCEUI_SelectState(gtk_radio_action_get_current_value(current), 0);
|
||||||
}
|
}
|
||||||
|
#if SDL_VERSION_ATLEAST(2, 0, 0)
|
||||||
|
// SDL 1.2/2.0 compatibility macros
|
||||||
|
#define SDLK_SCROLLOCK SDLK_SCROLLLOCK
|
||||||
|
#define SDLK_PRINT SDLK_PRINTSCREEN
|
||||||
|
#define SDLK_BREAK 0
|
||||||
|
#define SDLK_COMPOSE 0
|
||||||
|
#define SDLK_NUMLOCK SDLK_NUMLOCKCLEAR
|
||||||
|
#define SDLK_KP0 SDLK_KP_0
|
||||||
|
#define SDLK_KP1 SDLK_KP_1
|
||||||
|
#define SDLK_KP2 SDLK_KP_2
|
||||||
|
#define SDLK_KP3 SDLK_KP_3
|
||||||
|
#define SDLK_KP4 SDLK_KP_4
|
||||||
|
#define SDLK_KP5 SDLK_KP_5
|
||||||
|
#define SDLK_KP6 SDLK_KP_6
|
||||||
|
#define SDLK_KP7 SDLK_KP_7
|
||||||
|
#define SDLK_KP8 SDLK_KP_8
|
||||||
|
#define SDLK_KP9 SDLK_KP_9
|
||||||
|
#define SDLK_LSUPER SDLK_LGUI
|
||||||
|
#define SDLK_RSUPER SDLK_RGUI
|
||||||
|
#define SDLK_LMETA 0
|
||||||
|
#define SDLK_RMETA 0
|
||||||
|
#endif
|
||||||
// Adapted from Gens/GS. Converts a GDK key value into an SDL key value.
|
// Adapted from Gens/GS. Converts a GDK key value into an SDL key value.
|
||||||
unsigned short GDKToSDLKeyval(int gdk_key)
|
unsigned short GDKToSDLKeyval(int gdk_key)
|
||||||
{
|
{
|
||||||
|
@ -2078,9 +2112,12 @@ unsigned short GDKToSDLKeyval(int gdk_key)
|
||||||
gint convertKeypress(GtkWidget *grab, GdkEventKey *event, gpointer user_data)
|
gint convertKeypress(GtkWidget *grab, GdkEventKey *event, gpointer user_data)
|
||||||
{
|
{
|
||||||
SDL_Event sdlev;
|
SDL_Event sdlev;
|
||||||
SDLKey sdlkey;
|
|
||||||
int keystate;
|
int keystate;
|
||||||
|
#if SDL_VERSION_ATLEAST(2, 0, 0)
|
||||||
|
SDL_Keycode sdlkey;
|
||||||
|
#else
|
||||||
|
SDLKey sdlkey;
|
||||||
|
#endif
|
||||||
switch (event->type)
|
switch (event->type)
|
||||||
{
|
{
|
||||||
case GDK_KEY_PRESS:
|
case GDK_KEY_PRESS:
|
||||||
|
@ -2101,7 +2138,11 @@ gint convertKeypress(GtkWidget *grab, GdkEventKey *event, gpointer user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert this keypress from GDK to SDL.
|
// Convert this keypress from GDK to SDL.
|
||||||
|
#if SDL_VERSION_ATLEAST(2, 0, 0)
|
||||||
|
sdlkey = GDKToSDLKeyval(event->keyval);
|
||||||
|
#else
|
||||||
sdlkey = (SDLKey)GDKToSDLKeyval(event->keyval);
|
sdlkey = (SDLKey)GDKToSDLKeyval(event->keyval);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Create an SDL event from the keypress.
|
// Create an SDL event from the keypress.
|
||||||
sdlev.key.keysym.sym = sdlkey;
|
sdlev.key.keysym.sym = sdlkey;
|
||||||
|
|
|
@ -88,9 +88,12 @@ InitSound()
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
char driverName[8];
|
char driverName[8];
|
||||||
|
#if SDL_VERSION_ATLEAST(2, 0, 0)
|
||||||
|
// TODO - SDL 2
|
||||||
|
#else
|
||||||
SDL_AudioDriverName(driverName, 8);
|
SDL_AudioDriverName(driverName, 8);
|
||||||
|
|
||||||
fprintf(stderr, "Loading SDL sound with %s driver...\n", driverName);
|
fprintf(stderr, "Loading SDL sound with %s driver...\n", driverName);
|
||||||
|
#endif
|
||||||
|
|
||||||
// load configuration variables
|
// load configuration variables
|
||||||
g_config->getOption("SDL.Sound.Rate", &soundrate);
|
g_config->getOption("SDL.Sound.Rate", &soundrate);
|
||||||
|
|
|
@ -153,7 +153,12 @@ static void ShowUsage(char *prog)
|
||||||
#endif
|
#endif
|
||||||
puts("");
|
puts("");
|
||||||
printf("Compiled with SDL version %d.%d.%d\n", SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL );
|
printf("Compiled with SDL version %d.%d.%d\n", SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL );
|
||||||
|
#if SDL_VERSION_ATLEAST(2, 0, 0)
|
||||||
|
SDL_version* v;
|
||||||
|
SDL_GetVersion(v);
|
||||||
|
#else
|
||||||
const SDL_version* v = SDL_Linked_Version();
|
const SDL_version* v = SDL_Linked_Version();
|
||||||
|
#endif
|
||||||
printf("Linked with SDL version %d.%d.%d\n", v->major, v->minor, v->patch);
|
printf("Linked with SDL version %d.%d.%d\n", v->major, v->minor, v->patch);
|
||||||
#ifdef GTK
|
#ifdef GTK
|
||||||
printf("Compiled with GTK version %d.%d.%d\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION );
|
printf("Compiled with GTK version %d.%d.%d\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION );
|
||||||
|
@ -620,6 +625,9 @@ int main(int argc, char *argv[])
|
||||||
int yres, xres;
|
int yres, xres;
|
||||||
g_config->getOption("SDL.XResolution", &xres);
|
g_config->getOption("SDL.XResolution", &xres);
|
||||||
g_config->getOption("SDL.YResolution", &yres);
|
g_config->getOption("SDL.YResolution", &yres);
|
||||||
|
#if SDL_VERSION_ATLEAST(2, 0, 0)
|
||||||
|
// TODO _ SDL 2.0
|
||||||
|
#else
|
||||||
const SDL_VideoInfo* vid_info = SDL_GetVideoInfo();
|
const SDL_VideoInfo* vid_info = SDL_GetVideoInfo();
|
||||||
if(xres == 0)
|
if(xres == 0)
|
||||||
{
|
{
|
||||||
|
@ -650,7 +658,8 @@ int main(int argc, char *argv[])
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
g_config->setOption("SDL.LastYRes", yres);
|
g_config->setOption("SDL.LastYRes", yres);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int autoResume;
|
int autoResume;
|
||||||
g_config->getOption("SDL.AutoResume", &autoResume);
|
g_config->getOption("SDL.AutoResume", &autoResume);
|
||||||
|
|
Loading…
Reference in New Issue