summaryrefslogtreecommitdiff
path: root/gui/Gtk2Gui.c
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-11-28 15:41:04 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-11-28 15:41:04 +0000
commit676eb630fbb2ac830a0befdd30a3a16705af7e86 (patch)
treef2586fbf4d2ad8f293397faf9034ccdb7a5bdef6 /gui/Gtk2Gui.c
parent99bc6308ba92d0bf8bf158f032b21b7aa17a3bf2 (diff)
downloadpcsxr-676eb630fbb2ac830a0befdd30a3a16705af7e86.tar.gz
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@38411 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'gui/Gtk2Gui.c')
-rw-r--r--gui/Gtk2Gui.c1086
1 files changed, 107 insertions, 979 deletions
diff --git a/gui/Gtk2Gui.c b/gui/Gtk2Gui.c
index dbccbf35..0bc5bf24 100644
--- a/gui/Gtk2Gui.c
+++ b/gui/Gtk2Gui.c
@@ -33,22 +33,10 @@
#include "Linux.h"
#include "../libpcsxcore/plugins.h"
-#include "../libpcsxcore/sio.h"
#include "../libpcsxcore/cheat.h"
#include "MemcardDlg.h"
-
-PSEgetLibType PSE_getLibType = NULL;
-PSEgetLibVersion PSE_getLibVersion = NULL;
-PSEgetLibName PSE_getLibName = NULL;
-
-// Helper Functions
-void UpdatePluginsBIOS();
-void UpdatePluginsBIOS_UpdateGUI(GladeXML *xml);
-void FindNetPlugin(GladeXML *xml);
-
-void OnNet_Conf(GtkWidget *widget, gpointer user_data);
-void OnNet_About(GtkWidget *widget, gpointer user_data);
+#include "ConfDlg.h"
// Functions Callbacks
void OnFile_RunCd();
@@ -58,62 +46,22 @@ void OnFile_RunImage();
void OnEmu_Run();
void OnEmu_Reset();
void OnEmu_SwitchImage();
-void OnConf_Graphics();
-void OnConf_Sound();
-void OnConf_CdRom();
-void OnConf_Pad();
-void OnConf_Cpu();
-void OnConf_Net();
void OnHelp_Help();
void OnHelp_About();
void OnDestroy();
void OnFile_Exit();
-void OnBiosPath_Changed(GtkWidget *wdg, gpointer data);
-void OnConf_Clicked (GtkDialog *dialog, gint arg1, gpointer user_data);
-void OnPluginPath_Changed(GtkWidget *wdg, gpointer data);
-void OnConfConf_Pad1About(GtkWidget *widget, gpointer user_data);
-void OnConfConf_Pad2About(GtkWidget *widget, gpointer user_data);
-void OnConfConf_Pad1Conf(GtkWidget *widget, gpointer user_data);
-void OnConfConf_Pad2Conf(GtkWidget *widget, gpointer user_data);
-
void on_states_load(GtkWidget *widget, gpointer user_data);
void on_states_load_other();
void on_states_save(GtkWidget *widget, gpointer user_data);
void on_states_save_other();
-void on_configure_plugin(GtkWidget *widget, gpointer user_data);
-void on_about_plugin(GtkWidget *widget, gpointer user_data);
-
GtkWidget *Window = NULL;
-GtkWidget *ConfDlg = NULL;
-
-//GtkAccelGroup *AccelGroup;
-
-GtkWidget *controlwidget;
int destroy = 0;
#define MAX_SLOTS 5
-#define FindComboText(combo, list, conf) \
- if (strlen(conf) > 0) { \
- int i; \
- for (i = 2; i < 255; i += 2) { \
- if (!strcmp(conf, list[i - 2])) { \
- gtk_combo_box_set_active (GTK_COMBO_BOX (combo), i / 2 - 1); \
- break; \
- } \
- } \
- }
-
-#define GetComboText(combo, list, conf) \
- { \
- int row; \
- row = gtk_combo_box_get_active(GTK_COMBO_BOX(combo)); \
- strcpy(conf, (char *)list[row * 2]); \
- }
-
/* TODO - If MAX_SLOTS changes, need to find a way to automatically set all positions */
int Slots[MAX_SLOTS] = { -1, -1, -1, -1, -1 };
@@ -123,7 +71,7 @@ void ResetMenuSlots(GladeXML *xml) {
int i;
if (CdromId[0] == '\0') {
- /* disable state saving/loading if no CD is loaded */
+ // disable state saving/loading if no CD is loaded
for (i = 0; i < MAX_SLOTS; i++) {
str = g_strdup_printf("GtkMenuItem_SaveSlot%d", i+1);
widget = glade_xml_get_widget(xml, str);
@@ -132,24 +80,26 @@ void ResetMenuSlots(GladeXML *xml) {
gtk_widget_set_sensitive(widget, FALSE);
str = g_strdup_printf("GtkMenuItem_LoadSlot%d", i+1);
- widget = glade_xml_get_widget (xml, str);
- g_free (str);
+ widget = glade_xml_get_widget(xml, str);
+ g_free(str);
gtk_widget_set_sensitive(widget, FALSE);
}
- /* also disable certain menu items */
- widget = glade_xml_get_widget (xml, "other1");
+ // also disable certain menu/toolbar items
+ widget = glade_xml_get_widget(xml, "other1");
+ gtk_widget_set_sensitive(widget, FALSE);
+ widget = glade_xml_get_widget(xml, "other2");
gtk_widget_set_sensitive(widget, FALSE);
- widget = glade_xml_get_widget (xml, "other2");
+ widget = glade_xml_get_widget(xml, "run1");
gtk_widget_set_sensitive(widget, FALSE);
- widget = glade_xml_get_widget (xml, "run1");
+ widget = glade_xml_get_widget(xml, "reset1");
gtk_widget_set_sensitive(widget, FALSE);
- widget = glade_xml_get_widget (xml, "reset1");
+ widget = glade_xml_get_widget(xml, "search1");
gtk_widget_set_sensitive(widget, FALSE);
- widget = glade_xml_get_widget (xml, "search1");
+ widget = glade_xml_get_widget(xml, "SwitchImage");
gtk_widget_set_sensitive(widget, FALSE);
- widget = glade_xml_get_widget (xml, "SwitchImage");
+ widget = glade_xml_get_widget(xml, "toolbutton_switchimage");
gtk_widget_set_sensitive(widget, FALSE);
}
else {
@@ -164,20 +114,30 @@ void ResetMenuSlots(GladeXML *xml) {
gtk_widget_set_sensitive(widget, TRUE);
}
- widget = glade_xml_get_widget (xml, "plugins_bios");
+ widget = glade_xml_get_widget(xml, "plugins_bios");
gtk_widget_set_sensitive(widget, FALSE);
- widget = glade_xml_get_widget (xml, "graphics1");
+ widget = glade_xml_get_widget(xml, "graphics1");
gtk_widget_set_sensitive(widget, FALSE);
- widget = glade_xml_get_widget (xml, "sound1");
+ widget = glade_xml_get_widget(xml, "sound1");
gtk_widget_set_sensitive(widget, FALSE);
- widget = glade_xml_get_widget (xml, "cdrom1");
+ widget = glade_xml_get_widget(xml, "cdrom1");
gtk_widget_set_sensitive(widget, FALSE);
- widget = glade_xml_get_widget (xml, "pad1");
+ widget = glade_xml_get_widget(xml, "pad1");
gtk_widget_set_sensitive(widget, FALSE);
- widget = glade_xml_get_widget (xml, "net1");
+ widget = glade_xml_get_widget(xml, "net1");
gtk_widget_set_sensitive(widget, FALSE);
- widget = glade_xml_get_widget (xml, "SwitchImage");
+ widget = glade_xml_get_widget(xml, "SwitchImage");
gtk_widget_set_sensitive(widget, cdrfilename[0]);
+ widget = glade_xml_get_widget(xml, "toolbutton_switchimage");
+ gtk_widget_set_sensitive(widget, cdrfilename[0]);
+ widget = glade_xml_get_widget(xml, "toolbutton_graphics");
+ gtk_widget_set_sensitive(widget, FALSE);
+ widget = glade_xml_get_widget(xml, "toolbutton_sound");
+ gtk_widget_set_sensitive(widget, FALSE);
+ widget = glade_xml_get_widget(xml, "toolbutton_cdrom");
+ gtk_widget_set_sensitive(widget, FALSE);
+ widget = glade_xml_get_widget(xml, "toolbutton_controllers");
+ gtk_widget_set_sensitive(widget, FALSE);
}
}
@@ -185,7 +145,7 @@ int match(const char *string, char *pattern) {
int status;
regex_t re;
- if (regcomp(&re, pattern, REG_EXTENDED|REG_NOSUB) != 0) {
+ if (regcomp(&re, pattern, REG_EXTENDED | REG_NOSUB) != 0) {
return 0;
}
status = regexec(&re, string, (size_t) 0, NULL, 0);
@@ -197,7 +157,7 @@ int match(const char *string, char *pattern) {
return 1;
}
-gchar* get_state_filename (int i) {
+gchar* get_state_filename(int i) {
gchar *state_filename;
char SStateFile[64];
char trimlabel[33];
@@ -252,11 +212,11 @@ void StartGui() {
gtk_window_set_default_icon_from_file(PIXMAPDIR "pcsx-icon.png", NULL);
ResetMenuSlots(xml);
- /* Set up callbacks */
+ // Set up callbacks
g_signal_connect_data(GTK_OBJECT(Window), "delete-event",
GTK_SIGNAL_FUNC(OnDestroy), xml, (GClosureNotify)g_object_unref, G_CONNECT_AFTER);
- /* File menu */
+ // File menu
widget = glade_xml_get_widget(xml, "RunCd");
g_signal_connect_data(GTK_OBJECT(widget), "activate",
GTK_SIGNAL_FUNC(OnFile_RunCd), NULL, NULL, G_CONNECT_AFTER);
@@ -273,15 +233,11 @@ void StartGui() {
g_signal_connect_data(GTK_OBJECT(widget), "activate",
GTK_SIGNAL_FUNC(OnFile_RunImage), NULL, NULL, G_CONNECT_AFTER);
- widget = glade_xml_get_widget(xml, "SwitchImage");
- g_signal_connect_data(GTK_OBJECT(widget), "activate",
- GTK_SIGNAL_FUNC(OnEmu_SwitchImage), NULL, NULL, G_CONNECT_AFTER);
-
widget = glade_xml_get_widget(xml, "exit2");
g_signal_connect_data(GTK_OBJECT(widget), "activate",
GTK_SIGNAL_FUNC(OnFile_Exit), NULL, NULL, G_CONNECT_AFTER);
- /* States */
+ // States
widget = glade_xml_get_widget(xml, "GtkMenuItem_LoadSlot1");
g_signal_connect_data(GTK_OBJECT(widget), "activate",
GTK_SIGNAL_FUNC(on_states_load), (gpointer) 0, NULL, G_CONNECT_AFTER);
@@ -320,15 +276,18 @@ void StartGui() {
g_signal_connect_data(GTK_OBJECT(widget), "activate",
GTK_SIGNAL_FUNC(on_states_save_other), NULL, NULL, G_CONNECT_AFTER);
- /* Emulation menu */
+ // Emulation menu
widget = glade_xml_get_widget(xml, "run1");
g_signal_connect_data(GTK_OBJECT(widget), "activate",
GTK_SIGNAL_FUNC(OnEmu_Run), NULL, NULL, G_CONNECT_AFTER);
widget = glade_xml_get_widget(xml, "reset1");
g_signal_connect_data(GTK_OBJECT(widget), "activate",
GTK_SIGNAL_FUNC(OnEmu_Reset), NULL, NULL, G_CONNECT_AFTER);
+ widget = glade_xml_get_widget(xml, "SwitchImage");
+ g_signal_connect_data(GTK_OBJECT(widget), "activate",
+ GTK_SIGNAL_FUNC(OnEmu_SwitchImage), NULL, NULL, G_CONNECT_AFTER);
- /* Configuration menu */
+ // Configuration menu
widget = glade_xml_get_widget(xml, "plugins_bios");
g_signal_connect_data(GTK_OBJECT(widget), "activate",
GTK_SIGNAL_FUNC(ConfigurePlugins), NULL, NULL, G_CONNECT_AFTER);
@@ -354,7 +313,7 @@ void StartGui() {
g_signal_connect_data(GTK_OBJECT(widget), "activate",
GTK_SIGNAL_FUNC(OnConf_Net), NULL, NULL, G_CONNECT_AFTER);
- /* Cheat menu */
+ // Cheat menu
widget = glade_xml_get_widget(xml, "browse1");
g_signal_connect_data(GTK_OBJECT(widget), "activate",
GTK_SIGNAL_FUNC(RunCheatListDialog), NULL, NULL, G_CONNECT_AFTER);
@@ -362,114 +321,49 @@ void StartGui() {
g_signal_connect_data(GTK_OBJECT(widget), "activate",
GTK_SIGNAL_FUNC(RunCheatSearchDialog), NULL, NULL, G_CONNECT_AFTER);
- /* Help menu */
+ // Help menu
widget = glade_xml_get_widget(xml, "about_pcsx1");
g_signal_connect_data(GTK_OBJECT(widget), "activate",
GTK_SIGNAL_FUNC(OnHelp_About), NULL, NULL, G_CONNECT_AFTER);
- gtk_main();
-}
-
-void OnDestroy() {
- if (!destroy) OnFile_Exit();
-}
-
-void ConfigurePlugins() {
- if (!UseGui) {
- /* How do we get here if we're not running the GUI? */
- /* Ryan: we're going to imagine that someday, there will be a way
- * to configure plugins from the commandline */
- printf("ERROR: Plugins cannot be configured without the GUI.");
- return;
- }
-
- GladeXML *xml;
- GtkWidget *widget;
-
- gchar *path;
-
- UpdatePluginsBIOS();
-
- xml = glade_xml_new(PACKAGE_DATA_DIR "pcsx.glade2", "ConfDlg", NULL);
-
- if (!xml) {
- g_warning(_("Error: Glade interface could not be loaded!"));
- return;
- }
-
- UpdatePluginsBIOS_UpdateGUI(xml);
-
- ConfDlg = glade_xml_get_widget(xml, "ConfDlg");
-
- gtk_window_set_title(GTK_WINDOW(ConfDlg), _("Configure PCSX"));
-
- /* Set the paths in the file choosers to be based on the saved configurations */
- widget = glade_xml_get_widget(xml, "GtkFileChooser_Bios");
- gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (widget),
- Config.BiosDir);
-
- widget = glade_xml_get_widget(xml, "GtkFileChooser_Plugin");
- gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (widget),
- Config.PluginsDir);
-
- if (strlen(Config.PluginsDir) == 0) {
- if((path = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (widget))) != NULL) {
- strcpy(Config.PluginsDir, path);
- g_free(path);
- }
- }
-
- widget = glade_xml_get_widget(xml, "btn_ConfGpu");
- g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(on_configure_plugin), (gpointer) PSE_LT_GPU, NULL, G_CONNECT_AFTER);
-
- widget = glade_xml_get_widget(xml, "btn_ConfSpu");
- g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(on_configure_plugin), (gpointer) PSE_LT_SPU, NULL, G_CONNECT_AFTER);
-
- /* ADB TODO Does pad 1 and 2 need to be different? */
- widget = glade_xml_get_widget(xml, "btn_ConfPad1");
+ // Toolbar
+ widget = glade_xml_get_widget(xml, "toolbutton_runcd");
g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(OnConfConf_Pad1Conf), xml, NULL, G_CONNECT_AFTER);
+ GTK_SIGNAL_FUNC(OnFile_RunCd), NULL, NULL, G_CONNECT_AFTER);
- widget = glade_xml_get_widget(xml, "btn_ConfPad2");
+ widget = glade_xml_get_widget(xml, "toolbutton_runimage");
g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(OnConfConf_Pad2Conf), xml, NULL, G_CONNECT_AFTER);
+ GTK_SIGNAL_FUNC(OnFile_RunImage), NULL, NULL, G_CONNECT_AFTER);
- widget = glade_xml_get_widget(xml, "btn_ConfCdr");
+ widget = glade_xml_get_widget(xml, "toolbutton_switchimage");
g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(on_configure_plugin), (gpointer) PSE_LT_CDR, NULL, G_CONNECT_AFTER);
+ GTK_SIGNAL_FUNC(OnEmu_SwitchImage), NULL, NULL, G_CONNECT_AFTER);
- widget = glade_xml_get_widget(xml, "btn_AboutGpu");
+ widget = glade_xml_get_widget(xml, "toolbutton_memcards");
g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(on_about_plugin), (gpointer) PSE_LT_GPU, NULL, G_CONNECT_AFTER);
+ GTK_SIGNAL_FUNC(OnConf_Mcds), NULL, NULL, G_CONNECT_AFTER);
- widget = glade_xml_get_widget(xml, "btn_AboutSpu");
+ widget = glade_xml_get_widget(xml, "toolbutton_graphics");
g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(on_about_plugin), (gpointer) PSE_LT_SPU, NULL, G_CONNECT_AFTER);
+ GTK_SIGNAL_FUNC(OnConf_Graphics), NULL, NULL, G_CONNECT_AFTER);
- widget = glade_xml_get_widget(xml, "btn_AboutPad1");
+ widget = glade_xml_get_widget(xml, "toolbutton_sound");
g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(OnConfConf_Pad1About), xml, NULL, G_CONNECT_AFTER);
+ GTK_SIGNAL_FUNC(OnConf_Sound), NULL, NULL, G_CONNECT_AFTER);
- widget = glade_xml_get_widget(xml, "btn_AboutPad2");
+ widget = glade_xml_get_widget(xml, "toolbutton_cdrom");
g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(OnConfConf_Pad2About), xml, NULL, G_CONNECT_AFTER);
+ GTK_SIGNAL_FUNC(OnConf_CdRom), NULL, NULL, G_CONNECT_AFTER);
- widget = glade_xml_get_widget(xml, "btn_AboutCdr");
+ widget = glade_xml_get_widget(xml, "toolbutton_controllers");
g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(on_about_plugin), (gpointer) PSE_LT_CDR, NULL, G_CONNECT_AFTER);
-
- widget = glade_xml_get_widget(xml, "GtkFileChooser_Bios");
- g_signal_connect_data(GTK_OBJECT(widget), "current_folder_changed",
- GTK_SIGNAL_FUNC(OnBiosPath_Changed), xml, NULL, G_CONNECT_AFTER);
+ GTK_SIGNAL_FUNC(OnConf_Pad), NULL, NULL, G_CONNECT_AFTER);
- widget = glade_xml_get_widget(xml, "GtkFileChooser_Plugin");
- g_signal_connect_data(GTK_OBJECT(widget), "current_folder_changed",
- GTK_SIGNAL_FUNC(OnPluginPath_Changed), xml, NULL, G_CONNECT_AFTER);
+ gtk_main();
+}
- g_signal_connect_data(GTK_OBJECT(ConfDlg), "response",
- GTK_SIGNAL_FUNC(OnConf_Clicked), xml, (GClosureNotify)g_object_unref, G_CONNECT_AFTER);
+void OnDestroy() {
+ if (!destroy) OnFile_Exit();
}
void destroy_main_window () {
@@ -493,7 +387,7 @@ void OnFile_RunExe() {
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
NULL);
- /* Add file filter */
+ // Add file filters
GtkFileFilter *exefilter = gtk_file_filter_new ();
gtk_file_filter_add_pattern (exefilter, "*.exe");
gtk_file_filter_add_pattern (exefilter, "*.psx");
@@ -508,8 +402,8 @@ void OnFile_RunExe() {
gtk_file_filter_set_name (allfilter, _("All Files"));
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_chooser), allfilter);
- /* Set this to the config object and retain it - maybe LastUsedDir */
- gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER (file_chooser), getenv("HOME"));
+ // Set this to the config object and retain it - maybe LastUsedDir
+ gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(file_chooser), getenv("HOME"));
if (gtk_dialog_run(GTK_DIALOG(file_chooser)) == GTK_RESPONSE_ACCEPT) {
gchar *file;
@@ -573,10 +467,10 @@ void OnFile_RunCd() {
return;
}
- /* Read main executable directly from CDRom and start it */
+ // Read main executable directly from CDRom and start it
if (LoadCdrom() == -1) {
ClosePlugins();
- SysErrorMessage(_("Could not load CD-ROM!"), _("The CD ROM could not be loaded"));
+ SysErrorMessage(_("Could not load CD-ROM!"), _("The CD-ROM could not be loaded"));
SysRunGui();
}
@@ -691,17 +585,17 @@ void OnFile_RunImage() {
SysReset();
if (CheckCdrom() == -1) {
- /* Only check the CD if we are starting the console with a CD */
+ // Only check the CD if we are starting the console with a CD
ClosePlugins();
SysErrorMessage (_("CD ROM failed"), _("The CD does not appear to be a valid Playstation CD"));
SysRunGui();
return;
}
- /* Read main executable directly from CDRom and start it */
+ // Read main executable directly from CDRom and start it
if (LoadCdrom() == -1) {
ClosePlugins();
- SysErrorMessage(_("Could not load CD-ROM!"), "The CD ROM could not be loaded");
+ SysErrorMessage(_("Could not load CD-ROM!"), _("The CD-ROM could not be loaded"));
SysRunGui();
}
@@ -814,27 +708,26 @@ void OnFile_Exit() {
exit(0);
}
-void state_load (gchar *state_filename) {
+void state_load(gchar *state_filename) {
int ret;
- char Text[MAXPATHLEN+20];
+ char Text[MAXPATHLEN + 20];
FILE *fp;
- /* check if the state file actually exists */
+ // check if the state file actually exists
fp = fopen(state_filename, "rb");
if (fp == NULL) {
- /* file does not exist */
+ // file does not exist
return;
}
fclose(fp);
- /* If the window exists, then we are loading the state from within
- within the PCSX GUI. We need to initialise the plugins first */
+ // If the window exists, then we are loading the state from within
+ // within the PCSX GUI. We need to initialise the plugins first
if (Window) {
destroy_main_window();
if (OpenPlugins() == -1) {
- /* TODO Error message */
SysRunGui();
return;
}
@@ -844,35 +737,13 @@ void state_load (gchar *state_filename) {
ret = LoadState(state_filename);
if (ret == 0) {
- /* Check the CD ROM is valid */
+ // Check the CD-ROM is valid
if (CheckCdrom() == -1) {
- /* TODO Error message */
- ClosePlugins ();
+ ClosePlugins();
SysRunGui();
return;
}
-#if 0 /* Whistler: this will cause crash when using the "Load Other" option */
- /* Check that the currently loaded CD ROM ID matches that of the CD
- used when saving the state file. The latter is stored in the filename */
- gchar *cmp = g_strrstr (g_path_get_basename (state_filename), "-");
- cmp++;
- if (g_ascii_strncasecmp (cmp, CdromId, 9) != 0) {
- ClosePlugins ();
- gchar *error_desc, *label;
- gint pos;
- label = g_strdup_printf("%.9s", state_filename);
- error_desc = g_strdup_printf ("The Playstation CD that is currently in use is %s. It is not the same CD as that used when saving the state file. The state file is looking for %s.",
- label,
- CdromLabel);
- SysErrorMessage ("The CD does not match the state file",
- error_desc);
- g_free (error_desc);
- g_free (label);
- SysRunGui();
- return;
- }
-#endif
sprintf(Text, _("Loaded state %s."), state_filename);
GPU_displayText(Text);
psxCpu->Execute();
@@ -882,7 +753,7 @@ void state_load (gchar *state_filename) {
}
}
-void state_save (gchar *state_filename) {
+void state_save(gchar *state_filename) {
char Text[MAXPATHLEN + 20];
GPU_updateLace();
@@ -897,27 +768,26 @@ void state_save (gchar *state_filename) {
void on_states_load (GtkWidget *widget, gpointer user_data) {
gchar *state_filename;
- gint state = (int) user_data;
+ gint state = (int)user_data;
- state_filename = get_state_filename (state);
+ state_filename = get_state_filename(state);
- state_load (state_filename);
+ state_load(state_filename);
- g_free (state_filename);
+ g_free(state_filename);
}
void on_states_save (GtkWidget *widget, gpointer user_data) {
gchar *state_filename;
- gint state = (int) user_data;
+ gint state = (int)user_data;
- state_filename = get_state_filename (state);
+ state_filename = get_state_filename(state);
- state_save (state_filename);
+ state_save(state_filename);
- g_free (state_filename);
+ g_free(state_filename);
}
-
void on_states_load_other() {
GtkWidget *file_chooser;
gchar *SStateFile;
@@ -956,477 +826,28 @@ void on_states_save_other() {
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_SAVE, GTK_RESPONSE_OK,
NULL);
- gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (file_chooser), SStateFile);
+ gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(file_chooser), SStateFile);
- if (gtk_dialog_run (GTK_DIALOG (file_chooser)) == GTK_RESPONSE_OK) {
+ if (gtk_dialog_run (GTK_DIALOG(file_chooser)) == GTK_RESPONSE_OK) {
gchar *filename;
- filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser));
+ filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (file_chooser));
gtk_widget_destroy(file_chooser);
- state_save (filename);
+ state_save(filename);
- g_free (filename);
+ g_free(filename);
}
else
- gtk_widget_destroy (file_chooser);
+ gtk_widget_destroy(file_chooser);
- g_free (SStateFile);
+ g_free(SStateFile);
}
-int all_config_set () {
- int retval;
-
- if ((strlen(Config.Gpu) != 0) &&
- (strlen(Config.Spu) != 0) &&
- (strlen(Config.Cdr) != 0) &&
- (strlen(Config.Pad1) != 0) &&
- (strlen(Config.Pad2) != 0))
- retval = TRUE;
- else
- retval = FALSE;
-
- return retval;
-}
-
-GtkWidget *NetDlg;
-
-void OnNet_Clicked (GtkDialog *dialog, gint arg1, gpointer user_data) {
- if (arg1 == GTK_RESPONSE_OK) {
- GetComboText(NetConfS.Combo, NetConfS.plist, Config.Net);
- SaveConfig();
- }
-
- gtk_widget_destroy(GTK_WIDGET (dialog));
- NetDlg = NULL;
-}
-
-void OnConf_Net() {
- GladeXML *xml;
- GtkWidget *widget;
-
- if (NetDlg != NULL) {
- gtk_window_present (GTK_WINDOW (NetDlg));
- return;
- }
-
- xml = glade_xml_new(PACKAGE_DATA_DIR "pcsx.glade2", "NetDlg", NULL);
-
- if (!xml) {
- g_warning(_("Error: Glade interface could not be loaded!"));
- return;
- }
-
- NetDlg = glade_xml_get_widget(xml, "NetDlg");
-
- FindNetPlugin(xml);
-
- /* Setup a handler for when Close or Cancel is clicked */
- g_signal_connect_data(GTK_OBJECT(NetDlg), "response",
- GTK_SIGNAL_FUNC(OnNet_Clicked), xml, (GClosureNotify)g_object_unref, G_CONNECT_AFTER);
-
- widget = glade_xml_get_widget(xml, "btn_ConfNet");
- g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(OnNet_Conf), xml, NULL, G_CONNECT_AFTER);
-
- widget = glade_xml_get_widget(xml, "btn_AboutNet");
- g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(OnNet_About), xml, NULL, G_CONNECT_AFTER);
-}
-
-void OnConf_Graphics() {
- void *drv;
- GPUconfigure conf;
- char Plugin[MAXPATHLEN];
-
- sprintf(Plugin, "%s/%s", Config.PluginsDir, Config.Gpu);
- drv = SysLoadLibrary(Plugin);
- if (drv == NULL) { printf("Error with file %s\n", Plugin); return; }
-
- while (gtk_events_pending()) gtk_main_iteration();
-
- conf = (GPUconfigure)SysLoadSym(drv, "GPUconfigure");
- if (conf != NULL) {
- conf();
- }
- else
- SysInfoMessage (_("No configuration required"), _("This plugin doesn't need to be configured."));
-
- SysCloseLibrary(drv);
-}
-
-void OnConf_Sound() {
- void *drv;
- SPUconfigure conf;
- char Plugin[MAXPATHLEN];
-
- sprintf(Plugin, "%s/%s", Config.PluginsDir, Config.Spu);
- drv = SysLoadLibrary(Plugin);
- if (drv == NULL) { printf("Error with file %s\n", Plugin); return; }
-
- while (gtk_events_pending()) gtk_main_iteration();
-
- conf = (GPUconfigure)SysLoadSym(drv, "SPUconfigure");
- if (conf != NULL) {
- conf();
- }
- else
- SysInfoMessage (_("No configuration required"), _("This plugin doesn't need to be configured."));
-
- SysCloseLibrary(drv);
-}
-
-void OnConf_CdRom() {
- void *drv;
- CDRconfigure conf;
- char Plugin[MAXPATHLEN];
-
- sprintf(Plugin, "%s/%s", Config.PluginsDir, Config.Cdr);
- drv = SysLoadLibrary(Plugin);
- if (drv == NULL) { printf("Error with file %s\n", Plugin); return; }
-
- while (gtk_events_pending()) gtk_main_iteration();
-
- conf = (GPUconfigure)SysLoadSym(drv, "CDRconfigure");
- if (conf != NULL) {
- conf();
- }
- else
- SysInfoMessage (_("No configuration required"), _("This plugin doesn't need to be configured."));
-
- SysCloseLibrary(drv);
-}
-
-void OnConf_Pad() {
- void *drv;
- PADconfigure conf;
- char Plugin[MAXPATHLEN];
-
- sprintf(Plugin, "%s/%s", Config.PluginsDir, Config.Pad1);
- drv = SysLoadLibrary(Plugin);
- if (drv == NULL) { printf("Error with file %s\n", Plugin); return; }
-
- while (gtk_events_pending()) gtk_main_iteration();
-
- conf = (GPUconfigure)SysLoadSym(drv, "PADconfigure");
- if (conf != NULL) {
- conf();
- }
- else
- SysInfoMessage (_("No configuration required"), _("This plugin doesn't need to be configured."));
-
- SysCloseLibrary(drv);
-
- if (strcmp(Config.Pad1, Config.Pad2) != 0) {
- sprintf(Plugin, "%s/%s", Config.PluginsDir, Config.Pad2);
- drv = SysLoadLibrary(Plugin);
- if (drv == NULL) { printf("Error with file %s\n", Plugin); return; }
-
- while (gtk_events_pending()) gtk_main_iteration();
-
- conf = (GPUconfigure)SysLoadSym(drv, "PADconfigure");
- if (conf != NULL) {
- conf();
- }
-
- SysCloseLibrary(drv);
- }
-}
-
-GtkWidget *CpuDlg;
-GtkWidget *PsxCombo;
-GList *psxglist;
-char *psxtypes[] = {
- "NTSC",
- "PAL"
-};
-
-/* When the auto-detect CPU type is selected, disable the NTSC/PAL selection */
-static void OnCpu_PsxAutoClicked (GtkWidget *widget, gpointer user_data) {
- GtkWidget *combo;
- GladeXML *xml = user_data;
- combo = glade_xml_get_widget(xml, "GtkCombo_PsxType");
-
- gtk_widget_set_sensitive (combo,
- !(gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))));
-}
-
-/* When the interpreter core is deselected, disable the debugger checkbox */
-static void OnCpu_CpuClicked (GtkWidget *widget, gpointer user_data) {
- GtkWidget *check;
- GladeXML *xml = user_data;
- check = glade_xml_get_widget(xml, "GtkCheckButton_Dbg");
-
- // Debugger is only working with interpreter not recompiler, so let's set it
- if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), FALSE);
-
- gtk_widget_set_sensitive (check,
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)));
-}
-
-void OnCpu_Clicked (GtkDialog *dialog, gint arg1, gpointer user_data) {
- if (arg1 == GTK_RESPONSE_OK) {
- GtkWidget *widget;
- GladeXML *xml = user_data;
- int tmp;
- long t;
-
- widget = glade_xml_get_widget(xml, "GtkCombo_PsxType");
-
- /* If nothing chosen, default to NTSC */
- tmp = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
- if (tmp == -1)
- tmp = PSX_TYPE_NTSC;
-
- if (!strcmp("NTSC",psxtypes[tmp]))
- Config.PsxType = PSX_TYPE_NTSC;
- else
- Config.PsxType = PSX_TYPE_PAL;
-
- Config.Xa = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_Xa")));
-
- Config.Sio = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_Sio")));
-
- Config.Mdec = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_Mdec")));
-
- Config.Cdda = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_CDDA")));
-
- Config.PsxAuto = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_PsxAuto")));
-
- t = Config.Debug;
- Config.Debug = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_Dbg")));
- if (t != Config.Debug) {
- if (Config.Debug) StartDebugger();
- else StopDebugger();
- }
-
- t = Config.Cpu;
- Config.Cpu = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_Cpu")));
- if (t != Config.Cpu) {
- psxCpu->Shutdown();
-#ifdef PSXREC
- if (Config.Cpu) {
- psxCpu = &psxInt;
- }
- else psxCpu = &psxRec;
-#else
- psxCpu = &psxInt;
-#endif
- if (psxCpu->Init() == -1) {
- SysClose();
- exit(1);
- }
- psxCpu->Reset();
- }
-
- Config.PsxOut = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_PsxOut")));
-
- Config.SpuIrq = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_SpuIrq")));
-
- Config.RCntFix = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_RCntFix")));
-
- Config.VSyncWA = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(glade_xml_get_widget(xml, "GtkCheckButton_VSyncWA")));
-
- SaveConfig();
- }
-
- gtk_widget_destroy(CpuDlg);
- CpuDlg = NULL;
-}
-
-void OnConf_Cpu() {
- GladeXML *xml;
-
- xml = glade_xml_new(PACKAGE_DATA_DIR "pcsx.glade2", "CpuDlg", NULL);
-
- if (!xml) {
- g_warning("We could not load the interface!");
- return;
- }
-
- CpuDlg = glade_xml_get_widget(xml, "CpuDlg");
-
- PsxCombo = glade_xml_get_widget(xml, "GtkCombo_PsxType");
- gtk_combo_box_set_active (GTK_COMBO_BOX (PsxCombo), Config.PsxType);
- gtk_widget_set_sensitive (GTK_WIDGET (PsxCombo), !Config.PsxAuto);
-
- gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (glade_xml_get_widget(xml, "GtkCheckButton_Xa")), Config.Xa);
-
- gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (glade_xml_get_widget(xml, "GtkCheckButton_Sio")), Config.Sio);
-
- gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (glade_xml_get_widget(xml, "GtkCheckButton_Mdec")), Config.Mdec);
-
- gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (glade_xml_get_widget(xml, "GtkCheckButton_CDDA")), Config.Cdda);
-
- gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (glade_xml_get_widget(xml, "GtkCheckButton_PsxAuto")), Config.PsxAuto);
-
- g_signal_connect_data(GTK_OBJECT(glade_xml_get_widget(xml, "GtkCheckButton_PsxAuto")), "toggled",
- GTK_SIGNAL_FUNC(OnCpu_PsxAutoClicked), xml, NULL, G_CONNECT_AFTER);
-
-#ifdef PSXREC
- gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (glade_xml_get_widget(xml, "GtkCheckButton_Cpu")), Config.Cpu);
-
- g_signal_connect_data(GTK_OBJECT(glade_xml_get_widget(xml, "GtkCheckButton_Cpu")), "toggled",
- GTK_SIGNAL_FUNC(OnCpu_CpuClicked), xml, NULL, G_CONNECT_AFTER);
-#else
- Config.Cpu = 1;
-
- gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (glade_xml_get_widget(xml, "GtkCheckButton_Cpu")), TRUE);
- gtk_widget_set_sensitive (GTK_WIDGET (glade_xml_get_widget(xml, "GtkCheckButton_Cpu")), FALSE);
-#endif
-
- gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (glade_xml_get_widget(xml, "GtkCheckButton_Dbg")), Config.Cpu && Config.Debug);
- gtk_widget_set_sensitive (GTK_WIDGET (glade_xml_get_widget(xml, "GtkCheckButton_Dbg")), Config.Cpu);
-
- gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (glade_xml_get_widget(xml, "GtkCheckButton_PsxOut")), Config.PsxOut);
-
- gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (glade_xml_get_widget(xml, "GtkCheckButton_SpuIrq")), Config.SpuIrq);
-
- gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (glade_xml_get_widget(xml, "GtkCheckButton_RCntFix")), Config.RCntFix);
-
- gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (glade_xml_get_widget(xml, "GtkCheckButton_VSyncWA")), Config.VSyncWA);
-
- /* Setup a handler for when Close or Cancel is clicked */
- g_signal_connect_data(GTK_OBJECT(CpuDlg), "response",
- GTK_SIGNAL_FUNC(OnCpu_Clicked), xml, (GClosureNotify)g_object_unref, G_CONNECT_AFTER);
-}
-
-/* TODO Check whether configuration is required when we choose the plugin, and set the state of the
- button appropriately. New gtk tooltip API should allow us to put a tooltip explanation for
- disabled widgets */
-/* TODO If combo screen hasn't been opened and the user chooses the menu config option, confs.Combo will be null and cause a segfault */
-#define ConfPlugin(src, confs, plugin, name, parent) { \
- void *drv; \
- src conf; \
- gchar *filename; \
- \
- GetComboText(confs.Combo, confs.plist, plugin); \
- filename = g_build_filename (getenv("HOME"), PLUGINS_DIR, plugin, NULL); \
- /*printf("Configuring plugin %s\n", filename);*/ \
- drv = SysLoadLibrary(filename); \
- if (drv == NULL) {printf("Error with file %s\n", filename);return; } \
-\
- while (gtk_events_pending()) gtk_main_iteration(); \
- conf = (src) SysLoadSym(drv, name); \
- if (conf) { \
- conf(); \
- } else \
- SysInfoMessage (_("No configuration required"), _("This plugin doesn't need to be configured.")); \
- SysCloseLibrary(drv); \
- g_free (filename); \
-}
-
-void on_configure_plugin (GtkWidget *widget, gpointer user_data) {
- gint plugin_type = (int) user_data;
-
- while (gtk_events_pending())
- gtk_main_iteration();
- if (all_config_set() == TRUE) {
- switch (plugin_type) {
- case PSE_LT_GPU:
- ConfPlugin(GPUconfigure, GpuConfS, Config.Gpu, "GPUconfigure", ConfDlg);
- break;
- case PSE_LT_SPU:
- ConfPlugin(SPUconfigure, SpuConfS, Config.Spu, "SPUconfigure", ConfDlg);
- break;
- case PSE_LT_CDR:
- ConfPlugin(CDRconfigure, CdrConfS, Config.Cdr, "CDRconfigure", ConfDlg);
- break;
- }
- } else
- ConfigurePlugins();
-}
-
-void on_about_plugin (GtkWidget *widget, gpointer user_data) {
- gint plugin_type = (int) user_data;
-
- while (gtk_events_pending())
- gtk_main_iteration();
- if (all_config_set() == TRUE) {
- switch (plugin_type) {
- case PSE_LT_GPU:
- ConfPlugin(GPUconfigure, GpuConfS, Config.Gpu, "GPUabout", ConfDlg);
- break;
- case PSE_LT_SPU:
- ConfPlugin(SPUconfigure, SpuConfS, Config.Spu, "SPUabout", ConfDlg);
- break;
- case PSE_LT_CDR:
- ConfPlugin(CDRconfigure, CdrConfS, Config.Cdr, "CDRabout", ConfDlg);
- break;
- }
- } else
- ConfigurePlugins();
-}
-
-void OnConfConf_Pad1About(GtkWidget *widget, gpointer user_data) {
- ConfPlugin(PADabout, Pad1ConfS, Config.Pad1, "PADabout", ConfDlg);
-}
-
-void OnConfConf_Pad2About(GtkWidget *widget, gpointer user_data) {
- ConfPlugin(PADabout, Pad2ConfS, Config.Pad2, "PADabout", ConfDlg);
-}
-
-void OnConfConf_Pad1Conf(GtkWidget *widget, gpointer user_data) {
- ConfPlugin(PADabout, Pad1ConfS, Config.Pad1, "PADconfigure", ConfDlg);
-}
-
-void OnConfConf_Pad2Conf(GtkWidget *widget, gpointer user_data) {
- ConfPlugin(PADabout, Pad2ConfS, Config.Pad2, "PADconfigure", ConfDlg);
-}
-
-void OnNet_Conf(GtkWidget *widget, gpointer user_data) {
- ConfPlugin(NETconfigure, NetConfS, Config.Net, "NETconfigure", NetDlg);
-}
-
-void OnNet_About(GtkWidget *widget, gpointer user_data) {
- ConfPlugin(NETabout, NetConfS, Config.Net, "NETabout", NetDlg);
-}
-
-void OnPluginPath_Changed(GtkWidget *wdg, gpointer data) {
- gchar *path;
-
- path = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (wdg));
- strcpy(Config.PluginsDir, path);
- UpdatePluginsBIOS();
- UpdatePluginsBIOS_UpdateGUI(data);
-
- g_free (path);
-}
-
-void OnBiosPath_Changed(GtkWidget *wdg, gpointer data) {
- gchar *foldername;
-
- foldername = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (wdg));
- strcpy(Config.BiosDir, foldername);
-
- UpdatePluginsBIOS();
- UpdatePluginsBIOS_UpdateGUI(data);
-
- g_free (foldername);
-}
-
-void OnConf_Clicked (GtkDialog *dialog, gint arg1, gpointer user_data) {
- if (arg1 == GTK_RESPONSE_OK) {
- GetComboText(GpuConfS.Combo, GpuConfS.plist, Config.Gpu);
- GetComboText(SpuConfS.Combo, SpuConfS.plist, Config.Spu);
- GetComboText(CdrConfS.Combo, CdrConfS.plist, Config.Cdr);
- GetComboText(Pad1ConfS.Combo, Pad1ConfS.plist, Config.Pad1);
- GetComboText(Pad2ConfS.Combo, Pad2ConfS.plist, Config.Pad2);
- GetComboText(BiosConfS.Combo, BiosConfS.plist, Config.Bios);
- /* TODO Validation */
-
- SaveConfig();
- }
-
- gtk_widget_destroy (ConfDlg);
- ConfDlg = NULL;
-}
-
void OnHelp_About(GtkWidget *widget, gpointer user_data) {
GladeXML *xml;
GtkWidget *about_dialog;
-
+
xml = glade_xml_new(PACKAGE_DATA_DIR "pcsx.glade2", "AboutDlg", NULL);
if (!xml) {
@@ -1435,302 +856,9 @@ void OnHelp_About(GtkWidget *widget, gpointer user_data) {
}
about_dialog = glade_xml_get_widget(xml, "AboutDlg");
-
- gtk_dialog_run (GTK_DIALOG (about_dialog));
- gtk_widget_destroy (about_dialog);
-}
-
-#define ComboAddPlugin(type) { \
- type##ConfS.plugins += 2; \
- strcpy(type##ConfS.plist[type##ConfS.plugins - 1], name); \
- strcpy(type##ConfS.plist[type##ConfS.plugins - 2], ent->d_name); \
- type##ConfS.glist = g_list_append(type##ConfS.glist, type##ConfS.plist[type##ConfS.plugins-1]); \
-}
-
-void populate_combo_box (GtkWidget *widget, GList *list) {
- GtkListStore *store;
- GtkCellRenderer *renderer;
- store = gtk_list_store_new (1, G_TYPE_STRING);
- /* Clear existing data from combo box */
- gtk_cell_layout_clear (GTK_CELL_LAYOUT (widget));
-
- renderer = gtk_cell_renderer_text_new();
- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (widget), renderer, FALSE);
- gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (widget), renderer, "text", 0);
-
- while (list != NULL) {
- GtkTreeIter iter;
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, 0, (char *)list->data, -1);
- list = list->next;
- }
-
- gtk_combo_box_set_model (GTK_COMBO_BOX (widget), GTK_TREE_MODEL (store));
-}
-
-#define ConfCreatePConf(name, type) \
- /* Populate the relevant combo widget with the list of plugins. \
- If no plugins available, disable the combo and its controls. \
- Note that the Bios plugin has no About/Conf control. */ \
- type##ConfS.Combo = glade_xml_get_widget(xml, "GtkCombo_" name); \
- if (type##ConfS.glist != NULL) { \
- populate_combo_box (type##ConfS.Combo, type##ConfS.glist); \
- FindComboText(type##ConfS.Combo, type##ConfS.plist, Config.type); \
- gtk_widget_set_sensitive (type##ConfS.Combo, TRUE); \
- if (g_ascii_strcasecmp (name, "Bios") != 0) { \
- controlwidget = glade_xml_get_widget(xml, "btn_Conf" name); \
- gtk_widget_set_sensitive (controlwidget, TRUE); \
- controlwidget = glade_xml_get_widget(xml, "btn_About" name); \
- gtk_widget_set_sensitive (controlwidget, TRUE); \
- } \
- } else { \
- if (g_ascii_strcasecmp (name, "Bios") != 0) { \
- gtk_cell_layout_clear (GTK_CELL_LAYOUT (type##ConfS.Combo)); \
- gtk_widget_set_sensitive (type##ConfS.Combo, FALSE); \
- controlwidget = glade_xml_get_widget(xml, "btn_Conf" name); \
- gtk_widget_set_sensitive (controlwidget, FALSE); \
- controlwidget = glade_xml_get_widget(xml, "btn_About" name); \
- gtk_widget_set_sensitive (controlwidget, FALSE); \
- } \
- }
-
-int plugin_is_available (gchar *plugin) {
- int retval;
- gchar *pluginfile;
- struct stat stbuf;
-
-// printf("Checking plugin_is_available - %s\n", plugin);
- pluginfile = g_strconcat (getenv("HOME"), PLUGINS_DIR, plugin, NULL);
-
- if (stat(pluginfile, &stbuf) == -1)
- retval = FALSE;
- else
- retval = TRUE;
-
- g_free (pluginfile);
-
- return retval;
-}
-
-/* TODO Combine this with all_config_set() */
-int plugins_configured() {
- // make sure there are choices for all of the plugins!!
-// if ((strlen(Config.Gpu) == 0) || (strlen(Config.Spu) == 0) || (strlen(Config.Cdr) == 0) || (strlen(Config.Pad1) == 0) || (strlen(Config.Pad2) == 0)) {
- if (all_config_set() == FALSE)
- return FALSE;
-// }
- // and make sure they can all be accessed
- // if they can't be, wipe the variable and return FALSE
- if (plugin_is_available (Config.Gpu) == FALSE) { Config.Gpu[0] = '\0'; return FALSE; }
- if (plugin_is_available (Config.Spu) == FALSE) { Config.Spu[0] = '\0'; return FALSE; }
- if (plugin_is_available (Config.Cdr) == FALSE) { Config.Cdr[0] = '\0'; return FALSE; }
- if (plugin_is_available (Config.Pad1) == FALSE) { Config.Pad1[0] = '\0'; return FALSE; }
- if (plugin_is_available (Config.Pad2) == FALSE) { Config.Pad2[0] = '\0'; return FALSE; }
-
- // if everything is happy, return TRUE
- return TRUE;
-}
-
-int is_valid_bios_file (gchar *filename) {
- int valid;
- struct stat buf;
-
-// printf(" Checking is_valid_bios_file - %s\n", filename);
- if ((stat(filename, &buf) == -1) || (buf.st_size != (1024*512)))
- valid = FALSE;
- else {
- valid = TRUE;
-// printf(" %s is a valid BIOS file\n", filename);
- }
-
- return valid;
-}
-
-/* Add the name of the BIOS file to the drop-down list. This will
- be the filename, not the full path to the file */
-void add_bios_to_list (gchar *bios_name, gchar *internal_name) {
- BiosConfS.plugins+=2;
- strcpy(BiosConfS.plist[BiosConfS.plugins-1], bios_name);
- strcpy(BiosConfS.plist[BiosConfS.plugins-2], internal_name);
- /* Error handling - BIOS
- strcpy(BiosConfS.plist[BiosConfS.plugins-1], internal_name);
- strcpy(BiosConfS.plist[BiosConfS.plugins-2], bios_name);*/
- BiosConfS.glist = g_list_append(BiosConfS.glist, BiosConfS.plist[BiosConfS.plugins-1]);
-}
-
-void scan_bios_dir (gchar *dirname) {
- DIR *dir;
- struct dirent *ent;
- gchar *filename;
-
- dir = opendir(dirname);
- if (dir == NULL) {
- SysMessage(_("Could not open BIOS directory: '%s'\n"), dirname);
- return;
- }
-
- while ((ent = readdir(dir)) != NULL) {
- filename = g_build_filename(dirname, ent->d_name, NULL);
- if (is_valid_bios_file(filename))
- add_bios_to_list(g_path_get_basename(filename), g_path_get_basename (filename));
- g_free(filename);
- }
- closedir(dir);
-}
-
-void UpdatePluginsBIOS() {
- DIR *dir;
- struct dirent *ent;
- void *Handle;
- char name[256];
- gchar *linkname;
-
- GpuConfS.plugins = 0; SpuConfS.plugins = 0; CdrConfS.plugins = 0;
- Pad1ConfS.plugins = 0; Pad2ConfS.plugins = 0; BiosConfS.plugins = 0;
- GpuConfS.glist = NULL; SpuConfS.glist = NULL; CdrConfS.glist = NULL;
- Pad1ConfS.glist = NULL; Pad2ConfS.glist = NULL; BiosConfS.glist = NULL;
- GpuConfS.plist[0][0] = '\0'; SpuConfS.plist[0][0] = '\0'; CdrConfS.plist[0][0] = '\0';
- Pad1ConfS.plist[0][0] = '\0'; Pad2ConfS.plist[0][0] = '\0'; BiosConfS.plist[0][0] = '\0';
-
- /* Load and get plugin info */
- dir = opendir(Config.PluginsDir);
- if (dir == NULL) {
- printf(_("Could not open directory: '%s'\n"), Config.PluginsDir);
- return;
- }
- while ((ent = readdir(dir)) != NULL) {
- long type, v;
- linkname = g_build_filename(Config.PluginsDir, ent->d_name, NULL);
-
- // only libraries past this point, not config tools
- if (strstr(linkname, ".so") == NULL && strstr(linkname, ".dylib") == NULL)
- continue;
-
- Handle = dlopen(linkname, RTLD_NOW);
- if (Handle == NULL) {
- printf("%s\n", dlerror());
- g_free(linkname);
- continue;
- }
-
- PSE_getLibType = (PSEgetLibType)dlsym(Handle, "PSEgetLibType");
- if (dlerror() != NULL) {
- if (strstr(linkname, "gpu") != NULL) type = PSE_LT_GPU;
- else if (strstr(linkname, "cdr") != NULL) type = PSE_LT_CDR;
- else if (strstr(linkname, "spu") != NULL) type = PSE_LT_SPU;
- else if (strstr(linkname, "pad") != NULL) type = PSE_LT_PAD;
- else { g_free(linkname); continue; }
- }
- else type = PSE_getLibType();
-
- PSE_getLibName = (PSEgetLibName) dlsym(Handle, "PSEgetLibName");
- if (dlerror() == NULL) {
- sprintf(name, "%s", PSE_getLibName());
- PSE_getLibVersion = (PSEgetLibVersion) dlsym(Handle, "PSEgetLibVersion");
- if (dlerror() == NULL) {
- char ver[32];
-
- v = PSE_getLibVersion();
- sprintf(ver, " %ld.%ld.%ld", v >> 16, (v >> 8) & 0xff, v & 0xff);
- strcat(name, ver);
- }
- }
- else strcpy(name, ent->d_name);
-
- if (type & PSE_LT_CDR)
- ComboAddPlugin(Cdr);
- if (type & PSE_LT_GPU)
- ComboAddPlugin(Gpu);
- if (type & PSE_LT_SPU)
- ComboAddPlugin(Spu);
- if (type & PSE_LT_PAD) {
- PADquery query = (PADquery)dlsym(Handle, "PADquery");
- if (query() & 0x1) {
- ComboAddPlugin(Pad1);
- }
- if (query() & 0x2) {
- ComboAddPlugin(Pad2);
- }
- }
- g_free(linkname);
- }
- closedir(dir);
-
- scan_bios_dir(Config.BiosDir);
-
- /* The BIOS list always contains the PCSX internal BIOS */
- add_bios_to_list(_("Internal HLE Bios"), "HLE");
-}
-
-void UpdatePluginsBIOS_UpdateGUI(GladeXML *xml) {
- /* Populate the plugin combo boxes */
- ConfCreatePConf("Gpu", Gpu);
- ConfCreatePConf("Spu", Spu);
- ConfCreatePConf("Pad1", Pad1);
- ConfCreatePConf("Pad2", Pad2);
- ConfCreatePConf("Cdr", Cdr);
- ConfCreatePConf("Bios", Bios);
-}
-
-void FindNetPlugin(GladeXML *xml) {
- DIR *dir;
- struct dirent *ent;
- void *Handle;
- char plugin[MAXPATHLEN],name[MAXPATHLEN];
-
- NetConfS.plugins = 0;
- NetConfS.glist = NULL;
-
- NetConfS.plugins += 2;
- strcpy(NetConfS.plist[NetConfS.plugins - 1], "Disabled");
- strcpy(NetConfS.plist[NetConfS.plugins - 2], "Disabled");
- NetConfS.glist = g_list_append(NetConfS.glist, NetConfS.plist[NetConfS.plugins - 1]);
-
- dir = opendir(Config.PluginsDir);
- if (dir == NULL)
- SysMessage(_("Could not open directory: '%s'\n"), Config.PluginsDir);
- else {
- /* ADB TODO Replace the following with a function */
- while ((ent = readdir(dir)) != NULL) {
- long type, v;
-
- sprintf(plugin, "%s/%s", Config.PluginsDir, ent->d_name);
-
- if (strstr(plugin, ".so") == NULL && strstr(plugin, ".dylib") == NULL)
- continue;
- Handle = dlopen(plugin, RTLD_NOW);
- if (Handle == NULL) continue;
-
- PSE_getLibType = (PSEgetLibType) dlsym(Handle, "PSEgetLibType");
- if (dlerror() != NULL) {
- if (strstr(plugin, "net") != NULL) type = PSE_LT_NET;
- else continue;
- }
- else type = PSE_getLibType();
-
- PSE_getLibName = (PSEgetLibName) dlsym(Handle, "PSEgetLibName");
- if (dlerror() == NULL) {
- sprintf(name, "%s", PSE_getLibName());
- PSE_getLibVersion = (PSEgetLibVersion) dlsym(Handle, "PSEgetLibVersion");
- if (dlerror() == NULL) {
- char ver[32];
-
- v = PSE_getLibVersion();
- sprintf(ver, " %ld.%ld.%ld",v>>16,(v>>8)&0xff,v&0xff);
- strcat(name, ver);
- }
- }
- else strcpy(name, ent->d_name);
-
- if (type & PSE_LT_NET) {
- ComboAddPlugin(Net);
- }
- }
- closedir(dir);
-
- ConfCreatePConf("Net", Net);
- }
+ gtk_dialog_run(GTK_DIALOG (about_dialog));
+ gtk_widget_destroy(about_dialog);
}
void SysMessage(char *fmt, ...) {
@@ -1750,7 +878,7 @@ void SysMessage(char *fmt, ...) {
return;
}
- MsgDlg = gtk_dialog_new_with_buttons (_("Notice"), NULL,
+ MsgDlg = gtk_dialog_new_with_buttons(_("Notice"), NULL,
GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_OK, GTK_RESPONSE_NONE, NULL);
gtk_window_set_position (GTK_WINDOW(MsgDlg), GTK_WIN_POS_CENTER);
@@ -1770,17 +898,17 @@ void SysErrorMessage(gchar *primary, gchar *secondary) {
if (!UseGui)
printf ("%s - %s\n", primary, secondary);
else {
- message_dialog = gtk_message_dialog_new (NULL,
+ message_dialog = gtk_message_dialog_new(NULL,
GTK_DIALOG_MODAL,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
primary,
NULL);
- gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (message_dialog),
+ gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(message_dialog),
secondary);
- gtk_dialog_run (GTK_DIALOG (message_dialog));
- gtk_widget_destroy (message_dialog);
+ gtk_dialog_run(GTK_DIALOG(message_dialog));
+ gtk_widget_destroy(message_dialog);
}
}
@@ -1789,16 +917,16 @@ void SysInfoMessage(gchar *primary, gchar *secondary) {
if (!UseGui)
printf ("%s - %s\n", primary, secondary);
else {
- message_dialog = gtk_message_dialog_new (NULL,
+ message_dialog = gtk_message_dialog_new(NULL,
GTK_DIALOG_MODAL,
GTK_MESSAGE_INFO,
GTK_BUTTONS_CLOSE,
primary,
NULL);
- gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (message_dialog),
+ gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(message_dialog),
secondary);
- gtk_dialog_run (GTK_DIALOG (message_dialog));
- gtk_widget_destroy (message_dialog);
+ gtk_dialog_run(GTK_DIALOG(message_dialog));
+ gtk_widget_destroy(message_dialog);
}
}