clack_host/plugin/
error.rs1use crate::host::HostHandlers;
2use crate::process::ProcessingStartError;
3use core::fmt;
4use core::fmt::{Debug, Display, Formatter};
5use std::error::Error;
6
7#[derive(Copy, Clone, Debug, Eq, PartialEq)]
9pub enum PluginInstanceError {
10 StartProcessingFailed,
12 AlreadyActivatedPlugin,
14 StillActivatedPlugin,
16 DeactivatedPlugin,
19 ActivationFailed,
21 PluginNotFound,
23 MissingPluginFactory,
27 InstantiationFailed,
29 PluginDestroyed,
31 ProcessingFailed,
33 ProcessingStopped,
35 ProcessingStarted,
37 NullFactoryCreatePluginFunction,
41 NullProcessFunction,
45 NullActivateFunction,
49}
50
51impl PluginInstanceError {
52 pub(crate) fn msg(&self) -> &'static str {
53 match self {
54 Self::StartProcessingFailed => "Could not start processing",
55 Self::AlreadyActivatedPlugin => "Plugin was already activated",
56 Self::StillActivatedPlugin => {
57 "Attempted to deactivate Plugin which still has an active AudioProcessor"
58 }
59 Self::DeactivatedPlugin => "Plugin is currently deactivated",
60 Self::ActivationFailed => "Unable to activate",
61 Self::PluginNotFound => "Specified plugin was not found",
62 Self::MissingPluginFactory => "No plugin factory was provided",
63 Self::InstantiationFailed => "Could not instantiate",
64 Self::PluginDestroyed => "Plugin was destroyed",
65 Self::ProcessingFailed => "Could not process",
66 Self::ProcessingStopped => "Audio Processor is currently stopped",
67 Self::ProcessingStarted => "Audio Processor is currently started",
68 Self::NullProcessFunction => "Plugin's process function is null",
69 Self::NullActivateFunction => "Plugin's activate function is null",
70 Self::NullFactoryCreatePluginFunction => {
71 "Plugin Factory's create_plugin function is null"
72 }
73 }
74 }
75}
76
77impl Display for PluginInstanceError {
78 fn fmt(&self, f: &mut Formatter) -> fmt::Result {
79 f.write_str(self.msg())
80 }
81}
82
83impl Error for PluginInstanceError {}
84
85impl<H: HostHandlers> From<ProcessingStartError<H>> for PluginInstanceError {
86 #[inline]
87 fn from(_: ProcessingStartError<H>) -> Self {
88 Self::StartProcessingFailed
89 }
90}