Crate lookit

source ·
Expand description

The “Lookit!” crate checks for new devices in a cross-platform asynchronous manner. Returns the RawFd equivalent for the target platform.

  • Linux: inotify on /dev/*
  • Web: JavaScript event listeners
  • Others: TODO

Getting Started

use lookit::Searcher;
use pasts::prelude::*;

#[async_main::async_main]
async fn main(_spawner: impl async_main::Spawn) {
    let mut searcher = Searcher::with_camera();
    loop {
        let file = searcher.next().await;
        dbg!(file);
    }
}

Implementation

Input

  • inotify => /dev/input/event*
  • window.addEventListener("gamepadconnected", function(e) { });

Audio

  • inotify => /dev/snd/pcm*
  • navigator.mediaDevices.getUserMedia(constraints).then(function(s) { }).catch(function(denied_err) {}) // only one speakers connection ever

MIDI

Camera

  • inotify => /dev/video*
  • navigator.mediaDevices.getUserMedia(constraints).then(function(s) { }).catch(function(denied_err) {})

Structs