edge-0.9.1.0: AfterEffect.hs
{-# LANGUAGE ExistentialQuantification #-}
{-|
Module : AfterEffect
Description : Defines transient video or audio effects
Copyright : (c) Christopher Howard, 2016
License : GPL-3
Maintainer : ch.howard@zoho.com
Defines visual or audio effects which are brief but not instantaneous.
-}
module AfterEffect ( AfterEffect (..) ) where
import Prelude (return)
import Animation
import Updating
import Moving
data AfterEffect =
forall a. ( Animation a
, Locatable a
, Transient a
, Audible a
) => AfterEffect a
instance InternallyUpdating AfterEffect where
preUpdate (AfterEffect a) et = AfterEffect (preUpdate a et)
postUpdate (AfterEffect a) et = AfterEffect (postUpdate a et)
instance Transient AfterEffect where
expired' (AfterEffect a) = expired' a
instance Audible AfterEffect where
processAudio (AfterEffect a) c = do b <- processAudio a c
return (AfterEffect b)
terminateAudio (AfterEffect a) = do b <- terminateAudio a
return (AfterEffect b)