1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3mod audio_provider;
12mod backend;
13mod capability;
14mod cassette;
15mod catalog;
16mod config;
17mod config_probe;
18pub mod cookbook;
19mod device;
20mod eval_site;
21mod fake;
22mod inventory;
23mod midi_live_eval_site;
24mod midi_provider;
25mod model;
26mod placement;
27mod provider;
28mod queue;
29mod registry;
30mod ring;
31mod router;
32#[cfg(feature = "rtp-midi")]
33mod rtp_midi;
34mod site;
35mod store_evict;
36mod watch;
37
38pub use audio_provider::ModeledAudioProvider;
39pub use backend::{HostBackend, HostOpenStream, HostStreamDriver};
40pub use capability::{DeviceCapability, HostBackendCapability, missing_capability_card_expr};
41pub use cassette::{HostCallbackCassette, HostCallbackReplayReport};
42pub use catalog::{DeviceCatalog, audio_device_export_symbol, audio_site_export_symbol};
43pub use config::{
44 HostClockInfo, HostLatencyInfo, HostReconnectPolicy, HostStreamConfig, HostStreamConfigRequest,
45};
46pub use config_probe::{
47 HostStreamConfigProbe, hardware_inventory_probe_capability_symbol,
48 host_stream_config_probe_symbol, stream_host_config_lib_symbol,
49};
50pub use cookbook::fake_backend_demo;
51pub use device::{
52 DeviceError, DeviceProfile, DeviceProvider, DeviceResult, DeviceSample, DeviceSession,
53 StubProvider, StubSession, device_sample_kind_symbol, poll_device_sample,
54};
55pub use eval_site::{DeviceProvider as CatalogDeviceProvider, StreamEvalSite};
56pub use fake::{FakeBackend, fake_backend_symbol};
57pub use inventory::{HostDeviceInventory, HostPortSpec};
58pub use midi_live_eval_site::MidiLiveEvalSite;
59pub use midi_provider::ModeledMidiProvider;
60pub use model::{
61 HostBackendInfo, HostDeviceSpec, HostDirection, HostOpenPlan, stream_host_capability,
62 stream_host_device_read_effect_kind, stream_host_device_write_effect_kind,
63};
64pub use placement::{
65 AudioDeviceCard, AudioPlacementRequest, AudioSiteKey, DeviceDirection, DeviceKind,
66 DevicePlacement, DeviceRecord, LanPlacementMode, LanPlacementReport, LanPlacementRequest,
67 Placement, PlacementError, lan_bar_delay_mode_symbol,
68 lan_experimental_remote_sample_capability, lan_jitter_buffered_mode_symbol,
69 lan_peer_site_symbol, lan_pinned_sample_experimental_diagnostic,
70 lan_pinned_sample_refusal_diagnostic,
71};
72pub use provider::{
73 AUDIO_PROVIDER_ABI_VERSION, AUDIO_PROVIDER_ENTRY_V1, AudioProviderEntry, AudioProviderHost,
74 AudioProviderProofEntries, AudioProviderRegistrar, RouterAudioProviderRegistrar,
75 native_audio_provider_capability,
76};
77pub use queue::HostCallbackQueue;
78pub use registry::HostBackendRegistry;
79pub use ring::{ProcessRingPush, ProcessRingSnapshot, ProcessSharedRing};
80pub use router::{AudioRouter, RegisteredAudioSite};
81#[cfg(feature = "rtp-midi")]
82pub use rtp_midi::{RtpMidiBackend, RtpMidiPort, rtp_midi_backend_symbol};
83pub use site::{AudioSite, DeviceSite, DeviceSiteLocality, ModeledAudioSite};
84pub use store_evict::{
85 BoundedContentStore, ContentFrame, RetentionWindow, StoreEvicted, StoreKey, retention_reason,
86 size_bound_reason,
87};
88pub use watch::{
89 CAP_WATCH_HEALTH, CAP_WATCH_LOCATION, CAP_WATCH_MIC, CAP_WATCH_VENDOR_REPORT, WatchCapability,
90 require_watch_consent, require_watch_worn_ingest, watch_capability_for_worn_event,
91 watch_health_grant, watch_location_grant, watch_mic_grant, watch_vendor_report_grant,
92};
93
94#[cfg(test)]
95mod catalog_tests;
96#[cfg(test)]
97mod config_probe_tests;
98#[cfg(test)]
99mod device_tests;
100#[cfg(test)]
101mod placement_tests;
102#[cfg(test)]
103mod provider_tests;
104#[cfg(test)]
105mod ring_tests;
106#[cfg(test)]
107mod tests;
108#[cfg(test)]
109mod watch_tests;