11#include "../../AddonBase.h"
12#include "../../c-api/addon-instance/peripheral.h"
23#define PERIPHERAL_SAFE_DELETE(x) \
29#define PERIPHERAL_SAFE_DELETE_ARRAY(x) \
41class CInstancePeripheral;
46template<
class THE_CLASS,
typename THE_STRUCT>
50 static void ToStructs(
const std::vector<THE_CLASS>& vecObjects, THE_STRUCT** pStructs)
55 if (vecObjects.empty())
61 (*pStructs) =
new THE_STRUCT[vecObjects.size()];
62 for (
unsigned int i = 0; i < vecObjects.size(); i++)
63 vecObjects.at(i).ToStruct((*pStructs)[i]);
67 static void ToStructs(
const std::vector<THE_CLASS*>& vecObjects, THE_STRUCT** pStructs)
72 if (vecObjects.empty())
78 *pStructs =
new THE_STRUCT[vecObjects.size()];
79 for (
unsigned int i = 0; i < vecObjects.size(); i++)
80 vecObjects.at(i)->ToStruct((*pStructs)[i]);
84 static void ToStructs(
const std::vector<std::shared_ptr<THE_CLASS>>& vecObjects,
85 THE_STRUCT** pStructs)
90 if (vecObjects.empty())
96 *pStructs =
new THE_STRUCT[vecObjects.size()];
97 for (
unsigned int i = 0; i < vecObjects.size(); i++)
98 vecObjects.at(i)->ToStruct((*pStructs)[i]);
102 static void FreeStructs(
unsigned int structCount, THE_STRUCT* structs)
106 for (
unsigned int i = 0; i < structCount; i++)
107 THE_CLASS::FreeStruct(structs[i]);
109 PERIPHERAL_SAFE_DELETE_ARRAY(structs);
143 m_cStructure->provides_joystick_rumble =
false;
144 m_cStructure->provides_joystick_power_off =
false;
178 m_cStructure->provides_joystick_rumble = providesJoystickRumble;
187 m_cStructure->provides_joystick_power_off = providesJoystickPowerOff;
269 return m_type == rhs.m_type &&
270 m_strName == rhs.m_strName &&
271 m_vendorId == rhs.m_vendorId &&
272 m_productId == rhs.m_productId;
284 const std::string&
Name(
void)
const {
return m_strName; }
289 uint16_t
VendorID(
void)
const {
return m_vendorId; }
299 unsigned int Index(
void)
const {
return m_index; }
306 bool IsVidPidKnown(
void)
const {
return m_vendorId != 0 || m_productId != 0; }
316 void SetName(
const std::string& strName) { m_strName = strName; }
331 void SetIndex(
unsigned int index) { m_index = index; }
337 m_strName(info.name ? info.name :
""),
338 m_vendorId(info.vendor_id),
339 m_productId(info.product_id),
347 info.name =
new char[m_strName.size() + 1];
348 info.vendor_id = m_vendorId;
349 info.product_id = m_productId;
350 info.index = m_index;
352 std::strcpy(info.name, m_strName.c_str());
355 static void FreeStruct(
PERIPHERAL_INFO& info) { PERIPHERAL_SAFE_DELETE_ARRAY(info.name); }
359 std::string m_strName;
360 uint16_t m_vendorId = 0;
361 uint16_t m_productId = 0;
362 unsigned int m_index = 0;
367typedef PeripheralVector<Peripheral, PERIPHERAL_INFO> Peripherals;
415 unsigned int buttonIndex,
418 m_peripheralIndex(peripheralIndex),
419 m_driverIndex(buttonIndex),
431 m_peripheralIndex(peripheralIndex),
432 m_driverIndex(hatIndex),
444 m_peripheralIndex(peripheralIndex),
445 m_driverIndex(axisIndex),
523 : m_type(event.type),
524 m_peripheralIndex(event.peripheral_index),
525 m_driverIndex(event.driver_index),
526 m_buttonState(event.driver_button_state),
527 m_hatState(event.driver_hat_state),
528 m_axisState(event.driver_axis_state),
529 m_motorState(event.motor_state)
536 event.peripheral_index = m_peripheralIndex;
537 event.driver_index = m_driverIndex;
538 event.driver_button_state = m_buttonState;
539 event.driver_hat_state = m_hatState;
540 event.driver_axis_state = m_axisState;
541 event.motor_state = m_motorState;
548 unsigned int m_peripheralIndex = 0;
549 unsigned int m_driverIndex = 0;
558typedef PeripheralVector<PeripheralEvent, PERIPHERAL_EVENT> PeripheralEvents;
619 Joystick(
const std::string& provider =
"",
const std::string& strName =
"")
621 m_provider(provider),
622 m_requestedPort(NO_PORT_REQUESTED)
642 Peripheral::operator=(rhs);
644 m_provider = rhs.m_provider;
645 m_requestedPort = rhs.m_requestedPort;
646 m_buttonCount = rhs.m_buttonCount;
647 m_hatCount = rhs.m_hatCount;
648 m_axisCount = rhs.m_axisCount;
649 m_motorCount = rhs.m_motorCount;
650 m_supportsPowerOff = rhs.m_supportsPowerOff;
660 m_provider == rhs.m_provider &&
661 m_requestedPort == rhs.m_requestedPort &&
662 m_buttonCount == rhs.m_buttonCount &&
663 m_hatCount == rhs.m_hatCount &&
664 m_axisCount == rhs.m_axisCount &&
665 m_motorCount == rhs.m_motorCount &&
666 m_supportsPowerOff == rhs.m_supportsPowerOff;
673 const std::string&
Provider(
void)
const {
return m_provider; }
688 unsigned int HatCount(
void)
const {
return m_hatCount; }
693 unsigned int AxisCount(
void)
const {
return m_axisCount; }
708 void SetProvider(
const std::string& provider) { m_provider = provider; }
723 void SetHatCount(
unsigned int hatCount) { m_hatCount = hatCount; }
744 m_provider(info.provider ? info.provider :
""),
745 m_requestedPort(info.requested_port),
746 m_buttonCount(info.button_count),
747 m_hatCount(info.hat_count),
748 m_axisCount(info.axis_count),
749 m_motorCount(info.motor_count),
750 m_supportsPowerOff(info.supports_poweroff)
756 Peripheral::ToStruct(info.peripheral);
758 info.provider =
new char[m_provider.size() + 1];
759 info.requested_port = m_requestedPort;
760 info.button_count = m_buttonCount;
761 info.hat_count = m_hatCount;
762 info.axis_count = m_axisCount;
763 info.motor_count = m_motorCount;
764 info.supports_poweroff = m_supportsPowerOff;
766 std::strcpy(info.provider, m_provider.c_str());
771 Peripheral::FreeStruct(info.peripheral);
773 PERIPHERAL_SAFE_DELETE_ARRAY(info.provider);
777 std::string m_provider;
779 unsigned int m_buttonCount = 0;
780 unsigned int m_hatCount = 0;
781 unsigned int m_axisCount = 0;
782 unsigned int m_motorCount = 0;
783 bool m_supportsPowerOff =
false;
788typedef PeripheralVector<Joystick, JOYSTICK_INFO> Joysticks;
790class JoystickFeature;
843 m_driverIndex(driverIndex)
870 m_driverIndex(hatIndex),
871 m_hatDirection(direction)
887 m_driverIndex(axisIndex),
889 m_semiAxisDirection(direction),
908 m_keycode(std::move(keycode))
919 static_cast<unsigned int>(buttonIndex));
928 m_relPointerDirection(direction)
950 int Center(
void)
const {
return m_center; }
960 unsigned int Range(
void)
const {
return m_range; }
965 const std::string&
Keycode(
void)
const {
return m_keycode; }
980 return m_relPointerDirection;
989 if (m_type == other.m_type)
995 return m_driverIndex == other.m_driverIndex;
999 return m_driverIndex == other.m_driverIndex && m_hatDirection == other.m_hatDirection;
1003 return m_driverIndex == other.m_driverIndex && m_center == other.m_center &&
1004 m_semiAxisDirection == other.m_semiAxisDirection && m_range == other.m_range;
1008 return m_keycode == other.m_keycode;
1012 return m_driverIndex == other.m_driverIndex;
1016 return m_driverIndex == other.m_driverIndex;
1020 return m_relPointerDirection == other.m_relPointerDirection;
1037 m_driverIndex = primitive.button.index;
1042 m_driverIndex = primitive.hat.index;
1043 m_hatDirection = primitive.hat.direction;
1048 m_driverIndex = primitive.semiaxis.index;
1049 m_center = primitive.semiaxis.center;
1050 m_semiAxisDirection = primitive.semiaxis.direction;
1051 m_range = primitive.semiaxis.range;
1056 m_driverIndex = primitive.motor.index;
1061 m_keycode = primitive.key.keycode;
1066 m_driverIndex = primitive.mouse.button;
1071 m_relPointerDirection = primitive.relpointer.direction;
1081 driver_primitive.type = m_type;
1086 driver_primitive.button.index = m_driverIndex;
1091 driver_primitive.hat.index = m_driverIndex;
1092 driver_primitive.hat.direction = m_hatDirection;
1097 driver_primitive.semiaxis.index = m_driverIndex;
1098 driver_primitive.semiaxis.center = m_center;
1099 driver_primitive.semiaxis.direction = m_semiAxisDirection;
1100 driver_primitive.semiaxis.range = m_range;
1105 driver_primitive.motor.index = m_driverIndex;
1110 const size_t size =
sizeof(driver_primitive.key.keycode);
1111 std::strncpy(driver_primitive.key.keycode, m_keycode.c_str(), size - 1);
1112 driver_primitive.key.keycode[size - 1] =
'\0';
1122 driver_primitive.relpointer.direction = m_relPointerDirection;
1134 unsigned int m_driverIndex = 0;
1138 unsigned int m_range = 1;
1139 std::string m_keycode;
1145typedef PeripheralVector<DriverPrimitive, JOYSTICK_DRIVER_PRIMITIVE> DriverPrimitives;
1203 m_name = rhs.m_name;
1204 m_type = rhs.m_type;
1205 m_primitives = rhs.m_primitives;
1216 return m_name == other.m_name && m_type == other.m_type && m_primitives == other.m_primitives;
1222 const std::string&
Name(
void)
const {
return m_name; }
1237 void SetName(
const std::string& name) { m_name = name; }
1253 return m_primitives[which];
1262 m_primitives[which] = primitive;
1268 std::array<DriverPrimitive, JOYSTICK_PRIMITIVE_MAX>&
Primitives() {
return m_primitives; }
1273 const std::array<DriverPrimitive, JOYSTICK_PRIMITIVE_MAX>&
Primitives()
const
1275 return m_primitives;
1281 : m_name(feature.name ? feature.name :
""),
1282 m_type(feature.type)
1290 feature.name =
new char[m_name.length() + 1];
1291 feature.type = m_type;
1293 m_primitives[i].ToStruct(feature.primitives[i]);
1295 std::strcpy(feature.name, m_name.c_str());
1298 static void FreeStruct(
JOYSTICK_FEATURE& feature) { PERIPHERAL_SAFE_DELETE_ARRAY(feature.name); }
1303 std::array<DriverPrimitive, JOYSTICK_PRIMITIVE_MAX> m_primitives;
1308typedef PeripheralVector<JoystickFeature, JOYSTICK_FEATURE> JoystickFeatures;
Definition Peripheral.h:210
Definition AddonBase.h:206
Definition PeripheralUtils.h:1173
Definition PeripheralUtils.h:584
Definition PeripheralUtils.h:133
Definition PeripheralUtils.h:384
Definition PeripheralUtils.h:225
Definition PeripheralUtils.h:48
JOYSTICK_STATE_BUTTON
Definition peripheral.h:148
@ JOYSTICK_STATE_BUTTON_UNPRESSED
button is released
Definition peripheral.h:150
JOYSTICK_STATE_HAT
Definition peripheral.h:165
@ JOYSTICK_STATE_HAT_UNPRESSED
no directions are pressed
Definition peripheral.h:167
PERIPHERAL_EVENT_TYPE
Definition peripheral.h:122
@ PERIPHERAL_EVENT_TYPE_DRIVER_HAT
state changed for joystick driver hat
Definition peripheral.h:130
@ PERIPHERAL_EVENT_TYPE_NONE
unknown event
Definition peripheral.h:124
@ PERIPHERAL_EVENT_TYPE_DRIVER_AXIS
state changed for joystick driver axis
Definition peripheral.h:133
@ PERIPHERAL_EVENT_TYPE_DRIVER_BUTTON
state changed for joystick driver button
Definition peripheral.h:127
float JOYSTICK_STATE_AXIS
Axis value in the closed interval [-1.0, 1.0].
Definition peripheral.h:204
float JOYSTICK_STATE_MOTOR
Motor value in the closed interval [0.0, 1.0].
Definition peripheral.h:210
DriverPrimitive(void)=default
Construct an invalid driver primitive.
bool operator==(const DriverPrimitive &other) const
Compare this with another class of this type.
Definition PeripheralUtils.h:987
static DriverPrimitive CreateMouseButton(JOYSTICK_DRIVER_MOUSE_INDEX buttonIndex)
Construct a driver primitive representing a mouse button.
Definition PeripheralUtils.h:916
DriverPrimitive(std::string keycode)
Construct a driver primitive representing a key on a keyboard.
Definition PeripheralUtils.h:906
static DriverPrimitive CreateButton(unsigned int buttonIndex)
Construct a driver primitive representing a joystick button.
Definition PeripheralUtils.h:858
DriverPrimitive(unsigned int axisIndex, int center, JOYSTICK_DRIVER_SEMIAXIS_DIRECTION direction, unsigned int range)
Construct a driver primitive representing the positive or negative half of an axis.
Definition PeripheralUtils.h:882
unsigned int Range(void) const
Get range.
Definition PeripheralUtils.h:960
JOYSTICK_DRIVER_HAT_DIRECTION HatDirection(void) const
Get hat direction.
Definition PeripheralUtils.h:945
DriverPrimitive(JOYSTICK_DRIVER_RELPOINTER_DIRECTION direction)
Construct a driver primitive representing one of the four direction in which a relative pointer can m...
Definition PeripheralUtils.h:926
int Center(void) const
Get center.
Definition PeripheralUtils.h:950
JOYSTICK_DRIVER_SEMIAXIS_DIRECTION SemiAxisDirection(void) const
Get semi axis direction.
Definition PeripheralUtils.h:955
JOYSTICK_DRIVER_RELPOINTER_DIRECTION RelPointerDirection(void) const
Get relative pointer direction.
Definition PeripheralUtils.h:978
static DriverPrimitive CreateMotor(unsigned int motorIndex)
Construct a driver primitive representing a motor.
Definition PeripheralUtils.h:898
JOYSTICK_DRIVER_MOUSE_INDEX MouseIndex(void) const
Get mouse index.
Definition PeripheralUtils.h:970
const std::string & Keycode(void) const
Get key code as string.
Definition PeripheralUtils.h:965
DriverPrimitive(unsigned int hatIndex, JOYSTICK_DRIVER_HAT_DIRECTION direction)
Construct a driver primitive representing one of the four direction arrows on a dpad.
Definition PeripheralUtils.h:868
unsigned int DriverIndex(void) const
Get driver index.
Definition PeripheralUtils.h:940
JOYSTICK_DRIVER_PRIMITIVE_TYPE Type(void) const
Get type of primitive.
Definition PeripheralUtils.h:935
JOYSTICK_DRIVER_HAT_DIRECTION
Definition peripheral.h:310
@ JOYSTICK_DRIVER_HAT_UNKNOWN
Driver hat unknown.
Definition peripheral.h:312
JOYSTICK_DRIVER_MOUSE_INDEX
Definition peripheral.h:392
JOYSTICK_DRIVER_PRIMITIVE_TYPE
Definition peripheral.h:267
@ JOYSTICK_DRIVER_PRIMITIVE_TYPE_MOTOR
Driver input primitive type motor.
Definition peripheral.h:281
@ JOYSTICK_DRIVER_PRIMITIVE_TYPE_MOUSE_BUTTON
Driver input primitive type mouse button.
Definition peripheral.h:287
@ JOYSTICK_DRIVER_PRIMITIVE_TYPE_UNKNOWN
Driver input primitive type unknown.
Definition peripheral.h:269
@ JOYSTICK_DRIVER_PRIMITIVE_TYPE_RELPOINTER_DIRECTION
Driver input primitive type relative pointer direction.
Definition peripheral.h:290
@ JOYSTICK_DRIVER_PRIMITIVE_TYPE_HAT_DIRECTION
Driver input primitive type hat direction.
Definition peripheral.h:275
@ JOYSTICK_DRIVER_PRIMITIVE_TYPE_BUTTON
Driver input primitive type button.
Definition peripheral.h:272
@ JOYSTICK_DRIVER_PRIMITIVE_TYPE_SEMIAXIS
Driver input primitive type semiaxis.
Definition peripheral.h:278
@ JOYSTICK_DRIVER_PRIMITIVE_TYPE_KEY
Driver input primitive type key.
Definition peripheral.h:284
JOYSTICK_DRIVER_RELPOINTER_DIRECTION
Definition peripheral.h:441
@ JOYSTICK_DRIVER_RELPOINTER_UNKNOWN
Relative pointer direction unknown.
Definition peripheral.h:443
JOYSTICK_DRIVER_SEMIAXIS_DIRECTION
Definition peripheral.h:345
@ JOYSTICK_DRIVER_SEMIAXIS_UNKNOWN
unknown direction
Definition peripheral.h:350
JOYSTICK_FEATURE_PRIMITIVE
Definition peripheral.h:539
@ JOYSTICK_PRIMITIVE_MAX
Maximum number of primitives.
Definition peripheral.h:588
JOYSTICK_FEATURE_TYPE
Definition peripheral.h:497
@ JOYSTICK_FEATURE_TYPE_UNKNOWN
Unknown type.
Definition peripheral.h:499
std::array< DriverPrimitive, JOYSTICK_PRIMITIVE_MAX > & Primitives()
Get all primitives on this class.
Definition PeripheralUtils.h:1268
void SetType(JOYSTICK_FEATURE_TYPE type)
Set type of feature.
Definition PeripheralUtils.h:1242
void SetInvalid(void)
Set type as invalid.
Definition PeripheralUtils.h:1245
JoystickFeature & operator=(const JoystickFeature &rhs)
Copy data from another JoystickFeature class to here.
Definition PeripheralUtils.h:1199
const DriverPrimitive & Primitive(JOYSTICK_FEATURE_PRIMITIVE which) const
Get primitive of feature by wanted type.
Definition PeripheralUtils.h:1251
const std::string & Name(void) const
Get name of feature.
Definition PeripheralUtils.h:1222
JOYSTICK_FEATURE_TYPE Type(void) const
Get name of feature.
Definition PeripheralUtils.h:1227
void SetPrimitive(JOYSTICK_FEATURE_PRIMITIVE which, const DriverPrimitive &primitive)
Set primitive for feature by wanted type.
Definition PeripheralUtils.h:1260
void SetName(const std::string &name)
Set name of feature.
Definition PeripheralUtils.h:1237
const std::array< DriverPrimitive, JOYSTICK_PRIMITIVE_MAX > & Primitives() const
Get all primitives on this class (as constant).
Definition PeripheralUtils.h:1273
bool operator==(const JoystickFeature &other) const
Compare this with another class of this type.
Definition PeripheralUtils.h:1214
bool IsValid() const
Check this feature is valid.
Definition PeripheralUtils.h:1232
JoystickFeature(const std::string &name="", JOYSTICK_FEATURE_TYPE type=JOYSTICK_FEATURE_TYPE_UNKNOWN)
Class constructor.
Definition PeripheralUtils.h:1183
JoystickFeature(const JoystickFeature &other)
Class copy constructor.
Definition PeripheralUtils.h:1194
void SetMotorCount(unsigned int motorCount)
Get motor count.
Definition PeripheralUtils.h:733
const std::string & Provider(void) const
Get provider name.
Definition PeripheralUtils.h:673
Joystick & operator=(const Joystick &rhs)
Copy data from another Joystick class to here.
Definition PeripheralUtils.h:638
unsigned int ButtonCount(void) const
Get button count.
Definition PeripheralUtils.h:683
unsigned int HatCount(void) const
Get hat count.
Definition PeripheralUtils.h:688
Joystick(const Joystick &other)
Class copy constructor.
Definition PeripheralUtils.h:629
bool SupportsPowerOff(void) const
Get supports power off.
Definition PeripheralUtils.h:703
bool operator==(const Joystick &rhs) const
Comparison operator.
Definition PeripheralUtils.h:656
void SetButtonCount(unsigned int buttonCount)
Get button count.
Definition PeripheralUtils.h:718
int RequestedPort(void) const
Get requested port number.
Definition PeripheralUtils.h:678
void SetSupportsPowerOff(bool supportsPowerOff)
Get supports power off.
Definition PeripheralUtils.h:738
void SetProvider(const std::string &provider)
Set provider name.
Definition PeripheralUtils.h:708
void SetRequestedPort(int requestedPort)
Get requested port number.
Definition PeripheralUtils.h:713
Joystick(const std::string &provider="", const std::string &strName="")
Constructor.
Definition PeripheralUtils.h:619
unsigned int AxisCount(void) const
Get axis count.
Definition PeripheralUtils.h:693
void SetAxisCount(unsigned int axisCount)
Get axis count.
Definition PeripheralUtils.h:728
void SetHatCount(unsigned int hatCount)
Get hat count.
Definition PeripheralUtils.h:723
unsigned int MotorCount(void) const
Get motor count.
Definition PeripheralUtils.h:698
~Joystick(void) override=default
Destructor.
PERIPHERAL_TYPE
Definition peripheral.h:71
@ PERIPHERAL_TYPE_UNKNOWN
Type declared as unknown.
Definition peripheral.h:73
@ PERIPHERAL_TYPE_JOYSTICK
Type declared as joystick.
Definition peripheral.h:76
void SetType(PERIPHERAL_EVENT_TYPE type)
Set type of event.
Definition PeripheralUtils.h:488
JOYSTICK_STATE_HAT HatState(void) const
Get hat state.
Definition PeripheralUtils.h:473
void SetAxisState(JOYSTICK_STATE_AXIS state)
Set axis state.
Definition PeripheralUtils.h:513
JOYSTICK_STATE_MOTOR MotorState(void) const
Get motor state.
Definition PeripheralUtils.h:483
JOYSTICK_STATE_BUTTON ButtonState(void) const
Get button state.
Definition PeripheralUtils.h:468
PeripheralEvent(unsigned int peripheralIndex, unsigned int hatIndex, JOYSTICK_STATE_HAT state)
Constructor.
Definition PeripheralUtils.h:429
void SetDriverIndex(unsigned int index)
Set driver index.
Definition PeripheralUtils.h:498
PeripheralEvent()=default
Constructor.
unsigned int PeripheralIndex(void) const
Get peripheral index.
Definition PeripheralUtils.h:458
void SetPeripheralIndex(unsigned int index)
Set peripheral index.
Definition PeripheralUtils.h:493
void SetHatState(JOYSTICK_STATE_HAT state)
Set hat state.
Definition PeripheralUtils.h:508
JOYSTICK_STATE_AXIS AxisState(void) const
Get axis state.
Definition PeripheralUtils.h:478
PERIPHERAL_EVENT_TYPE Type(void) const
Get type of event.
Definition PeripheralUtils.h:453
void SetMotorState(JOYSTICK_STATE_MOTOR state)
Set motor state.
Definition PeripheralUtils.h:518
PeripheralEvent(unsigned int peripheralIndex, unsigned int buttonIndex, JOYSTICK_STATE_BUTTON state)
Constructor.
Definition PeripheralUtils.h:414
PeripheralEvent(unsigned int peripheralIndex, unsigned int axisIndex, JOYSTICK_STATE_AXIS state)
Constructor.
Definition PeripheralUtils.h:442
void SetButtonState(JOYSTICK_STATE_BUTTON state)
Set button state.
Definition PeripheralUtils.h:503
unsigned int DriverIndex(void) const
Get driver index.
Definition PeripheralUtils.h:463
uint16_t VendorID(void) const
Get peripheral vendor id.
Definition PeripheralUtils.h:289
void SetName(const std::string &strName)
Set peripheral name.
Definition PeripheralUtils.h:316
uint16_t ProductID(void) const
Get peripheral product id.
Definition PeripheralUtils.h:294
void SetIndex(unsigned int index)
Set peripheral index.
Definition PeripheralUtils.h:331
const std::string & Name(void) const
Get peripheral name.
Definition PeripheralUtils.h:284
virtual ~Peripheral(void)=default
Destructor.
bool IsVidPidKnown(void) const
Check VID and PID are known.
Definition PeripheralUtils.h:306
void SetType(PERIPHERAL_TYPE type)
Set peripheral type.
Definition PeripheralUtils.h:311
Peripheral(PERIPHERAL_TYPE type=PERIPHERAL_TYPE_UNKNOWN, const std::string &strName="")
Constructor.
Definition PeripheralUtils.h:253
void SetProductID(uint16_t productId)
Set peripheral product identifier.
Definition PeripheralUtils.h:326
bool operator==(const Peripheral &rhs) const
Comparison operator.
Definition PeripheralUtils.h:266
unsigned int Index(void) const
Get peripheral index identifier.
Definition PeripheralUtils.h:299
PERIPHERAL_TYPE Type(void) const
Get peripheral type.
Definition PeripheralUtils.h:279
void SetVendorID(uint16_t vendorId)
Set peripheral vendor id.
Definition PeripheralUtils.h:321
void SetProvidesJoystickPowerOff(bool providesJoystickPowerOff)
Set true if the add-on provides power off about joystick.
Definition PeripheralUtils.h:185
bool GetProvidesJoysticks() const
To get with SetProvidesJoysticks changed values.
Definition PeripheralUtils.h:173
void SetProvidesButtonmaps(bool providesButtonmaps)
Set true if the add-on provides button maps.
Definition PeripheralUtils.h:194
bool GetProvidesButtonmaps() const
To get with SetProvidesButtonmaps changed values.
Definition PeripheralUtils.h:200
bool GetProvidesJoystickPowerOff() const
To get with SetProvidesJoystickPowerOff changed values.
Definition PeripheralUtils.h:191
bool GetProvidesJoystickRumble() const
To get with SetProvidesJoystickRumble changed values.
Definition PeripheralUtils.h:182
void SetProvidesJoysticks(bool providesJoysticks)
Set true if the add-on provides joysticks.
Definition PeripheralUtils.h:167
void SetProvidesJoystickRumble(bool providesJoystickRumble)
Set true if the add-on provides joystick rumble.
Definition PeripheralUtils.h:176
Driver primitive struct.
Definition peripheral.h:472
Mapping between higher-level controller feature and its driver primitives.
Definition peripheral.h:597
Info specific to joystick peripherals.
Definition peripheral.h:242
Peripheral add-on capabilities.
Definition peripheral.h:103
bool provides_joysticks
Definition peripheral.h:104
bool provides_buttonmaps
Definition peripheral.h:107
Event information.
Definition peripheral.h:217
Information shared between peripherals.
Definition peripheral.h:91
Definition PeripheralUtils.h:836
DriverPrimitive(JOYSTICK_DRIVER_PRIMITIVE_TYPE type, unsigned int driverIndex)
Construct a driver primitive of the specified type.
Definition PeripheralUtils.h:841