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,
256 virtual std::vector<std::string> configurations()
const;
262 virtual int numJoystickAxis(
int deviceIndex)
const;
265 virtual int numJoystickButtons(
int deviceIndex)
const;
268 virtual int numJoystickHats(
int deviceIndex)
const;
272 virtual bool needsTransition(
const std::string& functionalGroup,
const std::string&
function)
const;
275 virtual bool toggle(
const std::string& functionalGroup,
const std::string&
function)
const;
278 virtual bool cycle(
const std::string& functionGroup,
const std::string&
function)
const;
281 virtual void getFunctionMinMaxValues(
const std::string& functionalGroup,
const std::string&
function,
282 double& min,
double& max)
const;
285 virtual void loadDefaults(
bool fromFactory =
false);
289 return mySettingsBackup;
294 return mySettingsBackup;
298 virtual Controllers controllers()
const;
301 void exportSettings(
const std::string& fileName);
304 void importSettings(
const std::string& fileName);
308 const std::string& configuration,
const std::string& functionGroup,
const std::string&
function)
const;
311 virtual std::string descriptionFor(
const std::string& functionGroup,
const std::string&
function)
const;
314 virtual void removeAllGameControllers();
317 virtual void removeGameControlInformationFor(
318 const std::string& configuration,
const std::string& functionGroup,
const std::string&
function);
321 virtual void addGameControlInformationFor(
322 const std::string& configuration,
const std::string& functionGroup,
const std::string&
function,
325 virtual void setAutoSave(
bool);
326 virtual bool autoSave()
const;
329 virtual bool hasConfigurationName(
const std::string&)
const;
332 virtual void addConfiguration(
const std::string&);
335 virtual void removeConfiguration(
const std::string&);
338 virtual bool functionGroupSpecified(
const std::string& configuration,
const std::string& functionGroup,
339 bool all =
false)
const;
342 virtual bool canFunctionGroupBeAssigned(
const std::string& configuration,
const std::string& functionGroup,
343 bool all =
false)
const;
346 virtual void renameConfiguration(
const std::string& old,
const std::string& renamed);
348 virtual void saveAsDefaults();
352 const std::string& configuration,
const std::set<std::string>&)
const;
358 const std::string& configuration,
const std::string&)
const;
363 std::vector<std::string>& fileNames) {};
372 static int sdlEventFilterCallback(
void *userdata, SDL_Event * event);
373 virtual int sdlEventFilter(SDL_Event * event);
374 virtual const std::string& className();
380 virtual void sendNoQueuedEvents();
386 virtual void initializeJoysticks();
389 virtual void initializeGameControllers();
392 virtual void initializeKeyboard();
395 virtual void addJoystickDevice(
int deviceId);
398 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:241
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtRecordSettingsBackupInterface * settingsBackup()
Definition: joystickManager.h:292
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
const DtJoystickConfigurations & joystickConfigurations()
Definition: joystickManager.h:255
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:16
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. A subclass of this handler can be added to the joystick manager to be made aware of any joystick/keyboard event.
Definition: joystickManager.h:42
boost::signals2::signal< void(const std::string &)> signal_configurationAdded
Signal sent when a new configuration is added.
Definition: joystickManager.h:238
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:287
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:413
std::map< std::string, std::set< int > > JoysticksByGuid
Definition: joystickManager.h:410
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:420
This class encapsulates a mouse button event.
Definition: DtMouseEvent.h:19
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:250
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:247
#define DT_DLL_JOYSTICKCORE
Contains DLL export macros.
Definition: joystickCore.h:25
bool myAmEventProcessor
Definition: joystickManager.h:426
The abstract Channel Class.
Definition: DtChannel.h:35
boost::signals2::signal< void(const std::string &old, const std::string &renamed)> signal_configurationRenamed
Signal sent when a configuration is renamed.
Definition: joystickManager.h:244
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:436
ControllerInformation myKeyboardInformation
Definition: joystickManager.h:433
DtGameControllerKeyboardEvent * myKeyboardControllerEvent
Definition: joystickManager.h:424
GameControllerEventHandlers myGameControllerEventHandlers
Definition: joystickManager.h:418
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:20
std::map< int, double > JoystickDeadzonePercent
Default deadzone percent by joystick device. Default is 2%.
Definition: joystickManager.h:430
DtGameControllerJoystickEvent wraps a joystick event.
Definition: gameControllerEvents.h:91
Joysticks myJoysticks
Definition: joystickManager.h:408
const GameControllerEventHandlers & gameControllerEventHandlers() const
Definition: joystickManager.h:182
GameControllerEventType
Definition: gameControllerEvents.h:26
std::map< int, DtJoystickDevice > Joysticks
Definition: joystickManager.h:407
DtDe & myDe
Definition: joystickManager.h:405
Definition: gameControllerEvents.h:28
std::vector< DtGenericControllerEvent * > JoystickEventQueue
Definition: joystickManager.h:435
Base class to provide boost signal/slot management.
JoystickDeadzonePercent myJoystickDeadzonePercent
Definition: joystickManager.h:431
boost::signals2::signal< void(const ControllerInformation &)> signal_controllerAdded
Signal sent when a joystick is added.
Definition: joystickManager.h:218
JoysticksByGuid myJoysticksByGuid
Definition: joystickManager.h:411
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:362
virtual bool canProcessEvent(DtGenericControllerEvent *) const
Return true if this event can be processed by this handler. Return of false will filter the event for...
Definition: joystickManager.h:53
DtGameControllerJoystickEvent * myJoystickControllerEvent
Used for event filtering so do not have to create on stack every time.
Definition: joystickManager.h:423
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
virtual ~DtGameControllerEventHandler()
Definition: joystickManager.h:46
virtual void tick(bool sentEvents)
Called after game controller events are processed in any given tick. If sentEvents is true some game ...
Definition: joystickManager.h:60
bool mySentEvent
Definition: joystickManager.h:427
The makVrv::DtRecordSettingsBackupInterface provides an interface to record-based backups...
Definition: DtRecordSettingsBackup.h:24
DtRecordSettingsBackupInterface * mySettingsBackup
Definition: joystickManager.h:416
The DtEventProcessorInterface defines the generic interface for classes which handle input events...
Definition: DtEventProcessorInterface.h:34
DtJoystickConfigurations myJoystickConfigurations
Definition: joystickManager.h:415
virtual void addRecords(DtJoystickConfigurations &recs, DtJoystickConfigurations &combinedRec)
To support writing element definitions in folders as multiple files not implemented.
Definition: joystickManager.h:367