1mod adaptive;
8mod js;
9mod receiver;
10mod video;
11mod webusb;
12
13pub use adaptive::OpenIpcAdaptiveLink;
14pub use receiver::OpenIpcReceiver;
15pub use webusb::supported_usb_filters;
16#[cfg(target_arch = "wasm32")]
17pub use webusb::{
18 list_authorized_usb_devices, WebBbDbgportRead, WebFalseAlarmCounters, WebInitReport,
19 WebIqkReport, WebJaguar3PowerTrackingReport, WebPhydmWatchdogReport, WebPowerTrackingReport,
20 WebQueueDepth8814, WebThermalStatus, WebUsbPhydmWatchdog, WebUsbPowerTracking8812,
21 WebUsbPowerTracking8822c, WebUsbRealtekDevice,
22};
23
24use wasm_bindgen::prelude::*;
25
26#[wasm_bindgen(typescript_custom_section)]
27const OPENIPC_VIDEO_FRAME_TYPES: &'static str = r#"
28export type OpenIpcVideoFrame = {
29 data: Uint8Array;
30 codec: "h264" | "h265";
31 codecString: string;
32 isKeyFrame: boolean;
33 timestamp: number;
34};
35
36export type OpenIpcRawPayload = {
37 data: Uint8Array;
38 packetSeq: string;
39 routeId: number;
40 channelId: number;
41};
42
43export type OpenIpcRxTransferProfile = {
44 frames: OpenIpcVideoFrame[];
45 rawPayloads: OpenIpcRawPayload[];
46 mavlinkPayloads: OpenIpcRawPayload[];
47 rawPayloadCount: number;
48 rawPayloadBytes: number;
49 transferBytes: number;
50 packets: number;
51 acceptedPackets: number;
52 droppedPackets: number;
53 crcDropped: number;
54 icvDropped: number;
55 reportDropped: number;
56 ignoredFrames: number;
57 sessions: number;
58 wfbPayloads: number;
59 rtpPackets: number;
60 videoFrames: number;
61 mavlinkPayloadCount: number;
62 mavlinkBytes: number;
63 parseMs: number;
64 pipelineMs: number;
65 totalMs: number;
66};
67"#;