diff --git a/src/bin/hyper_headset_cli.rs b/src/bin/hyper_headset_cli.rs index 581cefb..6fce825 100644 --- a/src/bin/hyper_headset_cli.rs +++ b/src/bin/hyper_headset_cli.rs @@ -77,34 +77,20 @@ fn main() { ) .get_matches(); - println!("State before doing anything"); - if let Err(error) = device.active_refresh_state() { - eprintln!("{error}"); - std::process::exit(1); - }; - println!("{}", device.get_device_state()); - if let Some(delay) = matches.get_one::("automatic_shutdown") { - println!("entering automatic_shutdown packet"); let delay = *delay as u64; if let Some(packet) = device.set_automatic_shut_down_packet(Duration::from_secs(delay * 60u64)) { - println!("sending automatic_shutdown packet"); device.prepare_write(); if let Err(err) = device.get_device_state().hid_device.write(&packet) { eprintln!("Failed to set automatic shutdown with error: {:?}", err); std::process::exit(1); } - if let Some(events) = device.wait_for_updates(Duration::from_secs(1)) { - println!("{:?}", events); - } } else { eprintln!("ERROR: Automatic shutdown is not supported on this device"); std::process::exit(1); } - } else { - println!("not sending automatic_shutdown packet"); } if let Some(mute) = matches.get_one::("mute") { @@ -121,24 +107,16 @@ fn main() { } if let Some(enable) = matches.get_one::("enable_side_tone") { - println!("entering enable_side_tone packet"); if let Some(packet) = device.set_side_tone_packet(*enable) { - println!("sending enable_side_tone packet"); device.prepare_write(); if let Err(err) = device.get_device_state().hid_device.write(&packet) { eprintln!("Failed to enable side tone with error: {:?}", err); std::process::exit(1); } - std::thread::sleep(Duration::from_millis(50)); - if let Some(events) = device.wait_for_updates(Duration::from_secs(1)) { - println!("{:?}", events); - } } else { eprintln!("ERROR: Side tone control is not supported on this device"); std::process::exit(1); } - } else { - println!("not sending enable_side_tone packet"); } if let Some(volume) = matches.get_one::("side_tone_volume") { @@ -196,7 +174,6 @@ fn main() { std::thread::sleep(Duration::from_secs_f64(0.5)); - println!("State after potentially setting some stuff"); if let Err(error) = device.active_refresh_state() { eprintln!("{error}"); std::process::exit(1); diff --git a/src/devices/cloud_ii_wireless.rs b/src/devices/cloud_ii_wireless.rs index 418e1b8..9e8260b 100644 --- a/src/devices/cloud_ii_wireless.rs +++ b/src/devices/cloud_ii_wireless.rs @@ -170,7 +170,6 @@ impl Device for CloudIIWireless { if response.len() < 7 { return None; } - println!("Received packet: {:?}", response); // Most responses are Report ID 11 (0x0B) with structure: [11, 0, 187, cmd_id, ...] // Some responses are Report ID 10 (0x0A) for DSP/surround status @@ -184,27 +183,19 @@ impl Device for CloudIIWireless { if status == 2 { println!("Pairing mode"); } - println!("Connected: {}", connected); Some(vec![DeviceEvent::WirelessConnected(connected)]) } GET_BATTERY_CMD_ID => { // Battery level is at byte 7, not byte 4 let level = response[7]; - println!("Battery Level: {}%", level); Some(vec![DeviceEvent::BatterLevel(level)]) } GET_CHARGING_CMD_ID => { let status = response[4]; - println!( - "Charging status: {} ({:?})", - status, - ChargingStatus::from(status) - ); Some(vec![DeviceEvent::Charging(ChargingStatus::from(status))]) } MUTE_RESPONSE_ID => { let muted = response[4] == 1; - println!("Microphone muted: {}", muted); Some(vec![DeviceEvent::Muted(muted)]) } FIRMWARE_VERSION_RESPONSE_ID => { @@ -218,12 +209,10 @@ impl Device for CloudIIWireless { // Response format: [11, 0, 187, 25, status, ...] // where status: 1 = enabled, 0 = disabled let enabled = response[4] == 1; - println!("Sidetone enabled: {}", enabled); Some(vec![DeviceEvent::SideToneOn(enabled)]) } GET_AUTO_SHUTDOWN_CMD_ID => { let minutes = response[4]; - println!("Auto shutdown after: {} minutes", minutes); Some(vec![DeviceEvent::AutomaticShutdownAfter( Duration::from_secs(minutes as u64 * 60), )]) @@ -252,10 +241,6 @@ impl Device for CloudIIWireless { // DSP/Surround sound status response: [10, 0, dsp_status, ...] let dsp_status = response[2]; let surround_enabled = (dsp_status & 2) == 2; - println!( - "Surround sound enabled: {} (dsp_status=0x{:02X})", - surround_enabled, dsp_status - ); Some(vec![DeviceEvent::SurroundSound(surround_enabled)]) } _ => { @@ -274,7 +259,6 @@ impl Device for CloudIIWireless { } fn prepare_write(&mut self) { - println!("Setting input report"); let mut input_report_buffer = [0u8; 64]; input_report_buffer[0] = 6; self.state @@ -284,104 +268,105 @@ impl Device for CloudIIWireless { } fn execute_headset_specific_functionality(&mut self) -> Result<(), DeviceError> { - println!("Writing special sequence"); - let mut packet = [0u8; 62]; - packet[0] = 6; - packet[2] = 2; - packet[4] = 154; - packet[7] = 104; - packet[8] = 74; - packet[9] = 142; - packet[10] = 10; - packet[14] = 187; - packet[15] = 1; - self.prepare_write(); - println!("Writing {:?}", packet); - self.state.hid_device.write(&packet)?; - std::thread::sleep(Duration::from_millis(200)); - if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) { - println!("{:?}", events); - for event in events { - self.get_device_state_mut().update_self_with_event(&event); - } - } - let mut packet = [0u8; 62]; - packet[0] = 6; - packet[2] = 0; - packet[4] = u8::MAX; - packet[7] = 104; - packet[8] = 74; - packet[9] = 142; - self.prepare_write(); - println!("Writing {:?}", packet); - self.state.hid_device.write(&packet)?; - std::thread::sleep(Duration::from_millis(200)); - if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) { - println!("{:?}", events); - for event in events { - self.get_device_state_mut().update_self_with_event(&event); - } - } - let mut packet = [0u8; 62]; - packet[0] = 6; - packet[2] = 2; - packet[4] = 154; - packet[7] = 104; - packet[8] = 74; - packet[9] = 142; - packet[10] = 10; - packet[14] = 187; - packet[15] = 17; - self.prepare_write(); - println!("Writing {:?}", packet); - self.state.hid_device.write(&packet)?; - std::thread::sleep(Duration::from_millis(200)); - if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) { - println!("{:?}", events); - for event in events { - self.get_device_state_mut().update_self_with_event(&event); - } - } - let mut packet = [0u8; 62]; - packet[0] = 6; - packet[2] = 2; - packet[4] = 154; - packet[7] = 104; - packet[8] = 74; - packet[9] = 142; - packet[10] = 10; - packet[14] = 187; - packet[15] = 29; - self.prepare_write(); - println!("Writing {:?}", packet); - self.state.hid_device.write(&packet)?; - std::thread::sleep(Duration::from_millis(200)); - if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) { - println!("{:?}", events); - for event in events { - self.get_device_state_mut().update_self_with_event(&event); - } - } - let mut packet = [0u8; 62]; - packet[0] = 6; - packet[2] = 2; - packet[4] = 154; - packet[7] = 104; - packet[8] = 74; - packet[9] = 142; - packet[10] = 10; - packet[14] = 187; - packet[15] = 9; - self.prepare_write(); - println!("Writing {:?}", packet); - self.state.hid_device.write(&packet)?; - std::thread::sleep(Duration::from_millis(200)); - if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) { - println!("{:?}", events); - for event in events { - self.get_device_state_mut().update_self_with_event(&event); - } - } + //TODO: I think this unmutes the headset + // println!("Writing special sequence"); + // let mut packet = [0u8; 62]; + // packet[0] = 6; + // packet[2] = 2; + // packet[4] = 154; + // packet[7] = 104; + // packet[8] = 74; + // packet[9] = 142; + // packet[10] = 10; + // packet[14] = 187; + // packet[15] = 1; + // self.prepare_write(); + // println!("Writing {:?}", packet); + // self.state.hid_device.write(&packet)?; + // std::thread::sleep(Duration::from_millis(200)); + // if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) { + // println!("{:?}", events); + // for event in events { + // self.get_device_state_mut().update_self_with_event(&event); + // } + // } + // let mut packet = [0u8; 62]; + // packet[0] = 6; + // packet[2] = 0; + // packet[4] = u8::MAX; + // packet[7] = 104; + // packet[8] = 74; + // packet[9] = 142; + // self.prepare_write(); + // println!("Writing {:?}", packet); + // self.state.hid_device.write(&packet)?; + // std::thread::sleep(Duration::from_millis(200)); + // if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) { + // println!("{:?}", events); + // for event in events { + // self.get_device_state_mut().update_self_with_event(&event); + // } + // } + // let mut packet = [0u8; 62]; + // packet[0] = 6; + // packet[2] = 2; + // packet[4] = 154; + // packet[7] = 104; + // packet[8] = 74; + // packet[9] = 142; + // packet[10] = 10; + // packet[14] = 187; + // packet[15] = 17; + // self.prepare_write(); + // println!("Writing {:?}", packet); + // self.state.hid_device.write(&packet)?; + // std::thread::sleep(Duration::from_millis(200)); + // if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) { + // println!("{:?}", events); + // for event in events { + // self.get_device_state_mut().update_self_with_event(&event); + // } + // } + // let mut packet = [0u8; 62]; + // packet[0] = 6; + // packet[2] = 2; + // packet[4] = 154; + // packet[7] = 104; + // packet[8] = 74; + // packet[9] = 142; + // packet[10] = 10; + // packet[14] = 187; + // packet[15] = 29; + // self.prepare_write(); + // println!("Writing {:?}", packet); + // self.state.hid_device.write(&packet)?; + // std::thread::sleep(Duration::from_millis(200)); + // if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) { + // println!("{:?}", events); + // for event in events { + // self.get_device_state_mut().update_self_with_event(&event); + // } + // } + // let mut packet = [0u8; 62]; + // packet[0] = 6; + // packet[2] = 2; + // packet[4] = 154; + // packet[7] = 104; + // packet[8] = 74; + // packet[9] = 142; + // packet[10] = 10; + // packet[14] = 187; + // packet[15] = 9; + // self.prepare_write(); + // println!("Writing {:?}", packet); + // self.state.hid_device.write(&packet)?; + // std::thread::sleep(Duration::from_millis(200)); + // if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) { + // println!("{:?}", events); + // for event in events { + // self.get_device_state_mut().update_self_with_event(&event); + // } + // } Ok(()) } diff --git a/src/devices/mod.rs b/src/devices/mod.rs index 8a333ce..eec3e6b 100644 --- a/src/devices/mod.rs +++ b/src/devices/mod.rs @@ -507,11 +507,9 @@ pub trait Device { let mut responded = false; for packet in packets.into_iter().flatten() { self.prepare_write(); - println!("writing Packet {packet:?}"); self.get_device_state().hid_device.write(&packet)?; std::thread::sleep(RESPONSE_DELAY); if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) { - println!("{:?}", events); for event in events { self.get_device_state_mut().update_self_with_event(&event); } @@ -532,6 +530,7 @@ pub trait Device { /// Refreshes the state by listening for events /// Only the battery level is actively queried because it is not communicated by the device on its own fn passive_refresh_state(&mut self) -> Result<(), DeviceError> { + //TODO: only if the headset allows it // println!("passive refresh"); // if let Some(events) = self.wait_for_updates(Duration::from_secs(1)) { // println!("{:?}", events); @@ -539,7 +538,6 @@ pub trait Device { // self.get_device_state_mut().update_self_with_event(&event); // } // } - println!("passive refresh get battery level"); if let Some(batter_packet) = self.get_battery_packet() { self.prepare_write(); self.get_device_state().hid_device.write(&batter_packet)?;