From ec51ceb010615a423a42c23b6c1979f58b6a39d4 Mon Sep 17 00:00:00 2001 From: Themaister Date: Thu, 17 Mar 2011 01:25:44 +0100 Subject: [PATCH] Add usage of snes_library_id(). --- dynamic.c | 6 ++++++ dynamic.h | 2 +- general.h | 2 ++ gfx/gl.c | 4 ++-- gfx/xvideo.c | 2 +- ssnes.c | 9 +++++++++ 6 files changed, 21 insertions(+), 4 deletions(-) diff --git a/dynamic.c b/dynamic.c index 3e6e63fc37..872ed8f492 100644 --- a/dynamic.c +++ b/dynamic.c @@ -39,6 +39,10 @@ if (p##x == NULL) { SSNES_ERR("Failed to load symbol: \"%s\"\n", #x); exit(1); } \ } while(0) +#define OPT_SYM(x) do { \ + p##x = DLSYM(lib_handle, x); \ +} while(0) + static dylib_t lib_handle = NULL; #endif @@ -52,6 +56,7 @@ void (*psnes_set_input_state)(snes_input_state_t); void (*psnes_run)(void); +const char *(*psnes_library_id)(void) = NULL; unsigned (*psnes_library_revision_minor)(void); unsigned (*psnes_library_revision_major)(void); @@ -102,6 +107,7 @@ static void load_dynamic(void) SYM(snes_set_audio_sample); SYM(snes_set_input_poll); SYM(snes_set_input_state); + OPT_SYM(snes_library_id); SYM(snes_library_revision_minor); SYM(snes_library_revision_major); SYM(snes_run); diff --git a/dynamic.h b/dynamic.h index 016e3bf55e..494c14bc8f 100644 --- a/dynamic.h +++ b/dynamic.h @@ -37,6 +37,7 @@ extern void (*psnes_set_audio_sample)(snes_audio_sample_t); extern void (*psnes_set_input_poll)(snes_input_poll_t); extern void (*psnes_set_input_state)(snes_input_state_t); +extern const char* (*psnes_library_id)(void); extern unsigned (*psnes_library_revision_minor)(void); extern unsigned (*psnes_library_revision_major)(void); @@ -55,7 +56,6 @@ extern bool (*psnes_load_cartridge_sufami_turbo)( const char*, const uint8_t*, unsigned, const char*, const uint8_t*, unsigned); - extern void (*psnes_set_controller_port_device)(bool, unsigned); extern bool (*psnes_get_region)(void); diff --git a/general.h b/general.h index 6f7c2dc111..b3cc5d8e9b 100644 --- a/general.h +++ b/general.h @@ -232,6 +232,8 @@ struct global char record_path[256]; bool recording; #endif + + char title_buf[64]; }; void parse_config(void); diff --git a/gfx/gl.c b/gfx/gl.c index 5d79be9ac2..1624ef80ff 100644 --- a/gfx/gl.c +++ b/gfx/gl.c @@ -552,7 +552,7 @@ static void show_fps(void) float fps = tv_to_fps(&tmp_tv, &new_tv, 180); - snprintf(tmpstr, sizeof(tmpstr), "SSNES || FPS: %6.1f || Frames: %d", fps, frames); + snprintf(tmpstr, sizeof(tmpstr), "%s || FPS: %6.1f || Frames: %d", g_extern.title_buf, fps, frames); SDL_WM_SetCaption(tmpstr, NULL); } frames++; @@ -819,7 +819,7 @@ static void* gl_init(video_info_t *video, const input_driver_t **input, void **i glColor4f(1, 1, 1, 1); glClearColor(0, 0, 0, 1); - SDL_WM_SetCaption("SSNES", NULL); + SDL_WM_SetCaption(g_extern.title_buf, NULL); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); diff --git a/gfx/xvideo.c b/gfx/xvideo.c index 6556015642..12d0337d7b 100644 --- a/gfx/xvideo.c +++ b/gfx/xvideo.c @@ -369,7 +369,7 @@ static void* xv_init(video_info_t *video, const input_driver_t **input, void **i XSetWindowBackground(xv->display, xv->window, 0); XMapWindow(xv->display, xv->window); - XStoreName(xv->display, xv->window, "SSNES"); + XStoreName(xv->display, xv->window, g_extern.title_buf); if (video->fullscreen) set_fullscreen(xv); hide_mouse(xv); diff --git a/ssnes.c b/ssnes.c index fdb0b008a9..d4df0a7623 100644 --- a/ssnes.c +++ b/ssnes.c @@ -1154,12 +1154,21 @@ static void do_state_checks(void) check_input_rate(); } +static void fill_title_buf(void) +{ + if (psnes_library_id) + snprintf(g_extern.title_buf, sizeof(g_extern.title_buf), "SSNES : %s", psnes_library_id()); + else + snprintf(g_extern.title_buf, sizeof(g_extern.title_buf), "SSNES"); +} + int main(int argc, char *argv[]) { parse_input(argc, argv); parse_config(); init_dlsym(); + fill_title_buf(); psnes_init(); if (strlen(g_extern.basename) > 0)