1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//! A display connection stack in Rust — HDMI 2.1 first.
//!
//! Ashlar takes a display link from raw capability bytes to a trained link: parse what the
//! sink can do, negotiate the best mode the source, sink and cable can all carry, describe it
//! in InfoFrames, and bring up the link over SCDC with FRL training.
//!
//! Each layer is its own crate and can be used on its own. This crate re-exports them behind
//! one feature per crate, so a single dependency can pull in exactly the layers you need:
//!
//! ```toml
//! [dependencies]
//! ashlar = { version = "0.1", features = ["piaf", "concordance"] }
//! ```
//!
//! | Feature | Crate | Layer |
//! |---|---|---|
//! | `display-types` | [`display_types`] | Shared display capability vocabulary |
//! | `piaf` | [`piaf`] | EDID and DisplayID parsing |
//! | `concordance` | [`concordance`] | HDMI 2.1 mode negotiation |
//! | `cartouche` | [`cartouche`] | InfoFrame encoding and decoding |
//! | `culvert` | [`culvert`] | Typed SCDC register access |
//! | `culvert-async` | [`culvert_async`] | Async companion to culvert |
//! | `plumbob` | [`plumbob`] | FRL link training |
//! | `plumbob-async` | [`plumbob_async`] | Async companion to plumbob |
//! | `hdmi-hal` | [`hdmi_hal`] | `ScdcTransport` and `HdmiPhy` traits |
//! | `hdmi-hal-async` | [`hdmi_hal_async`] | Async companion to hdmi-hal |
//! | `hdmi-hal-i2c-dev` | [`hdmi_hal_i2c_dev`] | Linux userspace backend over `/dev/i2c-N` |
//!
//! `full` enables every crate. `std` (default) and `alloc` are forwarded to the enabled crates
//! that have them; disable default features for `no_std` use.
//!
//! See the [Ashlar organisation](https://github.com/ashlar-display) for the full stack.
pub use display_types;
pub use piaf;
pub use concordance;
pub use cartouche;
pub use culvert;
pub use culvert_async;
pub use plumbob;
pub use plumbob_async;
pub use hdmi_hal;
pub use hdmi_hal_async;
pub use hdmi_hal_i2c_dev;