diff options
| author | SND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-02-14 23:14:57 +0000 |
|---|---|---|
| committer | SND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-02-14 23:14:57 +0000 |
| commit | bb9c6f0355aacbdddc5e83de8ab0e2707d1348e5 (patch) | |
| tree | 898306ea1071621ab76f907a8dfab7629178d681 | |
| parent | f1d5f92e6bfbff24667a766610f7171bcf6d7116 (diff) | |
| download | pcsxr-bb9c6f0355aacbdddc5e83de8ab0e2707d1348e5.tar.gz | |
...
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@82904 e17a0e51-4ae3-4d35-97c3-1a29b211df97
| -rw-r--r-- | data/pcsxr.ui | 16 | ||||
| -rwxr-xr-x | gui/ConfDlg.c | 9 | ||||
| -rwxr-xr-x | gui/GtkGui.c | 16 | ||||
| -rw-r--r-- | plugins/bladesio1/gui.c | 44 | ||||
| -rwxr-xr-x | plugins/bladesio1/settings.c | 3 | ||||
| -rwxr-xr-x | plugins/bladesio1/settings.h | 5 | ||||
| -rwxr-xr-x | 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 @@ -2366,6 +2366,16 @@ </object> </child> <child> + <object class="GtkImageMenuItem" id="sio1"> + <property name="label" translatable="yes">_Link cable...</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_underline">True</property> + <property name="image">image42</property> + <property name="use_stock">False</property> + </object> + </child> + <child> <object class="GtkSeparatorMenuItem" id="separator7"> <property name="visible">True</property> <property name="can_focus">False</property> @@ -4041,6 +4051,12 @@ <property name="stock">gtk-convert</property> <property name="icon-size">1</property> </object> + <object class="GtkImage" id="image42"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="stock">gtk-execute</property> + <property name="icon-size">1</property> + </object> <object class="GtkImage" id="image5"> <property name="visible">True</property> <property name="can_focus">False</property> 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 <gdk/gdk.h> #include <gtk/gtk.h> +#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 <edgbla@yandex.ru>", 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 <string.h> #include <fcntl.h> +#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 <stdlib.h> #include <string.h> #include <stdint.h> +#include <sys/stat.h> #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"); } /******************************************************************************/ |
