diff options
| author | SND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2009-11-26 15:29:20 +0000 |
|---|---|---|
| committer | SND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2009-11-26 15:29:20 +0000 |
| commit | 24054df7ea8081b4a4b9875344b37458ec8502a5 (patch) | |
| tree | 5bfa94e8ac0899b30a8456f5faf188392a78d1ce /plugins/dfcdrom/cdrcfg-0.1df | |
| parent | 93e34824a3aaa71b3d9f423311c7ca1f67f4fd73 (diff) | |
| download | pcsxr-24054df7ea8081b4a4b9875344b37458ec8502a5.tar.gz | |
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@38278 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'plugins/dfcdrom/cdrcfg-0.1df')
| -rw-r--r-- | plugins/dfcdrom/cdrcfg-0.1df/callbacks.c | 210 | ||||
| -rw-r--r-- | plugins/dfcdrom/cdrcfg-0.1df/callbacks.h | 18 | ||||
| -rw-r--r-- | plugins/dfcdrom/cdrcfg-0.1df/cfg-gtk2.c | 62 | ||||
| -rw-r--r-- | plugins/dfcdrom/cdrcfg-0.1df/dfcdrom.glade2 (renamed from plugins/dfcdrom/cdrcfg-0.1df/cfgCdr.glade) | 209 | ||||
| -rw-r--r-- | plugins/dfcdrom/cdrcfg-0.1df/interface.c | 340 | ||||
| -rw-r--r-- | plugins/dfcdrom/cdrcfg-0.1df/interface.h | 6 | ||||
| -rw-r--r-- | plugins/dfcdrom/cdrcfg-0.1df/main.c | 257 | ||||
| -rw-r--r-- | plugins/dfcdrom/cdrcfg-0.1df/support.c | 147 | ||||
| -rw-r--r-- | plugins/dfcdrom/cdrcfg-0.1df/support.h | 44 |
9 files changed, 319 insertions, 974 deletions
diff --git a/plugins/dfcdrom/cdrcfg-0.1df/callbacks.c b/plugins/dfcdrom/cdrcfg-0.1df/callbacks.c deleted file mode 100644 index 8330cd77..00000000 --- a/plugins/dfcdrom/cdrcfg-0.1df/callbacks.c +++ /dev/null @@ -1,210 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#ifdef __linux__ - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <string.h> -#include <fcntl.h> -#include <sys/stat.h> -#include <sys/ioctl.h> -#include <linux/cdrom.h> - -#include <gtk/gtk.h> - -#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 deleted file mode 100644 index 622914d9..00000000 --- a/plugins/dfcdrom/cdrcfg-0.1df/callbacks.h +++ /dev/null @@ -1,18 +0,0 @@ -#include <gtk/gtk.h> - - -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 deleted file mode 100644 index 4d9314e2..00000000 --- a/plugins/dfcdrom/cdrcfg-0.1df/cfg-gtk2.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Cdrom for Psemu Pro like Emulators - * - * By: linuzappz <linuzappz@hotmail.com> - * - */ - -#ifdef __linux__ - -#include <stdio.h> -#include <stdlib.h> -#include <fcntl.h> -#include <sys/stat.h> -#include <unistd.h> -#include <time.h> -#include <string.h> - -#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/dfcdrom.glade2 index c926cf08..02164f0c 100644 --- a/plugins/dfcdrom/cdrcfg-0.1df/cfgCdr.glade +++ b/plugins/dfcdrom/cdrcfg-0.1df/dfcdrom.glade2 @@ -2,7 +2,7 @@ <glade-interface> <!-- interface-requires gtk+ 2.6 --> <!-- interface-naming-policy toplevel-contextual --> - <widget class="GtkDialog" id="cfg_dialog"> + <widget class="GtkDialog" id="CfgWnd"> <property name="visible">True</property> <property name="border_width">5</property> <property name="title" translatable="yes">CDR configuration</property> @@ -24,33 +24,24 @@ <property name="visible">True</property> <property name="label_xalign">0</property> <child> - <widget class="GtkCombo" id="cddev_combo"> + <widget class="GtkHBox" id="hbox5"> <property name="visible">True</property> <property name="border_width">10</property> - <property name="enable_arrows_always">False</property> - <child internal-child="entry"> - <widget class="GtkEntry" id="cddev_entry"> + <child> + <widget class="GtkComboBoxEntry" id="cddev_comboboxentry"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">chose yor cdrom device or type its path if it's not listed</property> - <property name="activates_default">True</property> + <property name="tooltip" translatable="yes">Choose your CD-ROM device or type its path if it's not listed</property> </widget> <packing> <property name="position">0</property> </packing> </child> - <child internal-child="list"> - <widget class="GtkList" id="combo-list1"> - <property name="visible">True</property> - <property name="selection_mode">browse</property> - </widget> - </child> </widget> </child> <child> <widget class="GtkLabel" id="cdr_label"> <property name="visible">True</property> - <property name="label" translatable="yes">Select cdrom device</property> + <property name="label" translatable="yes">Select CD-ROM device</property> </widget> <packing> <property name="type">label_item</property> @@ -87,14 +78,12 @@ </packing> </child> <child> - <widget class="GtkOptionMenu" id="readmode_optionmenu"> + <widget class="GtkComboBox" id="readmode_combobox"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="border_width">5</property> + <property name="items" translatable="yes">Normal (No Cache) +Threaded - Faster (With Cache)</property> </widget> <packing> - <property name="padding">1</property> <property name="position">1</property> </packing> </child> @@ -110,6 +99,7 @@ <property name="visible">True</property> </widget> <packing> + <property name="expand">False</property> <property name="position">1</property> </packing> </child> @@ -121,7 +111,7 @@ <child> <widget class="GtkLabel" id="label4"> <property name="visible">True</property> - <property name="label" translatable="yes">Cache Size (Def. 64): </property> + <property name="label" translatable="yes">Cache Size (Def. 64):</property> </widget> <packing> <property name="expand">False</property> @@ -133,11 +123,14 @@ <widget class="GtkSpinButton" id="spinCacheSize"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="adjustment">32 32 2048 1 16 16</property> + <property name="adjustment">32 32 2048 1 16 0</property> <property name="climb_rate">1</property> <property name="numeric">True</property> </widget> <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="pack_type">end</property> <property name="position">1</property> </packing> </child> @@ -151,10 +144,68 @@ <property name="visible">True</property> </widget> <packing> + <property name="expand">False</property> <property name="position">3</property> </packing> </child> <child> + <widget class="GtkHBox" id="hbox4"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="spacing">5</property> + <child> + <widget class="GtkLabel" id="label7"> + <property name="visible">True</property> + <property name="label" translatable="yes">Spindown Time:</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <widget class="GtkComboBox" id="comboSpinDown"> + <property name="visible">True</property> + <property name="items" translatable="yes">Default +125ms +250ms +500ms +1s +2s +4s +8s +16s +32s +1min +2min +4min +8min +16min +32min</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="pack_type">end</property> + <property name="position">1</property> + </packing> + </child> + </widget> + <packing> + <property name="position">4</property> + </packing> + </child> + <child> + <widget class="GtkHSeparator" id="hseparator3"> + <property name="visible">True</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="position">5</property> + </packing> + </child> + <child> <widget class="GtkHBox" id="hbox3"> <property name="visible">True</property> <property name="border_width">5</property> @@ -162,7 +213,7 @@ <child> <widget class="GtkLabel" id="label5"> <property name="visible">True</property> - <property name="label" translatable="yes">Cdrom Speed (Def. 0 = MAX): </property> + <property name="label" translatable="yes">Cdrom Speed (Def. 0 = MAX):</property> </widget> <packing> <property name="expand">False</property> @@ -174,17 +225,20 @@ <widget class="GtkSpinButton" id="spinCdrSpeed"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="adjustment">0 0 100 1 4 4</property> + <property name="adjustment">0 0 100 1 4 0</property> <property name="climb_rate">1</property> <property name="numeric">True</property> </widget> <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="pack_type">end</property> <property name="position">1</property> </packing> </child> </widget> <packing> - <property name="position">4</property> + <property name="position">6</property> </packing> </child> <child> @@ -195,7 +249,8 @@ </accessibility> </widget> <packing> - <property name="position">5</property> + <property name="expand">False</property> + <property name="position">7</property> </packing> </child> <child> @@ -211,7 +266,7 @@ <packing> <property name="expand">False</property> <property name="fill">False</property> - <property name="position">6</property> + <property name="position">8</property> </packing> </child> </widget> @@ -283,104 +338,4 @@ </widget> </child> </widget> - <widget class="GtkDialog" id="abt_dialog"> - <property name="width_request">300</property> - <property name="height_request">200</property> - <property name="visible">True</property> - <property name="border_width">10</property> - <property name="title" translatable="yes">About CDR</property> - <property name="window_position">center</property> - <property name="destroy_with_parent">True</property> - <property name="type_hint">normal</property> - <child internal-child="vbox"> - <widget class="GtkVBox" id="abt_dialog-vbox"> - <property name="visible">True</property> - <property name="orientation">vertical</property> - <child> - <widget class="GtkVBox" id="vbox3"> - <property name="visible">True</property> - <property name="border_width">10</property> - <property name="orientation">vertical</property> - <child> - <widget class="GtkLabel" id="label3"> - <property name="visible">True</property> - <property name="xpad">5</property> - <property name="ypad">5</property> - <property name="label" translatable="yes"><span size="xx-large"><b>CDR plugin</b></span></property> - <property name="use_markup">True</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <widget class="GtkLabel" id="label1"> - <property name="visible">True</property> - <property name="xpad">5</property> - <property name="ypad">5</property> - <property name="label" translatable="yes">linux CDR plugin for Pcsx - -</property> - <property name="justify">fill</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">1</property> - </packing> - </child> - <child> - <widget class="GtkLabel" id="label2"> - <property name="visible">True</property> - <property name="xpad">5</property> - <property name="ypad">5</property> - <property name="label" translatable="yes"><small>(c) linuzappz linuzappz@hotmail.com - xobro _xobro_@tin.it</small> -</property> - <property name="use_markup">True</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">2</property> - </packing> - </child> - </widget> - <packing> - <property name="position">2</property> - </packing> - </child> - <child internal-child="action_area"> - <widget class="GtkHButtonBox" id="abt_dialog-action_area"> - <property name="visible">True</property> - <property name="layout_style">end</property> - <child> - <widget class="GtkButton" id="abt_okbutton"> - <property name="label">gtk-ok</property> - <property name="response_id">-5</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="can_default">True</property> - <property name="receives_default">False</property> - <property name="use_stock">True</property> - <signal name="clicked" handler="on_abt_okbutton_clicked"/> - </widget> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - </widget> - <packing> - <property name="expand">False</property> - <property name="pack_type">end</property> - <property name="position">0</property> - </packing> - </child> - </widget> - </child> - </widget> </glade-interface> diff --git a/plugins/dfcdrom/cdrcfg-0.1df/interface.c b/plugins/dfcdrom/cdrcfg-0.1df/interface.c deleted file mode 100644 index 3bb08af6..00000000 --- a/plugins/dfcdrom/cdrcfg-0.1df/interface.c +++ /dev/null @@ -1,340 +0,0 @@ -#include "config.h" - -#ifdef __linux__ - -#include <sys/types.h> -#include <sys/stat.h> -#include <unistd.h> -#include <string.h> -#include <stdio.h> - -#include <gdk/gdkkeysyms.h> -#include <gtk/gtk.h> - -#include "callbacks.h" -#include "interface.h" -#include "support.h" - -#ifdef ENABLE_NLS -#include <libintl.h> -#include <locale.h> -#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 ("<span size=\"xx-large\"><b>CDR plugin</b></span>"); - 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 ("<small>(c) linuzappz linuzappz@hotmail.com\n xobro _xobro_@tin.it</small>\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 deleted file mode 100644 index e23e1adb..00000000 --- a/plugins/dfcdrom/cdrcfg-0.1df/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/cdrcfg-0.1df/main.c b/plugins/dfcdrom/cdrcfg-0.1df/main.c index 3241561e..acc5de25 100644 --- a/plugins/dfcdrom/cdrcfg-0.1df/main.c +++ b/plugins/dfcdrom/cdrcfg-0.1df/main.c @@ -1,43 +1,260 @@ +#include <stdio.h> #include <string.h> +#include <stdlib.h> #include <gtk/gtk.h> +#include <glade/glade.h> #include "config.h" #ifdef ENABLE_NLS #include <libintl.h> #include <locale.h> +#define _(x) gettext(x) +#else +#define _(x) (x) #endif -#include "interface.h" -#include "support.h" - -int main (int argc, char *argv[]) -{ #ifdef __linux__ - GtkWidget *cfg_dialog; - GtkWidget *abt_dialog; +#include "../cfg.c" + +GtkWidget *MainWindow; + +// function to check if the device is a cdrom +int is_cdrom(const 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 CD-ROM. + // 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 CD-ROM device + if (ioctl(fd, CDROM_GET_CAPABILITY, NULL) < 0) { + close(fd); + return 0; + } + + close(fd); + + // yes, it seems a CD drive! + return 1; +} + +// fill_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(GtkWidget *widget) { + int i = 0; + GtkListStore *store; + GtkTreeIter iter; + + static const char *cdrom_devices[] = { + "/dev/cdrom", + "/dev/cdrom0", + "/dev/cdrom1", + "/dev/cdrom2", + "/dev/cdrom3", + "/dev/cdroms/cdrom0", + "/dev/cdroms/cdrom1", + "/dev/cdroms/cdrom2", + "/dev/cdroms/cdrom3", + "/dev/hda", + "/dev/hdb", + "/dev/hdc", + "/dev/hdd", + "/dev/sda", + "/dev/sdb", + "/dev/sdc", + "/dev/sdd", + "/dev/scd0", + "/dev/scd1", + "/dev/scd2", + "/dev/scd3", + "/dev/optcd", + NULL}; + + store = gtk_list_store_new(1, G_TYPE_STRING); + + // first we put our current drive + gtk_list_store_append(store, &iter); + gtk_list_store_set(store, &iter, 0, CdromDev, -1); + + // scan cdrom_devices for real cdrom and add them to list + 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])) { + gtk_list_store_append(store, &iter); + gtk_list_store_set(store, &iter, 0, cdrom_devices[i], -1); + } + } + ++i; + } + + gtk_combo_box_set_model(GTK_COMBO_BOX(widget), GTK_TREE_MODEL(store)); + gtk_combo_box_entry_set_text_column(GTK_COMBO_BOX_ENTRY(widget), 0); +} + +static void OnConfigExit(GtkWidget *widget, gpointer user_data) { + gtk_widget_destroy(widget); + gtk_exit(0); +} + +static void OnConfigOk(GtkWidget *widget, gpointer user_data) { + GladeXML *xml; + + xml = glade_get_widget_tree(MainWindow); + + widget = glade_xml_get_widget(xml, "cddev_comboboxentry"); + strncpy(CdromDev, gtk_entry_get_text(GTK_ENTRY(GTK_BIN(widget)->child)), 255); + CdromDev[255] = '\0'; + + widget = glade_xml_get_widget(xml, "readmode_combobox"); + ReadMode = gtk_combo_box_get_active(GTK_COMBO_BOX(widget)); + + widget = glade_xml_get_widget(xml, "subQ_button"); + UseSubQ = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); + + widget = glade_xml_get_widget(xml, "spinCacheSize"); + CacheSize = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); + + widget = glade_xml_get_widget(xml, "spinCdrSpeed"); + CdrSpeed = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); + + widget = glade_xml_get_widget(xml, "comboSpinDown"); + SpinDown = gtk_combo_box_get_active(GTK_COMBO_BOX(widget)); + + SaveConf(); + + gtk_widget_destroy(widget); + gtk_exit(0); +} + +long CDRconfigure() { + GladeXML *xml; + GtkWidget *widget; + + LoadConf(); + + xml = glade_xml_new(DATADIR "dfcdrom.glade2", "CfgWnd", NULL); + if (xml == NULL) { + g_warning("We could not load the interface!"); + return -1; + } + + MainWindow = glade_xml_get_widget(xml, "CfgWnd"); + gtk_window_set_title(GTK_WINDOW(MainWindow), _("CDR configuration")); + + widget = glade_xml_get_widget(xml, "CfgWnd"); + g_signal_connect_data(GTK_OBJECT(widget), "delete_event", + GTK_SIGNAL_FUNC(OnConfigExit), NULL, NULL, G_CONNECT_AFTER); + + widget = glade_xml_get_widget(xml, "cfg_cancelbutton"); + g_signal_connect_data(GTK_OBJECT(widget), "clicked", + GTK_SIGNAL_FUNC(OnConfigExit), NULL, NULL, G_CONNECT_AFTER); + + widget = glade_xml_get_widget(xml, "cfg_okbutton"); + g_signal_connect_data(GTK_OBJECT(widget), "clicked", + GTK_SIGNAL_FUNC(OnConfigOk), xml, NULL, G_CONNECT_AFTER); + + widget = glade_xml_get_widget(xml, "cddev_comboboxentry"); + fill_drives_list(widget); + gtk_entry_set_text(GTK_ENTRY(GTK_BIN(widget)->child), CdromDev); + + widget = glade_xml_get_widget(xml, "readmode_combobox"); + gtk_combo_box_set_active(GTK_COMBO_BOX(widget), ReadMode); + + widget = glade_xml_get_widget(xml, "subQ_button"); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), UseSubQ); + + widget = glade_xml_get_widget(xml, "spinCacheSize"); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), (float)CacheSize); + + widget = glade_xml_get_widget(xml, "spinCdrSpeed"); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), (float)CdrSpeed); + + widget = glade_xml_get_widget(xml, "comboSpinDown"); + gtk_combo_box_set_active(GTK_COMBO_BOX(widget), SpinDown); + + gtk_widget_show(MainWindow); + gtk_main(); + + return 0; +} + +static void OnAboutExit(GtkWidget *widget, gpointer user_data) { + gtk_widget_destroy(widget); + gtk_exit(0); +} + +void CDRabout() { + GtkWidget *widget; + const char *authors[]= {"linuzappz <linuzappz@hotmail.com>", + "xobro <_xobro_@tin.it>", NULL}; + + widget = gtk_about_dialog_new(); + gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(widget), "CD-ROM Device Reader"); + gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(widget), "1.0"); + gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(widget), authors); + gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(widget), "http://pcsxr.codeplex.com/"); + + g_signal_connect_data(GTK_OBJECT(widget), "response", + GTK_SIGNAL_FUNC(OnAboutExit), NULL, NULL, G_CONNECT_AFTER); + + gtk_widget_show(widget); + gtk_main(); +} + +#endif + +int main(int argc, char *argv[]) { #ifdef ENABLE_NLS - setlocale (LC_ALL, ""); - bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); - textdomain (GETTEXT_PACKAGE); + setlocale(LC_ALL, ""); + bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR); + bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); + textdomain(GETTEXT_PACKAGE); #endif - gtk_set_locale (); - gtk_init (&argc, &argv); +#ifdef __linux__ + 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 (); + if (strcmp(argv[1], "configure") == 0) { + CDRconfigure(); } else { - abt_dialog = create_abt_dialog (); - gtk_widget_show (abt_dialog); - gtk_main (); + CDRabout(); } #endif + return 0; } diff --git a/plugins/dfcdrom/cdrcfg-0.1df/support.c b/plugins/dfcdrom/cdrcfg-0.1df/support.c deleted file mode 100644 index 9da69992..00000000 --- a/plugins/dfcdrom/cdrcfg-0.1df/support.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#ifdef __linux__ - -#include <sys/types.h> -#include <sys/stat.h> -#include <unistd.h> -#include <string.h> -#include <stdio.h> - -#include <gtk/gtk.h> - -#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 deleted file mode 100644 index 2dea079c..00000000 --- a/plugins/dfcdrom/cdrcfg-0.1df/support.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#include <gtk/gtk.h> - -/* - * 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); - |
