24 #include <interfaces/JoystickInterface.h>
26 #include <core/exceptions/software.h>
126 JoystickInterface::JoystickInterface() : Interface()
128 data_size =
sizeof(JoystickInterface_data_t);
130 data = (JoystickInterface_data_t *)
data_ptr;
142 unsigned char tmp_hash[] = {0xeb, 0x7c, 0xd1, 0x1c, 0xae, 0xa, 0x37, 0x45, 0x5c, 0xa, 0x5e, 0xda, 0x5e, 0x17, 0xdd, 0x42};
147 JoystickInterface::~JoystickInterface()
163 default:
return "UNKNOWN";
176 return data->num_axes;
198 data->num_axes = new_num_axes;
211 return data->num_buttons;
233 data->num_buttons = new_num_buttons;
246 return data->supported_ff_effects;
268 data->supported_ff_effects = new_supported_ff_effects;
283 return data->pressed_buttons;
307 data->pressed_buttons = new_pressed_buttons;
331 throw Exception(
"Index value %u out of bounds (0..8)", index);
333 return data->axis[index];
353 memcpy(data->axis, new_axis,
sizeof(
float) * 8);
366 throw Exception(
"Index value %u out of bounds (0..8)", index);
368 data->axis[index] = new_axis;
381 return data->ff_effects;
404 data->ff_effects = new_ff_effects;
412 if ( strncmp(
"StartRumbleMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
414 }
else if ( strncmp(
"StopRumbleMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
416 }
else if ( strncmp(
"StopAllMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
420 "message type for this interface type.", type);
436 memcpy(data, oi->data,
sizeof(JoystickInterface_data_t));
442 if (strcmp(enumtype,
"Direction") == 0) {
465 data_size =
sizeof(StartRumbleMessage_data_t);
468 data = (StartRumbleMessage_data_t *)
data_ptr;
470 data->length = ini_length;
471 data->delay = ini_delay;
472 data->direction = ini_direction;
473 data->strong_magnitude = ini_strong_magnitude;
474 data->weak_magnitude = ini_weak_magnitude;
484 data_size =
sizeof(StartRumbleMessage_data_t);
487 data = (StartRumbleMessage_data_t *)
data_ptr;
510 data = (StartRumbleMessage_data_t *)
data_ptr;
546 data->length = new_length;
576 data->delay = new_delay;
606 data->direction = new_direction;
616 return data->strong_magnitude;
636 data->strong_magnitude = new_strong_magnitude;
646 return data->weak_magnitude;
666 data->weak_magnitude = new_weak_magnitude;
689 data_size =
sizeof(StopRumbleMessage_data_t);
692 data = (StopRumbleMessage_data_t *)
data_ptr;
710 data = (StopRumbleMessage_data_t *)
data_ptr;
735 data_size =
sizeof(StopAllMessage_data_t);
738 data = (StopAllMessage_data_t *)
data_ptr;
756 data = (StopAllMessage_data_t *)
data_ptr;