use crate::PluginData;
pub enum OpenRgbPlugin {
Effects,
VisualMap,
HardwareSync,
FanSync,
E131Receiver,
Scheduler,
Unknown(String),
}
impl From<PluginData> for OpenRgbPlugin {
fn from(value: PluginData) -> Self {
match value.name() {
"OpenRGB Effects Plugin" => Self::Effects,
"Visual Map" => Self::VisualMap,
"Hardware Sync" => Self::HardwareSync,
"Fan Sync" => Self::FanSync,
"E131 Receiver" => Self::E131Receiver,
"Scheduler" => Self::Scheduler,
name => Self::Unknown(name.to_owned()),
}
}
}
impl OpenRgbPlugin {
pub fn name(&self) -> &str {
match self {
Self::Effects => "OpenRGB Effects Plugin",
Self::VisualMap => "Visual Map",
Self::HardwareSync => "Hardware Sync",
Self::FanSync => "Fan Sync",
Self::E131Receiver => "E131 Receiver",
Self::Scheduler => "Scheduler",
Self::Unknown(name) => name,
}
}
}