MCPcopy Create free account
hub / github.com/PerroEngine/Perro / handle_event

Method handle_event

perro_source/render_stack/perro_app/src/input/joycon/mod.rs:543–588  ·  view source on GitHub ↗
(&mut self, app: &mut S, event: JoyConEvent)

Source from the content-addressed store, hash-verified

541 raw_report: raw_dump_enabled()
542 .then(|| RawJoyConReport::new(data))
543 .flatten(),
544 });
545 }
546 }
547 _ => {}
548 }
549 }
550 }
551 }
552
553 let _ = tx.send(JoyConEvent::Disconnected { index });
554 let _ = tx.send(JoyConEvent::HidWorkerStopped {
555 key: slot_key_thread,
556 index,
557 token,
558 });
559 });
560
561 self.devices
562 .insert(slot_key.clone(), DeviceHandle { stop, token });
563 self.output_txs.insert(slot_key, cmd_tx);
564 }
565
566 fn drain_events<S: JoyConSink>(&mut self, app: &mut S) {
567 let Some(rx) = self.rx.take() else {
568 return;
569 };
570
571 for _ in 0..MAX_JOYCON_EVENTS_PER_FRAME {
572 let Ok(event) = rx.try_recv() else {
573 break;
574 };
575 self.handle_event(app, event);
576 }
577
578 self.rx = Some(rx);
579 }
580
581 fn handle_event<S: JoyConSink>(&mut self, app: &mut S, event: JoyConEvent) {
582 match event {
583 JoyConEvent::OutputReady { key, tx } => {
584 self.output_txs.insert(key, tx);
585 }
586 JoyConEvent::Connected {
587 index,
588 side,
589 generation,
590 serial,
591 device_key,

Callers 1

drain_eventsMethod · 0.45

Calls 9

log_raw_joycon_reportFunction · 0.85
apply_reportFunction · 0.85
clear_joycon_indexFunction · 0.85
on_connectedMethod · 0.80
insertMethod · 0.45
as_refMethod · 0.45
as_sliceMethod · 0.45
as_strMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected