Commit | Line | Data |
---|---|---|
cf76e892 JPM |
1 | // |
2 | // generaltab.cpp: "General" tab on the settings dialog | |
3 | // | |
4 | // Part of the Virtual Jaguar Project | |
5 | // (C) 2011 Underground Software | |
6 | // See the README and GPLv3 files for licensing and warranty information | |
7 | // | |
8 | // JLH = James Hammons <jlhamm@acm.org> | |
9 | // | |
10 | // WHO WHEN WHAT | |
11 | // --- ---------- ------------------------------------------------------------ | |
12 | // JLH 06/23/2011 Created this file | |
13 | ||
14 | #include "generaltab.h" | |
024bfc46 | 15 | #include "settings.h" |
cf76e892 JPM |
16 | |
17 | ||
18 | GeneralTab::GeneralTab(QWidget * parent/*= 0*/): QWidget(parent) | |
19 | { | |
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:"); | |
27 | ||
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"); | |
36 | ||
37 | QVBoxLayout * layout1 = new QVBoxLayout; | |
38 | // layout1->addWidget(label1); | |
39 | // layout1->addWidget(label2); | |
40 | layout1->addWidget(label3); | |
41 | layout1->addWidget(label4); | |
42 | ||
43 | QVBoxLayout * layout2 = new QVBoxLayout; | |
44 | // layout2->addWidget(edit1); | |
45 | // layout2->addWidget(edit2); | |
46 | layout2->addWidget(edit3); | |
47 | layout2->addWidget(edit4); | |
48 | ||
49 | QHBoxLayout * layout3 = new QHBoxLayout; | |
50 | layout3->addLayout(layout1); | |
51 | layout3->addLayout(layout2); | |
52 | ||
53 | QVBoxLayout * layout4 = new QVBoxLayout; | |
54 | layout4->addLayout(layout3); | |
55 | ||
56 | // Checkboxes... | |
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")); | |
64 | ||
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); | |
72 | ||
73 | setLayout(layout4); | |
74 | } | |
75 | ||
024bfc46 | 76 | |
cf76e892 JPM |
77 | GeneralTab::~GeneralTab() |
78 | { | |
79 | } | |
80 | ||
024bfc46 JPM |
81 | |
82 | // Load / Update the tabs dialog from the settings | |
83 | void GeneralTab::GetSettings(void) | |
84 | { | |
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); | |
95 | } | |
96 | ||
97 | ||
98 | // Save / Update the settings from the tabs dialog | |
99 | void GeneralTab::SetSettings(void) | |
100 | { | |
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()); | |
105 | ||
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(); | |
112 | } | |
113 | ||
114 | ||
115 | // Append a slash or a backslash at the end of the string | |
116 | QString GeneralTab::CheckForTrailingSlash(QString s) | |
117 | { | |
118 | if (!s.endsWith('/') && !s.endsWith('\\')) | |
119 | s.append('/'); | |
120 | ||
121 | return s; | |
122 | } | |
123 | ||
124 | ||
cf76e892 JPM |
125 | #if 0 |
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()); | |
138 | #endif |