26 #include <boost/signals.hpp>
27 #include <boost/function.hpp>
28 #include <boost/unordered_set.hpp>
29 #include <boost/unordered_map.hpp>
37 class DtRecordSettingsBackupInterface;
38 class DtGenericControllerEvent;
60 virtual void tick(
bool sentEvents)
65 virtual void gameControllerDeviceRemoved(
int)
70 virtual void gameControllerDeviceAdded(
int)
81 virtual void noQueuedEvents()
87 virtual void gameControlInformationAdded(
const std::string& configuration,
105 : controllerName(orig.controllerName)
106 , deviceNumber(orig.deviceNumber)
128 typedef boost::unordered_map<int, ControllerInformation>
Controllers;
140 virtual void flushAllEvents();
153 virtual bool switchControlActive(
const std::string& configuration,
const std::string& switchGroup)
const;
168 virtual void addJoystickControlFunction(
const std::string& functionGroup,
const std::string&
function,
170 virtual void addJoystickControlFunction(
const std::string& functionGroup,
const std::string&
function,
171 double minimumValue,
double maximumValue,
bool cycle =
false,
const std::string& description =
"");
175 virtual std::set<std::string> functionGroupsSimilarTo(
const std::string& functionGroup)
const;
184 virtual DtUnicode gameControllerName(
const std::string& configuration,
185 const std::string& functionGroup,
const std::string& functionCode)
const;
186 virtual DtUnicode gameControllerFunction(
const std::string& configuration,
187 const std::string& functionGroup,
const std::string& functionCode)
const;
191 virtual int deviceIndexFromGuid(
const std::string&)
const;
192 virtual int deviceIndexFromDeviceName(
const std::string&)
const;
193 virtual int firstDeviceIndexOfConrollerType(
int)
const;
196 std::vector<std::string> functionsForFunctionGroup(
const std::string&)
const;
199 virtual void setFavoriteConfiguration(
const std::string&);
200 virtual const std::string& favoriteConfiguration()
const;
204 virtual void increaseLockCount();
205 virtual void decreaseLockCount();
206 virtual bool locked()
const;
208 virtual double joystickDeadzonePercentage(
int)
const;
209 virtual void setJoystickDeadzonePercentage(
int,
double);
234 boost::signal<void (
const std::string& functionGroup,
const std::string&
function,
259 virtual std::vector<std::string> configurations()
const;
265 virtual int numJoystickAxis(
int deviceIndex)
const;
268 virtual int numJoystickButtons(
int deviceIndex)
const;
271 virtual int numJoystickHats(
int deviceIndex)
const;
275 virtual bool needsTransition(
const std::string& functionalGroup,
const std::string&
function)
const;
278 virtual bool toggle(
const std::string& functionalGroup,
const std::string&
function)
const;
281 virtual bool cycle(
const std::string& functionGroup,
const std::string&
function)
const;
284 virtual void getFunctionMinMaxValues(
const std::string& functionalGroup,
const std::string&
function,
285 double& min,
double& max)
const;
288 virtual void loadDefaults(
bool fromFactory =
false);
292 return mySettingsBackup;
297 return mySettingsBackup;
301 virtual Controllers controllers()
const;
304 void exportSettings(
const std::string& fileName);
307 void importSettings(
const std::string& fileName);
311 const std::string& configuration,
const std::string& functionGroup,
const std::string&
function)
const;
314 virtual std::string descriptionFor(
const std::string& functionGroup,
const std::string&
function)
const;
317 virtual void removeAllGameControllers();
320 virtual void removeGameControlInformationFor(
321 const std::string& configuration,
const std::string& functionGroup,
const std::string&
function);
324 virtual void addGameControlInformationFor(
325 const std::string& configuration,
const std::string& functionGroup,
const std::string&
function,
328 virtual void setAutoSave(
bool);
329 virtual bool autoSave()
const;
332 virtual bool hasConfigurationName(
const std::string&)
const;
335 virtual void addConfiguration(
const std::string&);
338 virtual void removeConfiguration(
const std::string&);
341 virtual bool functionGroupSpecified(
const std::string& configuration,
const std::string& functionGroup,
342 bool all =
false)
const;
345 virtual bool canFunctionGroupBeAssigned(
const std::string& configuration,
const std::string& functionGroup,
346 bool all =
false)
const;
349 virtual void renameConfiguration(
const std::string& old,
const std::string& renamed);
351 virtual void saveAsDefaults();
355 const std::string& configuration,
const std::set<std::string>&)
const;
361 const std::string& configuration,
const std::string&)
const;
365 virtual void getSplitRecord(std::vector<DtJoystickConfigurations>& rec,
366 std::vector<std::string>& fileNames) {};
375 static int sdlEventFilterCallback(
void *userdata, SDL_Event * event);
376 virtual int sdlEventFilter(SDL_Event * event);
377 virtual const std::string& className();
383 virtual void sendNoQueuedEvents();
389 virtual void initializeJoysticks();
392 virtual void initializeGameControllers();
395 virtual void initializeKeyboard();
398 virtual void addJoystickDevice(
int deviceId);
401 virtual void removeJoystickDevice(
int deviceId);