jsaddle-dom-0.10.0.0: src/JSDOM/Generated/OfflineAudioContextOptions.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.OfflineAudioContextOptions
(newOfflineAudioContextOptions, setNumberOfChannels, getNumberOfChannels, getNumberOfChannelsUnsafe, getNumberOfChannelsUnchecked, setLength, getLength, getLengthUnsafe, getLengthUnchecked, setSampleRate, getSampleRate, setRenderSizeHint, getRenderSizeHint, getRenderSizeHintUnsafe, getRenderSizeHintUnchecked, OfflineAudioContextOptions(..), gTypeOfflineAudioContextOptions)
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/#OfflineAudioContextOptions OfflineAudioContextOptions specification>
newOfflineAudioContextOptions :: (MonadDOM m) => Float -> m OfflineAudioContextOptions
newOfflineAudioContextOptions sampleRate = liftDOM ((((new (jsg "Object") () >>= \o -> (o ^. jss "sampleRate" (toJSVal sampleRate)) P.>> P.return o)) >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontextoptions-numberofchannels OfflineAudioContextOptions.numberOfChannels specification>
setNumberOfChannels :: (MonadDOM m) => OfflineAudioContextOptions -> Word -> m ()
setNumberOfChannels self val = liftDOM (void (self ^. jss "numberOfChannels" (toJSVal val)))
-- | <https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontextoptions-numberofchannels OfflineAudioContextOptions.numberOfChannels specification>
getNumberOfChannels :: (MonadDOM m) => OfflineAudioContextOptions -> m (Maybe Word)
getNumberOfChannels self = liftDOM (((self ^. js "numberOfChannels") >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontextoptions-numberofchannels OfflineAudioContextOptions.numberOfChannels specification>
getNumberOfChannelsUnsafe :: (MonadDOM m, HasCallStack) => OfflineAudioContextOptions -> m Word
getNumberOfChannelsUnsafe self = liftDOM ((((self ^. js "numberOfChannels") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontextoptions-numberofchannels OfflineAudioContextOptions.numberOfChannels specification>
getNumberOfChannelsUnchecked :: (MonadDOM m) => OfflineAudioContextOptions -> m Word
getNumberOfChannelsUnchecked self = liftDOM ((P.round <$> ((self ^. js "numberOfChannels") >>= valToNumber)))
-- | <https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontextoptions-length OfflineAudioContextOptions.length specification>
setLength :: (MonadDOM m) => OfflineAudioContextOptions -> Maybe Word -> m ()
setLength self val = liftDOM (void (self ^. jss "length" (toJSVal val)))
-- | <https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontextoptions-length OfflineAudioContextOptions.length specification>
getLength :: (MonadDOM m) => OfflineAudioContextOptions -> m (Maybe Word)
getLength self = liftDOM (((self ^. js "length") >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontextoptions-length OfflineAudioContextOptions.length specification>
getLengthUnsafe :: (MonadDOM m, HasCallStack) => OfflineAudioContextOptions -> m Word
getLengthUnsafe self = liftDOM ((((self ^. js "length") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontextoptions-length OfflineAudioContextOptions.length specification>
getLengthUnchecked :: (MonadDOM m) => OfflineAudioContextOptions -> m Word
getLengthUnchecked self = liftDOM ((P.round <$> ((self ^. js "length") >>= valToNumber)))
-- | <https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontextoptions-samplerate OfflineAudioContextOptions.sampleRate specification>
setSampleRate :: (MonadDOM m) => OfflineAudioContextOptions -> Float -> m ()
setSampleRate self val = liftDOM (void (self ^. jss "sampleRate" (toJSVal val)))
-- | <https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontextoptions-samplerate OfflineAudioContextOptions.sampleRate specification>
getSampleRate :: (MonadDOM m) => OfflineAudioContextOptions -> m Float
getSampleRate self = liftDOM ((P.realToFrac <$> ((self ^. js "sampleRate") >>= valToNumber)))
-- | <https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontextoptions-rendersizehint OfflineAudioContextOptions.renderSizeHint specification>
setRenderSizeHint :: (MonadDOM m, IsAudioContextRenderSizeCategoryOrWord val) => OfflineAudioContextOptions -> val -> m ()
setRenderSizeHint self val = liftDOM (void (self ^. jss "renderSizeHint" (toJSVal val)))
-- | <https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontextoptions-rendersizehint OfflineAudioContextOptions.renderSizeHint specification>
getRenderSizeHint :: (MonadDOM m) => OfflineAudioContextOptions -> m (Maybe AudioContextRenderSizeCategoryOrWord)
getRenderSizeHint self = liftDOM (((self ^. js "renderSizeHint") >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontextoptions-rendersizehint OfflineAudioContextOptions.renderSizeHint specification>
getRenderSizeHintUnsafe :: (MonadDOM m, HasCallStack) => OfflineAudioContextOptions -> m AudioContextRenderSizeCategoryOrWord
getRenderSizeHintUnsafe self = liftDOM ((((self ^. js "renderSizeHint") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontextoptions-rendersizehint OfflineAudioContextOptions.renderSizeHint specification>
getRenderSizeHintUnchecked :: (MonadDOM m) => OfflineAudioContextOptions -> m AudioContextRenderSizeCategoryOrWord
getRenderSizeHintUnchecked self = liftDOM (((self ^. js "renderSizeHint") >>= fromJSValUnchecked))