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