hsc3-dot-0.15: Sound/SC3/UGen/Dot/Class.hs
-- | Typeclass for 'Drawable' values.
module Sound.SC3.UGen.Dot.Class where
import Sound.SC3 as S
import Sound.SC3.UGen.Graph as S
import Sound.SC3.UGen.Dot.Internal
import Sound.SC3.UGen.Dot.Type
-- | Draw the unit generator graph provided using the viewer at the
-- environment variable @DOTVIEWER@, or @dotty@ if that variable is
-- not defined.
class Drawable a where
dot_with_opt :: Dot_Options -> a -> String
-- | 'S.Graph's are 'Drawable', by 'dotGraph'.
instance Drawable S.Graph where
dot_with_opt = dotGraph
-- | 'S.UGens's are 'Drawable', by 'S.ugen_to_graph'.
instance Drawable S.UGen where
dot_with_opt o = dotGraph o . S.ugen_to_graph
-- | 'S.Synthdef's are 'Drawable', by 'S.synthdefGraph'.
instance Drawable S.Synthdef where
dot_with_opt o = dotGraph o . S.synthdefGraph