2 // generaltab.cpp: "General" tab on the settings dialog
4 // Part of the Virtual Jaguar Project
5 // (C) 2011 Underground Software
6 // See the README and GPLv3 files for licensing and warranty information
8 // JLH = James Hammons <jlhamm@acm.org>
11 // --- ---------- ------------------------------------------------------------
12 // JLH 06/23/2011 Created this file
14 #include "generaltab.h"
18 GeneralTab::GeneralTab(QWidget
* parent
/*= 0*/): QWidget(parent
)
20 // I'm thinking we should scan the bios folder for the 5 known BIOSes, and
21 // just present a radio button to choose between them...
22 // (BIOS is built-in now...)
23 // QLabel * label1 = new QLabel("Boot ROM:");
24 // QLabel * label2 = new QLabel("CD Boot ROM:");
25 QLabel
* label3
= new QLabel("EEPROMs:");
26 QLabel
* label4
= new QLabel("Software:");
28 // edit1 = new QLineEdit("");
29 // edit2 = new QLineEdit("");
30 edit3
= new QLineEdit("");
31 edit4
= new QLineEdit("");
32 // edit1->setPlaceholderText("Boot ROM location");
33 // edit2->setPlaceholderText("CD Boot ROM location");
34 edit3
->setPlaceholderText("EEPROM path");
35 edit4
->setPlaceholderText("Software path");
37 QVBoxLayout
* layout1
= new QVBoxLayout
;
38 // layout1->addWidget(label1);
39 // layout1->addWidget(label2);
40 layout1
->addWidget(label3
);
41 layout1
->addWidget(label4
);
43 QVBoxLayout
* layout2
= new QVBoxLayout
;
44 // layout2->addWidget(edit1);
45 // layout2->addWidget(edit2);
46 layout2
->addWidget(edit3
);
47 layout2
->addWidget(edit4
);
49 QHBoxLayout
* layout3
= new QHBoxLayout
;
50 layout3
->addLayout(layout1
);
51 layout3
->addLayout(layout2
);
53 QVBoxLayout
* layout4
= new QVBoxLayout
;
54 layout4
->addLayout(layout3
);
57 useBIOS
= new QCheckBox(tr("Enable Jaguar BIOS"));
58 useGPU
= new QCheckBox(tr("Enable GPU"));
59 useDSP
= new QCheckBox(tr("Enable DSP"));
60 useFullScreen
= new QCheckBox(tr("Start Virtual Jaguar in full screen"));
61 // useHostAudio = new QCheckBox(tr("Enable audio playback (requires DSP)"));
62 useUnknownSoftware
= new QCheckBox(tr("Show all files in file chooser"));
63 useFastBlitter
= new QCheckBox(tr("Use fast blitter"));
65 layout4
->addWidget(useBIOS
);
66 layout4
->addWidget(useGPU
);
67 layout4
->addWidget(useDSP
);
68 layout4
->addWidget(useFullScreen
);
69 // layout4->addWidget(useHostAudio);
70 layout4
->addWidget(useUnknownSoftware
);
71 layout4
->addWidget(useFastBlitter
);
77 GeneralTab::~GeneralTab()
82 // Load / Update the tabs dialog from the settings
83 void GeneralTab::GetSettings(void)
85 // generalTab->edit1->setText(vjs.jagBootPath);
86 // generalTab->edit2->setText(vjs.CDBootPath);
87 edit3
->setText(vjs
.EEPROMPath
);
88 edit4
->setText(vjs
.ROMPath
);
89 useBIOS
->setChecked(vjs
.useJaguarBIOS
);
90 useGPU
->setChecked(vjs
.GPUEnabled
);
91 useDSP
->setChecked(vjs
.DSPEnabled
);
92 useFullScreen
->setChecked(vjs
.fullscreen
);
93 // generalTab->useHostAudio->setChecked(vjs.audioEnabled);
94 useFastBlitter
->setChecked(vjs
.useFastBlitter
);
98 // Save / Update the settings from the tabs dialog
99 void GeneralTab::SetSettings(void)
101 // strcpy(vjs.jagBootPath, generalTab->edit1->text().toAscii().data());
102 // strcpy(vjs.CDBootPath, generalTab->edit2->text().toAscii().data());
103 strcpy(vjs
.EEPROMPath
, CheckForTrailingSlash(edit3
->text()).toUtf8().data());
104 strcpy(vjs
.ROMPath
, CheckForTrailingSlash(edit4
->text()).toUtf8().data());
106 vjs
.useJaguarBIOS
= useBIOS
->isChecked();
107 vjs
.GPUEnabled
= useGPU
->isChecked();
108 vjs
.DSPEnabled
= useDSP
->isChecked();
109 vjs
.fullscreen
= useFullScreen
->isChecked();
110 // vjs.audioEnabled = generalTab->useHostAudio->isChecked();
111 vjs
.useFastBlitter
= useFastBlitter
->isChecked();
115 // Append a slash or a backslash at the end of the string
116 QString
GeneralTab::CheckForTrailingSlash(QString s
)
118 if (!s
.endsWith('/') && !s
.endsWith('\\'))
126 vjs
.useJoystick
= settings
.value("useJoystick", false).toBool();
127 vjs
.joyport
= settings
.value("joyport", 0).toInt();
128 vjs
.frameSkip
= settings
.value("frameSkip", 0).toInt();
129 vjs
.useJaguarBIOS
= settings
.value("useJaguarBIOS", false).toBool();
130 vjs
.DSPEnabled
= settings
.value("DSPEnabled", false).toBool();
131 vjs
.usePipelinedDSP
= settings
.value("usePipelinedDSP", false).toBool();
132 vjs
.fullscreen
= settings
.value("fullscreen", false).toBool();
133 vjs
.renderType
= settings
.value("renderType", 0).toInt();
134 strcpy(vjs
.jagBootPath
, settings
.value("JagBootROM", "./bios/[BIOS] Atari Jaguar (USA, Europe).zip").toString().toAscii().data());
135 strcpy(vjs
.CDBootPath
, settings
.value("CDBootROM", "./bios/jagcd.rom").toString().toAscii().data());
136 strcpy(vjs
.EEPROMPath
, settings
.value("EEPROMs", "./eeproms").toString().toAscii().data());
137 strcpy(vjs
.ROMPath
, settings
.value("ROMs", "./software").toString().toAscii().data());