From 3d05dad95efd0da6f95d3b4b95d757275db4d567 Mon Sep 17 00:00:00 2001 From: xhainingx Date: Wed, 17 Apr 2013 19:22:05 +0000 Subject: [PATCH] added gui.cpp functions to gui.h and compiled/linked gui.cpp sdl.cpp had a #include "gui.cpp" line, rather than including the gui.h header (which was lacking). All the declarations are now in gui.h and gui.cpp is in the sources_list --- trunk/src/drivers/sdl/SConscript | 26 ++++---- trunk/src/drivers/sdl/config.cpp | 6 +- trunk/src/drivers/sdl/config.h | 2 - trunk/src/drivers/sdl/gui.h | 84 ++++++++++++++++++++++++++ trunk/src/drivers/sdl/input.h | 2 + trunk/src/drivers/sdl/main.h | 2 - trunk/src/drivers/sdl/sdl-netplay.cpp | 1 + trunk/src/drivers/sdl/sdl.cpp | 6 +- trunk/src/drivers/sdl/sdl.h | 8 ++- trunk/src/drivers/sdl/unix-netplay.cpp | 1 + 10 files changed, 116 insertions(+), 22 deletions(-) diff --git a/trunk/src/drivers/sdl/SConscript b/trunk/src/drivers/sdl/SConscript index e8f31232..614f1451 100644 --- a/trunk/src/drivers/sdl/SConscript +++ b/trunk/src/drivers/sdl/SConscript @@ -7,21 +7,23 @@ if env['PLATFORM'] == 'darwin': env.ParseConfig(config_string) Export('env') -source_list = Split(""" -input.cpp -config.cpp -sdl.cpp -sdl-joystick.cpp -sdl-sound.cpp -sdl-throttle.cpp -sdl-video.cpp -unix-netplay.cpp -""") +source_list = Split( + """ + input.cpp + config.cpp + sdl.cpp + gui.cpp + sdl-joystick.cpp + sdl-sound.cpp + sdl-throttle.cpp + sdl-video.cpp + unix-netplay.cpp + game.cpp + """) Import('env') if 'GL' in env['LIBS']: source_list.append('sdl-opengl.cpp') -for x in range(len(source_list)): - source_list[x] = 'drivers/sdl/' + source_list[x] +source_list = ['drivers/sdl/' + source for source in source_list] Return('source_list') diff --git a/trunk/src/drivers/sdl/config.cpp b/trunk/src/drivers/sdl/config.cpp index 2105c423..0dbb2a92 100644 --- a/trunk/src/drivers/sdl/config.cpp +++ b/trunk/src/drivers/sdl/config.cpp @@ -235,9 +235,13 @@ InitConfig() config->addOption("mute", "SDL.MuteCapture", 0); #endif - + // auto load/save on gameload/close config->addOption("loadstate", "SDL.AutoLoadState", INVALID_STATE); config->addOption("savestate", "SDL.AutoSaveState", INVALID_STATE); + + //TODO implement this + config->addOption("periodicsaves", "SDL.PeriodicSaves", 0); + #ifdef _GTK char* home_dir = getenv("HOME"); diff --git a/trunk/src/drivers/sdl/config.h b/trunk/src/drivers/sdl/config.h index 92c97401..aa4f09e0 100644 --- a/trunk/src/drivers/sdl/config.h +++ b/trunk/src/drivers/sdl/config.h @@ -21,8 +21,6 @@ enum HOTKEY { HK_CHEAT_MENU=0, HK_BIND_STATE, HK_LOAD_LUA, HK_TOGGLE_BG, HK_SELECT_STATE_8, HK_SELECT_STATE_9, HK_SELECT_STATE_NEXT, HK_SELECT_STATE_PREV, HK_MAX}; -const int INVALID_STATE = 99; - static const char* HotkeyStrings[HK_MAX] = { "CheatMenu", diff --git a/trunk/src/drivers/sdl/gui.h b/trunk/src/drivers/sdl/gui.h index 11dcb673..42e46611 100644 --- a/trunk/src/drivers/sdl/gui.h +++ b/trunk/src/drivers/sdl/gui.h @@ -19,6 +19,7 @@ #ifndef FCEUX_GUI_H #define FCEUX_GUI_H + #define GTK #include extern GtkWidget* MainWindow; @@ -26,7 +27,90 @@ extern GtkWidget* evbox; extern GtkRadioAction* stateSlot; extern int GtkMouseData[3]; extern bool gtkIsStarted; + int InitGTKSubsystem(int argc, char** argv); void pushOutputToGTK(const char* str); void showGui(bool b); + +bool checkGTKVersion(int major_required, int minor_required); + +int configHotkey(char* hotkeyString); +int configGamepadButton(GtkButton* button, gpointer p); + +void resetVideo(); +void closeVideoWin(GtkWidget* w, GdkEvent* e, gpointer p); +void closeDialog(GtkWidget* w, GdkEvent* e, gpointer p); + +void toggleLowPass(GtkWidget* w, gpointer p); +void toggleOption(GtkWidget* w, gpointer p); + +int setTint(GtkWidget* w, gpointer p); +int setHue(GtkWidget* w, gpointer p); +void loadPalette (GtkWidget* w, gpointer p); +void clearPalette(GtkWidget* w, gpointer p); +void openPaletteConfig(); + +void launchNet(GtkWidget* w, gpointer p); +void setUsername(GtkWidget* w, gpointer p); +void netResponse(GtkWidget* w, gint response_id, gpointer p); +void openNetworkConfig(); +void flushGtkEvents(); + +void openHotkeyConfig(); +int setInputDevice(GtkWidget* w, gpointer p); +void updateGamepadConfig(GtkWidget* w, gpointer p); +void openGamepadConfig(); + +int setBufSize(GtkWidget* w, gpointer p); +void setRate(GtkWidget* w, gpointer p); +void setQuality(GtkWidget* w, gpointer p); +void resizeGtkWindow(); +void setScaler(GtkWidget* w, gpointer p); +int setXscale(GtkWidget* w, gpointer p); +int setYscale(GtkWidget* w, gpointer p); + +#ifdef OPENGL +void setGl(GtkWidget* w, gpointer p); +void setDoubleBuffering(GtkWidget* w, gpointer p); #endif + +void openVideoConfig(); +int mixerChanged(GtkWidget* w, gpointer p); +void openSoundConfig(); +void quit (); +void openAbout (); +void toggleSound(GtkWidget* check, gpointer data); + +void emuReset (); +void hardReset (); +void enableFullscreen (); +void toggleAutoResume (GtkToggleAction *action); + +void recordMovie(); +void recordMovieAs (); +void loadMovie (); +#ifdef _S9XLUA_H +void loadLua (); +#endif +void loadFdsBios (); + +void enableGameGenie(int enabled); +void toggleGameGenie(GtkToggleAction *action); +void togglePause(GtkAction *action); +void loadGameGenie (); + +void loadNSF (); +void closeGame(); +void loadGame (); +void saveStateAs(); +void loadStateFrom(); +void quickLoad(); +void quickSave(); +void changeState(GtkAction *action, GtkRadioAction *current, gpointer data); +unsigned short GDKToSDLKeyval(int gdk_key); +gint convertKeypress(GtkWidget *grab, GdkEventKey *event, gpointer user_data); +gint handleMouseClick(GtkWidget* widget, GdkEvent *event, gpointer callback_data); +void handle_resize(GtkWindow* win, GdkEvent* event, gpointer data); +int InitGTKSubsystem(int argc, char** argv); + +#endif // ifndef FCEUX_GUI_H diff --git a/trunk/src/drivers/sdl/input.h b/trunk/src/drivers/sdl/input.h index cfe14287..bd3d4994 100644 --- a/trunk/src/drivers/sdl/input.h +++ b/trunk/src/drivers/sdl/input.h @@ -12,6 +12,8 @@ typedef struct { //uint64 DeviceID[MAXBUTTCONFIG]; /* TODO */ } ButtConfig; + +extern int NoWaiting; extern CFGSTRUCT InputConfig[]; extern ARGPSTRUCT InputArgs[]; extern int Hotkeys[]; diff --git a/trunk/src/drivers/sdl/main.h b/trunk/src/drivers/sdl/main.h index 061c7daa..fc9fefd5 100644 --- a/trunk/src/drivers/sdl/main.h +++ b/trunk/src/drivers/sdl/main.h @@ -36,8 +36,6 @@ extern int eoptions; #define EO_LOWPASS 512 #define EO_AUTOHIDE 1024 -extern int NoWaiting; - extern int _sound; extern long soundrate; extern long soundbufsize; diff --git a/trunk/src/drivers/sdl/sdl-netplay.cpp b/trunk/src/drivers/sdl/sdl-netplay.cpp index bab23692..52a9e25e 100644 --- a/trunk/src/drivers/sdl/sdl-netplay.cpp +++ b/trunk/src/drivers/sdl/sdl-netplay.cpp @@ -1,4 +1,5 @@ #include "sdl.h" +#include "input.h" #include #include "sdl-netplay.h" diff --git a/trunk/src/drivers/sdl/sdl.cpp b/trunk/src/drivers/sdl/sdl.cpp index 85a40e73..01f9503d 100644 --- a/trunk/src/drivers/sdl/sdl.cpp +++ b/trunk/src/drivers/sdl/sdl.cpp @@ -31,7 +31,7 @@ #ifdef _GTK #include -#include "gui.cpp" +#include "gui.h" #endif #include @@ -126,8 +126,8 @@ static const char *DriverUsage= "--rp2mic {0|1} Replace Port 2 Start with microphone (Famicom).\n" "--nogui Don't load the GTK GUI\n" "--4buttonexit {0|1} exit the emulator when A+B+Select+Start is pressed\n" -"--savestate {0-9|>9} load from the given state when the game is loaded\n" -"--loadstate {0-9|>9} save to the given state when the game is closed\n" +"--loadstate {0-9|>9} load from the given state when the game is loaded\n" +"--savestate {0-9|>9} save to the given state when the game is closed\n" " to not save/load automatically provide a number\n" " greater than 9\n"; diff --git a/trunk/src/drivers/sdl/sdl.h b/trunk/src/drivers/sdl/sdl.h index 74b5c93d..de96b781 100644 --- a/trunk/src/drivers/sdl/sdl.h +++ b/trunk/src/drivers/sdl/sdl.h @@ -6,15 +6,19 @@ #else #include #endif + #include "main.h" #include "dface.h" #include "input.h" -static void DoFun(int frameskip); -static int isloaded = 0; +const int INVALID_STATE = 99; + extern int noGui; +extern int isloaded; int LoadGame(const char *path); int CloseGame(void); +void FCEUD_Update(uint8 *XBuf, int32 *Buffer, int Count); +uint64 FCEUD_GetTime(); #endif diff --git a/trunk/src/drivers/sdl/unix-netplay.cpp b/trunk/src/drivers/sdl/unix-netplay.cpp index 62ba2c1e..66f8a687 100644 --- a/trunk/src/drivers/sdl/unix-netplay.cpp +++ b/trunk/src/drivers/sdl/unix-netplay.cpp @@ -22,6 +22,7 @@ //consider changing this to use sdl net stuff? #include "main.h" +#include "input.h" #include "dface.h" #include "unix-netplay.h"