Should work now, needs testing
This commit is contained in:
parent
a8ad1d5c76
commit
d9aae15559
41
src/main.rs
41
src/main.rs
@ -45,13 +45,17 @@ struct LightingMessage {
|
||||
}
|
||||
*/
|
||||
|
||||
struct SliderValues {
|
||||
slider_r: u8,
|
||||
slider_g: u8,
|
||||
slider_b: u8
|
||||
}
|
||||
|
||||
struct MainPage {
|
||||
red: u8,
|
||||
green: u8,
|
||||
blue: u8,
|
||||
config: KeyboardConfig,
|
||||
btn_appearance: iced::widget::button::Appearance,
|
||||
btn_size: u16
|
||||
btn_size: u16,
|
||||
slider_values: SliderValues,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
@ -59,7 +63,10 @@ enum MainPageMessages {
|
||||
UpdateColor {
|
||||
row: u8,
|
||||
col: u8
|
||||
}
|
||||
},
|
||||
UpdatedSlider_R(u8),
|
||||
UpdatedSlider_G(u8),
|
||||
UpdatedSlider_B(u8)
|
||||
}
|
||||
|
||||
|
||||
@ -126,6 +133,8 @@ fn main() -> Result<(), iced::Error> {
|
||||
|
||||
// USB Code
|
||||
fn send_lighting_update(col: u8, row: u8, r: u8, g: u8, b: u8, _a: u8) {
|
||||
println!("Sending lighting update!");
|
||||
|
||||
let config: KeyboardConfig = parse_config(&Path::new("numpad_config.json"));
|
||||
|
||||
let context = libusb::Context::new().unwrap(); // Get a new USB context
|
||||
@ -168,7 +177,6 @@ impl Sandbox for MainPage {
|
||||
fn new() -> Self {
|
||||
println!("Creating UI");
|
||||
MainPage {
|
||||
red: 0, green: 0, blue: 0,
|
||||
config: parse_config(&Path::new("numpad_config.json")),
|
||||
btn_appearance: iced::widget::button::Appearance {
|
||||
shadow_offset: Vector {
|
||||
@ -181,7 +189,8 @@ impl Sandbox for MainPage {
|
||||
border_color: iced::Color::from_rgb8(0xFF, 0xFF, 0xFF),
|
||||
text_color: iced::Color::from_rgb8(0xFF, 0xFF, 0xFF)
|
||||
},
|
||||
btn_size: 150
|
||||
btn_size: 150,
|
||||
slider_values: SliderValues { slider_r: 0, slider_g: 0, slider_b: 0 },
|
||||
}
|
||||
}
|
||||
|
||||
@ -190,7 +199,17 @@ impl Sandbox for MainPage {
|
||||
}
|
||||
|
||||
fn update(&mut self, message: Self::Message) {
|
||||
println!("New message: {:?}", message);
|
||||
match message {
|
||||
MainPageMessages::UpdatedSlider_R(value) => { self.slider_values.slider_r = value; }
|
||||
MainPageMessages::UpdatedSlider_G(value) => { self.slider_values.slider_g = value; }
|
||||
MainPageMessages::UpdatedSlider_B(value) => { self.slider_values.slider_b = value; }
|
||||
MainPageMessages::UpdateColor { row, col } => {
|
||||
println!("{:?}", message);
|
||||
send_lighting_update(col, row, self.slider_values.slider_r, self.slider_values.slider_g, self.slider_values.slider_b, 0x0);
|
||||
}
|
||||
_ => { println!("New message: {:?}", message); }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fn view(&self) -> iced::Element<'_, Self::Message> {
|
||||
@ -264,9 +283,13 @@ impl Sandbox for MainPage {
|
||||
|
||||
// Create the color selector
|
||||
|
||||
let slider_r = Slider::new();
|
||||
let slider_r = Slider::new(0..=255, self.slider_values.slider_r, MainPageMessages::UpdatedSlider_R);
|
||||
let slider_g = Slider::new(0..=255, self.slider_values.slider_g, MainPageMessages::UpdatedSlider_G);
|
||||
let slider_b = Slider::new(0..=255, self.slider_values.slider_b, MainPageMessages::UpdatedSlider_B);
|
||||
let color_selector_col = Column::new()
|
||||
.push(slider_r)
|
||||
.push(slider_g)
|
||||
.push(slider_b)
|
||||
.height(iced::Length::Fill).width(iced::Length::Fill);
|
||||
|
||||
let view_row = Row::new().height(iced::Length::Fill).width(iced::Length::Fill)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user