29 lines
No EOL
1.3 KiB
Markdown
29 lines
No EOL
1.3 KiB
Markdown
# Deckster
|
||
|
||
## To do
|
||
- Make the `playerctl` handler independent of… playerctl. Use the [`mpris` crate](https://lib.rs/crates/mpris) directly instead.
|
||
- Implement scrolling
|
||
- Move loupedeck_serial and pa_volume_interface out of this repository.
|
||
- Publish libraries to crates.io
|
||
- Move handlers to their own repositories
|
||
|
||
## Contributing
|
||
|
||
### Terminology
|
||
- `handler runner`: Node that is running handlers.
|
||
- `handler host`: A `handler runner` that is not the `coordinator`.
|
||
- `coordinator`: Node to which the Loupedeck device is physically connected. Can be a `handler runner`.
|
||
|
||
|
||
### The different types of `unwrap`
|
||
- `expect("<reason>")`: The author thinks that unwrapping will never fail because of `<reason>`.
|
||
- `unwrap()`: The author assumes that unwrapping will never fail ~~but explaining why is either obvious or too complicated~~ and it’s obvious why.
|
||
- `unwrap_todo()`: The author has not yet thought about how to handle this value being `None` or `Err`.
|
||
They will replace this unwrapping with `expect("<reason>")`, `unwrap()`, or proper error handling later.
|
||
|
||
|
||
## Credits
|
||
|
||
[foxxyz’s `loupedeck` library for JavaScript](https://github.com/foxxyz/loupedeck)
|
||
(licensed under the [MIT license](https://github.com/foxxyz/loupedeck/blob/e41e5d920130d9ef651e47173c68450b9c832b96/LICENSE))
|
||
was used as a reference for and inspired the design of `loupedeck_serial`. |