37 subscriptions.clear();
48 void mapper::handle_gamepad_button_pressed(
const gamepad_button_pressed_event&
event)
50 gamepad_button_mapped_publisher.publish({gamepad_button_mapping(
event.gamepad,
event.button)});
53 void mapper::handle_key_pressed(
const key_pressed_event&
event)
57 key_mapped_publisher.publish({key_mapping(
event.keyboard,
event.scancode)});
61 void mapper::handle_mouse_button_pressed(
const mouse_button_pressed_event&
event)
63 mouse_button_mapped_publisher.publish({mouse_button_mapping(
event.mouse,
event.button)});
66 void mapper::handle_mouse_moved(
const mouse_moved_event&
event)
68 if (
event.difference.x())
70 mouse_motion_mapped_publisher.publish({mouse_motion_mapping(
event.mouse,
mouse_motion_axis::x, std::signbit(
static_cast<float>(
event.difference.x())))});
73 if (
event.difference.y())
75 mouse_motion_mapped_publisher.publish({mouse_motion_mapping(
event.mouse,
mouse_motion_axis::y, std::signbit(
static_cast<float>(
event.difference.y())))});
79 void mapper::handle_mouse_scrolled(
const mouse_scrolled_event&
event)
81 if (
event.velocity.x())
86 if (
event.velocity.y())
Forwards messages from publishers to subscribers.
std::shared_ptr< subscription > subscribe(subscriber< T > &&subscriber)
Subscribes a function object to messages dispatched by this dispatcher.
Publish-subscribe messaging.
constexpr vector< T, N > abs(const vector< T, N > &x)
Returns the absolute values of each element.