summaryrefslogtreecommitdiff
path: root/plugins/dfcdrom/callbacks.c
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-11-26 06:41:17 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-11-26 06:41:17 +0000
commitacd164d56c60efd57a87c0cbe53fe6aee3be6696 (patch)
treef9de10a5ff2039170952a910920496a77ac825da /plugins/dfcdrom/callbacks.c
parent9b9ad9958e1e373fa8804e5866e77d9f40b5d624 (diff)
downloadpcsxr-acd164d56c60efd57a87c0cbe53fe6aee3be6696.tar.gz
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@38248 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'plugins/dfcdrom/callbacks.c')
-rw-r--r--plugins/dfcdrom/callbacks.c210
1 files changed, 0 insertions, 210 deletions
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 <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