From bb9c6f0355aacbdddc5e83de8ab0e2707d1348e5 Mon Sep 17 00:00:00 2001 From: "SND\\edgbla_cp" Date: Thu, 14 Feb 2013 23:14:57 +0000 Subject: ... git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@82904 e17a0e51-4ae3-4d35-97c3-1a29b211df97 --- data/pcsxr.ui | 16 ++++++++++++++++ gui/ConfDlg.c | 9 +++++++++ gui/GtkGui.c | 16 ++++++++++++++++ plugins/bladesio1/gui.c | 44 ++++++++++++++++++++++++++++++++++---------- plugins/bladesio1/settings.c | 3 +++ plugins/bladesio1/settings.h | 5 +++-- plugins/bladesio1/sio1.c | 44 +++++++++++++++++++++++++++++++++++++++++--- 7 files changed, 122 insertions(+), 15 deletions(-) diff --git a/data/pcsxr.ui b/data/pcsxr.ui index e812bd4f..c4702353 100644 --- a/data/pcsxr.ui +++ b/data/pcsxr.ui @@ -2365,6 +2365,16 @@ False + + + _Link cable... + True + False + True + image42 + False + + True @@ -4041,6 +4051,12 @@ gtk-convert 1 + + True + False + gtk-execute + 1 + True False diff --git a/gui/ConfDlg.c b/gui/ConfDlg.c index a92cd958..5755daa4 100755 --- a/gui/ConfDlg.c +++ b/gui/ConfDlg.c @@ -151,6 +151,15 @@ void ConfigurePlugins() { widget = gtk_builder_get_object(builder, "btn_ConfSio1"); g_signal_connect_data(G_OBJECT(widget), "clicked", G_CALLBACK(on_configure_plugin), (gpointer) PSE_LT_SIO1, NULL, G_CONNECT_AFTER); +#else + widget = gtk_builder_get_object(builder, "label18"); + gtk_widget_set_sensitive(widget, FALSE); + widget = gtk_builder_get_object(builder, "GtkCombo_Sio1"); + gtk_widget_set_sensitive(widget, FALSE); + widget = gtk_builder_get_object(builder, "btn_ConfSio1"); + gtk_widget_set_sensitive(widget, FALSE); + widget = gtk_builder_get_object(builder, "btn_AboutSio1"); + gtk_widget_set_sensitive(widget, FALSE); #endif widget = gtk_builder_get_object(builder, "btn_AboutGpu"); g_signal_connect_data(G_OBJECT(widget), "clicked", diff --git a/gui/GtkGui.c b/gui/GtkGui.c index 842684bf..6f8c1048 100755 --- a/gui/GtkGui.c +++ b/gui/GtkGui.c @@ -120,6 +120,13 @@ void ResetMenuSlots() { gtk_widget_set_sensitive(widget, TRUE); widget = gtk_builder_get_object(builder, "pad1"); gtk_widget_set_sensitive(widget, TRUE); +#ifdef ENABLE_SIO1API + widget = gtk_builder_get_object(builder, "sio1"); + gtk_widget_set_sensitive(widget, TRUE); +#else + widget = gtk_builder_get_object(builder, "sio1"); + gtk_widget_set_sensitive(widget, FALSE); +#endif widget = gtk_builder_get_object(builder, "net1"); gtk_widget_set_sensitive(widget, TRUE); @@ -160,6 +167,10 @@ void ResetMenuSlots() { gtk_widget_set_sensitive(widget, FALSE); widget = gtk_builder_get_object(builder, "pad1"); gtk_widget_set_sensitive(widget, FALSE); +#ifdef ENABLE_SIO1API + widget = gtk_builder_get_object(builder, "sio1"); + gtk_widget_set_sensitive(widget, FALSE); +#endif widget = gtk_builder_get_object(builder, "net1"); gtk_widget_set_sensitive(widget, FALSE); widget = gtk_builder_get_object(builder, "SwitchImage"); @@ -370,6 +381,11 @@ void StartGui() { widget = gtk_builder_get_object(builder, "pad1"); g_signal_connect_data(G_OBJECT(widget), "activate", G_CALLBACK(OnConf_Pad), NULL, NULL, G_CONNECT_AFTER); +#ifdef ENABLE_SIO1API + widget = gtk_builder_get_object(builder, "sio1"); + g_signal_connect_data(G_OBJECT(widget), "activate", + G_CALLBACK(OnConf_Sio1), NULL, NULL, G_CONNECT_AFTER); +#endif widget = gtk_builder_get_object(builder, "cpu1"); g_signal_connect_data(G_OBJECT(widget), "activate", G_CALLBACK(OnConf_Cpu), NULL, NULL, G_CONNECT_AFTER); diff --git a/plugins/bladesio1/gui.c b/plugins/bladesio1/gui.c index d08d308f..e7839e68 100644 --- a/plugins/bladesio1/gui.c +++ b/plugins/bladesio1/gui.c @@ -5,6 +5,9 @@ #include #include +#include "psxcommon.h" +#include "psemu_plugin_defs.h" + #include "settings.h" #include "sio1.h" @@ -14,7 +17,8 @@ Settings settings; /******************************************************************************/ -long CFGopen() +static +s32 configure() { GtkBuilder *builder; GtkWidget *widget, *MainWindow; @@ -64,22 +68,42 @@ long CFGopen() return 0; } -int main( int argc, char *argv[] ) +static +s32 about() +{ + const char *authors[]= {"edgbla ", NULL}; + GtkWidget *widget; + + widget = gtk_about_dialog_new(); + gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(widget), "Link Cable"); + gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(widget), "1.0"); + gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(widget), authors); + gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(widget), "http://www.codeplex.com/pcsxr/"); + + gtk_dialog_run(GTK_DIALOG(widget)); + gtk_widget_destroy(widget); +} + +int main(int argc, char *argv[]) { #ifdef ENABLE_NLS - setlocale( LC_ALL, "" ); - bindtextdomain( GETTEXT_PACKAGE, LOCALE_DIR ); - bind_textdomain_codeset( GETTEXT_PACKAGE, "UTF-8" ); - textdomain( GETTEXT_PACKAGE ); + setlocale(LC_ALL, ""); + bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR); + bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); + textdomain(GETTEXT_PACKAGE); #endif - gtk_init( &argc, &argv ); + gtk_init(&argc, &argv); - if( argc > 1 ) + if(argc > 1) { - if( !strcmp(argv[1], "open") ) + if(!strcmp(argv[1], "configure")) + { + return configure(); + } + if(!strcmp(argv[1], "about")) { - return CFGopen(); + return about(); } } diff --git a/plugins/bladesio1/settings.c b/plugins/bladesio1/settings.c index 39deab32..3d6a96cd 100755 --- a/plugins/bladesio1/settings.c +++ b/plugins/bladesio1/settings.c @@ -22,6 +22,9 @@ #include #include +#include "psxcommon.h" +#include "psemu_plugin_defs.h" + #include "settings.h" #include "sio1.h" diff --git a/plugins/bladesio1/settings.h b/plugins/bladesio1/settings.h index c78c1a1b..bd297678 100755 --- a/plugins/bladesio1/settings.h +++ b/plugins/bladesio1/settings.h @@ -24,9 +24,10 @@ typedef struct Settings { - long player; + s32 enabled; + s32 player; char ip[32]; - unsigned short port; + u16 port; } Settings; /******************************************************************************/ diff --git a/plugins/bladesio1/sio1.c b/plugins/bladesio1/sio1.c index cba060d1..36da09d1 100755 --- a/plugins/bladesio1/sio1.c +++ b/plugins/bladesio1/sio1.c @@ -21,6 +21,7 @@ #include #include #include +#include #include "psxcommon.h" #include "psemu_plugin_defs.h" @@ -318,17 +319,54 @@ unsigned long CALLBACK PSEgetLibVersion() return version << 16 | revision << 8 | build; } -void CALLBACK SIO1about() +long CALLBACK SIO1test() { + return 0; } -long CALLBACK SIO1test() +void ExecCfg(char *arg) { + char cfg[256]; + struct stat buf; + + strcpy(cfg, "./cfgBladeSio1"); + if (stat(cfg, &buf) != -1) { + int pid = fork(); + if (pid == 0) { + if (fork() == 0) { + execl(cfg, "cfgBladeSio1", arg, NULL); + } + exit(0); + } else if (pid > 0) { + waitpid(pid, NULL, 0); + } + return; + } + + strcpy(cfg, "./cfg/cfgBladeSio1"); + if (stat(cfg, &buf) != -1) { + int pid = fork(); + if (pid == 0) { + if (fork() == 0) { + execl(cfg, "cfgBladeSio1", arg, NULL); + } + exit(0); + } else if (pid > 0) { + waitpid(pid, NULL, 0); + } + return; + } + + fprintf(stderr, "cfgBladeSio1 file not found!\n"); +} + +void CALLBACK SIO1about() { - return 0; + ExecCfg("about"); } void CALLBACK SIO1configure() { + ExecCfg("configure"); } /******************************************************************************/ -- cgit v1.2.3