diff --git a/src/config.rs b/src/config.rs index 77e566b..0253ef9 100644 --- a/src/config.rs +++ b/src/config.rs @@ -68,6 +68,9 @@ impl Configuration { next.text().to_string() } + pub fn change_color(num_leds: usize, num_one: &u8, num_two: &u8, num_three: &u8) { + // code goes here + } } // grab the config diff --git a/src/main.rs b/src/main.rs index 37948d9..502bd80 100644 --- a/src/main.rs +++ b/src/main.rs @@ -30,103 +30,94 @@ fn main() { let mut ws = Ws2812::new(spi); let delay = Delay::new(); let mut configuration = config::init_config(); + let mut headless_count: u32 = 0; loop { println!("{:?}", configuration); - if false == configuration.is_change_app() { - let app_text = configuration.get_app_status(); - configuration.change_active_app(&app_text); - let activeapp = app::match_to_app(app_text); + + let power_text = configuration.get_power_status(); + configuration.change_power(&power_text); + let tvpower = app::match_to_power_status(power_text); - match activeapp { - app::ActiveApp::Roku => { - let color = RGB8::new(255, 0, 255); - let mut data = [RGB8::default(); NUM_LEDS]; + match tvpower { + app::TVPower::Off => { + headless_count += headless_count + 1; - for i in 0..NUM_LEDS { - data[i] = color; - } - ws.write(brightness(data.iter().cloned(), 32)).unwrap(); - }, - app::ActiveApp::Hulu => { - let green = RGB8::new(51, 255, 85); - let mut data = [RGB8::default(); NUM_LEDS]; - - for i in 0..NUM_LEDS { - data[i] = green; - } - ws.write(brightness(data.iter().cloned(), 32)).unwrap(); - }, - app::ActiveApp::Netflix => { - let red = RGB8::new(255, 77, 77); - let mut data = [RGB8::default(); NUM_LEDS]; - - for i in 0..NUM_LEDS { - data[i] = red; - } - ws.write(brightness(data.iter().cloned(), 32)).unwrap(); - }, - app::ActiveApp::AmazonPrime => println!("The light are light blue!"), - app::ActiveApp::Spotify => { - let green = RGB8::new(51, 255, 85); - let mut data = [RGB8::default(); NUM_LEDS]; - - for i in 0..NUM_LEDS { - data[i] = green; - } - ws.write(brightness(data.iter().cloned(), 32)).unwrap(); - }, - app::ActiveApp::Plex => { - let orange = RGB8::new(255, 187, 51); - let mut data = [RGB8::default(); NUM_LEDS]; - - for i in 0..NUM_LEDS { - data[i] = orange; - } - ws.write(brightness(data.iter().cloned(), 32)).unwrap(); - }, - _ => println!("Oops!"), - } - } - - if false == configuration.is_change_power() { - let power_text = configuration.get_power_status(); - configuration.change_power(&power_text); - let tvpower = app::match_to_power_status(power_text); - - match tvpower { - app::TVPower::On => { - continue - }, - app::TVPower::Off => { + if headless_count <= 2 { let color = RGB8::new(0, 0, 0); let mut data = [RGB8::default(); NUM_LEDS]; for i in 0..NUM_LEDS { data[i] = color; } - + ws.write(brightness(data.iter().cloned(), 32)).unwrap(); - }, - _ => println!("We don't know what the power status of the TV is..."), - } + } + }, + app::TVPower::On => { + if false == configuration.is_change_app() { + headless_count = 0; + + let app_text = configuration.get_app_status(); + configuration.change_active_app(&app_text); + let activeapp = app::match_to_app(app_text); + + match activeapp { + app::ActiveApp::Roku => { + let color = RGB8::new(255, 0, 255); + let mut data = [RGB8::default(); NUM_LEDS]; + + for i in 0..NUM_LEDS { + data[i] = color; + } + ws.write(brightness(data.iter().cloned(), 10)).unwrap(); + }, + app::ActiveApp::Hulu => { + let green = RGB8::new(51, 255, 85); + let mut data = [RGB8::default(); NUM_LEDS]; + + for i in 0..NUM_LEDS { + data[i] = green; + } + ws.write(brightness(data.iter().cloned(), 32)).unwrap(); + }, + app::ActiveApp::Netflix => { + let red = RGB8::new(255, 77, 77); + let mut data = [RGB8::default(); NUM_LEDS]; + + for i in 0..NUM_LEDS { + data[i] = red; + } + ws.write(brightness(data.iter().cloned(), 32)).unwrap(); + }, + app::ActiveApp::AmazonPrime => println!("The light are light blue!"), + app::ActiveApp::Spotify => { + let green = RGB8::new(51, 255, 85); + let mut data = [RGB8::default(); NUM_LEDS]; + + for i in 0..NUM_LEDS { + data[i] = green; + } + ws.write(brightness(data.iter().cloned(), 32)).unwrap(); + }, + app::ActiveApp::Plex => { + let orange = RGB8::new(255, 187, 51); + let mut data = [RGB8::default(); NUM_LEDS]; + + for i in 0..NUM_LEDS { + data[i] = orange; + } + ws.write(brightness(data.iter().cloned(), 32)).unwrap(); + }, + _ => println!("Oops!"), + } + } + }, + _ => println!("We don't know what the power status of the TV is..."), } - let sec = time::Duration::from_secs(3); + let sec = time::Duration::from_secs(1); thread::sleep(sec); - } -} - -fn wheel(mut wheel_pos: u8) -> RGB8 { - wheel_pos = 255 - wheel_pos; - if wheel_pos < 85 { - return (255 - wheel_pos * 3, 0, wheel_pos * 3).into(); - } - if wheel_pos < 170 { - wheel_pos -= 85; - return (0, wheel_pos * 3, 255 - wheel_pos * 3).into(); - } - wheel_pos -= 170; - (wheel_pos * 3, 255 - wheel_pos * 3, 0).into() + } } \ No newline at end of file