44
static std::string format_key_action(MirKeyAction action)
44
std::string format_key_action(MirKeyAction action)
48
46
static std::string key_action_strings[] = { "mir_key_action_down", "mir_key_action_up",
49
47
"mir_key_action_multiple" };
50
ss << key_action_strings[action];
55
static std::string format_key_flags(MirKeyFlag flags)
59
static std::tuple<MirKeyFlag, char const*> key_flag_strings[] = {
60
std::make_tuple(mir_key_flag_woke_here, "mir_key_flag_woke_here"),
61
std::make_tuple(mir_key_flag_soft_keyboard, "mir_key_flag_soft_keyboard"),
62
std::make_tuple(mir_key_flag_keep_touch_mode, "mir_key_flag_keep_touch_mode"),
63
std::make_tuple(mir_key_flag_from_system, "mir_key_flag_from_system"),
64
std::make_tuple(mir_key_flag_editor_action, "mir_key_flag_editor_action"),
65
std::make_tuple(mir_key_flag_canceled, "mir_key_flag_canceled"),
66
std::make_tuple(mir_key_flag_virtual_hard_key, "mir_key_flag_virtual_hard_key"),
67
std::make_tuple(mir_key_flag_long_press, "mir_key_flag_long_press"),
68
std::make_tuple(mir_key_flag_canceled_long_press, "mir_key_flag_canceled_long_press"),
69
std::make_tuple(mir_key_flag_tracking, "mir_key_flag_tracking"),
70
std::make_tuple(mir_key_flag_fallback, "mir_key_flag_fallback")
72
for (unsigned int i = 0; i < sizeof(key_flag_strings)/sizeof(*key_flag_strings); i++) {
73
auto flag = std::get<0>(key_flag_strings[i]);
74
auto const& str = std::get<1>(key_flag_strings[i]);
81
static std::string format_modifiers (unsigned int modifiers)
85
static std::tuple<MirKeyModifier, char const*> key_modifier_strings[] = {
86
std::make_tuple(mir_key_modifier_none, "mir_key_modifier_none"),
87
std::make_tuple(mir_key_modifier_alt, "mir_key_modifier_alt"),
88
std::make_tuple(mir_key_modifier_alt_left, "mir_key_modifier_alt_left"),
89
std::make_tuple(mir_key_modifier_alt_right, "mir_key_modifier_alt_right"),
90
std::make_tuple(mir_key_modifier_shift, "mir_key_modifier_shift"),
91
std::make_tuple(mir_key_modifier_shift_left, "mir_key_modifier_shift_left"),
92
std::make_tuple(mir_key_modifier_shift_right, "mir_key_modifier_shift_right"),
93
std::make_tuple(mir_key_modifier_sym, "mir_key_modifier_sym"),
94
std::make_tuple(mir_key_modifier_function, "mir_key_modifier_function"),
95
std::make_tuple(mir_key_modifier_ctrl, "mir_key_modifier_ctrl"),
96
std::make_tuple(mir_key_modifier_ctrl_left, "mir_key_modifier_ctrl_left"),
97
std::make_tuple(mir_key_modifier_ctrl_right, "mir_key_modifier_ctrl_right"),
98
std::make_tuple(mir_key_modifier_meta, "mir_key_modifier_meta"),
99
std::make_tuple(mir_key_modifier_meta_left, "mir_key_modifier_meta_left"),
100
std::make_tuple(mir_key_modifier_meta_right, "mir_key_modifier_meta_right"),
101
std::make_tuple(mir_key_modifier_caps_lock, "mir_key_modifier_caps_lock"),
102
std::make_tuple(mir_key_modifier_num_lock, "mir_key_modifier_num_lock"),
103
std::make_tuple(mir_key_modifier_scroll_lock, "mir_key_modifier_scroll_lock")
105
for (unsigned int i = 0; i < sizeof(key_modifier_strings)/sizeof(*key_modifier_strings); i++) {
106
auto modifier = std::get<0>(key_modifier_strings[i]);
107
auto str = std::get<1>(key_modifier_strings[i]);
108
if (modifiers & modifier)
114
static void format_key_event(std::stringstream &ss, MirKeyEvent const& ev)
48
return key_action_strings[action];
51
std::string format_key_flags(MirKeyFlag flags)
55
static struct { MirKeyFlag flag; char const* str; } const key_flag_strings[] = {
56
{ mir_key_flag_woke_here, "mir_key_flag_woke_here" },
57
{ mir_key_flag_soft_keyboard, "mir_key_flag_soft_keyboard" },
58
{ mir_key_flag_keep_touch_mode, "mir_key_flag_keep_touch_mode" },
59
{ mir_key_flag_from_system, "mir_key_flag_from_system" },
60
{ mir_key_flag_editor_action, "mir_key_flag_editor_action" },
61
{ mir_key_flag_canceled, "mir_key_flag_canceled" },
62
{ mir_key_flag_virtual_hard_key, "mir_key_flag_virtual_hard_key" },
63
{ mir_key_flag_long_press, "mir_key_flag_long_press" },
64
{ mir_key_flag_canceled_long_press, "mir_key_flag_canceled_long_press" },
65
{ mir_key_flag_tracking, "mir_key_flag_tracking" },
66
{ mir_key_flag_fallback, "mir_key_flag_fallback" }
68
for (auto const& entry : key_flag_strings)
70
if (flags & entry.flag)
71
ss << entry.str << " ";
76
std::string format_modifiers (unsigned int modifiers)
80
static struct { MirKeyModifier modifier; char const* str; } const key_modifier_strings[] = {
81
{ mir_key_modifier_none, "mir_key_modifier_none" },
82
{ mir_key_modifier_alt, "mir_key_modifier_alt" },
83
{ mir_key_modifier_alt_left, "mir_key_modifier_alt_left" },
84
{ mir_key_modifier_alt_right, "mir_key_modifier_alt_right" },
85
{ mir_key_modifier_shift, "mir_key_modifier_shift" },
86
{ mir_key_modifier_shift_left, "mir_key_modifier_shift_left" },
87
{ mir_key_modifier_shift_right, "mir_key_modifier_shift_right" },
88
{ mir_key_modifier_sym, "mir_key_modifier_sym" },
89
{ mir_key_modifier_function, "mir_key_modifier_function" },
90
{ mir_key_modifier_ctrl, "mir_key_modifier_ctrl" },
91
{ mir_key_modifier_ctrl_left, "mir_key_modifier_ctrl_left" },
92
{ mir_key_modifier_ctrl_right, "mir_key_modifier_ctrl_right" },
93
{ mir_key_modifier_meta, "mir_key_modifier_meta" },
94
{ mir_key_modifier_meta_left, "mir_key_modifier_meta_left" },
95
{ mir_key_modifier_meta_right, "mir_key_modifier_meta_right" },
96
{ mir_key_modifier_caps_lock, "mir_key_modifier_caps_lock" },
97
{ mir_key_modifier_num_lock, "mir_key_modifier_num_lock" },
98
{ mir_key_modifier_scroll_lock, "mir_key_modifier_scroll_lock" }
100
for (auto const& entry : key_modifier_strings)
102
if (modifiers & entry.modifier)
103
ss << entry.str << " ";
108
void format_key_event(std::stringstream &ss, MirKeyEvent const& ev)
116
110
ss << "MirKeyEvent {" << std::endl;
117
111
ss << " device_id: " << ev.device_id << std::endl;
164
static std::string format_button_state(MirMotionButton button_state)
158
std::string format_button_state(MirMotionButton button_state)
166
160
std::stringstream ss;
168
static std::tuple<MirMotionButton, char const*> button_strings[] = {
169
std::make_tuple(mir_motion_button_primary, "mir_motion_button_primary"),
170
std::make_tuple(mir_motion_button_secondary, "mir_motion_button_secondary"),
171
std::make_tuple(mir_motion_button_tertiary, "mir_motion_button_tertiary"),
172
std::make_tuple(mir_motion_button_back, "mir_motion_button_back"),
173
std::make_tuple(mir_motion_button_forward, "mir_motion_button_forward")
162
static struct { MirMotionButton button; char const* str; } const button_strings[] = {
163
{ mir_motion_button_primary, "mir_motion_button_primary" },
164
{ mir_motion_button_secondary, "mir_motion_button_secondary" },
165
{ mir_motion_button_tertiary, "mir_motion_button_tertiary" },
166
{ mir_motion_button_back, "mir_motion_button_back" },
167
{ mir_motion_button_forward, "mir_motion_button_forward" }
175
for (unsigned int i = 0; i < sizeof(button_strings)/sizeof(*button_strings); i++)
169
for (auto const& entry : button_strings)
177
auto button = std::get<0>(button_strings[i]);
178
auto str = std::get<1>(button_strings[i]);
179
if (button_state & button)
171
if (button_state & entry.button)
172
ss << entry.str << " ";
185
static void format_motion_event(std::stringstream &ss, MirMotionEvent const& ev)
177
void format_motion_event(std::stringstream &ss, MirMotionEvent const& ev)
187
179
ss << "MirMotionEvent{" << std::endl;
188
180
ss << " type: motion" << std::endl;