1 #include "arcadesettings.h"
2 #include "macros.h"
3
4 extern int emulatorMode;
5 extern QStringList argumentList;
6
ArcadeSettings(QString theme)7 ArcadeSettings::ArcadeSettings(QString theme)
8 : Settings(QSettings::IniFormat, QSettings::UserScope, QMC2_ARCADE_APP_NAME)
9 {
10 arcadeTheme = theme;
11 switch ( emulatorMode ) {
12 case QMC2_ARCADE_EMUMODE_MAME:
13 default:
14 frontEndPrefix = "Frontend";
15 emulatorPrefix = "MAME";
16 break;
17 }
18 languageMap["de"] = QLocale::German;
19 languageMap["es"] = QLocale::Spanish;
20 languageMap["fr"] = QLocale::French;
21 languageMap["el"] = QLocale::Greek;
22 languageMap["it"] = QLocale::Italian;
23 languageMap["pl"] = QLocale::Polish;
24 languageMap["pt"] = QLocale::Portuguese;
25 languageMap["ro"] = QLocale::Romanian;
26 languageMap["sv"] = QLocale::Swedish;
27 languageMap["us"] = QLocale::English;
28
29 // theme-specific default values (add only if different from global default)
30 m_themeDefaults["darkone"]["sortByName"] = true;
31
32 m_parentFallbackKeys["prv"] = emulatorPrefix + "/FilesAndDirectories/PreviewFallback";
33 m_parentFallbackKeys["fly"] = emulatorPrefix + "/FilesAndDirectories/FlyerFallback";
34 m_parentFallbackKeys["cab"] = emulatorPrefix + "/FilesAndDirectories/CabinetFallback";
35 m_parentFallbackKeys["ctl"] = emulatorPrefix + "/FilesAndDirectories/ControllerFallback";
36 m_parentFallbackKeys["mrq"] = emulatorPrefix + "/FilesAndDirectories/MarqueeFallback";
37 m_parentFallbackKeys["ttl"] = emulatorPrefix + "/FilesAndDirectories/TitleFallback";
38 m_parentFallbackKeys["pcb"] = emulatorPrefix + "/FilesAndDirectories/PCBFallback";
39 m_parentFallbackKeys["sws"] = emulatorPrefix + "/FilesAndDirectories/SoftwareSnapFallback";
40 m_parentFallbackKeys["vdo"] = emulatorPrefix + "/FilesAndDirectories/VideoFallback";
41 m_parentFallbackKeys["ico"] = emulatorPrefix + "/FilesAndDirectories/IconFallback";
42 }
43
~ArcadeSettings()44 ArcadeSettings::~ArcadeSettings()
45 {
46 sync();
47 }
48
languageToString(QLocale::Language lang)49 QString ArcadeSettings::languageToString(QLocale::Language lang)
50 {
51 QString langStr = languageMap.key(lang);
52 if ( !langStr.isEmpty() )
53 return langStr;
54 else
55 return "us";
56 }
57
languageFromString(QString lang)58 QLocale::Language ArcadeSettings::languageFromString(QString lang)
59 {
60 if ( languageMap.contains(lang) )
61 return languageMap[lang];
62 else
63 return QLocale::English;
64 }
65
keySequenceMapBaseKey()66 QString ArcadeSettings::keySequenceMapBaseKey()
67 {
68 return QString("Arcade/%1/keySequenceMap").arg(arcadeTheme);
69 }
70
71 #if defined(QMC2_ARCADE_ENABLE_JOYSTICK)
joyFunctionMapBaseKey()72 QString ArcadeSettings::joyFunctionMapBaseKey()
73 {
74 return QString("Arcade/%1/joyFunctionMap").arg(arcadeTheme);
75 }
76 #endif
77
emulatorName()78 QString ArcadeSettings::emulatorName()
79 {
80 switch ( emulatorMode ) {
81 case QMC2_ARCADE_EMUMODE_MAME:
82 default:
83 return QString("MAME");
84 }
85 }
86
configPath()87 QString ArcadeSettings::configPath()
88 {
89 QDir cd(QMC2_ARCADE_DYN_DOT_PATH);
90 cd.makeAbsolute();
91 return cd.absolutePath();
92 }
93
setApplicationVersion(QString version)94 void ArcadeSettings::setApplicationVersion(QString version)
95 {
96 setValue("Arcade/Version", version);
97 }
98
applicationVersion()99 QString ArcadeSettings::applicationVersion()
100 {
101 return value("Arcade/Version", QMC2_ARCADE_APP_VERSION).toString();
102 }
103
setViewerGeometry(QByteArray geom)104 void ArcadeSettings::setViewerGeometry(QByteArray geom)
105 {
106 setValue("Arcade/ViewerGeometry", geom);
107 }
108
viewerGeometry()109 QByteArray ArcadeSettings::viewerGeometry()
110 {
111 return value("Arcade/ViewerGeometry", QByteArray()).toByteArray();
112 }
113
setViewerMaximized(bool maximized)114 void ArcadeSettings::setViewerMaximized(bool maximized)
115 {
116 setValue("Arcade/ViewerMaximized", maximized);
117 }
118
viewerMaximized()119 bool ArcadeSettings::viewerMaximized()
120 {
121 return value("Arcade/ViewerMaximized", false).toBool();
122 }
123
setConsoleGeometry(QByteArray geom)124 void ArcadeSettings::setConsoleGeometry(QByteArray geom)
125 {
126 setValue("Arcade/ConsoleGeometry", geom);
127 }
128
consoleGeometry()129 QByteArray ArcadeSettings::consoleGeometry()
130 {
131 return value("Arcade/ConsoleGeometry", QByteArray()).toByteArray();
132 }
133
setUseFilteredList(bool use)134 void ArcadeSettings::setUseFilteredList(bool use)
135 {
136 setValue(QString("Arcade/%1/UseFilteredList").arg(emulatorPrefix), use);
137 }
138
useFilteredList()139 bool ArcadeSettings::useFilteredList()
140 {
141 return value(QString("Arcade/%1/UseFilteredList").arg(emulatorPrefix), false).toBool();
142 }
143
setFilteredListFile(QString fileName)144 void ArcadeSettings::setFilteredListFile(QString fileName)
145 {
146 setValue(QString("Arcade/%1/FilteredListFile").arg(emulatorPrefix), fileName);
147 }
148
filteredListFile()149 QString ArcadeSettings::filteredListFile()
150 {
151 return value(QString("Arcade/%1/FilteredListFile").arg(emulatorPrefix), QString()).toString();
152 }
153
setDefaultTheme(QString theme)154 void ArcadeSettings::setDefaultTheme(QString theme)
155 {
156 setValue(QString("%1/Arcade/Theme").arg(frontEndPrefix), theme);
157 }
158
defaultTheme()159 QString ArcadeSettings::defaultTheme()
160 {
161 return value(QString("%1/Arcade/Theme").arg(frontEndPrefix), "ToxicWaste").toString();
162 }
163
setDefaultConsoleType(QString consoleType)164 void ArcadeSettings::setDefaultConsoleType(QString consoleType)
165 {
166 setValue(QString("%1/Arcade/ConsoleType").arg(frontEndPrefix), consoleType);
167 }
168
defaultConsoleType()169 QString ArcadeSettings::defaultConsoleType()
170 {
171 return value(QString("%1/Arcade/ConsoleType").arg(frontEndPrefix), "terminal").toString();
172 }
173
174 #if QT_VERSION < 0x050000
setDefaultGraphicsSystem(QString graphicsSystem)175 void ArcadeSettings::setDefaultGraphicsSystem(QString graphicsSystem)
176 {
177 setValue(QString("%1/Arcade/GraphicsSystem").arg(frontEndPrefix), graphicsSystem);
178 }
179
defaultGraphicsSystem()180 QString ArcadeSettings::defaultGraphicsSystem()
181 {
182 return value(QString("%1/Arcade/GraphicsSystem").arg(frontEndPrefix), "raster").toString();
183 }
184 #endif
185
setDefaultLanguage(QString lang)186 void ArcadeSettings::setDefaultLanguage(QString lang)
187 {
188 setValue(QString("%1/GUI/Language").arg(frontEndPrefix), lang);
189 }
190
defaultLanguage()191 QString ArcadeSettings::defaultLanguage()
192 {
193 return value(QString("%1/GUI/Language").arg(frontEndPrefix), "us").toString();
194 }
195
setDefaultFont(QString font)196 void ArcadeSettings::setDefaultFont(QString font)
197 {
198 setValue(QString("%1/GUI/Font").arg(frontEndPrefix), font);
199 }
200
defaultFont()201 QString ArcadeSettings::defaultFont()
202 {
203 return value(QString("%1/GUI/Font").arg(frontEndPrefix)).toString();
204 }
205
setDefaultVideo(QString vdo)206 void ArcadeSettings::setDefaultVideo(QString vdo)
207 {
208 setValue(QString("%1/Arcade/Video").arg(frontEndPrefix), vdo);
209 }
210
defaultVideo()211 QString ArcadeSettings::defaultVideo()
212 {
213 return value(QString("%1/Arcade/Video").arg(frontEndPrefix), "off").toString();
214 }
215
setFpsVisible(bool visible)216 void ArcadeSettings::setFpsVisible(bool visible)
217 {
218 setValue(QString("Arcade/%1/fpsVisible").arg(arcadeTheme), visible);
219 }
220
fpsVisible()221 bool ArcadeSettings::fpsVisible()
222 {
223 return value(QString("Arcade/%1/fpsVisible").arg(arcadeTheme), false).toBool();
224 }
225
setShowBackgroundAnimation(bool show)226 void ArcadeSettings::setShowBackgroundAnimation(bool show)
227 {
228 setValue(QString("Arcade/%1/showBackgroundAnimation").arg(arcadeTheme), show);
229 }
230
showBackgroundAnimation()231 bool ArcadeSettings::showBackgroundAnimation()
232 {
233 return value(QString("Arcade/%1/showBackgroundAnimation").arg(arcadeTheme), false).toBool();
234 }
235
setAnimateInForeground(bool foreground)236 void ArcadeSettings::setAnimateInForeground(bool foreground)
237 {
238 setValue(QString("Arcade/%1/animateInForeground").arg(arcadeTheme), foreground);
239 }
240
animateInForeground()241 bool ArcadeSettings::animateInForeground()
242 {
243 return value(QString("Arcade/%1/animateInForeground").arg(arcadeTheme), false).toBool();
244 }
245
setFullScreen(bool fullScreen)246 void ArcadeSettings::setFullScreen(bool fullScreen)
247 {
248 setValue(QString("Arcade/%1/fullScreen").arg(arcadeTheme), fullScreen);
249 }
250
fullScreen()251 bool ArcadeSettings::fullScreen()
252 {
253 return value(QString("Arcade/%1/fullScreen").arg(arcadeTheme), false).toBool();
254 }
255
setSecondaryImageType(QString imageType)256 void ArcadeSettings::setSecondaryImageType(QString imageType)
257 {
258 setValue(QString("Arcade/%1/secondaryImageType").arg(arcadeTheme), imageType);
259 }
260
secondaryImageType()261 QString ArcadeSettings::secondaryImageType()
262 {
263 return value(QString("Arcade/%1/secondaryImageType").arg(arcadeTheme), "preview").toString();
264 }
265
setCabinetFlipped(bool flipped)266 void ArcadeSettings::setCabinetFlipped(bool flipped)
267 {
268 setValue(QString("Arcade/%1/cabinetFlipped").arg(arcadeTheme), flipped);
269 }
270
cabinetFlipped()271 bool ArcadeSettings::cabinetFlipped()
272 {
273 return value(QString("Arcade/%1/cabinetFlipped").arg(arcadeTheme), false).toBool();
274 }
275
setLastIndex(int index)276 void ArcadeSettings::setLastIndex(int index)
277 {
278 setValue(QString("Arcade/%1/lastIndex").arg(emulatorPrefix), index);
279 }
280
lastIndex()281 int ArcadeSettings::lastIndex()
282 {
283 return value(QString("Arcade/%1/lastIndex").arg(emulatorPrefix), 0).toInt();
284 }
285
setMenuHidden(bool hidden)286 void ArcadeSettings::setMenuHidden(bool hidden)
287 {
288 setValue(QString("Arcade/%1/menuHidden").arg(arcadeTheme), hidden);
289 }
290
menuHidden()291 bool ArcadeSettings::menuHidden()
292 {
293 return value(QString("Arcade/%1/menuHidden").arg(arcadeTheme), false).toBool();
294 }
295
setShowShaderEffect(bool show)296 void ArcadeSettings::setShowShaderEffect(bool show)
297 {
298 setValue(QString("Arcade/%1/showShaderEffect").arg(arcadeTheme), show);
299 }
300
showShaderEffect()301 bool ArcadeSettings::showShaderEffect()
302 {
303 return value(QString("Arcade/%1/showShaderEffect").arg(arcadeTheme), false).toBool();
304 }
305
setConfirmQuit(bool confirm)306 void ArcadeSettings::setConfirmQuit(bool confirm)
307 {
308 setValue(QString("Arcade/%1/confirmQuit").arg(arcadeTheme), confirm);
309 }
310
confirmQuit()311 bool ArcadeSettings::confirmQuit()
312 {
313 return value(QString("Arcade/%1/confirmQuit").arg(arcadeTheme), true).toBool();
314 }
315
setMachineCardPage(int page)316 void ArcadeSettings::setMachineCardPage(int page)
317 {
318 setValue(QString("Arcade/%1/machineCardPage").arg(arcadeTheme), page);
319 }
320
machineCardPage()321 int ArcadeSettings::machineCardPage()
322 {
323 return value(QString("Arcade/%1/machineCardPage").arg(arcadeTheme), 0).toInt();
324 }
325
setPreferencesTab(int tab)326 void ArcadeSettings::setPreferencesTab(int tab)
327 {
328 setValue(QString("Arcade/%1/preferencesTab").arg(arcadeTheme), tab);
329 }
330
preferencesTab()331 int ArcadeSettings::preferencesTab()
332 {
333 return value(QString("Arcade/%1/preferencesTab").arg(arcadeTheme), 0).toInt();
334 }
335
setAutoPositionOverlay(bool autoPosition)336 void ArcadeSettings::setAutoPositionOverlay(bool autoPosition)
337 {
338 setValue(QString("Arcade/%1/autoPositionOverlay").arg(arcadeTheme), autoPosition);
339 }
340
autoPositionOverlay()341 bool ArcadeSettings::autoPositionOverlay()
342 {
343 return value(QString("Arcade/%1/autoPositionOverlay").arg(arcadeTheme), true).toBool();
344 }
345
setOverlayOffsetX(double offset)346 void ArcadeSettings::setOverlayOffsetX(double offset)
347 {
348 setValue(QString("Arcade/%1/overlayOffsetX").arg(arcadeTheme), offset);
349 }
350
overlayOffsetX()351 double ArcadeSettings::overlayOffsetX()
352 {
353 return value(QString("Arcade/%1/overlayOffsetX").arg(arcadeTheme), 0).toDouble();
354 }
355
setOverlayOffsetY(double offset)356 void ArcadeSettings::setOverlayOffsetY(double offset)
357 {
358 setValue(QString("Arcade/%1/overlayOffsetY").arg(arcadeTheme), offset);
359 }
360
overlayOffsetY()361 double ArcadeSettings::overlayOffsetY()
362 {
363 return value(QString("Arcade/%1/overlayOffsetY").arg(arcadeTheme), 0).toDouble();
364 }
365
setOverlayOpacity(double opacity)366 void ArcadeSettings::setOverlayOpacity(double opacity)
367 {
368 setValue(QString("Arcade/%1/overlayOpacity").arg(arcadeTheme), opacity);
369 }
370
overlayOpacity()371 double ArcadeSettings::overlayOpacity()
372 {
373 return value(QString("Arcade/%1/overlayOpacity").arg(arcadeTheme), 1).toDouble();
374 }
375
setBackgroundOpacity(double opacity)376 void ArcadeSettings::setBackgroundOpacity(double opacity)
377 {
378 setValue(QString("Arcade/%1/backgroundOpacity").arg(arcadeTheme), opacity);
379 }
380
backgroundOpacity()381 double ArcadeSettings::backgroundOpacity()
382 {
383 return value(QString("Arcade/%1/backgroundOpacity").arg(arcadeTheme), 1).toDouble();
384 }
385
setMachineListOpacity(double opacity)386 void ArcadeSettings::setMachineListOpacity(double opacity)
387 {
388 setValue(QString("Arcade/%1/machineListOpacity").arg(arcadeTheme), opacity);
389 }
390
machineListOpacity()391 double ArcadeSettings::machineListOpacity()
392 {
393 return value(QString("Arcade/%1/machineListOpacity").arg(arcadeTheme), 1).toDouble();
394 }
395
setCabinetImageType(QString imageType)396 void ArcadeSettings::setCabinetImageType(QString imageType)
397 {
398 setValue(QString("Arcade/%1/cabinetImageType").arg(arcadeTheme), imageType);
399 }
400
cabinetImageType()401 QString ArcadeSettings::cabinetImageType()
402 {
403 return value(QString("Arcade/%1/cabinetImageType").arg(arcadeTheme), "preview").toString();
404 }
405
setAutoStopAnimations(bool autoStop)406 void ArcadeSettings::setAutoStopAnimations(bool autoStop)
407 {
408 setValue(QString("Arcade/%1/autoStopAnimations").arg(arcadeTheme), autoStop);
409 }
410
autoStopAnimations()411 bool ArcadeSettings::autoStopAnimations()
412 {
413 return value(QString("Arcade/%1/autoStopAnimations").arg(arcadeTheme), true).toBool();
414 }
415
videoPlayerVolume()416 double ArcadeSettings::videoPlayerVolume()
417 {
418 return value(QString("Arcade/%1/videoPlayerVolume").arg(arcadeTheme), 0.5).toDouble();
419 }
420
setVideoPlayerVolume(double volume)421 void ArcadeSettings::setVideoPlayerVolume(double volume)
422 {
423 setValue(QString("Arcade/%1/videoPlayerVolume").arg(arcadeTheme), volume);
424 }
425
videoAutoPlayTimeout()426 int ArcadeSettings::videoAutoPlayTimeout()
427 {
428 return value(QString("Arcade/%1/videoAutoPlayTimeout").arg(arcadeTheme), -1).toInt();
429 }
430
setVideoAutoPlayTimeout(int timeout)431 void ArcadeSettings::setVideoAutoPlayTimeout(int timeout)
432 {
433 setValue(QString("Arcade/%1/videoAutoPlayTimeout").arg(arcadeTheme), timeout);
434 }
435
setToolbarHidden(bool hidden)436 void ArcadeSettings::setToolbarHidden(bool hidden)
437 {
438 setValue(QString("Arcade/%1/toolbarHidden").arg(arcadeTheme), hidden);
439 }
440
toolbarHidden()441 bool ArcadeSettings::toolbarHidden()
442 {
443 return value(QString("Arcade/%1/toolbarHidden").arg(arcadeTheme), false).toBool();
444 }
445
setListHidden(bool hidden)446 void ArcadeSettings::setListHidden(bool hidden)
447 {
448 setValue(QString("Arcade/%1/listHidden").arg(arcadeTheme), hidden);
449 }
450
listHidden()451 bool ArcadeSettings::listHidden()
452 {
453 return value(QString("Arcade/%1/listHidden").arg(arcadeTheme), false).toBool();
454 }
455
setSortByName(bool sortByName)456 void ArcadeSettings::setSortByName(bool sortByName)
457 {
458 setValue(QString("Arcade/%1/sortByName").arg(arcadeTheme), sortByName);
459 }
460
sortByName()461 bool ArcadeSettings::sortByName()
462 {
463 return value(QString("Arcade/%1/sortByName").arg(arcadeTheme), m_themeDefaults[arcadeTheme]["sortByName"].toBool()).toBool();
464 }
465
setToolbarAutoHide(bool toolbarAutoHide)466 void ArcadeSettings::setToolbarAutoHide(bool toolbarAutoHide)
467 {
468 setValue(QString("Arcade/%1/toolbarAutoHide").arg(arcadeTheme), toolbarAutoHide);
469 }
toolbarAutoHide()470 bool ArcadeSettings::toolbarAutoHide()
471 {
472 return value(QString("Arcade/%1/toolbarAutoHide").arg(arcadeTheme), true).toBool();
473 }
474
setScreenLight(bool screenLight)475 void ArcadeSettings::setScreenLight(bool screenLight)
476 {
477 setValue(QString("Arcade/%1/screenLight").arg(arcadeTheme), screenLight);
478 }
screenLight()479 bool ArcadeSettings::screenLight()
480 {
481 return value(QString("Arcade/%1/screenLight").arg(arcadeTheme), false).toBool();
482 }
483
setScreenLightOpacity(double screenLightOpacity)484 void ArcadeSettings::setScreenLightOpacity(double screenLightOpacity)
485 {
486 setValue(QString("Arcade/%1/screenLightOpacity").arg(arcadeTheme), screenLightOpacity);
487 }
screenLightOpacity()488 double ArcadeSettings::screenLightOpacity()
489 {
490 return value(QString("Arcade/%1/screenLightOpacity").arg(arcadeTheme), 0.5).toDouble();
491 }
492
setBackLight(bool backLight)493 void ArcadeSettings::setBackLight(bool backLight)
494 {
495 setValue(QString("Arcade/%1/backLight").arg(arcadeTheme), backLight);
496 }
backLight()497 bool ArcadeSettings::backLight()
498 {
499 return value(QString("Arcade/%1/backLight").arg(arcadeTheme), false).toBool();
500 }
501
setBackLightOpacity(double backLightOpacity)502 void ArcadeSettings::setBackLightOpacity(double backLightOpacity)
503 {
504 setValue(QString("Arcade/%1/backLightOpacity").arg(arcadeTheme), backLightOpacity);
505 }
backLightOpacity()506 double ArcadeSettings::backLightOpacity()
507 {
508 return value(QString("Arcade/%1/backLightOpacity").arg(arcadeTheme), 0.75).toDouble();
509 }
510
setLaunchFlash(bool launchFlash)511 void ArcadeSettings::setLaunchFlash(bool launchFlash)
512 {
513 setValue(QString("Arcade/%1/launchFlash").arg(arcadeTheme), launchFlash);
514 }
launchFlash()515 bool ArcadeSettings::launchFlash()
516 {
517 return value(QString("Arcade/%1/launchFlash").arg(arcadeTheme), true).toBool();
518 }
519
setLaunchZoom(bool launchZoom)520 void ArcadeSettings::setLaunchZoom(bool launchZoom)
521 {
522 setValue(QString("Arcade/%1/launchZoom").arg(arcadeTheme), launchZoom);
523 }
launchZoom()524 bool ArcadeSettings::launchZoom()
525 {
526 return value(QString("Arcade/%1/launchZoom").arg(arcadeTheme), true).toBool();
527 }
528
setOverlayScale(double overlayScale)529 void ArcadeSettings::setOverlayScale(double overlayScale)
530 {
531 setValue(QString("Arcade/%1/overlayScale").arg(arcadeTheme), overlayScale);
532 }
overlayScale()533 double ArcadeSettings::overlayScale()
534 {
535 return value(QString("Arcade/%1/overlayScale").arg(arcadeTheme), 1.0).toDouble();
536 }
537
setLightTimeout(double lightTimeout)538 void ArcadeSettings::setLightTimeout(double lightTimeout)
539 {
540 setValue(QString("Arcade/%1/lightTimeout").arg(arcadeTheme), lightTimeout);
541 }
lightTimeout()542 double ArcadeSettings::lightTimeout()
543 {
544 return value(QString("Arcade/%1/lightTimeout").arg(arcadeTheme), 60).toDouble();
545 }
546
setDataTypePrimary(QString dataTypePrimary)547 void ArcadeSettings::setDataTypePrimary(QString dataTypePrimary)
548 {
549 setValue(QString("Arcade/%1/dataTypePrimary").arg(arcadeTheme), dataTypePrimary);
550 }
dataTypePrimary()551 QString ArcadeSettings::dataTypePrimary()
552 {
553 return value(QString("Arcade/%1/dataTypePrimary").arg(arcadeTheme), "title").toString();
554 }
555
setDataTypeSecondary(QString dataTypeSecondary)556 void ArcadeSettings::setDataTypeSecondary(QString dataTypeSecondary)
557 {
558 setValue(QString("Arcade/%1/dataTypeSecondary").arg(arcadeTheme), dataTypeSecondary);
559 }
dataTypeSecondary()560 QString ArcadeSettings::dataTypeSecondary()
561 {
562 return value(QString("Arcade/%1/dataTypeSecondary").arg(arcadeTheme), "preview").toString();
563 }
564
setColourScheme(QString colourScheme)565 void ArcadeSettings::setColourScheme(QString colourScheme)
566 {
567 setValue(QString("Arcade/%1/colourScheme").arg(arcadeTheme), colourScheme);
568 }
colourScheme()569 QString ArcadeSettings::colourScheme()
570 {
571 return value(QString("Arcade/%1/colourScheme").arg(arcadeTheme), "dark").toString();
572 }
573
gameListCacheFile()574 QString ArcadeSettings::gameListCacheFile()
575 {
576 return value(QString("%1/FilesAndDirectories/MachineListCacheFile").arg(emulatorPrefix)).toString();
577 }
578
romStateCacheFile()579 QString ArcadeSettings::romStateCacheFile()
580 {
581 return value(QString("%1/FilesAndDirectories/ROMStateCacheFile").arg(emulatorPrefix)).toString();
582 }
583
previewsZipped()584 bool ArcadeSettings::previewsZipped()
585 {
586 return value(QString("%1/FilesAndDirectories/UsePreviewFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/PreviewFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ZIP);
587 }
588
previewsSevenZipped()589 bool ArcadeSettings::previewsSevenZipped()
590 {
591 return value(QString("%1/FilesAndDirectories/UsePreviewFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/PreviewFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_7Z);
592 }
593
previewsArchived()594 bool ArcadeSettings::previewsArchived()
595 {
596 return value(QString("%1/FilesAndDirectories/UsePreviewFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/PreviewFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ARCHIVE);
597 }
598
previewFile()599 QString ArcadeSettings::previewFile()
600 {
601 return value(QString("%1/FilesAndDirectories/PreviewFile").arg(emulatorPrefix)).toString();
602 }
603
previewFolder()604 QString ArcadeSettings::previewFolder()
605 {
606 return value(QString("%1/FilesAndDirectories/PreviewDirectory").arg(emulatorPrefix)).toString();
607 }
608
flyersZipped()609 bool ArcadeSettings::flyersZipped()
610 {
611 return value(QString("%1/FilesAndDirectories/UseFlyerFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/FlyerFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ZIP);
612 }
613
flyersSevenZipped()614 bool ArcadeSettings::flyersSevenZipped()
615 {
616 return value(QString("%1/FilesAndDirectories/UseFlyerFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/FlyerFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_7Z);
617 }
618
flyersArchived()619 bool ArcadeSettings::flyersArchived()
620 {
621 return value(QString("%1/FilesAndDirectories/UseFlyerFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/FlyerFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ARCHIVE);
622 }
623
flyerFile()624 QString ArcadeSettings::flyerFile()
625 {
626 return value(QString("%1/FilesAndDirectories/FlyerFile").arg(emulatorPrefix)).toString();
627 }
628
flyerFolder()629 QString ArcadeSettings::flyerFolder()
630 {
631 return value(QString("%1/FilesAndDirectories/FlyerDirectory").arg(emulatorPrefix)).toString();
632 }
633
cabinetsZipped()634 bool ArcadeSettings::cabinetsZipped()
635 {
636 return value(QString("%1/FilesAndDirectories/UseCabinetFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/CabinetFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ZIP);
637 }
638
cabinetsSevenZipped()639 bool ArcadeSettings::cabinetsSevenZipped()
640 {
641 return value(QString("%1/FilesAndDirectories/UseCabinetFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/CabinetFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_7Z);
642 }
643
cabinetsArchived()644 bool ArcadeSettings::cabinetsArchived()
645 {
646 return value(QString("%1/FilesAndDirectories/UseCabinetFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/CabinetFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ARCHIVE);
647 }
648
cabinetFile()649 QString ArcadeSettings::cabinetFile()
650 {
651 return value(QString("%1/FilesAndDirectories/CabinetFile").arg(emulatorPrefix)).toString();
652 }
653
cabinetFolder()654 QString ArcadeSettings::cabinetFolder()
655 {
656 return value(QString("%1/FilesAndDirectories/CabinetDirectory").arg(emulatorPrefix)).toString();
657 }
658
controllersZipped()659 bool ArcadeSettings::controllersZipped()
660 {
661 return value(QString("%1/FilesAndDirectories/UseControllerFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/ControllerFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ZIP);
662 }
663
controllersSevenZipped()664 bool ArcadeSettings::controllersSevenZipped()
665 {
666 return value(QString("%1/FilesAndDirectories/UseControllerFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/ControllerFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_7Z);
667 }
668
controllersArchived()669 bool ArcadeSettings::controllersArchived()
670 {
671 return value(QString("%1/FilesAndDirectories/UseControllerFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/ControllerFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ARCHIVE);
672 }
673
controllerFile()674 QString ArcadeSettings::controllerFile()
675 {
676 return value(QString("%1/FilesAndDirectories/ControllerFile").arg(emulatorPrefix)).toString();
677 }
678
controllerFolder()679 QString ArcadeSettings::controllerFolder()
680 {
681 return value(QString("%1/FilesAndDirectories/ControllerDirectory").arg(emulatorPrefix)).toString();
682 }
683
marqueesZipped()684 bool ArcadeSettings::marqueesZipped()
685 {
686 return value(QString("%1/FilesAndDirectories/UseMarqueeFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/MarqueeFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ZIP);
687 }
688
marqueesSevenZipped()689 bool ArcadeSettings::marqueesSevenZipped()
690 {
691 return value(QString("%1/FilesAndDirectories/UseMarqueeFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/MarqueeFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_7Z);
692 }
693
marqueesArchived()694 bool ArcadeSettings::marqueesArchived()
695 {
696 return value(QString("%1/FilesAndDirectories/UseMarqueeFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/MarqueeFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ARCHIVE);
697 }
698
marqueeFile()699 QString ArcadeSettings::marqueeFile()
700 {
701 return value(QString("%1/FilesAndDirectories/MarqueeFile").arg(emulatorPrefix)).toString();
702 }
703
marqueeFolder()704 QString ArcadeSettings::marqueeFolder()
705 {
706 return value(QString("%1/FilesAndDirectories/MarqueeDirectory").arg(emulatorPrefix)).toString();
707 }
708
titlesZipped()709 bool ArcadeSettings::titlesZipped()
710 {
711 return value(QString("%1/FilesAndDirectories/UseTitleFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/TitleFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ZIP);
712 }
713
titlesSevenZipped()714 bool ArcadeSettings::titlesSevenZipped()
715 {
716 return value(QString("%1/FilesAndDirectories/UseTitleFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/TitleFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_7Z);
717 }
718
titlesArchived()719 bool ArcadeSettings::titlesArchived()
720 {
721 return value(QString("%1/FilesAndDirectories/UseTitleFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/TitleFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ARCHIVE);
722 }
723
titleFile()724 QString ArcadeSettings::titleFile()
725 {
726 return value(QString("%1/FilesAndDirectories/TitleFile").arg(emulatorPrefix)).toString();
727 }
728
titleFolder()729 QString ArcadeSettings::titleFolder()
730 {
731 return value(QString("%1/FilesAndDirectories/TitleDirectory").arg(emulatorPrefix)).toString();
732 }
733
pcbsZipped()734 bool ArcadeSettings::pcbsZipped()
735 {
736 return value(QString("%1/FilesAndDirectories/UsePCBFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/PCBFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ZIP);
737 }
738
pcbsSevenZipped()739 bool ArcadeSettings::pcbsSevenZipped()
740 {
741 return value(QString("%1/FilesAndDirectories/UsePCBFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/PCBFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_7Z);
742 }
743
pcbsArchived()744 bool ArcadeSettings::pcbsArchived()
745 {
746 return value(QString("%1/FilesAndDirectories/UsePCBFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/PCBFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ARCHIVE);
747 }
748
pcbFile()749 QString ArcadeSettings::pcbFile()
750 {
751 return value(QString("%1/FilesAndDirectories/PCBFile").arg(emulatorPrefix)).toString();
752 }
753
pcbFolder()754 QString ArcadeSettings::pcbFolder()
755 {
756 return value(QString("%1/FilesAndDirectories/PCBDirectory").arg(emulatorPrefix)).toString();
757 }
758
swSnapsZipped()759 bool ArcadeSettings::swSnapsZipped()
760 {
761 return value(QString("%1/FilesAndDirectories/UseSoftwareSnapFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/SoftwareSnapFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ZIP);
762 }
763
swSnapsSevenZipped()764 bool ArcadeSettings::swSnapsSevenZipped()
765 {
766 return value(QString("%1/FilesAndDirectories/UseSoftwareSnapFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/SoftwareSnapFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_7Z);
767 }
768
swSnapsArchived()769 bool ArcadeSettings::swSnapsArchived()
770 {
771 return value(QString("%1/FilesAndDirectories/UseSoftwareSnapFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/SoftwareSnapFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ARCHIVE);
772 }
773
swSnapFile()774 QString ArcadeSettings::swSnapFile()
775 {
776 return value(QString("%1/FilesAndDirectories/SoftwareSnapFile").arg(emulatorPrefix)).toString();
777 }
778
swSnapFolder()779 QString ArcadeSettings::swSnapFolder()
780 {
781 return value(QString("%1/FilesAndDirectories/SoftwareSnapDirectory").arg(emulatorPrefix)).toString();
782 }
783
iconsZipped()784 bool ArcadeSettings::iconsZipped()
785 {
786 return value(QString("%1/FilesAndDirectories/UseIconFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/IconFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ZIP);
787 }
788
iconsSevenZipped()789 bool ArcadeSettings::iconsSevenZipped()
790 {
791 return value(QString("%1/FilesAndDirectories/UseIconFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/IconFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_7Z);
792 }
793
iconsArchived()794 bool ArcadeSettings::iconsArchived()
795 {
796 return value(QString("%1/FilesAndDirectories/UseIconFile").arg(emulatorPrefix)).toBool() && (value(QString("%1/FilesAndDirectories/IconFileType").arg(emulatorPrefix)).toInt() == QMC2_ARCADE_IMG_FILETYPE_ARCHIVE);
797 }
798
iconFile()799 QString ArcadeSettings::iconFile()
800 {
801 return value(QString("%1/FilesAndDirectories/IconFile").arg(emulatorPrefix)).toString();
802 }
803
iconFolder()804 QString ArcadeSettings::iconFolder()
805 {
806 return value(QString("%1/FilesAndDirectories/IconDirectory").arg(emulatorPrefix)).toString();
807 }
808
optionsTemplateFile()809 QString ArcadeSettings::optionsTemplateFile()
810 {
811 return value(QString("%1/FilesAndDirectories/OptionsTemplateFile").arg(emulatorPrefix)).toString();
812 }
813
emulatorExecutablePath()814 QString ArcadeSettings::emulatorExecutablePath()
815 {
816 return value(QString("%1/FilesAndDirectories/ExecutableFile").arg(emulatorPrefix)).toString();
817 }
818
emulatorWorkingDirectory()819 QString ArcadeSettings::emulatorWorkingDirectory()
820 {
821 return value(QString("%1/FilesAndDirectories/WorkingDirectory").arg(emulatorPrefix)).toString();
822 }
823
mameHistoryDat()824 QString ArcadeSettings::mameHistoryDat()
825 {
826 return value(QString("%1/FilesAndDirectories/MameHistoryDat").arg(frontEndPrefix)).toString();
827 }
828
messSysinfoDat()829 QString ArcadeSettings::messSysinfoDat()
830 {
831 return value(QString("%1/FilesAndDirectories/MessSysinfoDat").arg(frontEndPrefix)).toString();
832 }
833
mameInfoDat()834 QString ArcadeSettings::mameInfoDat()
835 {
836 return value(QString("%1/FilesAndDirectories/MameInfoDat").arg(frontEndPrefix)).toString();
837 }
838
messInfoDat()839 QString ArcadeSettings::messInfoDat()
840 {
841 return value(QString("%1/FilesAndDirectories/MessInfoDat").arg(frontEndPrefix)).toString();
842 }
843
softwareInfoDat()844 QString ArcadeSettings::softwareInfoDat()
845 {
846 return value(QString("%1/FilesAndDirectories/SoftwareInfoDB").arg(emulatorPrefix)).toString();
847 }
848
activeImageFormats(QString imageType)849 QStringList ArcadeSettings::activeImageFormats(QString imageType)
850 {
851 return value(QString("%1/ActiveImageFormats/%2").arg(frontEndPrefix).arg(imageType)).toStringList();
852 }
853
parentFallback()854 bool ArcadeSettings::parentFallback()
855 {
856 return value(QString("%1/GUI/ParentImageFallback").arg(frontEndPrefix)).toBool();
857 }
858
parentFallback(QString imageType)859 bool ArcadeSettings::parentFallback(QString imageType)
860 {
861 if ( parentFallback() ) {
862 if ( m_parentFallbackKeys.contains(imageType) )
863 return value(m_parentFallbackKeys[imageType], 0).toInt() == 0;
864 else
865 return value(QString("Artwork/%1/Fallback").arg(imageType), 0).toInt() == 0;
866 } else
867 return false;
868 }
869
videoSnapFolder()870 QString ArcadeSettings::videoSnapFolder()
871 {
872 return value(QString("%1/FilesAndDirectories/VideoSnapFolder").arg(emulatorPrefix)).toString();
873 }
874
875 #if defined(QMC2_ARCADE_ENABLE_JOYSTICK)
joystickAxisMinimum(int joystickIndex,int axis)876 int ArcadeSettings::joystickAxisMinimum(int joystickIndex, int axis)
877 {
878 return value(QString("%1/Joystick/%2/Axis%3Minimum").arg(frontEndPrefix).arg(joystickIndex).arg(axis), -32767).toInt();
879 }
880
joystickAxisMaximum(int joystickIndex,int axis)881 int ArcadeSettings::joystickAxisMaximum(int joystickIndex, int axis)
882 {
883 return value(QString("%1/Joystick/%2/Axis%3Maximum").arg(frontEndPrefix).arg(joystickIndex).arg(axis), 32768).toInt();
884 }
885
joystickAxisEnabled(int joystickIndex,int axis)886 bool ArcadeSettings::joystickAxisEnabled(int joystickIndex, int axis)
887 {
888 return value(QString("%1/Joystick/%2/Axis%3Enabled").arg(frontEndPrefix).arg(joystickIndex).arg(axis), true).toBool();
889 }
890
joystickIndex()891 int ArcadeSettings::joystickIndex()
892 {
893 return value(QString("%1/Joystick/Index").arg(frontEndPrefix), 0).toInt();
894 }
895
joystickEnabled()896 bool ArcadeSettings::joystickEnabled()
897 {
898 return value(QString("%1/Joystick/EnableJoystickControl").arg(frontEndPrefix), false).toBool();
899 }
900
joystickEventTimeout()901 int ArcadeSettings::joystickEventTimeout()
902 {
903 return value(QString("%1/Joystick/EventTimeout").arg(frontEndPrefix), 25).toInt();
904 }
905
joystickAutoRepeat()906 bool ArcadeSettings::joystickAutoRepeat()
907 {
908 return value(QString("%1/Joystick/AutoRepeat").arg(frontEndPrefix), true).toBool();
909 }
910
joystickAutoRepeatTimeout()911 int ArcadeSettings::joystickAutoRepeatTimeout()
912 {
913 return value(QString("%1/Joystick/AutoRepeatTimeout").arg(frontEndPrefix), 250).toInt();
914 }
915
joystickDeadzone(int joystickIndex,int axis)916 int ArcadeSettings::joystickDeadzone(int joystickIndex, int axis)
917 {
918 return value(QString("%1/Joystick/%2/Axis%3Deadzone").arg(frontEndPrefix).arg(joystickIndex).arg(axis), 0).toInt();
919 }
920
joystickSensitivity(int joystickIndex,int axis)921 int ArcadeSettings::joystickSensitivity(int joystickIndex, int axis)
922 {
923 return value(QString("%1/Joystick/%2/Axis%3Sensitivity").arg(frontEndPrefix).arg(joystickIndex).arg(axis), 0).toInt();
924 }
925 #endif
926
datInfoDatabaseName()927 QString ArcadeSettings::datInfoDatabaseName()
928 {
929 return value(QString("%1/FilesAndDirectories/DatInfoDatabase").arg(emulatorName().toLower()), QString(configPath() + "/%1-dat-info.db").arg(emulatorPrefix)).toString();
930 }
931
softwareInfoImportFiles()932 QStringList ArcadeSettings::softwareInfoImportFiles()
933 {
934 return value(QString("%1/DatInfoDatabase/SoftwareInfoImportFiles").arg(emulatorPrefix), QStringList()).toStringList();
935 }
936
setSoftwareInfoImportFiles(QStringList & files)937 void ArcadeSettings::setSoftwareInfoImportFiles(QStringList &files)
938 {
939 setValue(QString("%1/DatInfoDatabase/SoftwareInfoImportFiles").arg(emulatorPrefix), files);
940 }
941
removeSoftwareInfoImportFiles()942 void ArcadeSettings::removeSoftwareInfoImportFiles()
943 {
944 remove(QString("%1/DatInfoDatabase/SoftwareInfoImportFiles").arg(emulatorPrefix));
945 }
946
softwareInfoImportDates()947 QStringList ArcadeSettings::softwareInfoImportDates()
948 {
949 return value(QString("%1/DatInfoDatabase/SoftwareInfoImportDates").arg(emulatorPrefix), QStringList()).toStringList();
950 }
951
setSoftwareInfoImportDates(QStringList & dates)952 void ArcadeSettings::setSoftwareInfoImportDates(QStringList &dates)
953 {
954 setValue(QString("%1/DatInfoDatabase/SoftwareInfoImportDates").arg(emulatorPrefix), dates);
955 }
956
removeSoftwareInfoImportDates()957 void ArcadeSettings::removeSoftwareInfoImportDates()
958 {
959 remove(QString("%1/DatInfoDatabase/SoftwareInfoImportDates").arg(emulatorPrefix));
960 }
961
emuInfoImportFiles()962 QStringList ArcadeSettings::emuInfoImportFiles()
963 {
964 return value(QString("%1/DatInfoDatabase/EmuInfoImportFiles").arg(emulatorPrefix), QStringList()).toStringList();
965 }
966
setEmuInfoImportFiles(QStringList & files)967 void ArcadeSettings::setEmuInfoImportFiles(QStringList &files)
968 {
969 setValue(QString("%1/DatInfoDatabase/EmuInfoImportFiles").arg(emulatorPrefix), files);
970 }
971
removeEmuInfoImportFiles()972 void ArcadeSettings::removeEmuInfoImportFiles()
973 {
974 remove(QString("%1/DatInfoDatabase/EmuInfoImportFiles").arg(emulatorPrefix));
975 }
976
emuInfoImportDates()977 QStringList ArcadeSettings::emuInfoImportDates()
978 {
979 return value(QString("%1/DatInfoDatabase/EmuInfoImportDates").arg(emulatorPrefix), QStringList()).toStringList();
980 }
981
setEmuInfoImportDates(QStringList & dates)982 void ArcadeSettings::setEmuInfoImportDates(QStringList &dates)
983 {
984 setValue(QString("%1/DatInfoDatabase/EmuInfoImportDates").arg(emulatorPrefix), dates);
985 }
986
removeEmuInfoImportDates()987 void ArcadeSettings::removeEmuInfoImportDates()
988 {
989 remove(QString("%1/DatInfoDatabase/EmuInfoImportDates").arg(emulatorPrefix));
990 }
991
machineInfoImportFiles()992 QStringList ArcadeSettings::machineInfoImportFiles()
993 {
994 return value(QString("%1/DatInfoDatabase/MachineInfoImportFiles").arg(emulatorPrefix), QStringList()).toStringList();
995 }
996
setMachineInfoImportFiles(QStringList & files)997 void ArcadeSettings::setMachineInfoImportFiles(QStringList &files)
998 {
999 setValue(QString("%1/DatInfoDatabase/MachineInfoImportFiles").arg(emulatorPrefix), files);
1000 }
1001
removeMachineInfoImportFiles()1002 void ArcadeSettings::removeMachineInfoImportFiles()
1003 {
1004 remove(QString("%1/DatInfoDatabase/MachineInfoImportFiles").arg(emulatorPrefix));
1005 }
1006
machineInfoImportDates()1007 QStringList ArcadeSettings::machineInfoImportDates()
1008 {
1009 return value(QString("%1/DatInfoDatabase/MachineInfoImportDates").arg(emulatorPrefix), QStringList()).toStringList();
1010 }
1011
setMachineInfoImportDates(QStringList & dates)1012 void ArcadeSettings::setMachineInfoImportDates(QStringList &dates)
1013 {
1014 setValue(QString("%1/DatInfoDatabase/MachineInfoImportDates").arg(emulatorPrefix), dates);
1015 }
1016
removeMachineInfoImportDates()1017 void ArcadeSettings::removeMachineInfoImportDates()
1018 {
1019 remove(QString("%1/DatInfoDatabase/MachineInfoImportDates").arg(emulatorPrefix));
1020 }
1021
iconCacheDatabaseEnabled()1022 bool ArcadeSettings::iconCacheDatabaseEnabled()
1023 {
1024 return value(QString("%1/IconCacheDatabase/Enabled").arg(emulatorPrefix)).toBool();
1025 }
1026
iconCacheDatabaseName()1027 QString ArcadeSettings::iconCacheDatabaseName()
1028 {
1029 return value(QString("%1/FilesAndDirectories/IconCacheDatabase").arg(frontEndPrefix), QString(configPath() + "/%1-icon-cache.db").arg(emulatorName())).toString();
1030 }
1031
iconCacheImportPaths()1032 QStringList ArcadeSettings::iconCacheImportPaths()
1033 {
1034 return value(QString("%1/IconCacheDatabase/ImportPaths").arg(emulatorPrefix), QStringList()).toStringList();
1035 }
1036
iconCacheImportDates()1037 QStringList ArcadeSettings::iconCacheImportDates()
1038 {
1039 return value(QString("%1/IconCacheDatabase/ImportDates").arg(emulatorPrefix), QStringList()).toStringList();
1040 }
1041
customSystemArtworkNames()1042 QStringList ArcadeSettings::customSystemArtworkNames()
1043 {
1044 beginGroup("Artwork");
1045 QStringList artworkNames;
1046 foreach (QString name, childGroups()) {
1047 if ( value(QString("%1/Target").arg(name), 0).toInt() == QMC2_ARCADE_AW_TARGET_SYSTEM )
1048 artworkNames << name;
1049 }
1050 endGroup();
1051 return artworkNames;
1052 }
1053
customSoftwareArtworkNames()1054 QStringList ArcadeSettings::customSoftwareArtworkNames()
1055 {
1056 beginGroup("Artwork");
1057 QStringList artworkNames;
1058 foreach (QString name, childGroups()) {
1059 if ( value(QString("%1/Target").arg(name), 0).toInt() == QMC2_ARCADE_AW_TARGET_SOFTWARE )
1060 artworkNames << name;
1061 }
1062 endGroup();
1063 return artworkNames;
1064 }
1065
customArtworkFile(QString name)1066 QString ArcadeSettings::customArtworkFile(QString name)
1067 {
1068 return value(QString("Artwork/%1/Archive").arg(name), QString()).toString();
1069 }
1070
customArtworkFolder(QString name)1071 QString ArcadeSettings::customArtworkFolder(QString name)
1072 {
1073 return value(QString("Artwork/%1/Folder").arg(name), QString()).toString();
1074 }
1075
customArtworkZipped(QString name)1076 bool ArcadeSettings::customArtworkZipped(QString name)
1077 {
1078 return value(QString("Artwork/%1/Format").arg(name), 0).toInt() == QMC2_ARCADE_AW_FORMAT_ZIP;
1079 }
1080
customArtworkSevenZipped(QString name)1081 bool ArcadeSettings::customArtworkSevenZipped(QString name)
1082 {
1083 return value(QString("Artwork/%1/Format").arg(name), 0).toInt() == QMC2_ARCADE_AW_FORMAT_7Z;
1084 }
1085
customArtworkArchived(QString name)1086 bool ArcadeSettings::customArtworkArchived(QString name)
1087 {
1088 return value(QString("Artwork/%1/Format").arg(name), 0).toInt() == QMC2_ARCADE_AW_FORMAT_ARCHIVE;
1089 }
1090
customArtworkFormats(QString name)1091 QStringList ArcadeSettings::customArtworkFormats(QString name)
1092 {
1093 return value(QString("Artwork/%1/ActiveFormats").arg(name), QStringList()).toStringList();
1094 }
1095