From acd164d56c60efd57a87c0cbe53fe6aee3be6696 Mon Sep 17 00:00:00 2001 From: "SND\\weimingzhi_cp" Date: Thu, 26 Nov 2009 06:41:17 +0000 Subject: git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@38248 e17a0e51-4ae3-4d35-97c3-1a29b211df97 --- plugins/dfcdrom/Makefile.am | 4 +- plugins/dfcdrom/Makefile.in | 75 +++- plugins/dfcdrom/callbacks.c | 210 ---------- plugins/dfcdrom/callbacks.h | 18 - plugins/dfcdrom/cdr-linux.c | 598 +++++++++++++++++++++++++++ plugins/dfcdrom/cdr-null.c | 88 ++++ plugins/dfcdrom/cdr.c | 656 +----------------------------- plugins/dfcdrom/cdr.h | 6 - plugins/dfcdrom/cdrcfg-0.1df/callbacks.c | 210 ++++++++++ plugins/dfcdrom/cdrcfg-0.1df/callbacks.h | 18 + plugins/dfcdrom/cdrcfg-0.1df/cfg-gtk2.c | 62 +++ plugins/dfcdrom/cdrcfg-0.1df/cfgCdr.glade | 386 ++++++++++++++++++ plugins/dfcdrom/cdrcfg-0.1df/interface.c | 340 ++++++++++++++++ plugins/dfcdrom/cdrcfg-0.1df/interface.h | 6 + plugins/dfcdrom/cdrcfg-0.1df/main.c | 43 ++ plugins/dfcdrom/cdrcfg-0.1df/support.c | 147 +++++++ plugins/dfcdrom/cdrcfg-0.1df/support.h | 44 ++ plugins/dfcdrom/cfg-gtk2.c | 62 --- plugins/dfcdrom/cfg.c | 2 +- plugins/dfcdrom/cfgCdr.glade | 386 ------------------ plugins/dfcdrom/interface.c | 340 ---------------- plugins/dfcdrom/interface.h | 6 - plugins/dfcdrom/main.c | 43 -- plugins/dfcdrom/support.c | 147 ------- plugins/dfcdrom/support.h | 44 -- 25 files changed, 2023 insertions(+), 1918 deletions(-) delete mode 100644 plugins/dfcdrom/callbacks.c delete mode 100644 plugins/dfcdrom/callbacks.h create mode 100644 plugins/dfcdrom/cdr-linux.c create mode 100644 plugins/dfcdrom/cdr-null.c create mode 100644 plugins/dfcdrom/cdrcfg-0.1df/callbacks.c create mode 100644 plugins/dfcdrom/cdrcfg-0.1df/callbacks.h create mode 100644 plugins/dfcdrom/cdrcfg-0.1df/cfg-gtk2.c create mode 100644 plugins/dfcdrom/cdrcfg-0.1df/cfgCdr.glade create mode 100644 plugins/dfcdrom/cdrcfg-0.1df/interface.c create mode 100644 plugins/dfcdrom/cdrcfg-0.1df/interface.h create mode 100644 plugins/dfcdrom/cdrcfg-0.1df/main.c create mode 100644 plugins/dfcdrom/cdrcfg-0.1df/support.c create mode 100644 plugins/dfcdrom/cdrcfg-0.1df/support.h delete mode 100644 plugins/dfcdrom/cfg-gtk2.c delete mode 100644 plugins/dfcdrom/cfgCdr.glade delete mode 100644 plugins/dfcdrom/interface.c delete mode 100644 plugins/dfcdrom/interface.h delete mode 100644 plugins/dfcdrom/main.c delete mode 100644 plugins/dfcdrom/support.c delete mode 100644 plugins/dfcdrom/support.h (limited to 'plugins') diff --git a/plugins/dfcdrom/Makefile.am b/plugins/dfcdrom/Makefile.am index da03d92c..a0ecdd0c 100644 --- a/plugins/dfcdrom/Makefile.am +++ b/plugins/dfcdrom/Makefile.am @@ -13,5 +13,7 @@ INCLUDES = -DPIXMAPDIR=\"${datadir}/pixmaps/\" \ -I../../libpcsxcore -I../../include bin_PROGRAMS = cfgDFCdrom -cfgDFCdrom_SOURCES = cfg-gtk2.c main.c support.c interface.c callbacks.c +cfgDFCdrom_SOURCES = cdrcfg-0.1df/cfg-gtk2.c cdrcfg-0.1df/main.c \ + cdrcfg-0.1df/support.c cdrcfg-0.1df/interface.c \ + cdrcfg-0.1df/callbacks.c cfgDFCdrom_LDADD = $(GTK2_LIBS) diff --git a/plugins/dfcdrom/Makefile.in b/plugins/dfcdrom/Makefile.in index 5e91d951..4b7bce73 100644 --- a/plugins/dfcdrom/Makefile.in +++ b/plugins/dfcdrom/Makefile.in @@ -241,7 +241,10 @@ INCLUDES = -DPIXMAPDIR=\"${datadir}/pixmaps/\" \ $(GTK2_CFLAGS) \ -I../../libpcsxcore -I../../include -cfgDFCdrom_SOURCES = cfg-gtk2.c main.c support.c interface.c callbacks.c +cfgDFCdrom_SOURCES = cdrcfg-0.1df/cfg-gtk2.c cdrcfg-0.1df/main.c \ + cdrcfg-0.1df/support.c cdrcfg-0.1df/interface.c \ + cdrcfg-0.1df/callbacks.c + cfgDFCdrom_LDADD = $(GTK2_LIBS) all: all-am @@ -372,6 +375,76 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +cfg-gtk2.o: cdrcfg-0.1df/cfg-gtk2.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cfg-gtk2.o -MD -MP -MF $(DEPDIR)/cfg-gtk2.Tpo -c -o cfg-gtk2.o `test -f 'cdrcfg-0.1df/cfg-gtk2.c' || echo '$(srcdir)/'`cdrcfg-0.1df/cfg-gtk2.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/cfg-gtk2.Tpo $(DEPDIR)/cfg-gtk2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cdrcfg-0.1df/cfg-gtk2.c' object='cfg-gtk2.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cfg-gtk2.o `test -f 'cdrcfg-0.1df/cfg-gtk2.c' || echo '$(srcdir)/'`cdrcfg-0.1df/cfg-gtk2.c + +cfg-gtk2.obj: cdrcfg-0.1df/cfg-gtk2.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cfg-gtk2.obj -MD -MP -MF $(DEPDIR)/cfg-gtk2.Tpo -c -o cfg-gtk2.obj `if test -f 'cdrcfg-0.1df/cfg-gtk2.c'; then $(CYGPATH_W) 'cdrcfg-0.1df/cfg-gtk2.c'; else $(CYGPATH_W) '$(srcdir)/cdrcfg-0.1df/cfg-gtk2.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/cfg-gtk2.Tpo $(DEPDIR)/cfg-gtk2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cdrcfg-0.1df/cfg-gtk2.c' object='cfg-gtk2.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cfg-gtk2.obj `if test -f 'cdrcfg-0.1df/cfg-gtk2.c'; then $(CYGPATH_W) 'cdrcfg-0.1df/cfg-gtk2.c'; else $(CYGPATH_W) '$(srcdir)/cdrcfg-0.1df/cfg-gtk2.c'; fi` + +main.o: cdrcfg-0.1df/main.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT main.o -MD -MP -MF $(DEPDIR)/main.Tpo -c -o main.o `test -f 'cdrcfg-0.1df/main.c' || echo '$(srcdir)/'`cdrcfg-0.1df/main.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/main.Tpo $(DEPDIR)/main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cdrcfg-0.1df/main.c' object='main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o main.o `test -f 'cdrcfg-0.1df/main.c' || echo '$(srcdir)/'`cdrcfg-0.1df/main.c + +main.obj: cdrcfg-0.1df/main.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT main.obj -MD -MP -MF $(DEPDIR)/main.Tpo -c -o main.obj `if test -f 'cdrcfg-0.1df/main.c'; then $(CYGPATH_W) 'cdrcfg-0.1df/main.c'; else $(CYGPATH_W) '$(srcdir)/cdrcfg-0.1df/main.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/main.Tpo $(DEPDIR)/main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cdrcfg-0.1df/main.c' object='main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o main.obj `if test -f 'cdrcfg-0.1df/main.c'; then $(CYGPATH_W) 'cdrcfg-0.1df/main.c'; else $(CYGPATH_W) '$(srcdir)/cdrcfg-0.1df/main.c'; fi` + +support.o: cdrcfg-0.1df/support.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT support.o -MD -MP -MF $(DEPDIR)/support.Tpo -c -o support.o `test -f 'cdrcfg-0.1df/support.c' || echo '$(srcdir)/'`cdrcfg-0.1df/support.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/support.Tpo $(DEPDIR)/support.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cdrcfg-0.1df/support.c' object='support.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o support.o `test -f 'cdrcfg-0.1df/support.c' || echo '$(srcdir)/'`cdrcfg-0.1df/support.c + +support.obj: cdrcfg-0.1df/support.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT support.obj -MD -MP -MF $(DEPDIR)/support.Tpo -c -o support.obj `if test -f 'cdrcfg-0.1df/support.c'; then $(CYGPATH_W) 'cdrcfg-0.1df/support.c'; else $(CYGPATH_W) '$(srcdir)/cdrcfg-0.1df/support.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/support.Tpo $(DEPDIR)/support.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cdrcfg-0.1df/support.c' object='support.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o support.obj `if test -f 'cdrcfg-0.1df/support.c'; then $(CYGPATH_W) 'cdrcfg-0.1df/support.c'; else $(CYGPATH_W) '$(srcdir)/cdrcfg-0.1df/support.c'; fi` + +interface.o: cdrcfg-0.1df/interface.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interface.o -MD -MP -MF $(DEPDIR)/interface.Tpo -c -o interface.o `test -f 'cdrcfg-0.1df/interface.c' || echo '$(srcdir)/'`cdrcfg-0.1df/interface.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/interface.Tpo $(DEPDIR)/interface.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cdrcfg-0.1df/interface.c' object='interface.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interface.o `test -f 'cdrcfg-0.1df/interface.c' || echo '$(srcdir)/'`cdrcfg-0.1df/interface.c + +interface.obj: cdrcfg-0.1df/interface.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT interface.obj -MD -MP -MF $(DEPDIR)/interface.Tpo -c -o interface.obj `if test -f 'cdrcfg-0.1df/interface.c'; then $(CYGPATH_W) 'cdrcfg-0.1df/interface.c'; else $(CYGPATH_W) '$(srcdir)/cdrcfg-0.1df/interface.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/interface.Tpo $(DEPDIR)/interface.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cdrcfg-0.1df/interface.c' object='interface.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o interface.obj `if test -f 'cdrcfg-0.1df/interface.c'; then $(CYGPATH_W) 'cdrcfg-0.1df/interface.c'; else $(CYGPATH_W) '$(srcdir)/cdrcfg-0.1df/interface.c'; fi` + +callbacks.o: cdrcfg-0.1df/callbacks.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT callbacks.o -MD -MP -MF $(DEPDIR)/callbacks.Tpo -c -o callbacks.o `test -f 'cdrcfg-0.1df/callbacks.c' || echo '$(srcdir)/'`cdrcfg-0.1df/callbacks.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/callbacks.Tpo $(DEPDIR)/callbacks.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cdrcfg-0.1df/callbacks.c' object='callbacks.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o callbacks.o `test -f 'cdrcfg-0.1df/callbacks.c' || echo '$(srcdir)/'`cdrcfg-0.1df/callbacks.c + +callbacks.obj: cdrcfg-0.1df/callbacks.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT callbacks.obj -MD -MP -MF $(DEPDIR)/callbacks.Tpo -c -o callbacks.obj `if test -f 'cdrcfg-0.1df/callbacks.c'; then $(CYGPATH_W) 'cdrcfg-0.1df/callbacks.c'; else $(CYGPATH_W) '$(srcdir)/cdrcfg-0.1df/callbacks.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/callbacks.Tpo $(DEPDIR)/callbacks.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cdrcfg-0.1df/callbacks.c' object='callbacks.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o callbacks.obj `if test -f 'cdrcfg-0.1df/callbacks.c'; then $(CYGPATH_W) 'cdrcfg-0.1df/callbacks.c'; else $(CYGPATH_W) '$(srcdir)/cdrcfg-0.1df/callbacks.c'; fi` + mostlyclean-libtool: -rm -f *.lo diff --git a/plugins/dfcdrom/callbacks.c b/plugins/dfcdrom/callbacks.c deleted file mode 100644 index 09f72f63..00000000 --- a/plugins/dfcdrom/callbacks.c +++ /dev/null @@ -1,210 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include -#endif - -#ifdef __linux__ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "cdr.h" -#include "callbacks.h" -#include "interface.h" -#include "support.h" - -/* list of drives */ -GList * driveslist = NULL; - -/* private functions prototypes */ -void fill_drives_list(void); -int is_cdrom(char *device); - - -/*************************************************************************** - * Config Dialog. - ***************************************************************************/ - -void on_cfg_dialog_show (GtkWidget *widget, gpointer user_data) -{ - GtkWidget *devcombo; - GtkWidget *rmmenu; - GtkWidget *subQbtn; - GtkWidget *spinC; - GtkWidget *spinS; - - LoadConf(); - fill_drives_list(); - - devcombo = lookup_widget (GTK_WIDGET (widget), "cddev_combo"); - rmmenu = lookup_widget (GTK_WIDGET (widget), "readmode_optionmenu"); - subQbtn = lookup_widget (GTK_WIDGET (widget), "subQ_button"); - spinC = lookup_widget (GTK_WIDGET (widget), "spinCacheSize"); - spinS = lookup_widget (GTK_WIDGET (widget), "spinCdrSpeed"); - - /* show values */ - gtk_combo_set_popdown_strings (GTK_COMBO (devcombo), driveslist); - gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (devcombo)->entry), CdromDev); - gtk_option_menu_set_history (GTK_OPTION_MENU (rmmenu), ReadMode); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (subQbtn), UseSubQ); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(spinC), (float)CacheSize); - gtk_spin_button_set_value (GTK_SPIN_BUTTON(spinS), (float)CdrSpeed); - - /* ??? is correct to free? it's a global... */ - g_list_free(driveslist); -} - - -void on_cfg_cancelbutton_clicked (GtkButton *button, gpointer user_data) -{ - gtk_widget_destroy (gtk_widget_get_toplevel (GTK_WIDGET (button))); - gtk_main_quit(); -} - - -void on_cfg_okbutton_clicked (GtkButton *button, gpointer user_data) -{ - GtkWidget *deventry; - GtkWidget *rmmenu; - GtkWidget *subQbtn; - GtkWidget *spinC; - GtkWidget *spinS; - char *tmp; - - deventry = lookup_widget (GTK_WIDGET (button), "cddev_entry"); - rmmenu = lookup_widget (GTK_WIDGET (button), "readmode_optionmenu"); - subQbtn = lookup_widget (GTK_WIDGET (button), "subQ_button"); - spinC = lookup_widget (GTK_WIDGET (button), "spinCacheSize"); - spinS = lookup_widget (GTK_WIDGET (button), "spinCdrSpeed"); - - tmp = gtk_entry_get_text (GTK_ENTRY (deventry)); - strcpy(CdromDev, tmp); - ReadMode = gtk_option_menu_get_history (GTK_OPTION_MENU(rmmenu)); - UseSubQ = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(subQbtn)); - CacheSize= gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(spinC)); - CdrSpeed = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(spinS)); - - SaveConf(); - - gtk_widget_destroy(gtk_widget_get_toplevel (GTK_WIDGET (button))); - gtk_main_quit(); -} - - -/*************************************************************************** - * About Dialog. - ***************************************************************************/ - -void on_abt_okbutton_clicked (GtkButton *button, gpointer user_data) -{ - gtk_widget_destroy (gtk_widget_get_toplevel (GTK_WIDGET (button))); - gtk_main_quit(); -} - - -/*************************************************************************** - * Private functions. - ***************************************************************************/ - -/* - * get_drives_list: retrieves available cd drives. At the moment it use a quite - * ugly "brute force" method: we check for the most common location for cdrom - * in /dev and chech if they are cdrom devices. - * If your cdrom path is not listed here you'll have to type it in the dialog - * entry yourself (or add it here and recompile). - * Are there any other common entry to add to the list? (especially scsi, I - * deliberately ignored old non standard cdroms... ) - * If you come up with a better method let me know!! - */ - -void fill_drives_list(void) -{ - int i = 0; - static char *cdrom_devices[]={ - "/dev/cdrom", - "/dev/cdroms/cdrom0", - "/dev/cdroms/cdrom1", - "/dev/cdroms/cdrom2", - "/dev/cdroms/cdrom3", - "/dev/hda", - "/dev/hdb", - "/dev/hdc", - "/dev/hdd", - "/dev/scd0", - "/dev/scd1", - "/dev/scd2", - "/dev/scd3", - "/dev/optcd", - NULL}; - - /* fisrt we put our current drive */ - driveslist = g_list_append(driveslist, CdromDev); - - /* scan cdrom_devices for real cdrom and add them to driveslist */ - while(cdrom_devices[i] != NULL){ - - /* check that is not our current dev (already in list) */ - if (strcmp(cdrom_devices[i], CdromDev) != 0){ - - /* check that is a cdrom device */ - if (is_cdrom(cdrom_devices[i])){ - driveslist = g_list_append(driveslist, cdrom_devices[i]); - } - } - ++i; - } - - return; -} - - -/* function to check if the device is a cdrom */ -int is_cdrom(char *device){ - struct stat st; - int fd = -1; - - /* check if the file exist */ - if (stat(device, &st) <0) return 0; - - /* check if is a block or char device */ - if (!S_ISCHR(st.st_mode) && !S_ISBLK(st.st_mode)) return 0; - - /* try to open the device file descriptor */ - if ((fd = open(device, O_RDONLY | O_NONBLOCK)) < 0) return 0; - - /* I need a method to check is a device is really a cdrom. - some problems/ideas are: - - different protocls (ide, scsi, old proprietary...) - - maybe we can use major number (see linux/major.h) to do some check. - major number can be retrieved with (st.st_rdev>>8) - scsi has SCSI_CDROM_MAJOR but does this cover all scsi drives? - beside IDE major is the same for hard disks and cdroms... - and DVDs? - - another idea is to parse /proc, but again IDE, scsi etc have - different files... I've not found a way to query "which cd drives - are available?" - - Now I use this ioctl which works also if the drive is empty, - I hope that is implemented for all the drives... here works - fine: at least doesn't let me to select my HD as cds ;) - */ - /* try a ioctl to see if it's a cdrom device */ - if (ioctl(fd, CDROM_GET_CAPABILITY, NULL) < 0){ - close(fd); - return 0; - } - - close(fd); - - /* yes, it seems a cd drive! */ - return 1; -} - -#endif diff --git a/plugins/dfcdrom/callbacks.h b/plugins/dfcdrom/callbacks.h deleted file mode 100644 index 622914d9..00000000 --- a/plugins/dfcdrom/callbacks.h +++ /dev/null @@ -1,18 +0,0 @@ -#include - - -void -on_cfg_dialog_show (GtkWidget *widget, - gpointer user_data); - -void -on_cfg_cancelbutton_clicked (GtkButton *button, - gpointer user_data); - -void -on_cfg_okbutton_clicked (GtkButton *button, - gpointer user_data); - -void -on_abt_okbutton_clicked (GtkButton *button, - gpointer user_data); diff --git a/plugins/dfcdrom/cdr-linux.c b/plugins/dfcdrom/cdr-linux.c new file mode 100644 index 00000000..c0e27807 --- /dev/null +++ b/plugins/dfcdrom/cdr-linux.c @@ -0,0 +1,598 @@ +/* + * Cdrom for Psemu Pro like Emulators + * + * By: linuzappz + * + */ + +#include "config.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "cdr.h" + +#ifdef ENABLE_NLS +#include +#include +#define _(x) gettext(x) +#define N_(x) (x) +#else +#define _(x) (x) +#define N_(x) (x) +#endif + +static inline int msf_to_lba(char m, char s, char f) { + return (((m * CD_SECS) + s) * CD_FRAMES + f) - CD_MSF_OFFSET; +} + +int initial_time = 0; + +pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER; +pthread_cond_t cond = PTHREAD_COND_INITIALIZER; + +long (*ReadTrackT[])() = { + ReadNormal, + ReadThreaded, +}; + +unsigned char* (*GetBufferT[])() = { + GetBNormal, + GetBThreaded, +}; + +long (*fReadTrack)(); +unsigned char* (*fGetBuffer)(); + +void *CdrThread(void *arg); + +char *LibName = N_("CD-ROM Drive Reader"); + +char *PSEgetLibName(void) { + return _(LibName); +} + +unsigned long PSEgetLibType(void) { + return PSE_LT_CDR; +} + +unsigned long PSEgetLibVersion(void) { + return 1 << 16; +} + +long CDRinit(void) { + cdHandle = -1; + thread = -1; + + return 0; +} + +long CDRshutdown(void) { + return 0; +} + +long CDRopen(void) { + LoadConf(); + + if (cdHandle > 0) + return 0; /* it's already open */ + cdHandle = open(CdromDev, O_RDONLY); + if (cdHandle != -1) { // if we can't open the cdrom we'll works as a null plugin + ioctl(cdHandle, CDROM_LOCKDOOR, 0); +// ioctl(cdHandle, CDROMSTART, NULL); + + ioctl(cdHandle, CDROM_SELECT_SPEED, CdrSpeed); + } else { + fprintf(stderr, "CDR: Could not open %s\n", CdromDev); + } + + fReadTrack = ReadTrackT[ReadMode]; + fGetBuffer = GetBufferT[ReadMode]; + + if (ReadMode == THREADED) { + cdcache = (CacheData *)malloc(CacheSize * sizeof(CacheData)); + if (cdcache == NULL) return -1; + memset(cdcache, 0, CacheSize * sizeof(CacheData)); + } else { + cdbuffer = cr.buf + 12; /* skip sync data */ + } + + if (ReadMode == THREADED) { + pthread_attr_t attr; + + pthread_mutex_init(&mut, NULL); + pthread_cond_init(&cond, NULL); + locked = 0; + + pthread_attr_init(&attr); + pthread_create(&thread, &attr, CdrThread, NULL); + + cacheaddr = -1; + } else thread = -1; + + playing = 0; + stopth = 0; + initial_time = 0; + + return 0; +} + +long CDRclose(void) { + if (cdHandle < 1) return 0; + + if (playing) CDRstop(); + close(cdHandle); + cdHandle = -1; + + if (thread != -1) { + if (locked == 0) { + stopth = 1; + while (locked == 0) usleep(5000); + } + + stopth = 2; + pthread_mutex_lock(&mut); + pthread_cond_signal(&cond); + pthread_mutex_unlock(&mut); + + pthread_join(thread, NULL); + pthread_mutex_destroy(&mut); + pthread_cond_destroy(&cond); + } + + if (ReadMode == THREADED) { + free(cdcache); + } + + return 0; +} + +// return Starting and Ending Track +// buffer: +// byte 0 - start track +// byte 1 - end track +long CDRgetTN(unsigned char *buffer) { + struct cdrom_tochdr toc; + + if (cdHandle < 1) { + buffer[0] = 1; + buffer[1] = 1; + return 0; + } + + if (ioctl(cdHandle, CDROMREADTOCHDR, &toc) == -1) + return -1; + + buffer[0] = toc.cdth_trk0; // start track + buffer[1] = toc.cdth_trk1; // end track + + return 0; +} + +// return Track Time +// buffer: +// byte 0 - frame +// byte 1 - second +// byte 2 - minute +long CDRgetTD(unsigned char track, unsigned char *buffer) { + struct cdrom_tocentry entry; + + if (cdHandle < 1) { + memset(buffer + 1, 0, 3); + return 0; + } + + if (track == 0) + track = 0xaa; // total time + entry.cdte_track = track; + entry.cdte_format = CDROM_MSF; + + if (ioctl(cdHandle, CDROMREADTOCENTRY, &entry) == -1) + return -1; + + buffer[0] = entry.cdte_addr.msf.frame; /* frame */ + buffer[1] = entry.cdte_addr.msf.second; /* second */ + buffer[2] = entry.cdte_addr.msf.minute; /* minute */ + + return 0; +} + +// normal reading +long ReadNormal() { + if (ioctl(cdHandle, CDROMREADRAW, &cr) == -1) + return -1; + + return 0; +} + +unsigned char* GetBNormal() { + return cdbuffer; +} + +// threaded reading (with cache) +long ReadThreaded() { + int addr = msf_to_lba(cr.msf.cdmsf_min0, cr.msf.cdmsf_sec0, cr.msf.cdmsf_frame0); + int i; + + if (addr >= cacheaddr && addr < (cacheaddr + CacheSize) && + cacheaddr != -1) { + i = addr - cacheaddr; +// printf("found %d\n", (addr - cacheaddr)); + cdbuffer = cdcache[i].cr.buf + 12; + while (btoi(cdbuffer[0]) != cr.msf.cdmsf_min0 || + btoi(cdbuffer[1]) != cr.msf.cdmsf_sec0 || + btoi(cdbuffer[2]) != cr.msf.cdmsf_frame0) { + if (locked == 1) { + if (cdcache[i].ret == 0) break; + return -1; + } + usleep(5000); + } +// printf("%x:%x:%x, %p, %p\n", cdbuffer[0], cdbuffer[1], cdbuffer[2], cdbuffer, cdcache); + found = 1; + + return 0; + } else found = 0; + + if (locked == 0) { + stopth = 1; + while (locked == 0) { usleep(5000); } + stopth = 0; + } + + // not found in cache + locked = 0; + pthread_mutex_lock(&mut); + pthread_cond_signal(&cond); + pthread_mutex_unlock(&mut); + + return 0; +} + +unsigned char* GetBThreaded() { +// printf("threadc %d\n", found); + if (found == 1) { found = 0; return cdbuffer; } + cdbuffer = cdcache[0].cr.buf + 12; + while (btoi(cdbuffer[0]) != cr.msf.cdmsf_min0 || + btoi(cdbuffer[1]) != cr.msf.cdmsf_sec0 || + btoi(cdbuffer[2]) != cr.msf.cdmsf_frame0) { + if (locked == 1) return NULL; + usleep(5000); + } + if (cdcache[0].ret == -1) return NULL; + + return cdbuffer; +} + + +// read track +// time: +// byte 0 - minute +// byte 1 - second +// byte 2 - frame +// uses bcd format +long CDRreadTrack(unsigned char *time) { + if (cdHandle < 1) { + memset(cr.buf, 0, DATA_SIZE); + return 0; + } + +// printf("CDRreadTrack %d:%d:%d\n", btoi(time[0]), btoi(time[1]), btoi(time[2])); + + if (UseSubQ) memcpy(lastTime, time, 3); + subqread = 0; + + cr.msf.cdmsf_min0 = btoi(time[0]); + cr.msf.cdmsf_sec0 = btoi(time[1]); + cr.msf.cdmsf_frame0 = btoi(time[2]); + + return fReadTrack(); +} + +void *CdrThread(void *arg) { + unsigned char curTime[3]; + int i; + + for (;;) { + locked = 1; + pthread_mutex_lock(&mut); + pthread_cond_wait(&cond, &mut); + + if (stopth == 2) pthread_exit(NULL); + // refill the buffer + cacheaddr = msf_to_lba(cr.msf.cdmsf_min0, cr.msf.cdmsf_sec0, cr.msf.cdmsf_frame0); + + memcpy(curTime, &cr.msf, 3); + +// printf("start thc %d:%d:%d\n", curTime[0], curTime[1], curTime[2]); + + for (i=0; iTime, &sc.cdsc_absaddr.msf, 3); + } + + ret = ioctl(cdHandle, CDROM_DISC_STATUS); + switch (ret) { + case CDS_AUDIO: + stat->Type = 0x02; + break; + case CDS_DATA_1: + case CDS_DATA_2: + case CDS_XA_2_1: + case CDS_XA_2_2: + stat->Type = 0x01; + break; + } + ret = ioctl(cdHandle, CDROM_DRIVE_STATUS); + switch (ret) { + case CDS_NO_DISC: + case CDS_TRAY_OPEN: + stat->Type = 0xff; + stat->Status |= 0x10; + break; + default: + ioctl(cdHandle, CDROM_LOCKDOOR, 0); + break; + } + + switch (sc.cdsc_audiostatus) { + case CDROM_AUDIO_PLAY: + stat->Status |= 0x80; + break; + } + + memcpy(&ostat, stat, sizeof(struct CdrStat)); + + return 0; +} + +struct SubQ { + char res0[12]; + unsigned char ControlAndADR; + unsigned char TrackNumber; + unsigned char IndexNumber; + unsigned char TrackRelativeAddress[3]; + unsigned char Filler; + unsigned char AbsoluteAddress[3]; + char res1[72]; +}; + +struct SubQ subq; + +unsigned char *CDRgetBufferSub(void) { + struct cdrom_subchnl subchnl; + int ret; + + if (!UseSubQ) return NULL; + + if (subqread) return (unsigned char *)&subq; + + cr.msf.cdmsf_min0 = btoi(lastTime[0]); + cr.msf.cdmsf_sec0 = btoi(lastTime[1]); + cr.msf.cdmsf_frame0 = btoi(lastTime[2]); + if (ioctl(cdHandle, CDROMSEEK, &cr.msf) == -1) { + // will be slower, but there's no other way to make it accurate + if (ioctl(cdHandle, CDROMREADRAW, &cr) == -1) return NULL; + } + + subchnl.cdsc_format = CDROM_MSF; + ret = ioctl(cdHandle, CDROMSUBCHNL, &subchnl); + if (ret == -1) return NULL; + + subqread = 1; + + subq.TrackNumber = subchnl.cdsc_trk; + subq.IndexNumber = subchnl.cdsc_ind; + subq.TrackRelativeAddress[0] = itob(subchnl.cdsc_reladdr.msf.minute); + subq.TrackRelativeAddress[1] = itob(subchnl.cdsc_reladdr.msf.second); + subq.TrackRelativeAddress[2] = itob(subchnl.cdsc_reladdr.msf.frame); + subq.AbsoluteAddress[0] = itob(subchnl.cdsc_absaddr.msf.minute); + subq.AbsoluteAddress[1] = itob(subchnl.cdsc_absaddr.msf.second); + subq.AbsoluteAddress[2] = itob(subchnl.cdsc_absaddr.msf.frame); + +#if 0 + printf("subq : %x,%x : %x,%x,%x : %x,%x,%x\n", + subchnl.cdsc_trk, subchnl.cdsc_ind, + itob(subchnl.cdsc_reladdr.msf.minute), itob(subchnl.cdsc_reladdr.msf.second), itob(subchnl.cdsc_reladdr.msf.frame), + itob(subchnl.cdsc_absaddr.msf.minute), itob(subchnl.cdsc_absaddr.msf.second), itob(subchnl.cdsc_absaddr.msf.frame)); +#endif + + return (unsigned char *)&subq; +} + +void ExecCfg(char *arg) { + char cfg[256]; + struct stat buf; + + strcpy(cfg, "./cfgDFCdrom"); + if (stat(cfg, &buf) != -1) { + if (fork() == 0) { + execl(cfg, "cfgDFCdrom", arg, NULL); + exit(0); + } + return; + } + + strcpy(cfg, "./cfg/DFCdrom"); + if (stat(cfg, &buf) != -1) { + if (fork() == 0) { + execl(cfg, "cfgDFCdrom", arg, NULL); + exit(0); + } + return; + } + + printf("cfgDFCdrom file not found!\n"); +} + +long CDRconfigure() { + ExecCfg("configure"); + + return 0; +} + +void CDRabout() { + ExecCfg("about"); +} + +long CDRtest(void) { + cdHandle = open(CdromDev, O_RDONLY); + if (cdHandle == -1) + return -1; + close(cdHandle); + cdHandle = -1; + return 0; +} diff --git a/plugins/dfcdrom/cdr-null.c b/plugins/dfcdrom/cdr-null.c new file mode 100644 index 00000000..dac0d1df --- /dev/null +++ b/plugins/dfcdrom/cdr-null.c @@ -0,0 +1,88 @@ +/* + * Cdrom for Psemu Pro like Emulators + * + * By: linuzappz + * + */ + +#include "config.h" + +#include +#include +#include +#include +#include + +#ifdef ENABLE_NLS +#include +#include +#define _(x) gettext(x) +#define N_(x) (x) +#else +#define _(x) (x) +#define N_(x) (x) +#endif + +char *LibName = N_("CDR NULL Plugin"); + +char *PSEgetLibName(void) { + return _(LibName); +} + +unsigned long PSEgetLibType(void) { + return PSE_LT_CDR; +} + +unsigned long PSEgetLibVersion(void) { + return 1 << 16; +} + +long CDRinit(void) { + return 0; +} + +long CDRshutdown(void) { + return 0; +} + +long CDRopen(void) { + return 0; +} + +long CDRclose(void) { + return 0; +} + +long CDRgetTN(unsigned char *buffer) { + buffer[0] = 1; + buffer[1] = 1; + return 0; +} + +long CDRgetTD(unsigned char track, unsigned char *buffer) { + memset(buffer + 1, 0, 3); + return 0; +} + +long CDRreadTrack(unsigned char *time) { + return -1; +} + +unsigned char *CDRgetBuffer(void) { + return NULL; +} + +long CDRplay(unsigned char *sector) { + return 0; +} + +long CDRstop(void) { + return 0; +} + +long CDRconfigure() { + return 0; +} + +void CDRabout() { +} diff --git a/plugins/dfcdrom/cdr.c b/plugins/dfcdrom/cdr.c index f8262353..7e4effce 100644 --- a/plugins/dfcdrom/cdr.c +++ b/plugins/dfcdrom/cdr.c @@ -5,658 +5,8 @@ * */ -#include "config.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "cdr.h" - -#ifdef ENABLE_NLS -#include -#include -#define _(x) gettext(x) -#define N_(x) (x) -#else -#define _(x) (x) -#define N_(x) (x) -#endif - -#ifdef __linux__ - -static inline int msf_to_lba(char m, char s, char f) { - return (((m * CD_SECS) + s) * CD_FRAMES + f) - CD_MSF_OFFSET; -} - -int initial_time = 0; - -pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER; -pthread_cond_t cond = PTHREAD_COND_INITIALIZER; - -long (*ReadTrackT[])() = { - ReadNormal, - ReadThreaded, -}; - -unsigned char* (*GetBufferT[])() = { - GetBNormal, - GetBThreaded, -}; - -long (*fReadTrack)(); -unsigned char* (*fGetBuffer)(); - -void *CdrThread(void *arg); - -char *LibName = N_("CD-ROM Drive Reader"); - +#if defined (__linux__) +#include "cdr-linux.c" #else - -char *LibName = N_("CDR NULL Plugin"); - -#endif - -char *PSEgetLibName(void) { - return _(LibName); -} - -unsigned long PSEgetLibType(void) { - return PSE_LT_CDR; -} - -unsigned long PSEgetLibVersion(void) { - return 1 << 16; -} - -#ifdef __linux__ - -long CDRinit(void) { - cdHandle = -1; - thread = -1; - - return 0; -} - -long CDRshutdown(void) { - return 0; -} - -long CDRopen(void) { - LoadConf(); - - if (cdHandle > 0) - return 0; /* it's already open */ - cdHandle = open(CdromDev, O_RDONLY); - if (cdHandle != -1) { // if we can't open the cdrom we'll works as a null plugin - ioctl(cdHandle, CDROM_LOCKDOOR, 0); -// ioctl(cdHandle, CDROMSTART, NULL); - - ioctl(cdHandle, CDROM_SELECT_SPEED, CdrSpeed); - } else { - fprintf(stderr, "CDR: Could not open %s\n", CdromDev); - } - - fReadTrack = ReadTrackT[ReadMode]; - fGetBuffer = GetBufferT[ReadMode]; - - if (ReadMode == THREADED) { - cdcache = (CacheData *)malloc(CacheSize * sizeof(CacheData)); - if (cdcache == NULL) return -1; - memset(cdcache, 0, CacheSize * sizeof(CacheData)); - } else { - cdbuffer = cr.buf + 12; /* skip sync data */ - } - - if (ReadMode == THREADED) { - pthread_attr_t attr; - - pthread_mutex_init(&mut, NULL); - pthread_cond_init(&cond, NULL); - locked = 0; - - pthread_attr_init(&attr); - pthread_create(&thread, &attr, CdrThread, NULL); - - cacheaddr = -1; - } else thread = -1; - - playing = 0; - stopth = 0; - initial_time = 0; - - return 0; -} - -long CDRclose(void) { - if (cdHandle < 1) return 0; - - if (playing) CDRstop(); - close(cdHandle); - cdHandle = -1; - - if (thread != -1) { - if (locked == 0) { - stopth = 1; - while (locked == 0) usleep(5000); - } - - stopth = 2; - pthread_mutex_lock(&mut); - pthread_cond_signal(&cond); - pthread_mutex_unlock(&mut); - - pthread_join(thread, NULL); - pthread_mutex_destroy(&mut); - pthread_cond_destroy(&cond); - } - - if (ReadMode == THREADED) { - free(cdcache); - } - - return 0; -} - -// return Starting and Ending Track -// buffer: -// byte 0 - start track -// byte 1 - end track -long CDRgetTN(unsigned char *buffer) { - struct cdrom_tochdr toc; - - if (cdHandle < 1) { - buffer[0] = 1; - buffer[1] = 1; - return 0; - } - - if (ioctl(cdHandle, CDROMREADTOCHDR, &toc) == -1) - return -1; - - buffer[0] = toc.cdth_trk0; // start track - buffer[1] = toc.cdth_trk1; // end track - - return 0; -} - -// return Track Time -// buffer: -// byte 0 - frame -// byte 1 - second -// byte 2 - minute -long CDRgetTD(unsigned char track, unsigned char *buffer) { - struct cdrom_tocentry entry; - - if (cdHandle < 1) { - memset(buffer + 1, 0, 3); - return 0; - } - - if (track == 0) - track = 0xaa; // total time - entry.cdte_track = track; - entry.cdte_format = CDROM_MSF; - - if (ioctl(cdHandle, CDROMREADTOCENTRY, &entry) == -1) - return -1; - - buffer[0] = entry.cdte_addr.msf.frame; /* frame */ - buffer[1] = entry.cdte_addr.msf.second; /* second */ - buffer[2] = entry.cdte_addr.msf.minute; /* minute */ - - return 0; -} - -// normal reading -long ReadNormal() { - if (ioctl(cdHandle, CDROMREADRAW, &cr) == -1) - return -1; - - return 0; -} - -unsigned char* GetBNormal() { - return cdbuffer; -} - -// threaded reading (with cache) -long ReadThreaded() { - int addr = msf_to_lba(cr.msf.cdmsf_min0, cr.msf.cdmsf_sec0, cr.msf.cdmsf_frame0); - int i; - - if (addr >= cacheaddr && addr < (cacheaddr + CacheSize) && - cacheaddr != -1) { - i = addr - cacheaddr; -// printf("found %d\n", (addr - cacheaddr)); - cdbuffer = cdcache[i].cr.buf + 12; - while (btoi(cdbuffer[0]) != cr.msf.cdmsf_min0 || - btoi(cdbuffer[1]) != cr.msf.cdmsf_sec0 || - btoi(cdbuffer[2]) != cr.msf.cdmsf_frame0) { - if (locked == 1) { - if (cdcache[i].ret == 0) break; - return -1; - } - usleep(5000); - } -// printf("%x:%x:%x, %p, %p\n", cdbuffer[0], cdbuffer[1], cdbuffer[2], cdbuffer, cdcache); - found = 1; - - return 0; - } else found = 0; - - if (locked == 0) { - stopth = 1; - while (locked == 0) { usleep(5000); } - stopth = 0; - } - - // not found in cache - locked = 0; - pthread_mutex_lock(&mut); - pthread_cond_signal(&cond); - pthread_mutex_unlock(&mut); - - return 0; -} - -unsigned char* GetBThreaded() { -// printf("threadc %d\n", found); - if (found == 1) { found = 0; return cdbuffer; } - cdbuffer = cdcache[0].cr.buf + 12; - while (btoi(cdbuffer[0]) != cr.msf.cdmsf_min0 || - btoi(cdbuffer[1]) != cr.msf.cdmsf_sec0 || - btoi(cdbuffer[2]) != cr.msf.cdmsf_frame0) { - if (locked == 1) return NULL; - usleep(5000); - } - if (cdcache[0].ret == -1) return NULL; - - return cdbuffer; -} - - -// read track -// time: -// byte 0 - minute -// byte 1 - second -// byte 2 - frame -// uses bcd format -long CDRreadTrack(unsigned char *time) { - if (cdHandle < 1) { - memset(cr.buf, 0, DATA_SIZE); - return 0; - } - -// printf("CDRreadTrack %d:%d:%d\n", btoi(time[0]), btoi(time[1]), btoi(time[2])); - - if (UseSubQ) memcpy(lastTime, time, 3); - subqread = 0; - - cr.msf.cdmsf_min0 = btoi(time[0]); - cr.msf.cdmsf_sec0 = btoi(time[1]); - cr.msf.cdmsf_frame0 = btoi(time[2]); - - return fReadTrack(); -} - -void *CdrThread(void *arg) { - unsigned char curTime[3]; - int i; - - for (;;) { - locked = 1; - pthread_mutex_lock(&mut); - pthread_cond_wait(&cond, &mut); - - if (stopth == 2) pthread_exit(NULL); - // refill the buffer - cacheaddr = msf_to_lba(cr.msf.cdmsf_min0, cr.msf.cdmsf_sec0, cr.msf.cdmsf_frame0); - - memcpy(curTime, &cr.msf, 3); - -// printf("start thc %d:%d:%d\n", curTime[0], curTime[1], curTime[2]); - - for (i=0; iTime, &sc.cdsc_absaddr.msf, 3); - } - - ret = ioctl(cdHandle, CDROM_DISC_STATUS); - switch (ret) { - case CDS_AUDIO: - stat->Type = 0x02; - break; - case CDS_DATA_1: - case CDS_DATA_2: - case CDS_XA_2_1: - case CDS_XA_2_2: - stat->Type = 0x01; - break; - } - ret = ioctl(cdHandle, CDROM_DRIVE_STATUS); - switch (ret) { - case CDS_NO_DISC: - case CDS_TRAY_OPEN: - stat->Type = 0xff; - stat->Status |= 0x10; - break; - default: - ioctl(cdHandle, CDROM_LOCKDOOR, 0); - break; - } - - switch (sc.cdsc_audiostatus) { - case CDROM_AUDIO_PLAY: - stat->Status |= 0x80; - break; - } - - memcpy(&ostat, stat, sizeof(struct CdrStat)); - - return 0; -} - -struct SubQ { - char res0[12]; - unsigned char ControlAndADR; - unsigned char TrackNumber; - unsigned char IndexNumber; - unsigned char TrackRelativeAddress[3]; - unsigned char Filler; - unsigned char AbsoluteAddress[3]; - char res1[72]; -}; - -struct SubQ subq; - -unsigned char *CDRgetBufferSub(void) { - struct cdrom_subchnl subchnl; - int ret; - - if (!UseSubQ) return NULL; - - if (subqread) return (unsigned char *)&subq; - - cr.msf.cdmsf_min0 = btoi(lastTime[0]); - cr.msf.cdmsf_sec0 = btoi(lastTime[1]); - cr.msf.cdmsf_frame0 = btoi(lastTime[2]); - if (ioctl(cdHandle, CDROMSEEK, &cr.msf) == -1) { - // will be slower, but there's no other way to make it accurate - if (ioctl(cdHandle, CDROMREADRAW, &cr) == -1) return NULL; - } - - subchnl.cdsc_format = CDROM_MSF; - ret = ioctl(cdHandle, CDROMSUBCHNL, &subchnl); - if (ret == -1) return NULL; - - subqread = 1; - - subq.TrackNumber = subchnl.cdsc_trk; - subq.IndexNumber = subchnl.cdsc_ind; - subq.TrackRelativeAddress[0] = itob(subchnl.cdsc_reladdr.msf.minute); - subq.TrackRelativeAddress[1] = itob(subchnl.cdsc_reladdr.msf.second); - subq.TrackRelativeAddress[2] = itob(subchnl.cdsc_reladdr.msf.frame); - subq.AbsoluteAddress[0] = itob(subchnl.cdsc_absaddr.msf.minute); - subq.AbsoluteAddress[1] = itob(subchnl.cdsc_absaddr.msf.second); - subq.AbsoluteAddress[2] = itob(subchnl.cdsc_absaddr.msf.frame); - -#if 0 - printf("subq : %x,%x : %x,%x,%x : %x,%x,%x\n", - subchnl.cdsc_trk, subchnl.cdsc_ind, - itob(subchnl.cdsc_reladdr.msf.minute), itob(subchnl.cdsc_reladdr.msf.second), itob(subchnl.cdsc_reladdr.msf.frame), - itob(subchnl.cdsc_absaddr.msf.minute), itob(subchnl.cdsc_absaddr.msf.second), itob(subchnl.cdsc_absaddr.msf.frame)); -#endif - - return (unsigned char *)&subq; -} - -void ExecCfg(char *arg) { - char cfg[256]; - struct stat buf; - - strcpy(cfg, "./cfgDFCdrom"); - if (stat(cfg, &buf) != -1) { - if (fork() == 0) { - execl(cfg, "cfgDFCdrom", arg, NULL); - exit(0); - } - return; - } - - strcpy(cfg, "./cfg/DFCdrom"); - if (stat(cfg, &buf) != -1) { - if (fork() == 0) { - execl(cfg, "cfgDFCdrom", arg, NULL); - exit(0); - } - return; - } - - printf("cfgDFCdrom file not found!\n"); -} - -long CDRconfigure() { - ExecCfg("configure"); - - return 0; -} - -void CDRabout() { - ExecCfg("about"); -} - -long CDRtest(void) { - cdHandle = open(CdromDev, O_RDONLY); - if (cdHandle == -1) - return -1; - close(cdHandle); - cdHandle = -1; - return 0; -} - -#else - -long CDRinit(void) { - return 0; -} - -long CDRshutdown(void) { - return 0; -} - -long CDRopen(void) { - return 0; -} - -long CDRclose(void) { - return 0; -} - -long CDRgetTN(unsigned char *buffer) { - buffer[0] = 1; - buffer[1] = 1; - return 0; -} - -long CDRgetTD(unsigned char track, unsigned char *buffer) { - memset(buffer + 1, 0, 3); - return 0; -} - -long CDRreadTrack(unsigned char *time) { - return -1; -} - -unsigned char *CDRgetBuffer(void) { - return NULL; -} - -long CDRplay(unsigned char *sector) { - return 0; -} - -long CDRstop(void) { - return 0; -} - -long CDRconfigure() { - return 0; -} - -void CDRabout() { -} - +#include "cdr-null.c" #endif diff --git a/plugins/dfcdrom/cdr.h b/plugins/dfcdrom/cdr.h index 9a83d512..b7e20dfd 100644 --- a/plugins/dfcdrom/cdr.h +++ b/plugins/dfcdrom/cdr.h @@ -1,9 +1,7 @@ #ifndef __CDR_H__ #define __CDR_H__ -#ifdef __linux__ #include -#endif typedef char HWND; @@ -16,8 +14,6 @@ long UseSubQ; long CacheSize; long CdrSpeed; -#ifdef __linux__ - #define DEV_DEF "/dev/cdrom" #define NORMAL 0 #define THREADED 1 @@ -61,6 +57,4 @@ long CDRstop(void); void LoadConf(); void SaveConf(); -#endif - #endif /* __CDR_H__ */ diff --git a/plugins/dfcdrom/cdrcfg-0.1df/callbacks.c b/plugins/dfcdrom/cdrcfg-0.1df/callbacks.c new file mode 100644 index 00000000..8330cd77 --- /dev/null +++ b/plugins/dfcdrom/cdrcfg-0.1df/callbacks.c @@ -0,0 +1,210 @@ +#ifdef HAVE_CONFIG_H +# include +#endif + +#ifdef __linux__ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "../cdr.h" +#include "callbacks.h" +#include "interface.h" +#include "support.h" + +/* list of drives */ +GList * driveslist = NULL; + +/* private functions prototypes */ +void fill_drives_list(void); +int is_cdrom(char *device); + + +/*************************************************************************** + * Config Dialog. + ***************************************************************************/ + +void on_cfg_dialog_show (GtkWidget *widget, gpointer user_data) +{ + GtkWidget *devcombo; + GtkWidget *rmmenu; + GtkWidget *subQbtn; + GtkWidget *spinC; + GtkWidget *spinS; + + LoadConf(); + fill_drives_list(); + + devcombo = lookup_widget (GTK_WIDGET (widget), "cddev_combo"); + rmmenu = lookup_widget (GTK_WIDGET (widget), "readmode_optionmenu"); + subQbtn = lookup_widget (GTK_WIDGET (widget), "subQ_button"); + spinC = lookup_widget (GTK_WIDGET (widget), "spinCacheSize"); + spinS = lookup_widget (GTK_WIDGET (widget), "spinCdrSpeed"); + + /* show values */ + gtk_combo_set_popdown_strings (GTK_COMBO (devcombo), driveslist); + gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (devcombo)->entry), CdromDev); + gtk_option_menu_set_history (GTK_OPTION_MENU (rmmenu), ReadMode); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (subQbtn), UseSubQ); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(spinC), (float)CacheSize); + gtk_spin_button_set_value (GTK_SPIN_BUTTON(spinS), (float)CdrSpeed); + + /* ??? is correct to free? it's a global... */ + g_list_free(driveslist); +} + + +void on_cfg_cancelbutton_clicked (GtkButton *button, gpointer user_data) +{ + gtk_widget_destroy (gtk_widget_get_toplevel (GTK_WIDGET (button))); + gtk_main_quit(); +} + + +void on_cfg_okbutton_clicked (GtkButton *button, gpointer user_data) +{ + GtkWidget *deventry; + GtkWidget *rmmenu; + GtkWidget *subQbtn; + GtkWidget *spinC; + GtkWidget *spinS; + char *tmp; + + deventry = lookup_widget (GTK_WIDGET (button), "cddev_entry"); + rmmenu = lookup_widget (GTK_WIDGET (button), "readmode_optionmenu"); + subQbtn = lookup_widget (GTK_WIDGET (button), "subQ_button"); + spinC = lookup_widget (GTK_WIDGET (button), "spinCacheSize"); + spinS = lookup_widget (GTK_WIDGET (button), "spinCdrSpeed"); + + tmp = gtk_entry_get_text (GTK_ENTRY (deventry)); + strcpy(CdromDev, tmp); + ReadMode = gtk_option_menu_get_history (GTK_OPTION_MENU(rmmenu)); + UseSubQ = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(subQbtn)); + CacheSize= gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(spinC)); + CdrSpeed = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(spinS)); + + SaveConf(); + + gtk_widget_destroy(gtk_widget_get_toplevel (GTK_WIDGET (button))); + gtk_main_quit(); +} + + +/*************************************************************************** + * About Dialog. + ***************************************************************************/ + +void on_abt_okbutton_clicked (GtkButton *button, gpointer user_data) +{ + gtk_widget_destroy (gtk_widget_get_toplevel (GTK_WIDGET (button))); + gtk_main_quit(); +} + + +/*************************************************************************** + * Private functions. + ***************************************************************************/ + +/* + * get_drives_list: retrieves available cd drives. At the moment it use a quite + * ugly "brute force" method: we check for the most common location for cdrom + * in /dev and chech if they are cdrom devices. + * If your cdrom path is not listed here you'll have to type it in the dialog + * entry yourself (or add it here and recompile). + * Are there any other common entry to add to the list? (especially scsi, I + * deliberately ignored old non standard cdroms... ) + * If you come up with a better method let me know!! + */ + +void fill_drives_list(void) +{ + int i = 0; + static char *cdrom_devices[]={ + "/dev/cdrom", + "/dev/cdroms/cdrom0", + "/dev/cdroms/cdrom1", + "/dev/cdroms/cdrom2", + "/dev/cdroms/cdrom3", + "/dev/hda", + "/dev/hdb", + "/dev/hdc", + "/dev/hdd", + "/dev/scd0", + "/dev/scd1", + "/dev/scd2", + "/dev/scd3", + "/dev/optcd", + NULL}; + + /* fisrt we put our current drive */ + driveslist = g_list_append(driveslist, CdromDev); + + /* scan cdrom_devices for real cdrom and add them to driveslist */ + while(cdrom_devices[i] != NULL){ + + /* check that is not our current dev (already in list) */ + if (strcmp(cdrom_devices[i], CdromDev) != 0){ + + /* check that is a cdrom device */ + if (is_cdrom(cdrom_devices[i])){ + driveslist = g_list_append(driveslist, cdrom_devices[i]); + } + } + ++i; + } + + return; +} + + +/* function to check if the device is a cdrom */ +int is_cdrom(char *device){ + struct stat st; + int fd = -1; + + /* check if the file exist */ + if (stat(device, &st) <0) return 0; + + /* check if is a block or char device */ + if (!S_ISCHR(st.st_mode) && !S_ISBLK(st.st_mode)) return 0; + + /* try to open the device file descriptor */ + if ((fd = open(device, O_RDONLY | O_NONBLOCK)) < 0) return 0; + + /* I need a method to check is a device is really a cdrom. + some problems/ideas are: + - different protocls (ide, scsi, old proprietary...) + - maybe we can use major number (see linux/major.h) to do some check. + major number can be retrieved with (st.st_rdev>>8) + scsi has SCSI_CDROM_MAJOR but does this cover all scsi drives? + beside IDE major is the same for hard disks and cdroms... + and DVDs? + - another idea is to parse /proc, but again IDE, scsi etc have + different files... I've not found a way to query "which cd drives + are available?" + + Now I use this ioctl which works also if the drive is empty, + I hope that is implemented for all the drives... here works + fine: at least doesn't let me to select my HD as cds ;) + */ + /* try a ioctl to see if it's a cdrom device */ + if (ioctl(fd, CDROM_GET_CAPABILITY, NULL) < 0){ + close(fd); + return 0; + } + + close(fd); + + /* yes, it seems a cd drive! */ + return 1; +} + +#endif diff --git a/plugins/dfcdrom/cdrcfg-0.1df/callbacks.h b/plugins/dfcdrom/cdrcfg-0.1df/callbacks.h new file mode 100644 index 00000000..622914d9 --- /dev/null +++ b/plugins/dfcdrom/cdrcfg-0.1df/callbacks.h @@ -0,0 +1,18 @@ +#include + + +void +on_cfg_dialog_show (GtkWidget *widget, + gpointer user_data); + +void +on_cfg_cancelbutton_clicked (GtkButton *button, + gpointer user_data); + +void +on_cfg_okbutton_clicked (GtkButton *button, + gpointer user_data); + +void +on_abt_okbutton_clicked (GtkButton *button, + gpointer user_data); diff --git a/plugins/dfcdrom/cdrcfg-0.1df/cfg-gtk2.c b/plugins/dfcdrom/cdrcfg-0.1df/cfg-gtk2.c new file mode 100644 index 00000000..4d9314e2 --- /dev/null +++ b/plugins/dfcdrom/cdrcfg-0.1df/cfg-gtk2.c @@ -0,0 +1,62 @@ +/* + * Cdrom for Psemu Pro like Emulators + * + * By: linuzappz + * + */ + +#ifdef __linux__ + +#include +#include +#include +#include +#include +#include +#include + +#include "../cdr.h" + +void LoadConf() { + FILE *f; + char cfg[255]; + + strcpy(CdromDev, DEV_DEF); + ReadMode = THREADED; + UseSubQ = 0; + CacheSize = 64; + CdrSpeed = 0; + + sprintf(cfg, "dfcdrom.cfg"); + f = fopen(cfg, "r"); + if (f == NULL) return; + + fscanf(f, "CdromDev = %s\n", CdromDev); + fscanf(f, "ReadMode = %ld\n", &ReadMode); + fscanf(f, "UseSubQ = %ld\n", &UseSubQ); + fscanf(f, "CacheSize = %ld\n", &CacheSize); + fscanf(f, "CdrSpeed = %ld\n", &CdrSpeed); + fclose(f); + + if (ReadMode >= READ_MODES) ReadMode = THREADED; + if (CacheSize <= 0) CacheSize = 32; + if (CacheSize > 2048) CacheSize = 2048; +} + +void SaveConf() { + FILE *f; + char cfg[255]; + + sprintf(cfg, "dfcdrom.cfg"); + f = fopen(cfg, "w"); + if (f == NULL) + return; + fprintf(f, "CdromDev = %s\n", CdromDev); + fprintf(f, "ReadMode = %ld\n", ReadMode); + fprintf(f, "UseSubQ = %ld\n", UseSubQ); + fprintf(f, "CacheSize = %ld\n", CacheSize); + fprintf(f, "CdrSpeed = %ld\n", CdrSpeed); + fclose(f); +} + +#endif diff --git a/plugins/dfcdrom/cdrcfg-0.1df/cfgCdr.glade b/plugins/dfcdrom/cdrcfg-0.1df/cfgCdr.glade new file mode 100644 index 00000000..c926cf08 --- /dev/null +++ b/plugins/dfcdrom/cdrcfg-0.1df/cfgCdr.glade @@ -0,0 +1,386 @@ + + + + + + True + 5 + CDR configuration + True + center + normal + False + + + + True + vertical + + + True + vertical + + + True + 0 + + + True + 10 + False + + + True + True + chose yor cdrom device or type its path if it's not listed + True + + + 0 + + + + + True + browse + + + + + + + True + Select cdrom device + + + label_item + + + + + 0 + + + + + True + 0 + + + True + vertical + + + True + 5 + + + True + 5 + 5 + Select read mode: + + + False + False + 0 + + + + + True + True + False + 5 + + + 1 + 1 + + + + + False + False + 0 + + + + + True + + + 1 + + + + + True + 5 + 5 + + + True + Cache Size (Def. 64): + + + False + False + 0 + + + + + True + True + 32 32 2048 1 16 16 + 1 + True + + + 1 + + + + + 2 + + + + + True + + + 3 + + + + + True + 5 + 5 + + + True + Cdrom Speed (Def. 0 = MAX): + + + False + False + 0 + + + + + True + True + 0 0 100 1 4 4 + 1 + True + + + 1 + + + + + 4 + + + + + True + + hseparator + + + + 5 + + + + + Enable subchannel read + True + True + False + 10 + True + True + + + False + False + 6 + + + + + + + True + Options + + + label_item + + + + + 1 + + + + + 1 + + + + + True + end + + + gtk-cancel + -6 + True + True + True + False + True + + + + False + False + 0 + + + + + gtk-ok + -5 + True + True + True + False + True + + + + False + False + 1 + + + + + False + end + 0 + + + + + + + 300 + 200 + True + 10 + About CDR + center + True + normal + + + True + vertical + + + True + 10 + vertical + + + True + 5 + 5 + <span size="xx-large"><b>CDR plugin</b></span> + True + + + False + False + 0 + + + + + True + 5 + 5 + linux CDR plugin for Pcsx + + + fill + + + False + False + 1 + + + + + True + 5 + 5 + <small>(c) linuzappz linuzappz@hotmail.com + xobro _xobro_@tin.it</small> + + True + + + False + False + 2 + + + + + 2 + + + + + True + end + + + gtk-ok + -5 + True + True + True + False + True + + + + False + False + 0 + + + + + False + end + 0 + + + + + + diff --git a/plugins/dfcdrom/cdrcfg-0.1df/interface.c b/plugins/dfcdrom/cdrcfg-0.1df/interface.c new file mode 100644 index 00000000..3bb08af6 --- /dev/null +++ b/plugins/dfcdrom/cdrcfg-0.1df/interface.c @@ -0,0 +1,340 @@ +#include "config.h" + +#ifdef __linux__ + +#include +#include +#include +#include +#include + +#include +#include + +#include "callbacks.h" +#include "interface.h" +#include "support.h" + +#ifdef ENABLE_NLS +#include +#include +#define _(x) gettext(x) +#else +#define _(x) (x) +#endif + +#define GLADE_HOOKUP_OBJECT(component,widget,name) \ + g_object_set_data_full (G_OBJECT (component), name, \ + gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) + +#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ + g_object_set_data (G_OBJECT (component), name, widget) + +GtkWidget* +create_cfg_dialog (void) +{ + GtkWidget *cfg_dialog; + GtkWidget *dialog_vbox1; + GtkWidget *vbox1; + GtkWidget *frame1; + GtkWidget *cddev_combo; + GtkWidget *cddev_entry; + GtkWidget *cdr_label; + GtkWidget *frame2; + GtkWidget *vbox2; + GtkWidget *hbox1; + GtkWidget *readmode_label; + GtkWidget *readmode_optionmenu; + GtkWidget *menu1; + GtkWidget *normal; + GtkWidget *threaded; + GtkWidget *hseparator1; + GtkWidget *hbox2; + GtkWidget *label4; + GtkObject *spinCacheSize_adj; + GtkWidget *spinCacheSize; + GtkWidget *hseparator2; + GtkWidget *hbox3; + GtkWidget *label5; + GtkObject *spinCdrSpeed_adj; + GtkWidget *spinCdrSpeed; + GtkWidget *cfg_hseparator; + AtkObject *atko; + GtkWidget *subQ_button; + GtkWidget *options_label; + GtkWidget *cfg_dialog_action_area; + GtkWidget *cfg_cancelbutton; + GtkWidget *cfg_okbutton; + GtkTooltips *tooltips; + + tooltips = gtk_tooltips_new (); + + cfg_dialog = gtk_dialog_new (); + gtk_container_set_border_width (GTK_CONTAINER (cfg_dialog), 5); + gtk_window_set_title (GTK_WINDOW (cfg_dialog), _("CDR configuration")); + gtk_window_set_position (GTK_WINDOW (cfg_dialog), GTK_WIN_POS_CENTER); + gtk_window_set_modal (GTK_WINDOW (cfg_dialog), TRUE); + gtk_dialog_set_has_separator (GTK_DIALOG (cfg_dialog), FALSE); + + dialog_vbox1 = GTK_DIALOG (cfg_dialog)->vbox; + gtk_widget_show (dialog_vbox1); + + vbox1 = gtk_vbox_new (FALSE, 0); + gtk_widget_show (vbox1); + gtk_box_pack_start (GTK_BOX (dialog_vbox1), vbox1, TRUE, TRUE, 0); + + frame1 = gtk_frame_new (NULL); + gtk_widget_show (frame1); + gtk_box_pack_start (GTK_BOX (vbox1), frame1, TRUE, TRUE, 0); + + cddev_combo = gtk_combo_new (); + g_object_set_data (G_OBJECT (GTK_COMBO (cddev_combo)->popwin), + "GladeParentKey", cddev_combo); + gtk_widget_show (cddev_combo); + gtk_container_add (GTK_CONTAINER (frame1), cddev_combo); + gtk_container_set_border_width (GTK_CONTAINER (cddev_combo), 10); + + cddev_entry = GTK_COMBO (cddev_combo)->entry; + gtk_widget_show (cddev_entry); + gtk_tooltips_set_tip (tooltips, cddev_entry, _("Choose your CD-ROM device or type its path if it's not listed"), NULL); + gtk_entry_set_activates_default (GTK_ENTRY (cddev_entry), TRUE); + + cdr_label = gtk_label_new (_("Select CD-ROM device")); + gtk_widget_show (cdr_label); + gtk_frame_set_label_widget (GTK_FRAME (frame1), cdr_label); + gtk_label_set_justify (GTK_LABEL (cdr_label), GTK_JUSTIFY_LEFT); + + frame2 = gtk_frame_new (NULL); + gtk_widget_show (frame2); + gtk_box_pack_start (GTK_BOX (vbox1), frame2, TRUE, TRUE, 0); + + vbox2 = gtk_vbox_new (FALSE, 0); + gtk_widget_show (vbox2); + gtk_container_add (GTK_CONTAINER (frame2), vbox2); + + hbox1 = gtk_hbox_new (FALSE, 0); + gtk_widget_show (hbox1); + gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0); + gtk_container_set_border_width (GTK_CONTAINER (hbox1), 5); + + readmode_label = gtk_label_new (_("Select read mode:")); + gtk_widget_show (readmode_label); + gtk_box_pack_start (GTK_BOX (hbox1), readmode_label, FALSE, FALSE, 0); + gtk_label_set_justify (GTK_LABEL (readmode_label), GTK_JUSTIFY_LEFT); + gtk_misc_set_padding (GTK_MISC (readmode_label), 5, 5); + + readmode_optionmenu = gtk_option_menu_new (); + gtk_widget_show (readmode_optionmenu); + gtk_box_pack_start (GTK_BOX (hbox1), readmode_optionmenu, TRUE, TRUE, 1); + gtk_container_set_border_width (GTK_CONTAINER (readmode_optionmenu), 5); + + menu1 = gtk_menu_new (); + + normal = gtk_menu_item_new_with_mnemonic (_("Normal (No Cache)")); + gtk_widget_show (normal); + gtk_container_add (GTK_CONTAINER (menu1), normal); + + threaded = gtk_menu_item_new_with_mnemonic (_("Threaded - Faster (With Cache)")); + gtk_widget_show (threaded); + gtk_container_add (GTK_CONTAINER (menu1), threaded); + + gtk_option_menu_set_menu (GTK_OPTION_MENU (readmode_optionmenu), menu1); + + hseparator1 = gtk_hseparator_new (); + gtk_widget_show (hseparator1); + gtk_box_pack_start (GTK_BOX (vbox2), hseparator1, TRUE, TRUE, 0); + + hbox2 = gtk_hbox_new (FALSE, 5); + gtk_widget_show (hbox2); + gtk_box_pack_start (GTK_BOX (vbox2), hbox2, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (hbox2), 5); + + label4 = gtk_label_new (_("Cache Size (Def. 64): ")); + gtk_widget_show (label4); + gtk_box_pack_start (GTK_BOX (hbox2), label4, FALSE, FALSE, 0); + gtk_label_set_justify (GTK_LABEL (label4), GTK_JUSTIFY_LEFT); + +// spinCacheSize_adj = gtk_adjustment_new (32, 32, 2048, 1, 16, 16); + spinCacheSize_adj = gtk_adjustment_new (32, 32, 2048, 1, 16, 0); + spinCacheSize = gtk_spin_button_new (GTK_ADJUSTMENT (spinCacheSize_adj), 1, 0); + gtk_widget_show (spinCacheSize); + gtk_box_pack_start (GTK_BOX (hbox2), spinCacheSize, TRUE, TRUE, 0); + gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinCacheSize), TRUE); + + hseparator2 = gtk_hseparator_new (); + gtk_widget_show (hseparator2); + gtk_box_pack_start (GTK_BOX (vbox2), hseparator2, TRUE, TRUE, 0); + + hbox3 = gtk_hbox_new (FALSE, 5); + gtk_widget_show (hbox3); + gtk_box_pack_start (GTK_BOX (vbox2), hbox3, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (hbox3), 5); + + label5 = gtk_label_new (_("Cdrom Speed (Def. 0 = MAX): ")); + gtk_widget_show (label5); + gtk_box_pack_start (GTK_BOX (hbox3), label5, FALSE, FALSE, 0); + gtk_label_set_justify (GTK_LABEL (label5), GTK_JUSTIFY_LEFT); + +// spinCdrSpeed_adj = gtk_adjustment_new (0, 0, 100, 1, 4, 4); + spinCdrSpeed_adj = gtk_adjustment_new (0, 0, 100, 1, 4, 0); + spinCdrSpeed = gtk_spin_button_new (GTK_ADJUSTMENT (spinCdrSpeed_adj), 1, 0); + gtk_widget_show (spinCdrSpeed); + gtk_box_pack_start (GTK_BOX (hbox3), spinCdrSpeed, TRUE, TRUE, 0); + gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinCdrSpeed), TRUE); + + cfg_hseparator = gtk_hseparator_new (); + gtk_widget_show (cfg_hseparator); + gtk_box_pack_start (GTK_BOX (vbox2), cfg_hseparator, TRUE, TRUE, 0); + + subQ_button = gtk_check_button_new_with_mnemonic (_("Enable Subchannel read")); + gtk_widget_show (subQ_button); + gtk_box_pack_start (GTK_BOX (vbox2), subQ_button, FALSE, FALSE, 0); + gtk_container_set_border_width (GTK_CONTAINER (subQ_button), 10); + + options_label = gtk_label_new (_("Options")); + gtk_widget_show (options_label); + gtk_frame_set_label_widget (GTK_FRAME (frame2), options_label); + gtk_label_set_justify (GTK_LABEL (options_label), GTK_JUSTIFY_LEFT); + + cfg_dialog_action_area = GTK_DIALOG (cfg_dialog)->action_area; + gtk_widget_show (cfg_dialog_action_area); + gtk_button_box_set_layout (GTK_BUTTON_BOX (cfg_dialog_action_area), GTK_BUTTONBOX_END); + + cfg_cancelbutton = gtk_button_new_from_stock ("gtk-cancel"); + gtk_widget_show (cfg_cancelbutton); + gtk_dialog_add_action_widget (GTK_DIALOG (cfg_dialog), cfg_cancelbutton, GTK_RESPONSE_CANCEL); + GTK_WIDGET_SET_FLAGS (cfg_cancelbutton, GTK_CAN_DEFAULT); + + cfg_okbutton = gtk_button_new_from_stock ("gtk-ok"); + gtk_widget_show (cfg_okbutton); + gtk_dialog_add_action_widget (GTK_DIALOG (cfg_dialog), cfg_okbutton, GTK_RESPONSE_OK); + GTK_WIDGET_SET_FLAGS (cfg_okbutton, GTK_CAN_DEFAULT); + + g_signal_connect ((gpointer) cfg_dialog, "show", + G_CALLBACK (on_cfg_dialog_show), + NULL); + g_signal_connect ((gpointer) cfg_cancelbutton, "clicked", + G_CALLBACK (on_cfg_cancelbutton_clicked), + NULL); + g_signal_connect ((gpointer) cfg_dialog, "delete_event", + G_CALLBACK (on_cfg_cancelbutton_clicked), + NULL); + g_signal_connect ((gpointer) cfg_okbutton, "clicked", + G_CALLBACK (on_cfg_okbutton_clicked), + NULL); + + atko = gtk_widget_get_accessible (cfg_hseparator); + atk_object_set_name (atko, "hseparator"); + + /* Store pointers to all widgets, for use by lookup_widget(). */ + GLADE_HOOKUP_OBJECT_NO_REF (cfg_dialog, cfg_dialog, "cfg_dialog"); + GLADE_HOOKUP_OBJECT_NO_REF (cfg_dialog, dialog_vbox1, "dialog_vbox1"); + GLADE_HOOKUP_OBJECT (cfg_dialog, vbox1, "vbox1"); + GLADE_HOOKUP_OBJECT (cfg_dialog, frame1, "frame1"); + GLADE_HOOKUP_OBJECT (cfg_dialog, cddev_combo, "cddev_combo"); + GLADE_HOOKUP_OBJECT (cfg_dialog, cddev_entry, "cddev_entry"); + GLADE_HOOKUP_OBJECT (cfg_dialog, cdr_label, "cdr_label"); + GLADE_HOOKUP_OBJECT (cfg_dialog, frame2, "frame2"); + GLADE_HOOKUP_OBJECT (cfg_dialog, vbox2, "vbox2"); + GLADE_HOOKUP_OBJECT (cfg_dialog, hbox1, "hbox1"); + GLADE_HOOKUP_OBJECT (cfg_dialog, readmode_label, "readmode_label"); + GLADE_HOOKUP_OBJECT (cfg_dialog, readmode_optionmenu, "readmode_optionmenu"); + GLADE_HOOKUP_OBJECT (cfg_dialog, menu1, "menu1"); + GLADE_HOOKUP_OBJECT (cfg_dialog, normal, "normal"); + GLADE_HOOKUP_OBJECT (cfg_dialog, threaded, "threaded"); + GLADE_HOOKUP_OBJECT (cfg_dialog, hseparator1, "hseparator1"); + GLADE_HOOKUP_OBJECT (cfg_dialog, hbox2, "hbox2"); + GLADE_HOOKUP_OBJECT (cfg_dialog, label4, "label4"); + GLADE_HOOKUP_OBJECT (cfg_dialog, spinCacheSize, "spinCacheSize"); + GLADE_HOOKUP_OBJECT (cfg_dialog, hseparator2, "hseparator2"); + GLADE_HOOKUP_OBJECT (cfg_dialog, hbox3, "hbox3"); + GLADE_HOOKUP_OBJECT (cfg_dialog, label5, "label5"); + GLADE_HOOKUP_OBJECT (cfg_dialog, spinCdrSpeed, "spinCdrSpeed"); + GLADE_HOOKUP_OBJECT (cfg_dialog, cfg_hseparator, "cfg_hseparator"); + GLADE_HOOKUP_OBJECT (cfg_dialog, subQ_button, "subQ_button"); + GLADE_HOOKUP_OBJECT (cfg_dialog, options_label, "options_label"); + GLADE_HOOKUP_OBJECT_NO_REF (cfg_dialog, cfg_dialog_action_area, "cfg_dialog_action_area"); + GLADE_HOOKUP_OBJECT (cfg_dialog, cfg_cancelbutton, "cfg_cancelbutton"); + GLADE_HOOKUP_OBJECT (cfg_dialog, cfg_okbutton, "cfg_okbutton"); + GLADE_HOOKUP_OBJECT_NO_REF (cfg_dialog, tooltips, "tooltips"); + + return cfg_dialog; +} + +GtkWidget* +create_abt_dialog (void) +{ + GtkWidget *abt_dialog; + GtkWidget *abt_dialog_vbox; + GtkWidget *vbox3; + GtkWidget *label3; + GtkWidget *label1; + GtkWidget *label2; + GtkWidget *abt_dialog_action_area; + GtkWidget *abt_okbutton; + + abt_dialog = gtk_dialog_new (); + gtk_widget_set_size_request (abt_dialog, 300, 200); + gtk_container_set_border_width (GTK_CONTAINER (abt_dialog), 10); + gtk_window_set_title (GTK_WINDOW (abt_dialog), "About CDR"); + gtk_window_set_position (GTK_WINDOW (abt_dialog), GTK_WIN_POS_CENTER); + gtk_window_set_destroy_with_parent (GTK_WINDOW (abt_dialog), TRUE); + + abt_dialog_vbox = GTK_DIALOG (abt_dialog)->vbox; + gtk_widget_show (abt_dialog_vbox); + + vbox3 = gtk_vbox_new (FALSE, 0); + gtk_widget_show (vbox3); + gtk_box_pack_start (GTK_BOX (abt_dialog_vbox), vbox3, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (vbox3), 10); + + label3 = gtk_label_new ("CDR plugin"); + gtk_widget_show (label3); + gtk_box_pack_start (GTK_BOX (vbox3), label3, FALSE, FALSE, 0); + gtk_label_set_use_markup (GTK_LABEL (label3), TRUE); + gtk_label_set_justify (GTK_LABEL (label3), GTK_JUSTIFY_LEFT); + gtk_misc_set_padding (GTK_MISC (label3), 5, 5); + + label1 = gtk_label_new ("linux CDR plugin for Pcsx\n\n"); + gtk_widget_show (label1); + gtk_box_pack_start (GTK_BOX (vbox3), label1, FALSE, FALSE, 0); + gtk_label_set_justify (GTK_LABEL (label1), GTK_JUSTIFY_FILL); + gtk_misc_set_padding (GTK_MISC (label1), 5, 5); + + label2 = gtk_label_new ("(c) linuzappz linuzappz@hotmail.com\n xobro _xobro_@tin.it\n"); + gtk_widget_show (label2); + gtk_box_pack_start (GTK_BOX (vbox3), label2, FALSE, FALSE, 0); + gtk_label_set_use_markup (GTK_LABEL (label2), TRUE); + gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_LEFT); + gtk_misc_set_padding (GTK_MISC (label2), 5, 5); + + abt_dialog_action_area = GTK_DIALOG (abt_dialog)->action_area; + gtk_widget_show (abt_dialog_action_area); + gtk_button_box_set_layout (GTK_BUTTON_BOX (abt_dialog_action_area), GTK_BUTTONBOX_END); + + abt_okbutton = gtk_button_new_from_stock ("gtk-ok"); + gtk_widget_show (abt_okbutton); + gtk_dialog_add_action_widget (GTK_DIALOG (abt_dialog), abt_okbutton, GTK_RESPONSE_OK); + GTK_WIDGET_SET_FLAGS (abt_okbutton, GTK_CAN_DEFAULT); + + g_signal_connect ((gpointer) abt_okbutton, "clicked", + G_CALLBACK (on_abt_okbutton_clicked), + NULL); + g_signal_connect ((gpointer) abt_dialog, "delete_event", + G_CALLBACK (on_abt_okbutton_clicked), + NULL); + + /* Store pointers to all widgets, for use by lookup_widget(). */ + GLADE_HOOKUP_OBJECT_NO_REF (abt_dialog, abt_dialog, "abt_dialog"); + GLADE_HOOKUP_OBJECT_NO_REF (abt_dialog, abt_dialog_vbox, "abt_dialog_vbox"); + GLADE_HOOKUP_OBJECT (abt_dialog, vbox3, "vbox3"); + GLADE_HOOKUP_OBJECT (abt_dialog, label3, "label3"); + GLADE_HOOKUP_OBJECT (abt_dialog, label1, "label1"); + GLADE_HOOKUP_OBJECT (abt_dialog, label2, "label2"); + GLADE_HOOKUP_OBJECT_NO_REF (abt_dialog, abt_dialog_action_area, "abt_dialog_action_area"); + GLADE_HOOKUP_OBJECT (abt_dialog, abt_okbutton, "abt_okbutton"); + + return abt_dialog; +} + +#endif diff --git a/plugins/dfcdrom/cdrcfg-0.1df/interface.h b/plugins/dfcdrom/cdrcfg-0.1df/interface.h new file mode 100644 index 00000000..e23e1adb --- /dev/null +++ b/plugins/dfcdrom/cdrcfg-0.1df/interface.h @@ -0,0 +1,6 @@ +/* + * DO NOT EDIT THIS FILE - it is generated by Glade. + */ + +GtkWidget* create_cfg_dialog (void); +GtkWidget* create_abt_dialog (void); diff --git a/plugins/dfcdrom/cdrcfg-0.1df/main.c b/plugins/dfcdrom/cdrcfg-0.1df/main.c new file mode 100644 index 00000000..3241561e --- /dev/null +++ b/plugins/dfcdrom/cdrcfg-0.1df/main.c @@ -0,0 +1,43 @@ +#include +#include + +#include "config.h" + +#ifdef ENABLE_NLS +#include +#include +#endif + +#include "interface.h" +#include "support.h" + +int main (int argc, char *argv[]) +{ +#ifdef __linux__ + GtkWidget *cfg_dialog; + GtkWidget *abt_dialog; + +#ifdef ENABLE_NLS + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); +#endif + + gtk_set_locale (); + gtk_init (&argc, &argv); + + if (argc != 2) return 0; + + if (!strcmp(argv[1], "configure")) { + cfg_dialog = create_cfg_dialog (); + gtk_widget_show (cfg_dialog); + gtk_main (); + } else { + abt_dialog = create_abt_dialog (); + gtk_widget_show (abt_dialog); + gtk_main (); + } +#endif + return 0; +} diff --git a/plugins/dfcdrom/cdrcfg-0.1df/support.c b/plugins/dfcdrom/cdrcfg-0.1df/support.c new file mode 100644 index 00000000..9da69992 --- /dev/null +++ b/plugins/dfcdrom/cdrcfg-0.1df/support.c @@ -0,0 +1,147 @@ +/* + * DO NOT EDIT THIS FILE - it is generated by Glade. + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#ifdef __linux__ + +#include +#include +#include +#include +#include + +#include + +#include "support.h" + +GtkWidget* +lookup_widget (GtkWidget *widget, + const gchar *widget_name) +{ + GtkWidget *parent, *found_widget; + + for (;;) + { + if (GTK_IS_MENU (widget)) + parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); + else + parent = widget->parent; + if (!parent) + parent = g_object_get_data (G_OBJECT (widget), "GladeParentKey"); + if (parent == NULL) + break; + widget = parent; + } + + found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget), + widget_name); + if (!found_widget) + g_warning ("Widget not found: %s", widget_name); + return found_widget; +} + +static GList *pixmaps_directories = NULL; + +/* Use this function to set the directory containing installed pixmaps. */ +void +add_pixmap_directory (const gchar *directory) +{ + pixmaps_directories = g_list_prepend (pixmaps_directories, + g_strdup (directory)); +} + +/* This is an internally used function to find pixmap files. */ +static gchar* +find_pixmap_file (const gchar *filename) +{ + GList *elem; + + /* We step through each of the pixmaps directory to find it. */ + elem = pixmaps_directories; + while (elem) + { + gchar *pathname = g_strdup_printf ("%s%s%s", (gchar*)elem->data, + G_DIR_SEPARATOR_S, filename); + if (g_file_test (pathname, G_FILE_TEST_EXISTS)) + return pathname; + g_free (pathname); + elem = elem->next; + } + return NULL; +} + +/* This is an internally used function to create pixmaps. */ +GtkWidget* +create_pixmap (GtkWidget *widget, + const gchar *filename) +{ + gchar *pathname = NULL; + GtkWidget *pixmap; + + if (!filename || !filename[0]) + return gtk_image_new (); + + pathname = find_pixmap_file (filename); + + if (!pathname) + { + g_warning ("Couldn't find pixmap file: %s", filename); + return gtk_image_new (); + } + + pixmap = gtk_image_new_from_file (pathname); + g_free (pathname); + return pixmap; +} + +/* This is an internally used function to create pixmaps. */ +GdkPixbuf* +create_pixbuf (const gchar *filename) +{ + gchar *pathname = NULL; + GdkPixbuf *pixbuf; + GError *error = NULL; + + if (!filename || !filename[0]) + return NULL; + + pathname = find_pixmap_file (filename); + + if (!pathname) + { + g_warning ("Couldn't find pixmap file: %s", filename); + return NULL; + } + + pixbuf = gdk_pixbuf_new_from_file (pathname, &error); + if (!pixbuf) + { + fprintf (stderr, "Failed to load pixbuf file: %s: %s\n", + pathname, error->message); + g_error_free (error); + } + g_free (pathname); + return pixbuf; +} + +/* This is used to set ATK action descriptions. */ +void +glade_set_atk_action_description (AtkAction *action, + const gchar *action_name, + const gchar *description) +{ + gint n_actions, i; + + n_actions = atk_action_get_n_actions (action); + for (i = 0; i < n_actions; i++) + { + if (!strcmp (atk_action_get_name (action, i), action_name)) + atk_action_set_description (action, i, description); + } +} + +#endif diff --git a/plugins/dfcdrom/cdrcfg-0.1df/support.h b/plugins/dfcdrom/cdrcfg-0.1df/support.h new file mode 100644 index 00000000..2dea079c --- /dev/null +++ b/plugins/dfcdrom/cdrcfg-0.1df/support.h @@ -0,0 +1,44 @@ +/* + * DO NOT EDIT THIS FILE - it is generated by Glade. + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include + +/* + * Public Functions. + */ + +/* + * This function returns a widget in a component created by Glade. + * Call it with the toplevel widget in the component (i.e. a window/dialog), + * or alternatively any widget in the component, and the name of the widget + * you want returned. + */ +GtkWidget* lookup_widget (GtkWidget *widget, + const gchar *widget_name); + + +/* Use this function to set the directory containing installed pixmaps. */ +void add_pixmap_directory (const gchar *directory); + + +/* + * Private Functions. + */ + +/* This is used to create the pixmaps used in the interface. */ +GtkWidget* create_pixmap (GtkWidget *widget, + const gchar *filename); + +/* This is used to create the pixbufs used in the interface. */ +GdkPixbuf* create_pixbuf (const gchar *filename); + +/* This is used to set ATK action descriptions. */ +void glade_set_atk_action_description (AtkAction *action, + const gchar *action_name, + const gchar *description); + diff --git a/plugins/dfcdrom/cfg-gtk2.c b/plugins/dfcdrom/cfg-gtk2.c deleted file mode 100644 index ac3e829a..00000000 --- a/plugins/dfcdrom/cfg-gtk2.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Cdrom for Psemu Pro like Emulators - * - * By: linuzappz - * - */ - -#ifdef __linux__ - -#include -#include -#include -#include -#include -#include -#include - -#include "cdr.h" - -void LoadConf() { - FILE *f; - char cfg[255]; - - strcpy(CdromDev, DEV_DEF); - ReadMode = THREADED; - UseSubQ = 0; - CacheSize = 64; - CdrSpeed = 0; - - sprintf(cfg, "dfcdrom.cfg"); - f = fopen(cfg, "r"); - if (f == NULL) return; - - fscanf(f, "CdromDev = %s\n", CdromDev); - fscanf(f, "ReadMode = %ld\n", &ReadMode); - fscanf(f, "UseSubQ = %ld\n", &UseSubQ); - fscanf(f, "CacheSize = %ld\n", &CacheSize); - fscanf(f, "CdrSpeed = %ld\n", &CdrSpeed); - fclose(f); - - if (ReadMode >= READ_MODES) ReadMode = THREADED; - if (CacheSize <= 0) CacheSize = 32; - if (CacheSize > 2048) CacheSize = 2048; -} - -void SaveConf() { - FILE *f; - char cfg[255]; - - sprintf(cfg, "dfcdrom.cfg"); - f = fopen(cfg, "w"); - if (f == NULL) - return; - fprintf(f, "CdromDev = %s\n", CdromDev); - fprintf(f, "ReadMode = %ld\n", ReadMode); - fprintf(f, "UseSubQ = %ld\n", UseSubQ); - fprintf(f, "CacheSize = %ld\n", CacheSize); - fprintf(f, "CdrSpeed = %ld\n", CdrSpeed); - fclose(f); -} - -#endif diff --git a/plugins/dfcdrom/cfg.c b/plugins/dfcdrom/cfg.c index ac3e829a..050ed021 100644 --- a/plugins/dfcdrom/cfg.c +++ b/plugins/dfcdrom/cfg.c @@ -5,7 +5,7 @@ * */ -#ifdef __linux__ +#if defined (__linux__) #include #include diff --git a/plugins/dfcdrom/cfgCdr.glade b/plugins/dfcdrom/cfgCdr.glade deleted file mode 100644 index c926cf08..00000000 --- a/plugins/dfcdrom/cfgCdr.glade +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - True - 5 - CDR configuration - True - center - normal - False - - - - True - vertical - - - True - vertical - - - True - 0 - - - True - 10 - False - - - True - True - chose yor cdrom device or type its path if it's not listed - True - - - 0 - - - - - True - browse - - - - - - - True - Select cdrom device - - - label_item - - - - - 0 - - - - - True - 0 - - - True - vertical - - - True - 5 - - - True - 5 - 5 - Select read mode: - - - False - False - 0 - - - - - True - True - False - 5 - - - 1 - 1 - - - - - False - False - 0 - - - - - True - - - 1 - - - - - True - 5 - 5 - - - True - Cache Size (Def. 64): - - - False - False - 0 - - - - - True - True - 32 32 2048 1 16 16 - 1 - True - - - 1 - - - - - 2 - - - - - True - - - 3 - - - - - True - 5 - 5 - - - True - Cdrom Speed (Def. 0 = MAX): - - - False - False - 0 - - - - - True - True - 0 0 100 1 4 4 - 1 - True - - - 1 - - - - - 4 - - - - - True - - hseparator - - - - 5 - - - - - Enable subchannel read - True - True - False - 10 - True - True - - - False - False - 6 - - - - - - - True - Options - - - label_item - - - - - 1 - - - - - 1 - - - - - True - end - - - gtk-cancel - -6 - True - True - True - False - True - - - - False - False - 0 - - - - - gtk-ok - -5 - True - True - True - False - True - - - - False - False - 1 - - - - - False - end - 0 - - - - - - - 300 - 200 - True - 10 - About CDR - center - True - normal - - - True - vertical - - - True - 10 - vertical - - - True - 5 - 5 - <span size="xx-large"><b>CDR plugin</b></span> - True - - - False - False - 0 - - - - - True - 5 - 5 - linux CDR plugin for Pcsx - - - fill - - - False - False - 1 - - - - - True - 5 - 5 - <small>(c) linuzappz linuzappz@hotmail.com - xobro _xobro_@tin.it</small> - - True - - - False - False - 2 - - - - - 2 - - - - - True - end - - - gtk-ok - -5 - True - True - True - False - True - - - - False - False - 0 - - - - - False - end - 0 - - - - - - diff --git a/plugins/dfcdrom/interface.c b/plugins/dfcdrom/interface.c deleted file mode 100644 index 3bb08af6..00000000 --- a/plugins/dfcdrom/interface.c +++ /dev/null @@ -1,340 +0,0 @@ -#include "config.h" - -#ifdef __linux__ - -#include -#include -#include -#include -#include - -#include -#include - -#include "callbacks.h" -#include "interface.h" -#include "support.h" - -#ifdef ENABLE_NLS -#include -#include -#define _(x) gettext(x) -#else -#define _(x) (x) -#endif - -#define GLADE_HOOKUP_OBJECT(component,widget,name) \ - g_object_set_data_full (G_OBJECT (component), name, \ - gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) - -#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ - g_object_set_data (G_OBJECT (component), name, widget) - -GtkWidget* -create_cfg_dialog (void) -{ - GtkWidget *cfg_dialog; - GtkWidget *dialog_vbox1; - GtkWidget *vbox1; - GtkWidget *frame1; - GtkWidget *cddev_combo; - GtkWidget *cddev_entry; - GtkWidget *cdr_label; - GtkWidget *frame2; - GtkWidget *vbox2; - GtkWidget *hbox1; - GtkWidget *readmode_label; - GtkWidget *readmode_optionmenu; - GtkWidget *menu1; - GtkWidget *normal; - GtkWidget *threaded; - GtkWidget *hseparator1; - GtkWidget *hbox2; - GtkWidget *label4; - GtkObject *spinCacheSize_adj; - GtkWidget *spinCacheSize; - GtkWidget *hseparator2; - GtkWidget *hbox3; - GtkWidget *label5; - GtkObject *spinCdrSpeed_adj; - GtkWidget *spinCdrSpeed; - GtkWidget *cfg_hseparator; - AtkObject *atko; - GtkWidget *subQ_button; - GtkWidget *options_label; - GtkWidget *cfg_dialog_action_area; - GtkWidget *cfg_cancelbutton; - GtkWidget *cfg_okbutton; - GtkTooltips *tooltips; - - tooltips = gtk_tooltips_new (); - - cfg_dialog = gtk_dialog_new (); - gtk_container_set_border_width (GTK_CONTAINER (cfg_dialog), 5); - gtk_window_set_title (GTK_WINDOW (cfg_dialog), _("CDR configuration")); - gtk_window_set_position (GTK_WINDOW (cfg_dialog), GTK_WIN_POS_CENTER); - gtk_window_set_modal (GTK_WINDOW (cfg_dialog), TRUE); - gtk_dialog_set_has_separator (GTK_DIALOG (cfg_dialog), FALSE); - - dialog_vbox1 = GTK_DIALOG (cfg_dialog)->vbox; - gtk_widget_show (dialog_vbox1); - - vbox1 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox1); - gtk_box_pack_start (GTK_BOX (dialog_vbox1), vbox1, TRUE, TRUE, 0); - - frame1 = gtk_frame_new (NULL); - gtk_widget_show (frame1); - gtk_box_pack_start (GTK_BOX (vbox1), frame1, TRUE, TRUE, 0); - - cddev_combo = gtk_combo_new (); - g_object_set_data (G_OBJECT (GTK_COMBO (cddev_combo)->popwin), - "GladeParentKey", cddev_combo); - gtk_widget_show (cddev_combo); - gtk_container_add (GTK_CONTAINER (frame1), cddev_combo); - gtk_container_set_border_width (GTK_CONTAINER (cddev_combo), 10); - - cddev_entry = GTK_COMBO (cddev_combo)->entry; - gtk_widget_show (cddev_entry); - gtk_tooltips_set_tip (tooltips, cddev_entry, _("Choose your CD-ROM device or type its path if it's not listed"), NULL); - gtk_entry_set_activates_default (GTK_ENTRY (cddev_entry), TRUE); - - cdr_label = gtk_label_new (_("Select CD-ROM device")); - gtk_widget_show (cdr_label); - gtk_frame_set_label_widget (GTK_FRAME (frame1), cdr_label); - gtk_label_set_justify (GTK_LABEL (cdr_label), GTK_JUSTIFY_LEFT); - - frame2 = gtk_frame_new (NULL); - gtk_widget_show (frame2); - gtk_box_pack_start (GTK_BOX (vbox1), frame2, TRUE, TRUE, 0); - - vbox2 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox2); - gtk_container_add (GTK_CONTAINER (frame2), vbox2); - - hbox1 = gtk_hbox_new (FALSE, 0); - gtk_widget_show (hbox1); - gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox1), 5); - - readmode_label = gtk_label_new (_("Select read mode:")); - gtk_widget_show (readmode_label); - gtk_box_pack_start (GTK_BOX (hbox1), readmode_label, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (readmode_label), GTK_JUSTIFY_LEFT); - gtk_misc_set_padding (GTK_MISC (readmode_label), 5, 5); - - readmode_optionmenu = gtk_option_menu_new (); - gtk_widget_show (readmode_optionmenu); - gtk_box_pack_start (GTK_BOX (hbox1), readmode_optionmenu, TRUE, TRUE, 1); - gtk_container_set_border_width (GTK_CONTAINER (readmode_optionmenu), 5); - - menu1 = gtk_menu_new (); - - normal = gtk_menu_item_new_with_mnemonic (_("Normal (No Cache)")); - gtk_widget_show (normal); - gtk_container_add (GTK_CONTAINER (menu1), normal); - - threaded = gtk_menu_item_new_with_mnemonic (_("Threaded - Faster (With Cache)")); - gtk_widget_show (threaded); - gtk_container_add (GTK_CONTAINER (menu1), threaded); - - gtk_option_menu_set_menu (GTK_OPTION_MENU (readmode_optionmenu), menu1); - - hseparator1 = gtk_hseparator_new (); - gtk_widget_show (hseparator1); - gtk_box_pack_start (GTK_BOX (vbox2), hseparator1, TRUE, TRUE, 0); - - hbox2 = gtk_hbox_new (FALSE, 5); - gtk_widget_show (hbox2); - gtk_box_pack_start (GTK_BOX (vbox2), hbox2, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox2), 5); - - label4 = gtk_label_new (_("Cache Size (Def. 64): ")); - gtk_widget_show (label4); - gtk_box_pack_start (GTK_BOX (hbox2), label4, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label4), GTK_JUSTIFY_LEFT); - -// spinCacheSize_adj = gtk_adjustment_new (32, 32, 2048, 1, 16, 16); - spinCacheSize_adj = gtk_adjustment_new (32, 32, 2048, 1, 16, 0); - spinCacheSize = gtk_spin_button_new (GTK_ADJUSTMENT (spinCacheSize_adj), 1, 0); - gtk_widget_show (spinCacheSize); - gtk_box_pack_start (GTK_BOX (hbox2), spinCacheSize, TRUE, TRUE, 0); - gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinCacheSize), TRUE); - - hseparator2 = gtk_hseparator_new (); - gtk_widget_show (hseparator2); - gtk_box_pack_start (GTK_BOX (vbox2), hseparator2, TRUE, TRUE, 0); - - hbox3 = gtk_hbox_new (FALSE, 5); - gtk_widget_show (hbox3); - gtk_box_pack_start (GTK_BOX (vbox2), hbox3, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox3), 5); - - label5 = gtk_label_new (_("Cdrom Speed (Def. 0 = MAX): ")); - gtk_widget_show (label5); - gtk_box_pack_start (GTK_BOX (hbox3), label5, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label5), GTK_JUSTIFY_LEFT); - -// spinCdrSpeed_adj = gtk_adjustment_new (0, 0, 100, 1, 4, 4); - spinCdrSpeed_adj = gtk_adjustment_new (0, 0, 100, 1, 4, 0); - spinCdrSpeed = gtk_spin_button_new (GTK_ADJUSTMENT (spinCdrSpeed_adj), 1, 0); - gtk_widget_show (spinCdrSpeed); - gtk_box_pack_start (GTK_BOX (hbox3), spinCdrSpeed, TRUE, TRUE, 0); - gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinCdrSpeed), TRUE); - - cfg_hseparator = gtk_hseparator_new (); - gtk_widget_show (cfg_hseparator); - gtk_box_pack_start (GTK_BOX (vbox2), cfg_hseparator, TRUE, TRUE, 0); - - subQ_button = gtk_check_button_new_with_mnemonic (_("Enable Subchannel read")); - gtk_widget_show (subQ_button); - gtk_box_pack_start (GTK_BOX (vbox2), subQ_button, FALSE, FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (subQ_button), 10); - - options_label = gtk_label_new (_("Options")); - gtk_widget_show (options_label); - gtk_frame_set_label_widget (GTK_FRAME (frame2), options_label); - gtk_label_set_justify (GTK_LABEL (options_label), GTK_JUSTIFY_LEFT); - - cfg_dialog_action_area = GTK_DIALOG (cfg_dialog)->action_area; - gtk_widget_show (cfg_dialog_action_area); - gtk_button_box_set_layout (GTK_BUTTON_BOX (cfg_dialog_action_area), GTK_BUTTONBOX_END); - - cfg_cancelbutton = gtk_button_new_from_stock ("gtk-cancel"); - gtk_widget_show (cfg_cancelbutton); - gtk_dialog_add_action_widget (GTK_DIALOG (cfg_dialog), cfg_cancelbutton, GTK_RESPONSE_CANCEL); - GTK_WIDGET_SET_FLAGS (cfg_cancelbutton, GTK_CAN_DEFAULT); - - cfg_okbutton = gtk_button_new_from_stock ("gtk-ok"); - gtk_widget_show (cfg_okbutton); - gtk_dialog_add_action_widget (GTK_DIALOG (cfg_dialog), cfg_okbutton, GTK_RESPONSE_OK); - GTK_WIDGET_SET_FLAGS (cfg_okbutton, GTK_CAN_DEFAULT); - - g_signal_connect ((gpointer) cfg_dialog, "show", - G_CALLBACK (on_cfg_dialog_show), - NULL); - g_signal_connect ((gpointer) cfg_cancelbutton, "clicked", - G_CALLBACK (on_cfg_cancelbutton_clicked), - NULL); - g_signal_connect ((gpointer) cfg_dialog, "delete_event", - G_CALLBACK (on_cfg_cancelbutton_clicked), - NULL); - g_signal_connect ((gpointer) cfg_okbutton, "clicked", - G_CALLBACK (on_cfg_okbutton_clicked), - NULL); - - atko = gtk_widget_get_accessible (cfg_hseparator); - atk_object_set_name (atko, "hseparator"); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (cfg_dialog, cfg_dialog, "cfg_dialog"); - GLADE_HOOKUP_OBJECT_NO_REF (cfg_dialog, dialog_vbox1, "dialog_vbox1"); - GLADE_HOOKUP_OBJECT (cfg_dialog, vbox1, "vbox1"); - GLADE_HOOKUP_OBJECT (cfg_dialog, frame1, "frame1"); - GLADE_HOOKUP_OBJECT (cfg_dialog, cddev_combo, "cddev_combo"); - GLADE_HOOKUP_OBJECT (cfg_dialog, cddev_entry, "cddev_entry"); - GLADE_HOOKUP_OBJECT (cfg_dialog, cdr_label, "cdr_label"); - GLADE_HOOKUP_OBJECT (cfg_dialog, frame2, "frame2"); - GLADE_HOOKUP_OBJECT (cfg_dialog, vbox2, "vbox2"); - GLADE_HOOKUP_OBJECT (cfg_dialog, hbox1, "hbox1"); - GLADE_HOOKUP_OBJECT (cfg_dialog, readmode_label, "readmode_label"); - GLADE_HOOKUP_OBJECT (cfg_dialog, readmode_optionmenu, "readmode_optionmenu"); - GLADE_HOOKUP_OBJECT (cfg_dialog, menu1, "menu1"); - GLADE_HOOKUP_OBJECT (cfg_dialog, normal, "normal"); - GLADE_HOOKUP_OBJECT (cfg_dialog, threaded, "threaded"); - GLADE_HOOKUP_OBJECT (cfg_dialog, hseparator1, "hseparator1"); - GLADE_HOOKUP_OBJECT (cfg_dialog, hbox2, "hbox2"); - GLADE_HOOKUP_OBJECT (cfg_dialog, label4, "label4"); - GLADE_HOOKUP_OBJECT (cfg_dialog, spinCacheSize, "spinCacheSize"); - GLADE_HOOKUP_OBJECT (cfg_dialog, hseparator2, "hseparator2"); - GLADE_HOOKUP_OBJECT (cfg_dialog, hbox3, "hbox3"); - GLADE_HOOKUP_OBJECT (cfg_dialog, label5, "label5"); - GLADE_HOOKUP_OBJECT (cfg_dialog, spinCdrSpeed, "spinCdrSpeed"); - GLADE_HOOKUP_OBJECT (cfg_dialog, cfg_hseparator, "cfg_hseparator"); - GLADE_HOOKUP_OBJECT (cfg_dialog, subQ_button, "subQ_button"); - GLADE_HOOKUP_OBJECT (cfg_dialog, options_label, "options_label"); - GLADE_HOOKUP_OBJECT_NO_REF (cfg_dialog, cfg_dialog_action_area, "cfg_dialog_action_area"); - GLADE_HOOKUP_OBJECT (cfg_dialog, cfg_cancelbutton, "cfg_cancelbutton"); - GLADE_HOOKUP_OBJECT (cfg_dialog, cfg_okbutton, "cfg_okbutton"); - GLADE_HOOKUP_OBJECT_NO_REF (cfg_dialog, tooltips, "tooltips"); - - return cfg_dialog; -} - -GtkWidget* -create_abt_dialog (void) -{ - GtkWidget *abt_dialog; - GtkWidget *abt_dialog_vbox; - GtkWidget *vbox3; - GtkWidget *label3; - GtkWidget *label1; - GtkWidget *label2; - GtkWidget *abt_dialog_action_area; - GtkWidget *abt_okbutton; - - abt_dialog = gtk_dialog_new (); - gtk_widget_set_size_request (abt_dialog, 300, 200); - gtk_container_set_border_width (GTK_CONTAINER (abt_dialog), 10); - gtk_window_set_title (GTK_WINDOW (abt_dialog), "About CDR"); - gtk_window_set_position (GTK_WINDOW (abt_dialog), GTK_WIN_POS_CENTER); - gtk_window_set_destroy_with_parent (GTK_WINDOW (abt_dialog), TRUE); - - abt_dialog_vbox = GTK_DIALOG (abt_dialog)->vbox; - gtk_widget_show (abt_dialog_vbox); - - vbox3 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox3); - gtk_box_pack_start (GTK_BOX (abt_dialog_vbox), vbox3, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (vbox3), 10); - - label3 = gtk_label_new ("CDR plugin"); - gtk_widget_show (label3); - gtk_box_pack_start (GTK_BOX (vbox3), label3, FALSE, FALSE, 0); - gtk_label_set_use_markup (GTK_LABEL (label3), TRUE); - gtk_label_set_justify (GTK_LABEL (label3), GTK_JUSTIFY_LEFT); - gtk_misc_set_padding (GTK_MISC (label3), 5, 5); - - label1 = gtk_label_new ("linux CDR plugin for Pcsx\n\n"); - gtk_widget_show (label1); - gtk_box_pack_start (GTK_BOX (vbox3), label1, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label1), GTK_JUSTIFY_FILL); - gtk_misc_set_padding (GTK_MISC (label1), 5, 5); - - label2 = gtk_label_new ("(c) linuzappz linuzappz@hotmail.com\n xobro _xobro_@tin.it\n"); - gtk_widget_show (label2); - gtk_box_pack_start (GTK_BOX (vbox3), label2, FALSE, FALSE, 0); - gtk_label_set_use_markup (GTK_LABEL (label2), TRUE); - gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_LEFT); - gtk_misc_set_padding (GTK_MISC (label2), 5, 5); - - abt_dialog_action_area = GTK_DIALOG (abt_dialog)->action_area; - gtk_widget_show (abt_dialog_action_area); - gtk_button_box_set_layout (GTK_BUTTON_BOX (abt_dialog_action_area), GTK_BUTTONBOX_END); - - abt_okbutton = gtk_button_new_from_stock ("gtk-ok"); - gtk_widget_show (abt_okbutton); - gtk_dialog_add_action_widget (GTK_DIALOG (abt_dialog), abt_okbutton, GTK_RESPONSE_OK); - GTK_WIDGET_SET_FLAGS (abt_okbutton, GTK_CAN_DEFAULT); - - g_signal_connect ((gpointer) abt_okbutton, "clicked", - G_CALLBACK (on_abt_okbutton_clicked), - NULL); - g_signal_connect ((gpointer) abt_dialog, "delete_event", - G_CALLBACK (on_abt_okbutton_clicked), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (abt_dialog, abt_dialog, "abt_dialog"); - GLADE_HOOKUP_OBJECT_NO_REF (abt_dialog, abt_dialog_vbox, "abt_dialog_vbox"); - GLADE_HOOKUP_OBJECT (abt_dialog, vbox3, "vbox3"); - GLADE_HOOKUP_OBJECT (abt_dialog, label3, "label3"); - GLADE_HOOKUP_OBJECT (abt_dialog, label1, "label1"); - GLADE_HOOKUP_OBJECT (abt_dialog, label2, "label2"); - GLADE_HOOKUP_OBJECT_NO_REF (abt_dialog, abt_dialog_action_area, "abt_dialog_action_area"); - GLADE_HOOKUP_OBJECT (abt_dialog, abt_okbutton, "abt_okbutton"); - - return abt_dialog; -} - -#endif diff --git a/plugins/dfcdrom/interface.h b/plugins/dfcdrom/interface.h deleted file mode 100644 index e23e1adb..00000000 --- a/plugins/dfcdrom/interface.h +++ /dev/null @@ -1,6 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -GtkWidget* create_cfg_dialog (void); -GtkWidget* create_abt_dialog (void); diff --git a/plugins/dfcdrom/main.c b/plugins/dfcdrom/main.c deleted file mode 100644 index 3241561e..00000000 --- a/plugins/dfcdrom/main.c +++ /dev/null @@ -1,43 +0,0 @@ -#include -#include - -#include "config.h" - -#ifdef ENABLE_NLS -#include -#include -#endif - -#include "interface.h" -#include "support.h" - -int main (int argc, char *argv[]) -{ -#ifdef __linux__ - GtkWidget *cfg_dialog; - GtkWidget *abt_dialog; - -#ifdef ENABLE_NLS - setlocale (LC_ALL, ""); - bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); - textdomain (GETTEXT_PACKAGE); -#endif - - gtk_set_locale (); - gtk_init (&argc, &argv); - - if (argc != 2) return 0; - - if (!strcmp(argv[1], "configure")) { - cfg_dialog = create_cfg_dialog (); - gtk_widget_show (cfg_dialog); - gtk_main (); - } else { - abt_dialog = create_abt_dialog (); - gtk_widget_show (abt_dialog); - gtk_main (); - } -#endif - return 0; -} diff --git a/plugins/dfcdrom/support.c b/plugins/dfcdrom/support.c deleted file mode 100644 index 9da69992..00000000 --- a/plugins/dfcdrom/support.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#ifdef __linux__ - -#include -#include -#include -#include -#include - -#include - -#include "support.h" - -GtkWidget* -lookup_widget (GtkWidget *widget, - const gchar *widget_name) -{ - GtkWidget *parent, *found_widget; - - for (;;) - { - if (GTK_IS_MENU (widget)) - parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); - else - parent = widget->parent; - if (!parent) - parent = g_object_get_data (G_OBJECT (widget), "GladeParentKey"); - if (parent == NULL) - break; - widget = parent; - } - - found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget), - widget_name); - if (!found_widget) - g_warning ("Widget not found: %s", widget_name); - return found_widget; -} - -static GList *pixmaps_directories = NULL; - -/* Use this function to set the directory containing installed pixmaps. */ -void -add_pixmap_directory (const gchar *directory) -{ - pixmaps_directories = g_list_prepend (pixmaps_directories, - g_strdup (directory)); -} - -/* This is an internally used function to find pixmap files. */ -static gchar* -find_pixmap_file (const gchar *filename) -{ - GList *elem; - - /* We step through each of the pixmaps directory to find it. */ - elem = pixmaps_directories; - while (elem) - { - gchar *pathname = g_strdup_printf ("%s%s%s", (gchar*)elem->data, - G_DIR_SEPARATOR_S, filename); - if (g_file_test (pathname, G_FILE_TEST_EXISTS)) - return pathname; - g_free (pathname); - elem = elem->next; - } - return NULL; -} - -/* This is an internally used function to create pixmaps. */ -GtkWidget* -create_pixmap (GtkWidget *widget, - const gchar *filename) -{ - gchar *pathname = NULL; - GtkWidget *pixmap; - - if (!filename || !filename[0]) - return gtk_image_new (); - - pathname = find_pixmap_file (filename); - - if (!pathname) - { - g_warning ("Couldn't find pixmap file: %s", filename); - return gtk_image_new (); - } - - pixmap = gtk_image_new_from_file (pathname); - g_free (pathname); - return pixmap; -} - -/* This is an internally used function to create pixmaps. */ -GdkPixbuf* -create_pixbuf (const gchar *filename) -{ - gchar *pathname = NULL; - GdkPixbuf *pixbuf; - GError *error = NULL; - - if (!filename || !filename[0]) - return NULL; - - pathname = find_pixmap_file (filename); - - if (!pathname) - { - g_warning ("Couldn't find pixmap file: %s", filename); - return NULL; - } - - pixbuf = gdk_pixbuf_new_from_file (pathname, &error); - if (!pixbuf) - { - fprintf (stderr, "Failed to load pixbuf file: %s: %s\n", - pathname, error->message); - g_error_free (error); - } - g_free (pathname); - return pixbuf; -} - -/* This is used to set ATK action descriptions. */ -void -glade_set_atk_action_description (AtkAction *action, - const gchar *action_name, - const gchar *description) -{ - gint n_actions, i; - - n_actions = atk_action_get_n_actions (action); - for (i = 0; i < n_actions; i++) - { - if (!strcmp (atk_action_get_name (action, i), action_name)) - atk_action_set_description (action, i, description); - } -} - -#endif diff --git a/plugins/dfcdrom/support.h b/plugins/dfcdrom/support.h deleted file mode 100644 index 2dea079c..00000000 --- a/plugins/dfcdrom/support.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - -/* - * Public Functions. - */ - -/* - * This function returns a widget in a component created by Glade. - * Call it with the toplevel widget in the component (i.e. a window/dialog), - * or alternatively any widget in the component, and the name of the widget - * you want returned. - */ -GtkWidget* lookup_widget (GtkWidget *widget, - const gchar *widget_name); - - -/* Use this function to set the directory containing installed pixmaps. */ -void add_pixmap_directory (const gchar *directory); - - -/* - * Private Functions. - */ - -/* This is used to create the pixmaps used in the interface. */ -GtkWidget* create_pixmap (GtkWidget *widget, - const gchar *filename); - -/* This is used to create the pixbufs used in the interface. */ -GdkPixbuf* create_pixbuf (const gchar *filename); - -/* This is used to set ATK action descriptions. */ -void glade_set_atk_action_description (AtkAction *action, - const gchar *action_name, - const gchar *description); - -- cgit v1.2.3