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 eval_site;
18mod fake;
19mod inventory;
20mod midi_live_eval_site;
21mod midi_provider;
22mod model;
23mod placement;
24mod provider;
25mod queue;
26mod registry;
27mod ring;
28mod router;
29#[cfg(feature = "rtp-midi")]
30mod rtp_midi;
31mod site;
32
33pub use audio_provider::ModeledAudioProvider;
34pub use backend::{HostBackend, HostOpenStream, HostStreamDriver};
35pub use capability::{HostBackendCapability, missing_capability_card_expr};
36pub use cassette::HostCallbackCassette;
37pub use catalog::{DeviceCatalog, audio_device_export_symbol};
38pub use config::{
39    HostClockInfo, HostLatencyInfo, HostReconnectPolicy, HostStreamConfig, HostStreamConfigRequest,
40};
41pub use eval_site::{DeviceProvider, StreamEvalSite};
42pub use fake::{FakeBackend, fake_backend_symbol};
43pub use inventory::{HostDeviceInventory, HostPortSpec};
44pub use midi_live_eval_site::MidiLiveEvalSite;
45pub use midi_provider::ModeledMidiProvider;
46pub use model::{
47    HostBackendInfo, HostDeviceSpec, HostDirection, HostOpenPlan, stream_host_capability,
48};
49pub use placement::{
50    AudioDeviceCard, AudioPlacementRequest, AudioSiteKey, DeviceDirection, DeviceKind,
51    DeviceRecord, LanPlacementMode, LanPlacementReport, LanPlacementRequest, Placement,
52    lan_bar_delay_mode_symbol, lan_experimental_remote_sample_capability,
53    lan_jitter_buffered_mode_symbol, lan_peer_site_symbol,
54    lan_pinned_sample_experimental_diagnostic, lan_pinned_sample_refusal_diagnostic,
55};
56pub use provider::{
57    AUDIO_PROVIDER_ABI_VERSION, AUDIO_PROVIDER_ENTRY_V1, AudioProviderEntries, AudioProviderEntry,
58    AudioProviderHost, AudioProviderRegistrar, RouterAudioProviderRegistrar,
59    native_audio_provider_capability,
60};
61pub use queue::HostCallbackQueue;
62pub use registry::HostBackendRegistry;
63pub use ring::{ProcessRingPush, ProcessRingSnapshot, ProcessSharedRing};
64pub use router::AudioRouter;
65#[cfg(feature = "rtp-midi")]
66pub use rtp_midi::{RtpMidiBackend, RtpMidiPort, rtp_midi_backend_symbol};
67pub use site::{AudioSite, ModeledAudioSite};
68
69#[cfg(test)]
70mod catalog_tests;
71#[cfg(test)]
72mod placement_tests;
73#[cfg(test)]
74mod provider_tests;
75#[cfg(test)]
76mod ring_tests;
77#[cfg(test)]
78mod tests;