changed to use string values for true and false
This commit is contained in:
parent
3decc966c9
commit
b44a16e0e1
2 changed files with 50 additions and 26 deletions
|
@ -1,6 +1,6 @@
|
|||
use std::ops::Add;
|
||||
|
||||
use super::enums::{SubScenes, Scenes};
|
||||
use super::enums::{SubScenes, Scenes, SlideChange};
|
||||
use serde_json::Value;
|
||||
|
||||
|
||||
|
@ -17,6 +17,7 @@ pub enum StateUpdate {
|
|||
TimerText(String),
|
||||
SubScene(SubScenes),
|
||||
Scene(Scenes),
|
||||
ChangeSlide(SlideChange),
|
||||
UpdateClient,
|
||||
}
|
||||
|
||||
|
@ -34,11 +35,12 @@ impl StateUpdate {
|
|||
match scene {
|
||||
"Scene_Camera" => {StateUpdate::Scene(Scenes::Camera)}
|
||||
"Scene_Screen" => {StateUpdate::Scene(Scenes::Screen)}
|
||||
"Scene_Is_Augmented" => {StateUpdate::SceneIsAugmented(incoming_json["data"].as_bool().unwrap())},
|
||||
_ => {panic!("unknown Scene! {}", scene)}
|
||||
}
|
||||
}
|
||||
|
||||
"Scene_Is_Augmented" => {StateUpdate::SceneIsAugmented(string_to_bool(incoming_json["data"].as_str().unwrap()))},
|
||||
|
||||
//SubScenes
|
||||
"SubScene" => {
|
||||
let subscene = incoming_json["data"].as_str().unwrap();
|
||||
|
@ -55,24 +57,25 @@ impl StateUpdate {
|
|||
}
|
||||
|
||||
//Slide changing behavior
|
||||
"Timer_Can_Run" => {StateUpdate::TimerCanRun(incoming_json["data"].as_bool().unwrap())}
|
||||
"Change_With_Clicker" => {StateUpdate::ChangeSceneOnChangeSlide(incoming_json["data"].as_bool().unwrap())},
|
||||
"Timer_Can_Run" => {StateUpdate::TimerCanRun(string_to_bool(incoming_json["data"].as_str().unwrap()))}
|
||||
"Change_With_Clicker" => {StateUpdate::ChangeSceneOnChangeSlide(string_to_bool(incoming_json["data"].as_str().unwrap()))},
|
||||
"Timer_Length" => {
|
||||
let new_timer_length = &incoming_json["data"];
|
||||
StateUpdate::TimerLength(new_timer_length.as_f64().unwrap() as f32)
|
||||
},
|
||||
|
||||
//Extra Toggles
|
||||
"Toggle_Computer_Volume" => {StateUpdate::ComputerSoundIsOn(incoming_json["data"].as_bool().unwrap())},
|
||||
"Toggle_Stream_Volume" => {StateUpdate::StreamIsMuted(incoming_json["data"].as_bool().unwrap())},
|
||||
"Media_Pause_Play" => {StateUpdate::ComputerMediaDoPause(incoming_json["data"].as_bool().unwrap())},
|
||||
|
||||
"Toggle_Computer_Volume" => {StateUpdate::ComputerSoundIsOn(string_to_bool(incoming_json["data"].as_str().unwrap()))},
|
||||
"Toggle_Stream_Volume" => {StateUpdate::StreamIsMuted(string_to_bool(incoming_json["data"].as_str().unwrap()))},
|
||||
"Media_Pause_Play" => {StateUpdate::ComputerMediaDoPause(string_to_bool(incoming_json["data"].as_str().unwrap()))},
|
||||
|
||||
"all" => {StateUpdate::UpdateClient},
|
||||
|
||||
"Stream_Running" => {StateUpdate::StreamRunning(string_to_bool(incoming_json["data"].as_str().unwrap()))}
|
||||
|
||||
"Next_Slide" => {StateUpdate::ChangeSlide(SlideChange::Next)},
|
||||
"Prev_Slide" => {StateUpdate::ChangeSlide(SlideChange::Previous)}
|
||||
//Unimplemented
|
||||
"Next_Slide" |
|
||||
"Prev_Slide" |
|
||||
_ => {panic!("trying to use a button type I don't know!: {}", value)}
|
||||
}
|
||||
},
|
||||
|
@ -104,7 +107,9 @@ impl StateUpdate {
|
|||
("SubScene", scene.to_string())},
|
||||
StateUpdate::Scene(scene) => {
|
||||
("Scene", scene.to_string())},
|
||||
StateUpdate::ComputerMediaDoPause(is_true) => todo!(),
|
||||
StateUpdate::ComputerMediaDoPause(is_true) => {
|
||||
("Toggle_Computer_Volume", is_true.to_string())},
|
||||
StateUpdate::ChangeSlide(value) => todo!(),
|
||||
StateUpdate::UpdateClient => todo!(),
|
||||
};
|
||||
serde_json::json!({
|
||||
|
@ -114,3 +119,13 @@ impl StateUpdate {
|
|||
})
|
||||
}
|
||||
}
|
||||
|
||||
fn string_to_bool(input: &str) -> bool{
|
||||
if input == "true" {
|
||||
true
|
||||
} else if input == "false" {
|
||||
false
|
||||
} else {
|
||||
panic!("string to bool doesn't recognize the input: {}", input);
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
use crate::modules::stream_states::{state_update::StateUpdate, enums::{Scenes, SubScenes}};
|
||||
use crate::modules::stream_states::{state_update::StateUpdate, enums::{Scenes, SubScenes, SlideChange}};
|
||||
|
||||
|
||||
|
||||
|
@ -13,47 +13,47 @@ fn test_json_to_state_update() {
|
|||
).unwrap()), StateUpdate::Scene(Scenes::Screen));
|
||||
|
||||
assert_eq!(StateUpdate::json_to_state_update(serde_json::from_str(
|
||||
"{\"type\": \"update\", \"update\": \"Scene_Is_Augmented\", \"data\": true}"
|
||||
"{\"type\": \"update\", \"update\": \"Scene_Is_Augmented\", \"data\": \"true\"}"
|
||||
).unwrap()), StateUpdate::SceneIsAugmented(true));
|
||||
|
||||
assert_eq!(StateUpdate::json_to_state_update(serde_json::from_str(
|
||||
"{\"type\": \"update\", \"update\": \"Auto_Change_To_Camera\", \"data\": true}"
|
||||
"{\"type\": \"update\", \"update\": \"Timer_Can_Run\", \"data\": \"true\"}"
|
||||
).unwrap()), StateUpdate::TimerCanRun(true));
|
||||
|
||||
assert_eq!(StateUpdate::json_to_state_update(serde_json::from_str(
|
||||
"{\"type\": \"update\", \"update\": \"Auto_Change_To_Camera\", \"data\": false}"
|
||||
"{\"type\": \"update\", \"update\": \"Timer_Can_Run\", \"data\": \"false\"}"
|
||||
).unwrap()), StateUpdate::TimerCanRun(false));
|
||||
|
||||
assert_eq!(StateUpdate::json_to_state_update(serde_json::from_str(
|
||||
"{\"type\": \"update\", \"update\": \"Change_With_Clicker\", \"data\": true}"
|
||||
"{\"type\": \"update\", \"update\": \"Change_With_Clicker\", \"data\": \"true\"}"
|
||||
).unwrap()), StateUpdate::ChangeSceneOnChangeSlide(true));
|
||||
|
||||
assert_eq!(StateUpdate::json_to_state_update(serde_json::from_str(
|
||||
"{\"type\": \"update\", \"update\": \"Change_With_Clicker\", \"data\": false}"
|
||||
"{\"type\": \"update\", \"update\": \"Change_With_Clicker\", \"data\": \"false\"}"
|
||||
).unwrap()), StateUpdate::ChangeSceneOnChangeSlide(false));
|
||||
|
||||
assert_eq!(StateUpdate::json_to_state_update(serde_json::from_str(
|
||||
"{\"type\": \"update\", \"update\": \"Toggle_Computer_Volume\", \"data\": true}"
|
||||
"{\"type\": \"update\", \"update\": \"Toggle_Computer_Volume\", \"data\": \"true\"}"
|
||||
).unwrap()), StateUpdate::ComputerSoundIsOn(true));
|
||||
|
||||
assert_eq!(StateUpdate::json_to_state_update(serde_json::from_str(
|
||||
"{\"type\": \"update\", \"update\": \"Toggle_Computer_Volume\", \"data\": false}"
|
||||
"{\"type\": \"update\", \"update\": \"Toggle_Computer_Volume\", \"data\": \"false\"}"
|
||||
).unwrap()), StateUpdate::ComputerSoundIsOn(false));
|
||||
|
||||
assert_eq!(StateUpdate::json_to_state_update(serde_json::from_str(
|
||||
"{\"type\": \"update\", \"update\": \"Toggle_Stream_Volume\", \"data\": true}"
|
||||
"{\"type\": \"update\", \"update\": \"Toggle_Stream_Volume\", \"data\": \"true\"}"
|
||||
).unwrap()), StateUpdate::StreamIsMuted(true));
|
||||
|
||||
assert_eq!(StateUpdate::json_to_state_update(serde_json::from_str(
|
||||
"{\"type\": \"update\", \"update\": \"Toggle_Stream_Volume\", \"data\": false}"
|
||||
"{\"type\": \"update\", \"update\": \"Toggle_Stream_Volume\", \"data\": \"false\"}"
|
||||
).unwrap()), StateUpdate::StreamIsMuted(false));
|
||||
|
||||
assert_eq!(StateUpdate::json_to_state_update(serde_json::from_str(
|
||||
"{\"type\": \"update\", \"update\": \"Media_Pause_Play\", \"data\": true}"
|
||||
"{\"type\": \"update\", \"update\": \"Media_Pause_Play\", \"data\": \"true\"}"
|
||||
).unwrap()), StateUpdate::ComputerMediaDoPause(true));
|
||||
|
||||
assert_eq!(StateUpdate::json_to_state_update(serde_json::from_str(
|
||||
"{\"type\": \"update\", \"update\": \"Media_Pause_Play\", \"data\": false}"
|
||||
"{\"type\": \"update\", \"update\": \"Media_Pause_Play\", \"data\": \"false\"}"
|
||||
).unwrap()), StateUpdate::ComputerMediaDoPause(false));
|
||||
|
||||
assert_eq!(StateUpdate::json_to_state_update(serde_json::from_str(
|
||||
|
@ -85,12 +85,20 @@ fn test_json_to_state_update() {
|
|||
).unwrap()), StateUpdate::SubScene(SubScenes::ScreenWithLowerRight));
|
||||
|
||||
assert_eq!(StateUpdate::json_to_state_update(serde_json::from_str(
|
||||
"{\"type\": \"update\", \"update\": \"Timer_Length\" \"data\": 5.5}"
|
||||
).unwrap()), StateUpdate::TimerLength(5.5));
|
||||
"{\"type\": \"update\", \"update\": \"Timer_Length\", \"data\": 5.5}"
|
||||
).unwrap()), StateUpdate::TimerLength(5.5));
|
||||
|
||||
assert_eq!(StateUpdate::json_to_state_update(serde_json::from_str(
|
||||
"{\"type\": \"update\", \"update\": \"Next_Slide\"}"
|
||||
).unwrap()), StateUpdate::ChangeSlide(SlideChange::Next));
|
||||
|
||||
assert_eq!(StateUpdate::json_to_state_update(serde_json::from_str(
|
||||
"{\"type\": \"update\", \"update\": \"Prev_Slide\"}"
|
||||
).unwrap()), StateUpdate::ChangeSlide(SlideChange::Previous));
|
||||
|
||||
assert_eq!(StateUpdate::json_to_state_update(serde_json::from_str(
|
||||
"{\"type\": \"update\", \"update\":\"all\"}"
|
||||
).unwrap()), StateUpdate::UpdateClient);
|
||||
).unwrap()), StateUpdate::UpdateClient);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -103,6 +111,7 @@ fn test_json_to_state_update_fails() {
|
|||
|
||||
#[test]
|
||||
fn test_state_update_to_json() {
|
||||
println!("{:?}", StateUpdate::StreamRunning(true).to_json());
|
||||
//Note, this one needs to is dependant on test_json_to_update for correctedness
|
||||
assert_eq!(StateUpdate::StreamRunning(true), (StateUpdate::json_to_state_update(StateUpdate::StreamRunning(true).to_json())));
|
||||
}
|
Loading…
Reference in a new issue