continue;
}
+ bool js_available = joysticks.size() > 0;
+
if (map->get("button", button)) {
- if(button < 0 || button >= max_joybuttons) {
+ if(js_available && (button < 0 || button >= max_joybuttons)) {
log_info << "Invalid button '" << button << "' in buttonmap" << std::endl;
continue;
}
}
if (map->get("axis", axis)) {
- if (axis == 0 || abs(axis) > max_joyaxis) {
+ if (js_available && (axis == 0 || abs(axis) > max_joyaxis)) {
log_info << "Invalid axis '" << axis << "' in axismap" << std::endl;
continue;
}
}
if (map->get("hat", hat)) {
- if (hat != SDL_HAT_UP &&
+ if (js_available &&
+ hat != SDL_HAT_UP &&
hat != SDL_HAT_DOWN &&
hat != SDL_HAT_LEFT &&
hat != SDL_HAT_RIGHT) {
} else {
if (jaxis.value < -dead_zone)
set_joy_controls(left->second, true);
- else if (jaxis.value > dead_zone)
- set_joy_controls(left->second, false);
else
set_joy_controls(left->second, false);
}
if(right == joy_axis_map.end()) {
// std::cout << "Unmapped joyaxis " << (int)jaxis.axis << " moved" << std::endl;
} else {
- if (jaxis.value < -dead_zone)
- set_joy_controls(right->second, false);
- else if (jaxis.value > dead_zone)
+ if (jaxis.value > dead_zone)
set_joy_controls(right->second, true);
else
set_joy_controls(right->second, false);