pub const COL_BG: egui::Color32 = egui::Color32::from_rgb(26, 29, 35);
pub const COL_PANEL: egui::Color32 = egui::Color32::from_rgb(35, 40, 48);
pub const COL_BORDER: egui::Color32 = egui::Color32::from_rgb(46, 52, 64);
pub const COL_TEXT: egui::Color32 = egui::Color32::from_rgb(229, 233, 240);
pub const COL_MUTED: egui::Color32 = egui::Color32::from_rgb(139, 149, 165);
pub const COL_ACCENT: egui::Color32 = egui::Color32::from_rgb(0, 212, 170);
pub const COL_AMBER: egui::Color32 = egui::Color32::from_rgb(245, 166, 35);
pub const COL_VU_GREEN: egui::Color32 = egui::Color32::from_rgb(67, 233, 123);
pub const COL_VU_YELLOW: egui::Color32 = egui::Color32::from_rgb(245, 206, 98);
pub const COL_VU_RED: egui::Color32 = egui::Color32::from_rgb(247, 78, 78);
pub const COL_BYPASS_OFF: egui::Color32 = egui::Color32::from_rgb(74, 79, 90);
use crate::clap::plugin::NamClapShared;
use std::sync::atomic::Ordering;
pub fn resolve_accent(shared: &NamClapShared) -> egui::Color32 {
let packed = shared.cold.track_accent_color.load(Ordering::Relaxed);
let alpha = (packed >> 24) as u8;
if alpha == 0 {
COL_ACCENT
} else {
let red = ((packed >> 16) & 0xFF) as u8;
let green = ((packed >> 8) & 0xFF) as u8;
let blue = (packed & 0xFF) as u8;
egui::Color32::from_rgba_unmultiplied(red, green, blue, alpha)
}
}
pub fn resolve_color(packed: u32, fallback: egui::Color32) -> egui::Color32 {
let alpha = (packed >> 24) as u8;
if alpha == 0 {
fallback
} else {
let red = ((packed >> 16) & 0xFF) as u8;
let green = ((packed >> 8) & 0xFF) as u8;
let blue = (packed & 0xFF) as u8;
egui::Color32::from_rgba_unmultiplied(red, green, blue, alpha)
}
}