{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.OscillatorNode
(start, stop, setPeriodicWave, pattern UNSCHEDULED_STATE,
pattern SCHEDULED_STATE, pattern PLAYING_STATE,
pattern FINISHED_STATE, setType, getType, getPlaybackState,
getFrequency, getDetune, 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 Data.Traversable (mapM)
import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, asyncFunction, new, array, jsUndefined, (!), (!!))
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, unsafeEventNameAsync)
import JSDOM.Enums
start :: (MonadDOM m) => OscillatorNode -> Maybe Double -> m ()
start :: OscillatorNode -> Maybe Double -> m ()
start OscillatorNode
self Maybe Double
when
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (OscillatorNode
self OscillatorNode
-> Getting (JSM JSVal) OscillatorNode (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"start" [Maybe Double -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe Double
when]))
stop :: (MonadDOM m) => OscillatorNode -> Maybe Double -> m ()
stop :: OscillatorNode -> Maybe Double -> m ()
stop OscillatorNode
self Maybe Double
when = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (OscillatorNode
self OscillatorNode
-> Getting (JSM JSVal) OscillatorNode (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"stop" [Maybe Double -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe Double
when]))
setPeriodicWave ::
(MonadDOM m) => OscillatorNode -> Maybe PeriodicWave -> m ()
setPeriodicWave :: OscillatorNode -> Maybe PeriodicWave -> m ()
setPeriodicWave OscillatorNode
self Maybe PeriodicWave
wave
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (OscillatorNode
self OscillatorNode
-> Getting (JSM JSVal) OscillatorNode (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"setPeriodicWave" [Maybe PeriodicWave -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe PeriodicWave
wave]))
pattern $bUNSCHEDULED_STATE :: a
$mUNSCHEDULED_STATE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
UNSCHEDULED_STATE = 0
pattern $bSCHEDULED_STATE :: a
$mSCHEDULED_STATE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
SCHEDULED_STATE = 1
pattern $bPLAYING_STATE :: a
$mPLAYING_STATE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
PLAYING_STATE = 2
pattern $bFINISHED_STATE :: a
$mFINISHED_STATE :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
FINISHED_STATE = 3
setType :: (MonadDOM m) => OscillatorNode -> OscillatorType -> m ()
setType :: OscillatorNode -> OscillatorType -> m ()
setType OscillatorNode
self OscillatorType
val = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (OscillatorNode
self OscillatorNode
-> Getting (DOM ()) OscillatorNode (DOM ()) -> DOM ()
forall s a. s -> Getting a s a -> a
^. [Char]
-> JSM JSVal
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
forall name val.
(ToJSString name, ToJSVal val) =>
name
-> val
-> forall o. MakeObject o => IndexPreservingGetter o (DOM ())
jss [Char]
"type" (OscillatorType -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal OscillatorType
val))
getType :: (MonadDOM m) => OscillatorNode -> m OscillatorType
getType :: OscillatorNode -> m OscillatorType
getType OscillatorNode
self = DOM OscillatorType -> m OscillatorType
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((OscillatorNode
self OscillatorNode
-> Getting (JSM JSVal) OscillatorNode (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter OscillatorNode (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"type") JSM JSVal -> (JSVal -> DOM OscillatorType) -> DOM OscillatorType
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM OscillatorType
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
getPlaybackState :: (MonadDOM m) => OscillatorNode -> m Word
getPlaybackState :: OscillatorNode -> m Word
getPlaybackState OscillatorNode
self
= DOM Word -> m Word
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(Double -> Word
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Word) -> JSM Double -> DOM Word
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((OscillatorNode
self OscillatorNode
-> Getting (JSM JSVal) OscillatorNode (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter OscillatorNode (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"playbackState") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))
getFrequency :: (MonadDOM m) => OscillatorNode -> m AudioParam
getFrequency :: OscillatorNode -> m AudioParam
getFrequency OscillatorNode
self
= DOM AudioParam -> m AudioParam
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((OscillatorNode
self OscillatorNode
-> Getting (JSM JSVal) OscillatorNode (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter OscillatorNode (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"frequency") JSM JSVal -> (JSVal -> DOM AudioParam) -> DOM AudioParam
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM AudioParam
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
getDetune :: (MonadDOM m) => OscillatorNode -> m AudioParam
getDetune :: OscillatorNode -> m AudioParam
getDetune OscillatorNode
self
= DOM AudioParam -> m AudioParam
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((OscillatorNode
self OscillatorNode
-> Getting (JSM JSVal) OscillatorNode (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter OscillatorNode (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"detune") JSM JSVal -> (JSVal -> DOM AudioParam) -> DOM AudioParam
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM AudioParam
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)
ended :: EventName OscillatorNode Event
ended :: EventName OscillatorNode Event
ended = DOMString -> EventName OscillatorNode Event
forall t e. DOMString -> EventName t e
unsafeEventName ([Char] -> DOMString
forall a. ToJSString a => a -> DOMString
toJSString [Char]
"ended")