1 #ifndef ARCADESETTINGS_H
2 #define ARCADESETTINGS_H
3 
4 #include <qglobal.h>
5 #include <QLocale>
6 #include <QSize>
7 #include <QHash>
8 #include <QMap>
9 #include <QStringList>
10 
11 #include "../settings.h"
12 
13 class ArcadeSettings : public Settings
14 {
15 	Q_OBJECT
16 
17 public:
18 	QString arcadeTheme;
19 	QString frontEndPrefix;
20 	QString emulatorPrefix;
21 	QMap<QString, QLocale::Language> languageMap;
22 
23 	explicit ArcadeSettings(QString theme = QString());
24 	virtual ~ArcadeSettings();
25 
26 	QString languageToString(QLocale::Language);
27 	QLocale::Language languageFromString(QString);
28 	QString keySequenceMapBaseKey();
29 #if defined(QMC2_ARCADE_ENABLE_JOYSTICK)
30 	QString joyFunctionMapBaseKey();
31 #endif
32 	QString emulatorName();
33 	static QString configPath();
34 
35 signals:
36 
37 public slots:
38 	// global settings
39 	void setApplicationVersion(QString);
40 	QString applicationVersion();
41 	void setViewerGeometry(QByteArray);
42 	QByteArray viewerGeometry();
43 	void setViewerMaximized(bool);
44 	bool viewerMaximized();
45 	void setConsoleGeometry(QByteArray);
46 	QByteArray consoleGeometry();
47 	void setUseFilteredList(bool);
48 	bool useFilteredList();
49 	void setFilteredListFile(QString);
50 	QString filteredListFile();
51 
52 	// default settings for command line arguments
53 	void setDefaultTheme(QString);
54 	QString defaultTheme();
55 	void setDefaultConsoleType(QString);
56 	QString defaultConsoleType();
57 #if QT_VERSION < 0x050000
58 	void setDefaultGraphicsSystem(QString);
59 	QString defaultGraphicsSystem();
60 #endif
61 	void setDefaultLanguage(QString);
62 	QString defaultLanguage();
63 	void setDefaultFont(QString);
64 	QString defaultFont();
65 	void setDefaultVideo(QString);
66 	QString defaultVideo();
67 
68 	// theme-specific settings (general)
69 	void setFpsVisible(bool);
70 	bool fpsVisible();
71 	void setFullScreen(bool);
72 	bool fullScreen();
73 	void setLastIndex(int);
74 	int lastIndex();
75 	void setOverlayScale(double);
76 	double overlayScale();
77 
78 	// ToxicWaste
79 	void setShowBackgroundAnimation(bool);
80 	bool showBackgroundAnimation();
81 	void setAnimateInForeground(bool);
82 	bool animateInForeground();
83 	void setSecondaryImageType(QString);
84 	QString secondaryImageType();
85 	void setCabinetFlipped(bool);
86 	bool cabinetFlipped();
87 	void setMenuHidden(bool);
88 	bool menuHidden();
89 	void setShowShaderEffect(bool);
90 	bool showShaderEffect();
91 	void setConfirmQuit(bool);
92 	bool confirmQuit();
93 	void setMachineCardPage(int);
94 	int machineCardPage();
95 	void setPreferencesTab(int);
96 	int preferencesTab();
97 	void setAutoPositionOverlay(bool);
98 	bool autoPositionOverlay();
99 	void setOverlayOffsetX(double);
100 	double overlayOffsetX();
101 	void setOverlayOffsetY(double);
102 	double overlayOffsetY();
103 	void setOverlayOpacity(double);
104 	double overlayOpacity();
105 	void setBackgroundOpacity(double);
106 	double backgroundOpacity();
107 	void setMachineListOpacity(double);
108 	double machineListOpacity();
109 	void setCabinetImageType(QString);
110 	QString cabinetImageType();
111 	void setAutoStopAnimations(bool);
112 	bool autoStopAnimations();
113 	double videoPlayerVolume();
114 	void setVideoPlayerVolume(double);
115 	int videoAutoPlayTimeout();
116 	void setVideoAutoPlayTimeout(int);
117 
118 	// darkone
119 	void setToolbarHidden(bool);
120 	bool toolbarHidden();
121 	void setListHidden(bool);
122 	bool listHidden();
123 	void setSortByName(bool);
124 	bool sortByName();
125 	void setScreenLight(bool);
126 	bool screenLight();
127 	void setScreenLightOpacity(double);
128 	double screenLightOpacity();
129 	void setBackLight(bool);
130 	bool backLight();
131 	void setBackLightOpacity(double);
132 	double backLightOpacity();
133 	void setToolbarAutoHide(bool);
134 	bool toolbarAutoHide();
135 	void setLaunchFlash(bool);
136 	bool launchFlash();
137 	void setLaunchZoom(bool);
138 	bool launchZoom();
139 	void setDataTypePrimary(QString);
140 	QString dataTypePrimary();
141 	void setDataTypeSecondary(QString);
142 	QString dataTypeSecondary();
143 	void setLightTimeout(double);
144 	double lightTimeout();
145 	void setColourScheme(QString);
146 	QString colourScheme();
147 
148 	// main frontend / emulator settings (from QMC2, read-only)
149 	QString gameListCacheFile();
150 	QString romStateCacheFile();
151 	bool previewsZipped();
152 	bool previewsSevenZipped();
153 	bool previewsArchived();
154 	QString previewFile();
155 	QString previewFolder();
156 	bool flyersZipped();
157 	bool flyersSevenZipped();
158 	bool flyersArchived();
159 	QString flyerFile();
160 	QString flyerFolder();
161 	bool cabinetsZipped();
162 	bool cabinetsSevenZipped();
163 	bool cabinetsArchived();
164 	QString cabinetFile();
165 	QString cabinetFolder();
166 	bool controllersZipped();
167 	bool controllersSevenZipped();
168 	bool controllersArchived();
169 	QString controllerFile();
170 	QString controllerFolder();
171 	bool marqueesZipped();
172 	bool marqueesSevenZipped();
173 	bool marqueesArchived();
174 	QString marqueeFile();
175 	QString marqueeFolder();
176 	bool titlesZipped();
177 	bool titlesSevenZipped();
178 	bool titlesArchived();
179 	QString titleFile();
180 	QString titleFolder();
181 	bool pcbsZipped();
182 	bool pcbsSevenZipped();
183 	bool pcbsArchived();
184 	QString pcbFile();
185 	QString pcbFolder();
186 	bool swSnapsZipped();
187 	bool swSnapsSevenZipped();
188 	bool swSnapsArchived();
189 	QString swSnapFile();
190 	QString swSnapFolder();
191 	bool iconsZipped();
192 	bool iconsSevenZipped();
193 	bool iconsArchived();
194 	QString iconFile();
195 	QString iconFolder();
196 	QString optionsTemplateFile();
197 	QString emulatorExecutablePath();
198 	QString emulatorWorkingDirectory();
199 	QString mameHistoryDat();
200 	QString messSysinfoDat();
201 	QString mameInfoDat();
202 	QString messInfoDat();
203 	QString softwareInfoDat();
204 	QStringList activeImageFormats(QString);
205 	bool parentFallback();
206 	bool parentFallback(QString);
207 	QString videoSnapFolder();
208 
209 	// joystick related
210 #if defined(QMC2_ARCADE_ENABLE_JOYSTICK)
211 	int joystickAxisMinimum(int, int);
212 	int joystickAxisMaximum(int, int);
213 	bool joystickAxisEnabled(int, int);
214 	int joystickIndex();
215 	bool joystickEnabled();
216 	int joystickEventTimeout();
217 	bool joystickAutoRepeat();
218 	int joystickAutoRepeatTimeout();
219 	int joystickDeadzone(int, int);
220 	int joystickSensitivity(int, int);
221 #endif
222 
223 	// DAT-info database related
224 	QString datInfoDatabaseName();
225 	QStringList softwareInfoImportFiles();
226 	void setSoftwareInfoImportFiles(QStringList &);
227 	void removeSoftwareInfoImportFiles();
228 	QStringList softwareInfoImportDates();
229 	void setSoftwareInfoImportDates(QStringList &);
230 	void removeSoftwareInfoImportDates();
231 	QStringList emuInfoImportFiles();
232 	void setEmuInfoImportFiles(QStringList &);
233 	void removeEmuInfoImportFiles();
234 	QStringList emuInfoImportDates();
235 	void setEmuInfoImportDates(QStringList &);
236 	void removeEmuInfoImportDates();
237 	QStringList machineInfoImportFiles();
238 	void setMachineInfoImportFiles(QStringList &);
239 	void removeMachineInfoImportFiles();
240 	QStringList machineInfoImportDates();
241 	void setMachineInfoImportDates(QStringList &);
242 	void removeMachineInfoImportDates();
243 
244 	// icon cache database related
245 	bool iconCacheDatabaseEnabled();
246 	QString iconCacheDatabaseName();
247 	QStringList iconCacheImportPaths();
248 	QStringList iconCacheImportDates();
249 
250 	// custom artwork related
251 	QStringList customSystemArtworkNames();
252 	QStringList customSoftwareArtworkNames();
253 	QString customArtworkFile(QString);
254 	QString customArtworkFolder(QString);
255 	bool customArtworkZipped(QString);
256 	bool customArtworkSevenZipped(QString);
257 	bool customArtworkArchived(QString);
258 	QStringList customArtworkFormats(QString);
259 
260 private:
261 	QMap<QString, QMap<QString, QVariant> > m_themeDefaults;
262 	QHash<QString, QString> m_parentFallbackKeys;
263 };
264 
265 #endif
266