VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
joystickConfigurations.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
12 
13 #pragma once
14 
17 
18 #include <boost/function.hpp>
19 #include <boost/unordered_map.hpp>
20 #include <boost/serialization/access.hpp>
21 #include <boost/serialization/nvp.hpp>
22 #include <boost/serialization/list.hpp>
23 #include <boost/serialization/map.hpp>
24 #include <boost/serialization/vector.hpp>
25 #include <boost/serialization/string.hpp>
26 #include <boost/archive/xml_oarchive.hpp>
27 #include <boost/archive/xml_iarchive.hpp>
28 
29 namespace makVrv
30 {
31  class DtUnicode;
32 
36  {
37  public:
40 
41  virtual ~DtFunctionGroupInformation();
42 
44 
45  bool operator==(const DtFunctionGroupInformation&) const;
46  bool operator!=(const DtFunctionGroupInformation& rhs) { return !(*this == rhs); };
47 
48  void setNeedsTransition(bool);
49  bool needsTransition() const;
50 
51  void setCycle(bool);
52  bool cycle() const;
53 
54  void setMinimumValue(double);
55  double minimumValue() const;
56 
57  void setMaximumValue(double);
58  double maximumValue() const;
59 
60  void setDescription(const std::string&);
61  const std::string& description() const;
62 
63  bool isSimilarTo(const DtFunctionGroupInformation&) const;
64 
65  protected:
66  friend class boost::serialization::access;
67 
71  template<class Archive>
72  void serialize(Archive & ar, const unsigned int version)
73  {
74  ar & BOOST_SERIALIZATION_NVP(myNeedsTransition);
75  ar & BOOST_SERIALIZATION_NVP(myCycle);
76  ar & BOOST_SERIALIZATION_NVP(myMinimumValue);
77  ar & BOOST_SERIALIZATION_NVP(myMaximumValue);
78  ar & BOOST_SERIALIZATION_NVP(myDescription);
79  }
80 
81  protected:
83  bool myCycle;
86  std::string myDescription;
87  };
88 
91  {
92  public:
93  typedef std::map<std::string, DtJoystickConfigurationSetting> SettingsByFunctionCode;
94  typedef std::map<std::string, SettingsByFunctionCode> JoystickConfigurationSettings;
95 
96  struct GameControl
97  {
98  std::string functionGroup;
99  std::string function;
101  };
102 
103  typedef std::vector<GameControl> GameControlInformation;
104 
108 
111 
113  DtUnicode gameControllerName(const std::string& functionGroup,
114  const std::string& function) const;
115 
117  DtUnicode gameControllerFunction(const std::string& functionGroup,
118  const std::string& function) const;
119 
120  const JoystickConfigurationSettings& joystickConfigurationSettings() const { return myJoystickConfigurationSettings; };
121 
123  GameControlInformation gameControlInformation(const std::string& fg) const;
124 
126  bool addSwitchGroup(const std::string&);
127 
129  bool addOrUpdateJoystickControl(const std::string& functionGroup, const std::string& function);
130 
132  DtGameControlInformation gameControlInformationFor(
133  const std::string& functionGroup, const std::string& function) const;
134 
136  bool removeGameControlInformationFor(const std::string& functionGroup, const std::string& function);
137 
138  DtJoystickConfigurationSetting addGameControlInformationFor(const std::string& functionGroup, const std::string& function,
139  const DtGameControlInformation&);
140 
142  bool functionGroupSpecified(const std::string& functionGroup,
143  bool all = false) const;
144 
145  protected:
146  friend class boost::serialization::access;
147 
151  template<class Archive>
152  void serialize(Archive & ar, const unsigned int version)
153  {
154  ar & BOOST_SERIALIZATION_NVP(myJoystickConfigurationSettings);
155  }
156 
157  protected:
159  };
160 
164  {
165  public:
166  typedef std::map<std::string, DtFunctionGroupInformation> FunctionCodeMap;
167  typedef std::map<std::string, FunctionCodeMap> FunctionGroups;
168 
171 
173 
175 
177  std::string descriptionFor(const std::string& functionGroup, const std::string& function) const;
178 
181  std::set<std::string> functionGroupsSimilarTo(const std::string& functionGroup) const;
182 
185  bool needsTransition(const std::string& functionalGroup, const std::string& function) const;
186 
188  bool cycle(const std::string& functionalGroup, const std::string& function) const;
189 
191  bool toggle(const std::string& functionalGroup, const std::string& function) const;
192 
194  void getFunctionMinMaxValues(const std::string& functionalGroup, const std::string& function,
195  double& min, double& max) const;
196 
198  bool addOrUpdateFunctionGroupInformation(const std::string& functionGroup, const std::string& function,
200 
202  DtJoystickConfigurationSettings createNewSettings() const;
203 
204  std::vector<std::string> functionsForFunctionGroup(const std::string&) const;
205 
206  const FunctionGroups& functionGroups() const { return myFunctionGroups; };
207 
208  protected:
209  friend class boost::serialization::access;
210 
214  template<class Archive>
215  void serialize(Archive & ar, const unsigned int version)
216  {
217  ar & BOOST_SERIALIZATION_NVP(myFunctionGroups);
218  }
219 
220  protected:
222  };
223 
228  {
229  public:
230  typedef std::map<std::string, DtJoystickConfigurationSettings> JoystickConfigurations;
231 
235 
238 
240  DtUnicode gameControllerName(const std::string& controller, const std::string& functionGroup,
241  const std::string& function) const;
242 
244  DtUnicode gameControllerFunction(const std::string& configuration, const std::string& functionGroup,
245  const std::string& function) const;
246 
248  void setJoystickSettingsForConfiguration(const std::string& s, const DtJoystickConfigurationSettings& c);
249 
251  bool joystickSettingsForConfiguration(const std::string& s, DtJoystickConfigurationSettings& c);
252 
254  std::vector<std::string> configurations() const;
255 
257  virtual std::string descriptionFor(const std::string& functionGroup, const std::string& function) const;
258 
260  DtGameControlInformation gameControlInformationFor(const std::string& configuration,
261  const std::string& functionGroup, const std::string& function) const;
262 
263  DtJoystickConfigurationSetting addGameControlInformationFor(
264  const std::string& configuration, const std::string& functionGroup, const std::string& function,
265  const DtGameControlInformation&);
266 
268  bool removeGameControlInformationFor(const std::string& configuration,
269  const std::string& functionGroup, const std::string& function);
270 
271  const JoystickConfigurations& joystickConfiguration() const { return myJoystickConfigurations; };
272  const DtGameControllerFunctionGroups& gameControllerFunctionGroups() const { return myGameControllerFunctionGroups; };
273 
276  const std::string& configuration, const std::string& fg) const;
277 
280  const std::string& configuration, const std::set<std::string>& fg) const;
281 
284  bool needsTransition(const std::string& functionalGroup, const std::string& function) const;
285 
287  bool cycle(const std::string& functionalGroup, const std::string& function) const;
288 
290  bool toggle(const std::string& functionalGroup, const std::string& function) const;
291 
293  void getFunctionMinMaxValues(const std::string& functionalGroup, const std::string& function,
294  double& min, double& max) const;
295 
298  bool addOrUpdateJoystickControl(const std::string& functionGroup, const std::string& function,
300 
302  std::set<std::string> availableFunctionGroups() const;
303 
305  std::vector<std::string> functionsForFunctionGroup(const std::string&) const;
306 
309  std::set<std::string> functionGroupsSimilarTo(const std::string& functionGroup) const;
310 
312  bool renameConfiguration(const std::string& old, const std::string& renamed);
313 
315  bool switchControlActive(const std::string& configuration, const std::string& switchGroup) const;
316 
318  bool functionGroupSpecified(const std::string& configuration, const std::string& functionGroup,
319  bool all = false) const;
320 
323  bool hasAnyFunctionGroupAvailable(const std::string& configuration, bool all = false) const;
324 
326  bool hasConfigurationName(const std::string&) const;
327 
329  void addConfiguration(const std::string&);
330 
332  bool removeConfiguration(const std::string&);
333 
336  void setFavorite(const std::string&);
337  const std::string& favorite() const;
339 
340  protected:
341  friend class boost::serialization::access;
342 
346  template<class Archive>
347  void serialize(Archive & ar, const unsigned int version)
348  {
349  ar & BOOST_SERIALIZATION_NVP(myFavorite);
350  ar & BOOST_SERIALIZATION_NVP(myGameControllerFunctionGroups);
351  ar & BOOST_SERIALIZATION_NVP(myJoystickConfigurations);
352  }
353 
354  protected:
357  std::string myFavorite;
358  };
359 }

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)