VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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 #include <set>
30 
31 namespace makVrv
32 {
33  class DtUnicode;
34 
38  {
39  public:
42 
43  virtual ~DtFunctionGroupInformation();
44 
46 
47  bool operator==(const DtFunctionGroupInformation&) const;
48  bool operator!=(const DtFunctionGroupInformation& rhs) { return !(*this == rhs); };
49 
50  void setNeedsTransition(bool);
51  bool needsTransition() const;
52 
53  void setCycle(bool);
54  bool cycle() const;
55 
56  void setMinimumValue(double);
57  double minimumValue() const;
58 
59  void setMaximumValue(double);
60  double maximumValue() const;
61 
62  void setDescription(const std::string&);
63  const std::string& description() const;
64 
65  bool isSimilarTo(const DtFunctionGroupInformation&) const;
66 
67  protected:
68  friend class boost::serialization::access;
69 
73  template<class Archive>
74  void serialize(Archive & ar, const unsigned int version)
75  {
76  ar & BOOST_SERIALIZATION_NVP(myNeedsTransition);
77  ar & BOOST_SERIALIZATION_NVP(myCycle);
78  ar & BOOST_SERIALIZATION_NVP(myMinimumValue);
79  ar & BOOST_SERIALIZATION_NVP(myMaximumValue);
80  ar & BOOST_SERIALIZATION_NVP(myDescription);
81  }
82 
83  protected:
85  bool myCycle;
88  std::string myDescription;
89  };
90 
93  {
94  public:
95  typedef std::map<std::string, DtJoystickConfigurationSetting> SettingsByFunctionCode;
96  typedef std::map<std::string, SettingsByFunctionCode> JoystickConfigurationSettings;
97 
98  struct GameControl
99  {
100  std::string functionGroup;
101  std::string function;
103  };
104 
105  typedef std::vector<GameControl> GameControlInformation;
106 
110 
113 
115  DtUnicode gameControllerName(const std::string& functionGroup,
116  const std::string& function) const;
117 
119  DtUnicode gameControllerFunction(const std::string& functionGroup,
120  const std::string& function) const;
121 
122  const JoystickConfigurationSettings& joystickConfigurationSettings() const { return myJoystickConfigurationSettings; };
123 
125  GameControlInformation gameControlInformation(const std::string& fg) const;
126 
128  bool addSwitchGroup(const std::string&);
129 
131  bool addOrUpdateJoystickControl(const std::string& functionGroup, const std::string& function);
132 
134  DtGameControlInformation gameControlInformationFor(
135  const std::string& functionGroup, const std::string& function) const;
136 
138  bool removeGameControlInformationFor(const std::string& functionGroup, const std::string& function);
139 
140  DtJoystickConfigurationSetting addGameControlInformationFor(const std::string& functionGroup, const std::string& function,
141  const DtGameControlInformation&);
142 
144  bool functionGroupSpecified(const std::string& functionGroup,
145  bool all = false) const;
146 
147  protected:
148  friend class boost::serialization::access;
149 
153  template<class Archive>
154  void serialize(Archive & ar, const unsigned int version)
155  {
156  ar & BOOST_SERIALIZATION_NVP(myJoystickConfigurationSettings);
157  }
158 
159  protected:
161  };
162 
166  {
167  public:
168  typedef std::map<std::string, DtFunctionGroupInformation> FunctionCodeMap;
169  typedef std::map<std::string, FunctionCodeMap> FunctionGroups;
170 
173 
175 
177 
179  std::string descriptionFor(const std::string& functionGroup, const std::string& function) const;
180 
183  std::set<std::string> functionGroupsSimilarTo(const std::string& functionGroup) const;
184 
187  bool needsTransition(const std::string& functionalGroup, const std::string& function) const;
188 
190  bool cycle(const std::string& functionalGroup, const std::string& function) const;
191 
193  bool toggle(const std::string& functionalGroup, const std::string& function) const;
194 
196  void getFunctionMinMaxValues(const std::string& functionalGroup, const std::string& function,
197  double& min, double& max) const;
198 
200  bool addOrUpdateFunctionGroupInformation(const std::string& functionGroup, const std::string& function,
202 
204  DtJoystickConfigurationSettings createNewSettings() const;
205 
206  std::vector<std::string> functionsForFunctionGroup(const std::string&) const;
207 
208  const FunctionGroups& functionGroups() const { return myFunctionGroups; };
209 
210  protected:
211  friend class boost::serialization::access;
212 
216  template<class Archive>
217  void serialize(Archive & ar, const unsigned int version)
218  {
219  ar & BOOST_SERIALIZATION_NVP(myFunctionGroups);
220  }
221 
222  protected:
224  };
225 
230  {
231  public:
232  typedef std::map<std::string, DtJoystickConfigurationSettings> JoystickConfigurations;
233 
237 
240 
242  DtUnicode gameControllerName(const std::string& controller, const std::string& functionGroup,
243  const std::string& function) const;
244 
246  DtUnicode gameControllerFunction(const std::string& configuration, const std::string& functionGroup,
247  const std::string& function) const;
248 
250  void setJoystickSettingsForConfiguration(const std::string& s, const DtJoystickConfigurationSettings& c);
251 
253  bool joystickSettingsForConfiguration(const std::string& s, DtJoystickConfigurationSettings& c);
254 
256  std::vector<std::string> configurations() const;
257 
259  virtual std::string descriptionFor(const std::string& functionGroup, const std::string& function) const;
260 
262  DtGameControlInformation gameControlInformationFor(const std::string& configuration,
263  const std::string& functionGroup, const std::string& function) const;
264 
265  DtJoystickConfigurationSetting addGameControlInformationFor(
266  const std::string& configuration, const std::string& functionGroup, const std::string& function,
267  const DtGameControlInformation&);
268 
270  bool removeGameControlInformationFor(const std::string& configuration,
271  const std::string& functionGroup, const std::string& function);
272 
273  const JoystickConfigurations& joystickConfiguration() const { return myJoystickConfigurations; };
274  const DtGameControllerFunctionGroups& gameControllerFunctionGroups() const { return myGameControllerFunctionGroups; };
275 
278  const std::string& configuration, const std::string& fg) const;
279 
282  const std::string& configuration, const std::set<std::string>& fg) const;
283 
286  bool needsTransition(const std::string& functionalGroup, const std::string& function) const;
287 
289  bool cycle(const std::string& functionalGroup, const std::string& function) const;
290 
292  bool toggle(const std::string& functionalGroup, const std::string& function) const;
293 
295  void getFunctionMinMaxValues(const std::string& functionalGroup, const std::string& function,
296  double& min, double& max) const;
297 
300  bool addOrUpdateJoystickControl(const std::string& functionGroup, const std::string& function,
302 
304  std::set<std::string> availableFunctionGroups() const;
305 
307  std::vector<std::string> functionsForFunctionGroup(const std::string&) const;
308 
311  std::set<std::string> functionGroupsSimilarTo(const std::string& functionGroup) const;
312 
314  bool renameConfiguration(const std::string& old, const std::string& renamed);
315 
317  bool switchControlActive(const std::string& configuration, const std::string& switchGroup) const;
318 
320  bool functionGroupSpecified(const std::string& configuration, const std::string& functionGroup,
321  bool all = false) const;
322 
325  bool hasAnyFunctionGroupAvailable(const std::string& configuration, bool all = false) const;
326 
328  bool hasConfigurationName(const std::string&) const;
329 
331  void addConfiguration(const std::string&);
332 
334  bool removeConfiguration(const std::string&);
335 
338  void setFavorite(const std::string&);
339  const std::string& favorite() const;
341 
342  protected:
343  friend class boost::serialization::access;
344 
348  template<class Archive>
349  void serialize(Archive & ar, const unsigned int version)
350  {
351  ar & BOOST_SERIALIZATION_NVP(myFavorite);
352  ar & BOOST_SERIALIZATION_NVP(myGameControllerFunctionGroups);
353  ar & BOOST_SERIALIZATION_NVP(myJoystickConfigurations);
354  }
355 
356  protected:
359  std::string myFavorite;
360  };
361 }
std::string myFavorite
Definition: joystickConfigurations.h:359
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
Definition: joystickConfigurations.h:98
std::map< std::string, FunctionCodeMap > FunctionGroups
Definition: joystickConfigurations.h:169
std::map< std::string, SettingsByFunctionCode > JoystickConfigurationSettings
Definition: joystickConfigurations.h:96
std::vector< GameControl > GameControlInformation
Definition: joystickConfigurations.h:105
A set of settings that will encompass all function groups and functions currently known...
Definition: joystickConfigurations.h:92
bool myNeedsTransition
Definition: joystickConfigurations.h:84
const DtGameControllerFunctionGroups & gameControllerFunctionGroups() const
Definition: joystickConfigurations.h:274
const FunctionGroups & functionGroups() const
Definition: joystickConfigurations.h:208
The DtJoystickConfigurationSetting will define a particular setting for a game controller (keyboard...
Definition: joystickConfigurationSettings.h:37
JoystickConfigurations myJoystickConfigurations
Definition: joystickConfigurations.h:358
DtGameControlInformation controlInformation
Definition: joystickConfigurations.h:102
#define DT_DLL_JOYSTICKCORE
Contains DLL export macros.
Definition: joystickCore.h:25
std::string functionGroup
Definition: joystickConfigurations.h:100
const JoystickConfigurationSettings & joystickConfigurationSettings() const
Definition: joystickConfigurations.h:122
std::map< std::string, DtJoystickConfigurationSettings > JoystickConfigurations
Definition: joystickConfigurations.h:232
std::map< std::string, DtFunctionGroupInformation > FunctionCodeMap
Definition: joystickConfigurations.h:168
bool myCycle
Definition: joystickConfigurations.h:85
double myMinimumValue
Definition: joystickConfigurations.h:86
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the &amp; operator is defined similar to &lt;&lt;...
Definition: joystickConfigurations.h:349
DtJoystickConfigurations is a collection of joystick settings, each contained within a configuration...
Definition: joystickConfigurations.h:229
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the &amp; operator is defined similar to &lt;&lt;...
Definition: joystickConfigurations.h:217
double myMaximumValue
Definition: joystickConfigurations.h:87
DtGameControllerFunctionGroups myGameControllerFunctionGroups
Definition: joystickConfigurations.h:357
JoystickConfigurationSettings myJoystickConfigurationSettings
Definition: joystickConfigurations.h:160
The DtGameControlInformation class contains information about how a function within a function group ...
Definition: gameControlInformation.h:32
const JoystickConfigurations & joystickConfiguration() const
Definition: joystickConfigurations.h:273
bool operator==(const DtTextureAtlasIndexParser::StringOrFloatAttrib &lhs, const DtTextureAtlasIndexParser::StringOrFloatAttrib &rhs)
needed for search comparison code
Definition: DtTextureAtlasIndexParser.h:153
Information that makes up a function group/function code information. This is used to figure out how ...
Definition: joystickConfigurations.h:37
FunctionGroups myFunctionGroups
Definition: joystickConfigurations.h:223
std::string myDescription
Definition: joystickConfigurations.h:88
std::map< std::string, DtJoystickConfigurationSetting > SettingsByFunctionCode
Definition: joystickConfigurations.h:95
The DtGameControllerFunctionGroups contains a list of all function groups, functions and their values...
Definition: joystickConfigurations.h:165
bool operator!=(const DtFunctionGroupInformation &rhs)
Definition: joystickConfigurations.h:48
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the &amp; operator is defined similar to &lt;&lt;...
Definition: joystickConfigurations.h:154
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the &amp; operator is defined similar to &lt;&lt;...
Definition: joystickConfigurations.h:74

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)