diff --git a/src/backend/cynthion.rs b/src/backend/cynthion.rs index 76a6264e..cfe0cfd2 100644 --- a/src/backend/cynthion.rs +++ b/src/backend/cynthion.rs @@ -9,7 +9,6 @@ use futures_channel::oneshot; use futures_lite::future::block_on; use futures_util::future::FusedFuture; use futures_util::{select_biased, FutureExt}; -use num_enum::{FromPrimitive, IntoPrimitive}; use nusb::{ self, transfer::{ @@ -24,6 +23,8 @@ use nusb::{ Interface }; +use crate::usb::Speed; + const VID: u16 = 0x1d50; const PID: u16 = 0x615b; @@ -36,16 +37,6 @@ const ENDPOINT: u8 = 0x81; const READ_LEN: usize = 0x4000; const NUM_TRANSFERS: usize = 4; -#[derive(Copy, Clone, FromPrimitive, IntoPrimitive)] -#[repr(u8)] -pub enum Speed { - #[default] - High = 0, - Full = 1, - Low = 2, - Auto = 3, -} - impl Speed { pub fn description(&self) -> &'static str { use Speed::*; diff --git a/src/test_cynthion.rs b/src/test_cynthion.rs index 22cbe526..00d6978c 100644 --- a/src/test_cynthion.rs +++ b/src/test_cynthion.rs @@ -2,7 +2,6 @@ use crate::backend::cynthion::{ CynthionDevice, CynthionUsability, CynthionHandle, - Speed }; use crate::capture::{ create_capture, @@ -14,6 +13,7 @@ use crate::capture::{ }; use crate::decoder::Decoder; use crate::file::{GenericSaver, PcapSaver}; +use crate::usb::Speed; use anyhow::{Context, Error, ensure}; use futures_lite::future::block_on; diff --git a/src/ui.rs b/src/ui.rs index 83f2cd21..159660b6 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -64,7 +64,7 @@ use crate::backend::cynthion::{ CynthionHandle, CynthionStop, CynthionUsability::*, - Speed}; +}; use crate::capture::{ create_capture, @@ -92,6 +92,7 @@ use crate::row_data::{ ToGenericRowData, TrafficRowData, DeviceRowData}; +use crate::usb::Speed; use crate::util::{fmt_count, fmt_size}; use crate::version::{version, version_info}; diff --git a/src/usb.rs b/src/usb.rs index 6ae78ab9..cd66b4a2 100644 --- a/src/usb.rs +++ b/src/usb.rs @@ -31,6 +31,16 @@ fn crc5(mut input: u32, num_bits: u32) -> u8 { (state ^ 0x1f) as u8 } +#[derive(Copy, Clone, FromPrimitive, IntoPrimitive)] +#[repr(u8)] +pub enum Speed { + #[default] + High = 0, + Full = 1, + Low = 2, + Auto = 3, +} + #[allow(clippy::upper_case_acronyms)] #[derive(Copy, Clone, Debug, Default, IntoPrimitive, FromPrimitive, PartialEq, Eq)] #[repr(u8)] @@ -247,7 +257,7 @@ pub enum StartComplete { } #[derive(Copy, Clone, Debug)] -pub enum Speed { +pub enum SplitSpeed { Low, Full, } @@ -291,8 +301,8 @@ impl SplitFields { [packet[1], packet[2], packet[3], 0])) } - pub fn speed(&self) -> Speed { - use Speed::*; + pub fn speed(&self) -> SplitSpeed { + use SplitSpeed::*; if self.endpoint_type() == EndpointType::Isochronous { Full } else if self.start() {