diff options
author | Bad Diode <bd@badd10de.dev> | 2022-10-12 14:36:28 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2022-10-12 14:36:28 +0200 |
commit | e101b44b986811b3e37bccae230fcb73adc4dee2 (patch) | |
tree | c46793ff4af6cae5d7cac69c5a26c549ac0fb532 | |
parent | 39b47de235fa881637606d777a0f6beb6a5a57dc (diff) | |
download | uxnfb-e101b44b986811b3e37bccae230fcb73adc4dee2.tar.gz uxnfb-e101b44b986811b3e37bccae230fcb73adc4dee2.zip |
[WIP] Add mouse click input
-rw-r--r-- | src/main.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -118,7 +118,6 @@ poll_mouse(void) { | |||
118 | struct input_event mouse_event; | 118 | struct input_event mouse_event; |
119 | if (read(in.mouse_fd, &mouse_event, sizeof(mouse_event)) != -1) { | 119 | if (read(in.mouse_fd, &mouse_event, sizeof(mouse_event)) != -1) { |
120 | if (mouse_event.type == EV_REL) { | 120 | if (mouse_event.type == EV_REL) { |
121 | printf("MOUSE REL EVENT\n"); | ||
122 | if (mouse_event.code == REL_X) { | 121 | if (mouse_event.code == REL_X) { |
123 | in.mouse.x = CLAMP( | 122 | in.mouse.x = CLAMP( |
124 | in.mouse.x / zoom + (s32)mouse_event.value, 0, (s32)screen_width); | 123 | in.mouse.x / zoom + (s32)mouse_event.value, 0, (s32)screen_width); |
@@ -127,14 +126,12 @@ poll_mouse(void) { | |||
127 | in.mouse.y / zoom + (s32)mouse_event.value, 0, (s32)screen_height); | 126 | in.mouse.y / zoom + (s32)mouse_event.value, 0, (s32)screen_height); |
128 | } | 127 | } |
129 | } else if (mouse_event.type == EV_ABS) { | 128 | } else if (mouse_event.type == EV_ABS) { |
130 | printf("MOUSE ABS EVENT\n"); | ||
131 | if (mouse_event.code == ABS_X) { | 129 | if (mouse_event.code == ABS_X) { |
132 | in.mouse.x = CLAMP((s32)mouse_event.value / zoom, 0, (s32)screen_width); | 130 | in.mouse.x = CLAMP((s32)mouse_event.value / zoom, 0, (s32)screen_width); |
133 | } else if (mouse_event.code == ABS_Y) { | 131 | } else if (mouse_event.code == ABS_Y) { |
134 | in.mouse.y = CLAMP((s32)mouse_event.value / zoom, 0, (s32)screen_height); | 132 | in.mouse.y = CLAMP((s32)mouse_event.value / zoom, 0, (s32)screen_height); |
135 | } | 133 | } |
136 | } else if (mouse_event.type == EV_KEY) { | 134 | } else if (mouse_event.type == EV_KEY) { |
137 | printf("MOUSE KEY EVENT\n"); | ||
138 | switch (mouse_event.code) { | 135 | switch (mouse_event.code) { |
139 | case BTN_LEFT: { | 136 | case BTN_LEFT: { |
140 | if (mouse_event.value == 1) { | 137 | if (mouse_event.value == 1) { |
@@ -150,7 +147,14 @@ poll_mouse(void) { | |||
150 | in.mouse.buttons &= ~0x10; | 147 | in.mouse.buttons &= ~0x10; |
151 | } | 148 | } |
152 | } break; | 149 | } break; |
153 | default: break; | 150 | default: { |
151 | // NOTE: nook press. | ||
152 | if (mouse_event.value == 1) { | ||
153 | in.mouse.buttons |= 0x01; | ||
154 | } else { | ||
155 | in.mouse.buttons &= ~0x01; | ||
156 | } | ||
157 | } break; | ||
154 | } | 158 | } |
155 | } | 159 | } |
156 | in.mouse.update = true; | 160 | in.mouse.update = true; |