From a96eefdf0f10a9a051e65f6e88a24dc3abe40fc5 Mon Sep 17 00:00:00 2001 From: Stelios Tsampas Date: Mon, 17 Jul 2017 17:32:35 +0300 Subject: * Bring pluing Linux(gtk) interfaces up to date. --- plugins/dfcdrom/Makefile.am | 26 ++++- plugins/dfcdrom/cdrcfg-0.1df/dfcdrom.ui | 167 ++++++++++++++++---------------- plugins/dfcdrom/cdrcfg-0.1df/main.c | 7 +- 3 files changed, 112 insertions(+), 88 deletions(-) (limited to 'plugins/dfcdrom') diff --git a/plugins/dfcdrom/Makefile.am b/plugins/dfcdrom/Makefile.am index 6bc42c35..4b3dec4b 100644 --- a/plugins/dfcdrom/Makefile.am +++ b/plugins/dfcdrom/Makefile.am @@ -27,9 +27,29 @@ AM_CPPFLAGS = -DLOCALE_DIR=\"${datadir}/locale/\" \ -I$(top_srcdir)/libpcsxcore -I../../include bin_PROGRAMS = cfgDFCdrom -cfgDFCdrom_SOURCES = cdrcfg-0.1df/main.c +cfgDFCdrom_SOURCES = cdrcfg-0.1df/main.c GtkResources.c GtkResources.h cfgDFCdrom_LDADD = $(GTK3_LIBS) -glade_DATA = cdrcfg-0.1df/dfcdrom.ui -gladedir = $(datadir)/psemu/ +# gresource.xml is dynamically generated in CMake. Mirror that here in a static way. +define gresource_xml = + + + + dfcdrom.ui + + +endef + +dfcdrom.gresource.xml: + $(file >$@,$(gresource_xml)) +dfcdrom_gresource: dfcdrom.gresource.xml + $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)/cdrcfg-0.1df --generate-dependencies $(srcdir)/$<) +GtkResources.c: dfcdrom.gresource.xml $(dfcdrom_gresource) + $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/cdrcfg-0.1df --generate-source --c-name dfcdrom $< +GtkResources.h: dfcdrom.gresource.xml $(dfcdrom_gresource) + $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/cdrcfg-0.1df --generate-header --c-name dfcdrom $< + + +#glade_DATA = cdrcfg-0.1df/dfcdrom.ui +#gladedir = $(datadir)/psemu/ EXTRA_DIST = $(glade_DATA) diff --git a/plugins/dfcdrom/cdrcfg-0.1df/dfcdrom.ui b/plugins/dfcdrom/cdrcfg-0.1df/dfcdrom.ui index c282b2a1..988dee16 100644 --- a/plugins/dfcdrom/cdrcfg-0.1df/dfcdrom.ui +++ b/plugins/dfcdrom/cdrcfg-0.1df/dfcdrom.ui @@ -1,6 +1,7 @@ + - + 32 2048 @@ -13,6 +14,76 @@ 1 4 + + + + + + + + Normal (No Cache) + + + Threaded - Faster (With Cache) + + + + + + + + + + + Default + + + 125ms + + + 250ms + + + 500ms + + + 1s + + + 2s + + + 4s + + + 8s + + + 16s + + + 32s + + + 1min + + + 2min + + + 4min + + + 8min + + + 16min + + + 32min + + + True False @@ -58,16 +129,17 @@ - + True False + vertical True False 0 - + True False 5 @@ -104,11 +176,12 @@ False 0 - + True False + vertical - + True False 5 @@ -117,8 +190,8 @@ True False - 0 Select read mode: + 0 False @@ -152,7 +225,7 @@ - + True False 5 @@ -161,8 +234,8 @@ True False - 0 Cache Size (Def. 64): + 0 False @@ -195,7 +268,7 @@ - + True False 5 @@ -204,8 +277,8 @@ True False - 0 Spindown Time: + 0 False @@ -240,7 +313,7 @@ - + True False 5 @@ -249,8 +322,8 @@ True False - 0 Cdrom Speed (Def. 0 = MAX): + 0 False @@ -321,74 +394,4 @@ cfg_closebutton - - - - - - - - Normal (No Cache) - - - Threaded - Faster (With Cache) - - - - - - - - - - - Default - - - 125ms - - - 250ms - - - 500ms - - - 1s - - - 2s - - - 4s - - - 8s - - - 16s - - - 32s - - - 1min - - - 2min - - - 4min - - - 8min - - - 16min - - - 32min - - - diff --git a/plugins/dfcdrom/cdrcfg-0.1df/main.c b/plugins/dfcdrom/cdrcfg-0.1df/main.c index cc55aa36..a8aa4b67 100755 --- a/plugins/dfcdrom/cdrcfg-0.1df/main.c +++ b/plugins/dfcdrom/cdrcfg-0.1df/main.c @@ -208,7 +208,7 @@ long CDRconfigure() { builder = gtk_builder_new(); - if (!gtk_builder_add_from_file(builder, DATADIR "dfcdrom.ui", NULL)) { + if (!gtk_builder_add_from_resource(builder, "/org/pcsxr/dfcdrom/dfcdrom.ui", NULL)) { g_warning("We could not load the interface!"); return 0; } @@ -256,6 +256,7 @@ void CDRabout() { "Wei Mingzhi ", NULL}; widget = gtk_about_dialog_new(); + gtk_about_dialog_set_logo_icon_name (GTK_ABOUT_DIALOG(widget), "help-about"); gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(widget), "CD-ROM Device Reader"); gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(widget), "1.0"); gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(widget), authors); @@ -276,13 +277,13 @@ int main(int argc, char *argv[]) { gtk_init(&argc, &argv); if (argc < 2) { - printf ("Usage: cfgBladeSio1 {about | configure}\n"); + printf ("Usage: cfgDFCdrom {about | configure}\n"); return 0; } if (strcmp(argv[1], "configure") != 0 && strcmp(argv[1], "about") != 0) { - printf ("Usage: cfgBladeSio1 {about | configure}\n"); + printf ("Usage: cfgDFCdrom {about | configure}\n"); return 0; } -- cgit v1.2.3 From f48b5b2ac35ee69db0c0ffd3f411ffc21b7d5789 Mon Sep 17 00:00:00 2001 From: Stelios Tsampas Date: Mon, 17 Jul 2017 23:22:35 +0300 Subject: * Add configuration UI for PGXP. * Clean generated files with `make clean` --- gui/ConfDlg.c | 83 ++++++++++++ gui/Makefile.am | 2 + gui/data/pcsxr.ui | 294 +++++++++++++++++++++++++++++++++++++++++- plugins/bladesio1/Makefile.am | 3 + plugins/dfcdrom/Makefile.am | 3 + plugins/dfinput/Makefile.am | 2 + plugins/dfnet/Makefile.am | 2 + plugins/dfsound/Makefile.am | 3 + plugins/dfxvideo/Makefile.am | 3 + plugins/peopsxgl/Makefile.am | 3 + 10 files changed, 396 insertions(+), 2 deletions(-) (limited to 'plugins/dfcdrom') diff --git a/gui/ConfDlg.c b/gui/ConfDlg.c index 30d3df1f..529e2722 100755 --- a/gui/ConfDlg.c +++ b/gui/ConfDlg.c @@ -845,6 +845,7 @@ static void FindNetPlugin() { } GtkWidget *CpuDlg; +GtkWidget *PgxpDlg; GList *psxglist; char *psxtypes[] = { "NTSC", @@ -1033,5 +1034,87 @@ void OnConf_Cpu() { G_CALLBACK(OnCpu_Clicked), builder, (GClosureNotify)g_object_unref, G_CONNECT_AFTER); } +//When a different mode is selected, display some informational text +static void OnPgxp_ModeChanged(GtkWidget *widget, gpointer user_data) { + uint8_t mode; + + mode = gtk_combo_box_get_active(GTK_COMBO_BOX( + gtk_builder_get_object(builder, "PGXP_Mode"))); + + switch (mode) { + case 0: + gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(builder, "PGXP_Mode_title")), + _("Disabled")); + gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(builder, "PGXP_Mode_description")), + _("PGXP is not mirroring any functions currently.")); + break; + case 1: + gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(builder, "PGXP_Mode_title")), + _("Memory operations only")); + gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(builder, "PGXP_Mode_description")), + _("PGXP is mirroring load, store and processor transfer operations of the CPU and GTE.")); + break; + case 2: + gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(builder, "PGXP_Mode_title")), + _("Memory and CPU arithmetic operations")); + gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(builder, "PGXP_Mode_description")), + _("PGXP is mirroring load, store and transfer operations of the CPU and GTE and arithmetic/logic functions of the PSX CPU.\n(WARNING: This mode is currently unfinished and may cause incorrect behaviour in some games).")); + break; + default: + gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(builder, "PGXP_Mode_title")), + _("Error")); + gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(builder, "PGXP_Mode_description")), + _("Unknown mode.")); + } +} + +static void OnPgxp_Clicked(GtkDialog *dialog, gint arg1, gpointer user_data) { + + Config.PGXP_GTE = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( + gtk_builder_get_object(builder, "PGXP_GTE"))); + Config.PGXP_Cache = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( + gtk_builder_get_object(builder, "PGXP_Cache"))); + Config.PGXP_Texture = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( + gtk_builder_get_object(builder, "PGXP_Texture"))); + + Config.PGXP_Mode = gtk_combo_box_get_active(GTK_COMBO_BOX( + gtk_builder_get_object(builder, "PGXP_Mode"))); + + EmuSetPGXPMode(Config.PGXP_Mode); + SaveConfig(); + + gtk_widget_destroy(PgxpDlg); + PgxpDlg = NULL; +} + void OnConf_Pgxp() { + GtkWidget *widget; + char buf[25]; + + builder = gtk_builder_new(); + + if (!gtk_builder_add_from_resource(builder, "/org/pcsxr/gui/pcsxr.ui", NULL)) { + g_warning("Error: interface could not be loaded!"); + return; + } + + PgxpDlg = GTK_WIDGET(gtk_builder_get_object(builder, "PgxpDlg")); + gtk_window_set_default_size(GTK_WINDOW(PgxpDlg), 320, 320); + gtk_widget_show (PgxpDlg); + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( + gtk_builder_get_object(builder, "PGXP_GTE")), Config.PGXP_GTE); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( + gtk_builder_get_object(builder, "PGXP_Cache")), Config.PGXP_Cache); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( + gtk_builder_get_object(builder, "PGXP_Texture")), Config.PGXP_Texture); + + gtk_combo_box_set_active(GTK_COMBO_BOX( + gtk_builder_get_object(builder, "PGXP_Mode")), Config.PGXP_Mode); + OnPgxp_ModeChanged(NULL, NULL); + + g_signal_connect_data(G_OBJECT(gtk_builder_get_object(builder, "PGXP_Mode")), "changed", + G_CALLBACK(OnPgxp_ModeChanged), builder, NULL, G_CONNECT_AFTER); + g_signal_connect_data(G_OBJECT(PgxpDlg), "response", + G_CALLBACK(OnPgxp_Clicked), builder, (GClosureNotify)g_object_unref, G_CONNECT_AFTER); } diff --git a/gui/Makefile.am b/gui/Makefile.am index ebae1d48..7db62f01 100644 --- a/gui/Makefile.am +++ b/gui/Makefile.am @@ -77,3 +77,5 @@ GtkResources.h: pcsxr.gresource.xml $(pcsxr_gresource) pcsxr_LDADD = \ ../libpcsxcore/libpcsxcore.a \ $(GTK3_LIBS) -lpthread -lz -lm -lXext -lXtst + +CLEANFILES = pcsxr.gresource.xml GtkResources.c GtkResources.h diff --git a/gui/data/pcsxr.ui b/gui/data/pcsxr.ui index 6cc4b24f..35937bfb 100644 --- a/gui/data/pcsxr.ui +++ b/gui/data/pcsxr.ui @@ -1,5 +1,5 @@ - + @@ -32,6 +32,9 @@ + + + False @@ -214,6 +217,9 @@ closbutton1 + + + False @@ -919,6 +925,9 @@ btn_ConfClose + + + False @@ -1731,6 +1740,9 @@ McdClose + + + False @@ -2013,6 +2025,9 @@ memview_close + + + False @@ -2169,6 +2184,9 @@ closebutton2 + + + True @@ -2239,7 +2257,6 @@ True False - 0.49000000953674316 pcsxr-cd-open 1 @@ -2303,6 +2320,12 @@ pcsxr-plugin-sio1 1 + + True + False + pcsxr-pgxp + 1 + True False @@ -2835,6 +2858,23 @@ False + + + _PGXP... + True + False + True + image43 + False + + + + + + True + False + + _CPU... @@ -3128,6 +3168,9 @@ + + + @@ -3745,6 +3788,9 @@ closebutton + + + @@ -4417,5 +4463,249 @@ closebutton1 + + + + + + + + + + + + Disabled + + + Memory only + + + Memory + Cpu logic + + + + + False + Configure PGXP + False + True + center-on-parent + dialog + + + False + vertical + + + False + end + + + gtk-close + True + True + True + True + + + False + False + 0 + + + + + False + False + 1 + + + + + True + False + vertical + 5 + + + True + False + 0 + + + True + False + 12 + + + True + False + vertical + + + Enable PGXP GTE vertex creation + True + True + False + True + + + False + True + 0 + + + + + Enable vertex caching. + True + True + False + True + + + False + True + 1 + + + + + Enable perspective correct texturing. + True + True + False + True + + + False + True + 2 + + + + + + + + + True + False + Options + + + + + + + + False + True + 0 + + + + + True + False + 0 + + + True + False + 12 + + + True + False + vertical + top + + + True + False + 40 + 40 + liststore6 + + + + 0 + + + + + False + True + 0 + + + + + True + False + start + 4 + 4 + + + + + + False + True + 1 + + + + + True + False + 10 + True + 20 + + + True + True + 2 + + + + + + + + + True + False + Select PGXP Mode + + + + + + + + True + True + 1 + + + + + True + True + 0 + + + + + + PgxpDlg_close + + + + diff --git a/plugins/bladesio1/Makefile.am b/plugins/bladesio1/Makefile.am index 880aa647..badd57e5 100644 --- a/plugins/bladesio1/Makefile.am +++ b/plugins/bladesio1/Makefile.am @@ -38,3 +38,6 @@ GtkResources.h: bladesio1.gresource.xml $(bladesio1_gresource) #glade_DATA = sio1.ui #gladedir = $(datadir)/psemu/ EXTRA_DIST = $(glade_DATA) + +CLEANFILES = bladesio1.gresource.xml GtkResources.c GtkResources.h + diff --git a/plugins/dfcdrom/Makefile.am b/plugins/dfcdrom/Makefile.am index 4b3dec4b..1f87998b 100644 --- a/plugins/dfcdrom/Makefile.am +++ b/plugins/dfcdrom/Makefile.am @@ -53,3 +53,6 @@ GtkResources.h: dfcdrom.gresource.xml $(dfcdrom_gresource) #glade_DATA = cdrcfg-0.1df/dfcdrom.ui #gladedir = $(datadir)/psemu/ EXTRA_DIST = $(glade_DATA) + +CLEANFILES = dfcdrom.gresource.xml GtkResources.c GtkResources.h + diff --git a/plugins/dfinput/Makefile.am b/plugins/dfinput/Makefile.am index 11eee3eb..458259c5 100644 --- a/plugins/dfinput/Makefile.am +++ b/plugins/dfinput/Makefile.am @@ -39,3 +39,5 @@ GtkResources.h: dfinput.gresource.xml $(dfinput_gresource) #glade_DATA = dfinput.ui #gladedir = $(datadir)/psemu/ EXTRA_DIST = $(glade_DATA) + +CLEANFILES = dfinput.gresource.xml GtkResources.c GtkResources.h diff --git a/plugins/dfnet/Makefile.am b/plugins/dfnet/Makefile.am index 4000b8c4..f0a53ea0 100755 --- a/plugins/dfnet/Makefile.am +++ b/plugins/dfnet/Makefile.am @@ -38,3 +38,5 @@ GtkResources.h: dfnet.gresource.xml $(dfnet_gresource) #glade_DATA = dfnet.ui #gladedir = $(datadir)/psemu/ EXTRA_DIST = $(glade_DATA) + +CLEANFILES = dfnet.gresource.xml GtkResources.c GtkResources.h diff --git a/plugins/dfsound/Makefile.am b/plugins/dfsound/Makefile.am index b34f3267..9f8130a1 100755 --- a/plugins/dfsound/Makefile.am +++ b/plugins/dfsound/Makefile.am @@ -74,3 +74,6 @@ GtkResources.h: dfsound.gresource.xml $(dfsound_gresource) #glade_DATA = spucfg-0.1df/dfsound.ui #gladedir = $(datadir)/psemu/ EXTRA_DIST = $(glade_DATA) + +CLEANFILES = dfsound.gresource.xml GtkResources.c GtkResources.h + diff --git a/plugins/dfxvideo/Makefile.am b/plugins/dfxvideo/Makefile.am index 86e8ef3a..520749b2 100755 --- a/plugins/dfxvideo/Makefile.am +++ b/plugins/dfxvideo/Makefile.am @@ -52,3 +52,6 @@ GtkResources.h: dfxvideo.gresource.xml $(dfxvideo_gresource) #glade_DATA = gpucfg-0.1df/dfxvideo.ui #gladedir = $(datadir)/psemu/ EXTRA_DIST = $(glade_DATA) + +CLEANFILES = dfxvideo.gresource.xml GtkResources.c GtkResources.h + diff --git a/plugins/peopsxgl/Makefile.am b/plugins/peopsxgl/Makefile.am index a37643e6..576e140d 100755 --- a/plugins/peopsxgl/Makefile.am +++ b/plugins/peopsxgl/Makefile.am @@ -52,3 +52,6 @@ GtkResources.h: peopsxgl.gresource.xml $(peopsxgl_gresource) #glade_DATA = gpucfg/peopsxgl.ui #gladedir = $(datadir)/psemu/ EXTRA_DIST = $(glade_DATA) + +CLEANFILES = peopsxgl.gresource.xml GtkResources.c GtkResources.h + -- cgit v1.2.3