use nvapi::sys::i2c;
use crate::{
- a770, asus_aura_usb, corsair_lighting_pro, corsair_vengeance, cpu_temperature, intel_arc, rgb,
+ /*a770,*/ asus_aura_usb, corsair_lighting_pro, corsair_vengeance, cpu_temperature,
+ intel_arc, lian_li_sl_infinity, rgb,
};
const RGB_FUSION2_GPU_REG_COLOR: u8 = 0x40;
const GIGABYTE_RTX3080TI_VISION_OC_ADDR: u8 = 0x63;
pub trait Machine {
- fn set_color(&mut self, color: &rgb::RGB);
+ fn set_color(&mut self, color: &rgb::RGB) {
+ self.set_color_1(&color);
+ self.set_color_2(&color);
+ }
+ fn set_color_1(&mut self, color: &rgb::RGB);
+ fn set_color_2(&mut self, color: &rgb::RGB);
fn get_gpu_tmp(&self) -> f32;
fn get_cpu_tmp(&self) -> f32;
}
pub struct MachineJiji {
ram: Vec<corsair_vengeance::Controller>,
b650e_device: asus_aura_usb::Device,
- a770: a770::A770,
- gpu_devices: intel_arc::Devices,
+ // a770: a770::A770,
+ // gpu_devices: intel_arc::Devices,
+ gpus: Vec<nvapi::PhysicalGpu>,
}
impl MachineJiji {
corsair_vengeance::Controller::new(0x1B),
],
b650e_device: asus_aura_usb::Device::new(&api, asus_aura_usb::Motherboard::Asus650e)?,
- a770: a770::A770::new()?,
- gpu_devices: unsafe { intel_arc::GetDevices() },
+ // a770: a770::A770::new()?,
+ // gpu_devices: unsafe { intel_arc::GetDevices() },
+ gpus: nvapi::PhysicalGpu::enumerate()?,
})
}
}
impl Machine for MachineJiji {
- fn set_color(&mut self, color: &rgb::RGB) {
+ fn set_color_1(&mut self, color: &rgb::RGB) {
for controller in &self.ram {
controller.set_color(&color);
}
- self.b650e_device.set_color(&color);
- if let Err(error) = self.a770.set_color(color.red, color.green, color.blue) {
- error!("Unable to set color: {:?}", error);
- }
+ self.b650e_device.set_color(&color).unwrap();
}
+ fn set_color_2(&mut self, color: &rgb::RGB) {} // No color 2.
+
fn get_gpu_tmp(&self) -> f32 {
- unsafe { intel_arc::GetTemperature(self.gpu_devices, 0) as f32 }
+ // unsafe { intel_arc::GetTemperature(self.gpu_devices, 0) as f32 }
+ self.gpus[0].thermal_settings(None).unwrap()[0]
+ .current_temperature
+ .0 as f32
}
fn get_cpu_tmp(&self) -> f32 {
}
}
-impl Drop for MachineJiji {
- fn drop(&mut self) {
- unsafe {
- intel_arc::FreeDevices(self.gpu_devices);
- }
- }
-}
+// impl Drop for MachineJiji {
+// fn drop(&mut self) {
+// unsafe {
+// intel_arc::FreeDevices(self.gpu_devices);
+// }
+// }
+// }
pub struct MachineLyssMetal {
crosshair_device: asus_aura_usb::Device,
corsair_lignting_pro: corsair_lighting_pro::Device,
+ lian_li_sl_infinity: lian_li_sl_infinity::Device,
gpus: Vec<nvapi::PhysicalGpu>,
}
blue: 40,
},
),
+ lian_li_sl_infinity: lian_li_sl_infinity::Device::new(&api),
gpus: nvapi::PhysicalGpu::enumerate()?,
};
}
impl Machine for MachineLyssMetal {
- fn set_color(&mut self, color: &rgb::RGB) {
- self.crosshair_device.set_color(&color);
+ fn set_color_1(&mut self, color: &rgb::RGB) {
+ self.crosshair_device.set_color(&color).unwrap();
self.corsair_lignting_pro.set_color(&color);
// self.set_color_3080ti(&color); // TODO.
}
+ fn set_color_2(&mut self, color: &rgb::RGB) {
+ self.lian_li_sl_infinity.set_color(&color);
+ }
+
fn get_gpu_tmp(&self) -> f32 {
self.gpus[0].thermal_settings(None).unwrap()[0]
.current_temperature