aboutsummaryrefslogtreecommitdiff
path: root/plugins/dfcdrom/cfg.c
diff options
context:
space:
mode:
authorPCSX* teams2010-11-16 14:15:22 +0200
committerGrazvydas Ignotas2010-11-16 14:15:22 +0200
commitef79bbde537d6b9c745a7d86cb9df1d04c35590d (patch)
treeef8d2520dbb9e1e345b41b12c9959f300ca8fd10 /plugins/dfcdrom/cfg.c
downloadpcsx_rearmed-ef79bbde537d6b9c745a7d86cb9df1d04c35590d.tar.gz
pcsx_rearmed-ef79bbde537d6b9c745a7d86cb9df1d04c35590d.tar.bz2
pcsx_rearmed-ef79bbde537d6b9c745a7d86cb9df1d04c35590d.zip
pcsxr-1.9.92
Diffstat (limited to 'plugins/dfcdrom/cfg.c')
-rw-r--r--plugins/dfcdrom/cfg.c99
1 files changed, 99 insertions, 0 deletions
diff --git a/plugins/dfcdrom/cfg.c b/plugins/dfcdrom/cfg.c
new file mode 100644
index 0000000..2bbc844
--- /dev/null
+++ b/plugins/dfcdrom/cfg.c
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2010, Wei Mingzhi <whistler@openoffice.org>.
+ * All Rights Reserved.
+ *
+ * Based on: Cdrom for Psemu Pro like Emulators
+ * By: linuzappz <linuzappz@hotmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses>.
+ */
+
+#include "cdr.h"
+
+char CdromDev[256];
+long ReadMode;
+long UseSubQ;
+long CacheSize;
+long CdrSpeed;
+long SpinDown;
+
+void LoadConf() {
+ FILE *f;
+
+#if defined (__sun)
+ char buf[256], *devname, *nick;
+
+ CdromDev[0] = '\0';
+ f = popen("eject -l", "r");
+
+ if (f != NULL) {
+ while (!feof(f)) {
+ fgets(buf, 256, f);
+
+ devname = strtok(buf, " ");
+ nick = strtok(NULL, " ");
+
+ if (devname == NULL || nick == NULL) continue;
+
+ if (strstr(nick, "cdrom") != NULL) {
+ strcpy(CdromDev, devname);
+ break;
+ }
+ }
+
+ pclose(f);
+ }
+#else
+ strcpy(CdromDev, DEV_DEF);
+#endif
+
+ ReadMode = THREADED;
+ UseSubQ = 0;
+ CacheSize = 64;
+ CdrSpeed = 0;
+ SpinDown = SPINDOWN_VENDOR_SPECIFIC;
+
+ f = fopen("dfcdrom.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);
+ fscanf(f, "SpinDown = %ld\n", &SpinDown);
+ fclose(f);
+
+ if (ReadMode >= READ_MODES) ReadMode = THREADED;
+ if (CacheSize <= 0) CacheSize = 32;
+ if (CacheSize > 2048) CacheSize = 2048;
+ if (SpinDown <= 0) SpinDown = SPINDOWN_VENDOR_SPECIFIC;
+ if (SpinDown > SPINDOWN_32MIN) SpinDown = SPINDOWN_32MIN;
+}
+
+void SaveConf() {
+ FILE *f;
+
+ f = fopen("dfcdrom.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);
+ fprintf(f, "SpinDown = %ld\n", SpinDown);
+ fclose(f);
+}