jsaddle-dom-0.10.0.0: src/JSDOM/Generated/AudioBufferSourceOptions.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.AudioBufferSourceOptions
(newAudioBufferSourceOptions, setBuffer, getBuffer, getBufferUnsafe, getBufferUnchecked, setDetune, getDetune, getDetuneUnsafe, getDetuneUnchecked, setLoop, getLoop, getLoopUnsafe, getLoopUnchecked, setLoopEnd, getLoopEnd, getLoopEndUnsafe, getLoopEndUnchecked, setLoopStart, getLoopStart, getLoopStartUnsafe, getLoopStartUnchecked, setPlaybackRate, getPlaybackRate, getPlaybackRateUnsafe, getPlaybackRateUnchecked, AudioBufferSourceOptions(..), gTypeAudioBufferSourceOptions)
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/#AudioBufferSourceOptions AudioBufferSourceOptions specification>
newAudioBufferSourceOptions :: (MonadDOM m) => m AudioBufferSourceOptions
newAudioBufferSourceOptions = liftDOM ((((new (jsg "Object") () >>= \o -> P.return o)) >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-buffer AudioBufferSourceOptions.buffer specification>
setBuffer :: (MonadDOM m) => AudioBufferSourceOptions -> Maybe AudioBuffer -> m ()
setBuffer self val = liftDOM (void (self ^. jss "buffer" (toJSVal val)))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-buffer AudioBufferSourceOptions.buffer specification>
getBuffer :: (MonadDOM m) => AudioBufferSourceOptions -> m (Maybe AudioBuffer)
getBuffer self = liftDOM (((self ^. js "buffer") >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-buffer AudioBufferSourceOptions.buffer specification>
getBufferUnsafe :: (MonadDOM m, HasCallStack) => AudioBufferSourceOptions -> m AudioBuffer
getBufferUnsafe self = liftDOM ((((self ^. js "buffer") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-buffer AudioBufferSourceOptions.buffer specification>
getBufferUnchecked :: (MonadDOM m) => AudioBufferSourceOptions -> m AudioBuffer
getBufferUnchecked self = liftDOM (((self ^. js "buffer") >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-detune AudioBufferSourceOptions.detune specification>
setDetune :: (MonadDOM m) => AudioBufferSourceOptions -> Float -> m ()
setDetune self val = liftDOM (void (self ^. jss "detune" (toJSVal val)))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-detune AudioBufferSourceOptions.detune specification>
getDetune :: (MonadDOM m) => AudioBufferSourceOptions -> m (Maybe Float)
getDetune self = liftDOM (((self ^. js "detune") >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-detune AudioBufferSourceOptions.detune specification>
getDetuneUnsafe :: (MonadDOM m, HasCallStack) => AudioBufferSourceOptions -> m Float
getDetuneUnsafe self = liftDOM ((((self ^. js "detune") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-detune AudioBufferSourceOptions.detune specification>
getDetuneUnchecked :: (MonadDOM m) => AudioBufferSourceOptions -> m Float
getDetuneUnchecked self = liftDOM ((P.realToFrac <$> ((self ^. js "detune") >>= valToNumber)))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-loop AudioBufferSourceOptions.loop specification>
setLoop :: (MonadDOM m) => AudioBufferSourceOptions -> Bool -> m ()
setLoop self val = liftDOM (void (self ^. jss "loop" (toJSVal val)))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-loop AudioBufferSourceOptions.loop specification>
getLoop :: (MonadDOM m) => AudioBufferSourceOptions -> m (Maybe Bool)
getLoop self = liftDOM (((self ^. js "loop") >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-loop AudioBufferSourceOptions.loop specification>
getLoopUnsafe :: (MonadDOM m, HasCallStack) => AudioBufferSourceOptions -> m Bool
getLoopUnsafe self = liftDOM ((((self ^. js "loop") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-loop AudioBufferSourceOptions.loop specification>
getLoopUnchecked :: (MonadDOM m) => AudioBufferSourceOptions -> m Bool
getLoopUnchecked self = liftDOM (((self ^. js "loop") >>= valToBool))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-loopend AudioBufferSourceOptions.loopEnd specification>
setLoopEnd :: (MonadDOM m) => AudioBufferSourceOptions -> Double -> m ()
setLoopEnd self val = liftDOM (void (self ^. jss "loopEnd" (toJSVal val)))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-loopend AudioBufferSourceOptions.loopEnd specification>
getLoopEnd :: (MonadDOM m) => AudioBufferSourceOptions -> m (Maybe Double)
getLoopEnd self = liftDOM (((self ^. js "loopEnd") >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-loopend AudioBufferSourceOptions.loopEnd specification>
getLoopEndUnsafe :: (MonadDOM m, HasCallStack) => AudioBufferSourceOptions -> m Double
getLoopEndUnsafe self = liftDOM ((((self ^. js "loopEnd") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-loopend AudioBufferSourceOptions.loopEnd specification>
getLoopEndUnchecked :: (MonadDOM m) => AudioBufferSourceOptions -> m Double
getLoopEndUnchecked self = liftDOM (((self ^. js "loopEnd") >>= valToNumber))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-loopstart AudioBufferSourceOptions.loopStart specification>
setLoopStart :: (MonadDOM m) => AudioBufferSourceOptions -> Double -> m ()
setLoopStart self val = liftDOM (void (self ^. jss "loopStart" (toJSVal val)))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-loopstart AudioBufferSourceOptions.loopStart specification>
getLoopStart :: (MonadDOM m) => AudioBufferSourceOptions -> m (Maybe Double)
getLoopStart self = liftDOM (((self ^. js "loopStart") >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-loopstart AudioBufferSourceOptions.loopStart specification>
getLoopStartUnsafe :: (MonadDOM m, HasCallStack) => AudioBufferSourceOptions -> m Double
getLoopStartUnsafe self = liftDOM ((((self ^. js "loopStart") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-loopstart AudioBufferSourceOptions.loopStart specification>
getLoopStartUnchecked :: (MonadDOM m) => AudioBufferSourceOptions -> m Double
getLoopStartUnchecked self = liftDOM (((self ^. js "loopStart") >>= valToNumber))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-playbackrate AudioBufferSourceOptions.playbackRate specification>
setPlaybackRate :: (MonadDOM m) => AudioBufferSourceOptions -> Float -> m ()
setPlaybackRate self val = liftDOM (void (self ^. jss "playbackRate" (toJSVal val)))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-playbackrate AudioBufferSourceOptions.playbackRate specification>
getPlaybackRate :: (MonadDOM m) => AudioBufferSourceOptions -> m (Maybe Float)
getPlaybackRate self = liftDOM (((self ^. js "playbackRate") >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-playbackrate AudioBufferSourceOptions.playbackRate specification>
getPlaybackRateUnsafe :: (MonadDOM m, HasCallStack) => AudioBufferSourceOptions -> m Float
getPlaybackRateUnsafe self = liftDOM ((((self ^. js "playbackRate") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://webaudio.github.io/web-audio-api/#dom-audiobuffersourceoptions-playbackrate AudioBufferSourceOptions.playbackRate specification>
getPlaybackRateUnchecked :: (MonadDOM m) => AudioBufferSourceOptions -> m Float
getPlaybackRateUnchecked self = liftDOM ((P.realToFrac <$> ((self ^. js "playbackRate") >>= valToNumber)))