jsaddle-dom-0.10.0.0: src/JSDOM/Generated/ConstantSourceOptions.hs
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from webaudio-1.1 (webref). Do not edit.
module JSDOM.Generated.ConstantSourceOptions
(newConstantSourceOptions, setOffset, getOffset, getOffsetUnsafe, getOffsetUnchecked, ConstantSourceOptions(..), gTypeConstantSourceOptions)
where
import Prelude ((.), (==), (>>=), (<$>), (++), Bool(..), Maybe(..), IO, Int, Word, Double, Float)
import qualified Prelude as P
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import Language.Javascript.JSaddle (JSM, JSVal, JSString, toJSVal, valToBool, valToNumber, js, jss, jsf, jsg, new, function, asyncFunction, jsUndefined, jsNull)
import JSDOM.Types
import qualified JSDOM.Types as Types
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Generated.Enums
-- | <https://webaudio.github.io/web-audio-api/#ConstantSourceOptions ConstantSourceOptions specification>
newConstantSourceOptions :: (MonadDOM m) => m ConstantSourceOptions
newConstantSourceOptions = liftDOM ((((new (jsg "Object") () >>= \o -> P.return o)) >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-constantsourceoptions-offset ConstantSourceOptions.offset specification>
setOffset :: (MonadDOM m) => ConstantSourceOptions -> Float -> m ()
setOffset self val = liftDOM (void (self ^. jss "offset" (toJSVal val)))
-- | <https://webaudio.github.io/web-audio-api/#dom-constantsourceoptions-offset ConstantSourceOptions.offset specification>
getOffset :: (MonadDOM m) => ConstantSourceOptions -> m (Maybe Float)
getOffset self = liftDOM (((self ^. js "offset") >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-constantsourceoptions-offset ConstantSourceOptions.offset specification>
getOffsetUnsafe :: (MonadDOM m, HasCallStack) => ConstantSourceOptions -> m Float
getOffsetUnsafe self = liftDOM ((((self ^. js "offset") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://webaudio.github.io/web-audio-api/#dom-constantsourceoptions-offset ConstantSourceOptions.offset specification>
getOffsetUnchecked :: (MonadDOM m) => ConstantSourceOptions -> m Float
getOffsetUnchecked self = liftDOM ((P.realToFrac <$> ((self ^. js "offset") >>= valToNumber)))