MCPcopy Create free account
hub / github.com/OpenHD/OpenHD / process_event

Method process_event

OpenHD/ohd_telemetry/src/rc/JoystickReader.cpp:208–241  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

206}
207
208int JoystickReader::process_event(void* event1,
209 std::array<uint16_t, N_CHANNELS>& current) {
210 auto* event = (SDL_Event*)event1;
211 int ret = 0;
212 switch (event->type) {
213 case SDL_JOYAXISMOTION:
214 m_console->debug("Joystick {}, Axis {} moved to {}", event->jaxis.which,
215 event->jaxis.axis, event->jaxis.value);
216 write_matching_axis(current, event->jaxis.axis, event->jaxis.value);
217 ret = 2;
218 break;
219 case SDL_JOYBUTTONDOWN:
220 m_console->debug("Button down");
221 write_matching_button(current, event->jbutton.button, false);
222 ret = 5;
223 break;
224 case SDL_JOYBUTTONUP:
225 m_console->debug("Button up");
226 write_matching_button(current, event->jbutton.button, true);
227 ret = 4;
228 break;
229 case SDL_QUIT:
230 m_console->debug("Got SDL_QUIT");
231 ret = -1;
232 break;
233 default:
234 // aparently we sometimes also get mouse / keyboard events from SDL, this
235 // is not an issue
236 m_console->debug("Got Unknown SDL event type");
237 ret = 0;
238 break;
239 }
240 return ret;
241}
242
243JoystickReader::CurrChannelValues JoystickReader::get_current_state() {
244 std::lock_guard<std::mutex> guard(m_curr_values_mutex);

Callers

nothing calls this directly

Calls 1

debugMethod · 0.80

Tested by

no test coverage detected