Skip to content

Conversation

@breezykermo
Copy link
Collaborator

@breezykermo breezykermo commented Feb 15, 2025

  • Finds a default input device via cpal's discovery mechanism
  • Wires input data into the elementary engine appropriately
  • Introduces tracing for better structured logging
  • Removes env_logger, as tracing supplants its functionality.
  • Introduces thiserror for structured error handling
  • Introduces ringbuf to pass data between input and output streams.
  • Introduces clap to expose and handle CLI arguments.

Tracing and tracing subscriber are the idiomatic way to instrument Rust
programs with logs.
The thiserror crate will allow us to better handle errors as they are
emitted from various parts of the program. For now, I propose that we
just default to propagating all errors up to the level of
`ElementaryCliError`; but as the runtime gets more nuanced, we can
decide how to better handle non-critical errors.
If either the event poller or the TCP listener thread returns an error,
we propagate it up to the CLI.
`--list-devices` lists all devics that are discoverable via cpal. If a
device has neither input nor output, then we don't list it.
As a development environment; but also potentially for CI down the line
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant