26 #include <boost/signals2.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)
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::signals2::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;
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);
boost::signals2::signal< void(int, int)> signal_joystickError
Signal sent when there is an error with a particular joystick.
Definition: joystickManager.h:215
boost::signals2::signal< void(const std::string &)> signal_configurationRemoved
Signal sent when a configuration is removed.
Definition: joystickManager.h:244
Virtual base class.
Definition: DtVirtualBaseClass.h:22
DtRecordSettingsBackupInterface * settingsBackup()
Definition: joystickManager.h:295
A unicode string.
Definition: DtUnicode.h:33
const DtJoystickConfigurations & joystickConfigurations()
Definition: joystickManager.h:258
boost::signals2::signal< void(const DtJoystickConfigurationSetting &)> signal_controllerInformationAdded
Signal sent when controller information is added.
Definition: joystickManager.h:231
virtual void noQueuedEvents()
Called when there were events but now there are no longer queued events.
Definition: joystickManager.h:81
This class encapsulates a Key event.
Definition: DtKeyEvent.h:19
boost::signals2::signal< void(const std::string &, const std::string &)> signal_controllerInformationRemoved
Signal sent when controller information is removed for the function group and function.
Definition: joystickManager.h:228
virtual void gameControlInformationAdded(const std::string &configuration, const std::string &functionGroup, const std::string &function, const DtGameControlInformation &i)
Called when game controller information is added or updated for the given configuration, function group and function.
Definition: joystickManager.h:87
Handler that you insert into the manager to be made aware of game controller events.
Definition: joystickManager.h:42
boost::signals2::signal< void(const std::string &)> signal_configurationAdded
Signal sent when a new configuration is added.
Definition: joystickManager.h:241
std::vector< GameControl > GameControlInformation
Definition: joystickConfigurations.h:105
This class will be used to query about current joysticks and the capabilities they might have...
Definition: joystickManager.h:96
const DtRecordSettingsBackupInterface * settingsBackup() const
Definition: joystickManager.h:290
virtual bool filterGameControllerEvent(DtGenericControllerEvent *)
Return true to filter this Game controller Event.
Definition: joystickManager.h:75
A set of settings that will encompass all function groups and functions currently known...
Definition: joystickConfigurations.h:92
boost::signals2::signal< void(const DtJoystickConfigurations &)> signal_configurationsChanged
Signal send when joystick settings have changed.
Definition: joystickManager.h:224
virtual void gameControllerDeviceRemoved(int)
Called when a game controller device is removed.
Definition: joystickManager.h:65
DtSignalConnectionManager myConnections
Definition: joystickManager.h:416
std::map< std::string, std::set< int > > JoysticksByGuid
Definition: joystickManager.h:413
boost::signals2::signal< void(const std::string &functionGroup, const std::string &function, const DtFunctionGroupInformation &)> signal_addedJoystickControlFunction
Signal sent when a joystick control function is added.
Definition: joystickManager.h:235
std::vector< DtGameControllerEventHandler * > GameControllerEventHandlers
Returns the game controller event handlers.
Definition: joystickManager.h:181
Definition: gameControllerEvents.h:33
DtGameControllerEventHandler()
Definition: joystickManager.h:45
int myLockCount
Definition: joystickManager.h:423
This class encapsulates a mouse button event.
Definition: DtMouseEvent.h:22
boost::signals2::signal< void(const std::string &, const std::string &)> signal_favoriteConfigurationChanged
Signal sent when the favorite configuration has changed. Will send old/new favorite.
Definition: joystickManager.h:253
boost::unordered_map< int, ControllerInformation > Controllers
Definition: joystickManager.h:128
boost::signals2::signal< void(bool)> signal_joystickManagerLockedForUpdates
Signal sent when lock state changes.
Definition: joystickManager.h:250
#define DT_DLL_JOYSTICKCORE
Contains DLL export macros.
Definition: joystickCore.h:25
bool myAmEventProcessor
Definition: joystickManager.h:429
The abstract Channel Class.
Definition: DtChannel.h:29
boost::signals2::signal< void(const std::string &old, const std::string &renamed)> signal_configurationRenamed
Signal sent when a configuration is renamed.
Definition: joystickManager.h:247
boost::signals2::signal< void(int)> signal_controllerRemoved
Signal sent when a joystick is removed (by device index.
Definition: joystickManager.h:221
boost::signals2::signal< void()> signal_clear
Signal sent when joystick information is cleared.
Definition: joystickManager.h:212
Contains makVrv::DtVirtualBaseClass class.
DtGameControllerKeyboardEvent class wraps a keyboard event.
Definition: gameControllerEvents.h:60
Interface for an event processor for a channel.
JoystickEventQueue myJoystickEventQueue
Definition: joystickManager.h:439
ControllerInformation myKeyboardInformation
Definition: joystickManager.h:436
DtGameControllerKeyboardEvent * myKeyboardControllerEvent
Definition: joystickManager.h:427
GameControllerEventHandlers myGameControllerEventHandlers
Definition: joystickManager.h:421
DtJoystickConfigurations is a collection of joystick settings, each contained within a configuration...
Definition: joystickConfigurations.h:229
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
std::map< int, double > JoystickDeadzonePercent
Default deadzone percent by joystick device. Default is 2%.
Definition: joystickManager.h:433
DtGameControllerJoystickEvent wraps a joystick event.
Definition: gameControllerEvents.h:91
Joysticks myJoysticks
Definition: joystickManager.h:411
const GameControllerEventHandlers & gameControllerEventHandlers() const
Definition: joystickManager.h:182
GameControllerEventType
Definition: gameControllerEvents.h:26
std::map< int, DtJoystickDevice > Joysticks
Definition: joystickManager.h:410
DtDe & myDe
Definition: joystickManager.h:408
Definition: gameControllerEvents.h:28
std::vector< DtGenericControllerEvent * > JoystickEventQueue
Definition: joystickManager.h:438
boost::signals2::signal< void(int, DtGenericControllerEvent *)> signal_gameControllerEvent
Signal sent when a controller has an event.
Definition: joystickManager.h:238
Base class to provide boost signal/slot management.
JoystickDeadzonePercent myJoystickDeadzonePercent
Definition: joystickManager.h:434
boost::signals2::signal< void(const ControllerInformation &)> signal_controllerAdded
Signal sent when a joystick is added.
Definition: joystickManager.h:218
JoysticksByGuid myJoysticksByGuid
Definition: joystickManager.h:414
virtual void gameControllerDeviceAdded(int)
Called when a game controller device is added.
Definition: joystickManager.h:70
boost::signals2::signal< void(const std::string &, const DtJoystickConfigurationSettings &)> signal_settingsChanged
Definition: joystickManager.h:225
virtual void getSplitRecord(std::vector< DtJoystickConfigurations > &rec, std::vector< std::string > &fileNames)
To support writing element definitions in folders as multiple files not implemented.
Definition: joystickManager.h:365
virtual bool canProcessEvent(DtGenericControllerEvent *) const
Return true if this event can be processed by this handler.
Definition: joystickManager.h:53
DtGameControllerJoystickEvent * myJoystickControllerEvent
Used for event filtering so do not have to create on stack every time.
Definition: joystickManager.h:426
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
virtual ~DtGameControllerEventHandler()
Definition: joystickManager.h:46
virtual void tick(bool sentEvents)
Called after game controller events are processed in any given tick.
Definition: joystickManager.h:60
bool mySentEvent
Definition: joystickManager.h:430
The makVrv::DtRecordSettingsBackupInterface provides an interface to record-based backups...
Definition: DtRecordSettingsBackup.h:27
DtRecordSettingsBackupInterface * mySettingsBackup
Definition: joystickManager.h:419
The DtEventProcessorInterface defines the generic interface for classes which handle input events...
Definition: DtEventProcessorInterface.h:37
DtJoystickConfigurations myJoystickConfigurations
Definition: joystickManager.h:418
virtual void addRecords(DtJoystickConfigurations &recs, DtJoystickConfigurations &combinedRec)
To support writing element definitions in folders as multiple files not implemented.
Definition: joystickManager.h:370