10 #ifndef INPUTHANDLERS_HPP 11 #define INPUTHANDLERS_HPP 13 #include <unordered_map> 14 #include <boost/signals2/signal.hpp> 22 namespace duds {
namespace os {
namespace linux {
29 typedef boost::signals2::signal<void(EventTypeCode etc, std::int32_t value)>
42 typedef std::unordered_map<EventTypeCode, InputSignal>
InputMap;
74 const InputSignal::slot_type &slot,
75 boost::signals2::connect_position at = boost::signals2::at_back
77 return receivers[etc].connect(slot, at);
89 const InputSignal::group_type &group,
90 const InputSignal::slot_type &slot,
91 boost::signals2::connect_position at = boost::signals2::at_back
93 return receivers[etc].connect(group, slot, at);
105 const InputSignal::extended_slot_type &slot,
106 boost::signals2::connect_position at = boost::signals2::at_back
108 return receivers[etc].connect_extended(slot, at);
120 const InputSignal::group_type &group,
121 const InputSignal::extended_slot_type &slot,
122 boost::signals2::connect_position at = boost::signals2::at_back
124 return receivers[etc].connect_extended(group, slot, at);
135 const InputSignal::group_type &group
137 receivers[etc].disconnect(group);
146 template<
typename Slot>
148 receivers[etc].disconnect(slotFunc);
156 receivers.erase(etc);
165 const InputSignal::slot_type &slot,
166 boost::signals2::connect_position at = boost::signals2::at_back
168 return defReceiver.connect(slot, at);
177 const InputSignal::group_type &group,
178 const InputSignal::slot_type &slot,
179 boost::signals2::connect_position at = boost::signals2::at_back
181 return defReceiver.connect(group, slot, at);
190 const InputSignal::extended_slot_type &slot,
191 boost::signals2::connect_position at = boost::signals2::at_back
193 return defReceiver.connect_extended(slot, at);
202 const InputSignal::group_type &group,
203 const InputSignal::extended_slot_type &slot,
204 boost::signals2::connect_position at = boost::signals2::at_back
206 return defReceiver.connect_extended(group, slot, at);
215 const InputSignal::group_type &group
217 defReceiver.disconnect(group);
225 template<
typename Slot>
227 defReceiver.disconnect(slotFunc);
233 defReceiver.disconnect_all_slots();
244 #endif // #ifndef INPUTHANDLERS_HPP
std::shared_ptr< InputHandlers > InputHandlersSptr
Shared pointer to a InputHandlers class.
boost::signals2::signal< void(EventTypeCode etc, std::int32_t value)> InputSignal
The signal type that will handle input events.
Combines an event type and an event code, as defined by libevdev, for the purpose of using a combinat...