module JSDOM.Generated.OscillatorNode
(start, stop, noteOn, noteOff, setPeriodicWave, pattern SINE,
pattern SQUARE, pattern SAWTOOTH, pattern TRIANGLE, pattern CUSTOM,
pattern UNSCHEDULED_STATE, pattern SCHEDULED_STATE,
pattern PLAYING_STATE, pattern FINISHED_STATE, setType, getType,
getPlaybackState, getFrequency, getFrequencyUnsafe,
getFrequencyUnchecked, getDetune, getDetuneUnsafe,
getDetuneUnchecked, ended, OscillatorNode(..), gTypeOscillatorNode)
where
import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..))
import qualified Prelude (error)
import Data.Typeable (Typeable)
import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, new, array)
import Data.Int (Int64)
import Data.Word (Word, Word64)
import JSDOM.Types
import Control.Applicative ((<$>))
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import JSDOM.EventTargetClosures (EventName, unsafeEventName)
import JSDOM.Enums
#if MIN_VERSION_base(4,9,0)
import GHC.Stack (HasCallStack)
#elif MIN_VERSION_base(4,8,0)
import GHC.Stack (CallStack)
import GHC.Exts (Constraint)
type HasCallStack = ((?callStack :: CallStack) :: Constraint)
#else
import GHC.Exts (Constraint)
type HasCallStack = (() :: Constraint)
#endif
start :: (MonadDOM m) => OscillatorNode -> Double -> m ()
start self when
= liftDOM (void (self ^. jsf "start" [toJSVal when]))
stop :: (MonadDOM m) => OscillatorNode -> Double -> m ()
stop self when = liftDOM (void (self ^. jsf "stop" [toJSVal when]))
noteOn :: (MonadDOM m) => OscillatorNode -> Double -> m ()
noteOn self when
= liftDOM (void (self ^. jsf "noteOn" [toJSVal when]))
noteOff :: (MonadDOM m) => OscillatorNode -> Double -> m ()
noteOff self when
= liftDOM (void (self ^. jsf "noteOff" [toJSVal when]))
setPeriodicWave ::
(MonadDOM m) => OscillatorNode -> Maybe PeriodicWave -> m ()
setPeriodicWave self wave
= liftDOM (void (self ^. jsf "setPeriodicWave" [toJSVal wave]))
pattern SINE = 0
pattern SQUARE = 1
pattern SAWTOOTH = 2
pattern TRIANGLE = 3
pattern CUSTOM = 4
pattern UNSCHEDULED_STATE = 0
pattern SCHEDULED_STATE = 1
pattern PLAYING_STATE = 2
pattern FINISHED_STATE = 3
setType ::
(MonadDOM m, ToJSString val) => OscillatorNode -> val -> m ()
setType self val = liftDOM (self ^. jss "type" (toJSVal val))
getType ::
(MonadDOM m, FromJSString result) => OscillatorNode -> m result
getType self = liftDOM ((self ^. js "type") >>= fromJSValUnchecked)
getPlaybackState :: (MonadDOM m) => OscillatorNode -> m Word
getPlaybackState self
= liftDOM
(round <$> ((self ^. js "playbackState") >>= valToNumber))
getFrequency ::
(MonadDOM m) => OscillatorNode -> m (Maybe AudioParam)
getFrequency self
= liftDOM ((self ^. js "frequency") >>= fromJSVal)
getFrequencyUnsafe ::
(MonadDOM m, HasCallStack) => OscillatorNode -> m AudioParam
getFrequencyUnsafe self
= liftDOM
(((self ^. js "frequency") >>= fromJSVal) >>=
maybe (Prelude.error "Nothing to return") return)
getFrequencyUnchecked ::
(MonadDOM m) => OscillatorNode -> m AudioParam
getFrequencyUnchecked self
= liftDOM ((self ^. js "frequency") >>= fromJSValUnchecked)
getDetune :: (MonadDOM m) => OscillatorNode -> m (Maybe AudioParam)
getDetune self = liftDOM ((self ^. js "detune") >>= fromJSVal)
getDetuneUnsafe ::
(MonadDOM m, HasCallStack) => OscillatorNode -> m AudioParam
getDetuneUnsafe self
= liftDOM
(((self ^. js "detune") >>= fromJSVal) >>=
maybe (Prelude.error "Nothing to return") return)
getDetuneUnchecked ::
(MonadDOM m) => OscillatorNode -> m AudioParam
getDetuneUnchecked self
= liftDOM ((self ^. js "detune") >>= fromJSValUnchecked)
ended :: EventName OscillatorNode Event
ended = unsafeEventName (toJSString "ended")