summaryrefslogtreecommitdiff
path: root/crates/renderer/src/toggle.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/renderer/src/toggle.rs')
-rw-r--r--crates/renderer/src/toggle.rs24
1 files changed, 16 insertions, 8 deletions
diff --git a/crates/renderer/src/toggle.rs b/crates/renderer/src/toggle.rs
index f6d60a4..8468fc4 100644
--- a/crates/renderer/src/toggle.rs
+++ b/crates/renderer/src/toggle.rs
@@ -1,8 +1,6 @@
use teleia::*;
use std::collections::HashMap;
-use crate::fig;
-
#[derive(Debug, Clone)]
pub struct Toggle {
pub val: bool,
@@ -27,15 +25,25 @@ impl Toggles {
pub fn reset(&mut self) {
self.toggles.clear();
}
- pub fn handle(&mut self, ctx: &context::Context, st: &state::State, msg: fig::SexpMessage) -> Option<()> {
- let nm = msg.data.get(0)?.as_str()?;
+ pub fn handle(&mut self,
+ ctx: &context::Context, st: &state::State,
+ msg: fig::BinaryMessage
+ ) {
+ let nm = if let Ok(s) = str::from_utf8(&msg.data) { s } else {
+ log::warn!("failed to decode toggle name");
+ return;
+ };
let prev = self.get(ctx, st, nm).map(|t| t.val).unwrap_or(false);
self.set(ctx, st, nm, !prev);
- Some(())
}
- pub fn handle_set(&mut self, ctx: &context::Context, st: &state::State, msg: fig::SexpMessage, val: bool) -> Option<()> {
- let nm = msg.data.get(0)?.as_str()?;
+ pub fn handle_set(&mut self,
+ ctx: &context::Context, st: &state::State,
+ msg: fig::BinaryMessage, val: bool
+ ) {
+ let nm = if let Ok(s) = str::from_utf8(&msg.data) { s } else {
+ log::warn!("failed to decode toggle name");
+ return;
+ };
self.set(ctx, st, nm, val);
- Some(())
}
}