Skip to main content

sim_lib_stream_host/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3//! Host-device stream backend substrate.
4//!
5//! The crate currently implements the selected RTP-MIDI subset without opening
6//! sockets or platform devices during normal validation. Host callbacks only
7//! receive a cloneable bounded queue handle and may enqueue packets through
8//! non-blocking calls. Device smoke tests are ignored by default; run them
9//! manually only when a matching external peer or platform device is available.
10
11mod audio_provider;
12mod backend;
13mod capability;
14mod cassette;
15mod catalog;
16mod config;
17mod config_probe;
18mod eval_site;
19mod fake;
20mod inventory;
21mod midi_live_eval_site;
22mod midi_provider;
23mod model;
24mod placement;
25mod provider;
26mod queue;
27mod registry;
28mod ring;
29mod router;
30#[cfg(feature = "rtp-midi")]
31mod rtp_midi;
32mod site;
33
34pub use audio_provider::ModeledAudioProvider;
35pub use backend::{HostBackend, HostOpenStream, HostStreamDriver};
36pub use capability::{HostBackendCapability, missing_capability_card_expr};
37pub use cassette::HostCallbackCassette;
38pub use catalog::{DeviceCatalog, audio_device_export_symbol};
39pub use config::{
40    HostClockInfo, HostLatencyInfo, HostReconnectPolicy, HostStreamConfig, HostStreamConfigRequest,
41};
42pub use config_probe::{
43    HostStreamConfigProbe, host_stream_config_probe_symbol, stream_host_config_lib_symbol,
44};
45pub use eval_site::{DeviceProvider, StreamEvalSite};
46pub use fake::{FakeBackend, fake_backend_symbol};
47pub use inventory::{HostDeviceInventory, HostPortSpec};
48pub use midi_live_eval_site::MidiLiveEvalSite;
49pub use midi_provider::ModeledMidiProvider;
50pub use model::{
51    HostBackendInfo, HostDeviceSpec, HostDirection, HostOpenPlan, stream_host_capability,
52};
53pub use placement::{
54    AudioDeviceCard, AudioPlacementRequest, AudioSiteKey, DeviceDirection, DeviceKind,
55    DeviceRecord, LanPlacementMode, LanPlacementReport, LanPlacementRequest, Placement,
56    lan_bar_delay_mode_symbol, lan_experimental_remote_sample_capability,
57    lan_jitter_buffered_mode_symbol, lan_peer_site_symbol,
58    lan_pinned_sample_experimental_diagnostic, lan_pinned_sample_refusal_diagnostic,
59};
60pub use provider::{
61    AUDIO_PROVIDER_ABI_VERSION, AUDIO_PROVIDER_ENTRY_V1, AudioProviderEntries, AudioProviderEntry,
62    AudioProviderHost, AudioProviderRegistrar, RouterAudioProviderRegistrar,
63    native_audio_provider_capability,
64};
65pub use queue::HostCallbackQueue;
66pub use registry::HostBackendRegistry;
67pub use ring::{ProcessRingPush, ProcessRingSnapshot, ProcessSharedRing};
68pub use router::AudioRouter;
69#[cfg(feature = "rtp-midi")]
70pub use rtp_midi::{RtpMidiBackend, RtpMidiPort, rtp_midi_backend_symbol};
71pub use site::{AudioSite, ModeledAudioSite};
72
73#[cfg(test)]
74mod catalog_tests;
75#[cfg(test)]
76mod config_probe_tests;
77#[cfg(test)]
78mod placement_tests;
79#[cfg(test)]
80mod provider_tests;
81#[cfg(test)]
82mod ring_tests;
83#[cfg(test)]
84mod tests;