packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/OfflineAudioContext.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.OfflineAudioContext
       (newOfflineAudioContext', newOfflineAudioContext, resume, startRendering, startRendering_, suspend, getLength, getLengthUnsafe, getLengthUnchecked, complete, OfflineAudioContext(..), gTypeOfflineAudioContext)
       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://developer.mozilla.org/docs/Web/API/OfflineAudioContext/OfflineAudioContext MDN OfflineAudioContext. documentation>
newOfflineAudioContext' :: (MonadDOM m) => OfflineAudioContextOptions -> m OfflineAudioContext
newOfflineAudioContext' contextOptions = liftDOM (((new (jsg "OfflineAudioContext") [toJSVal contextOptions]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/OfflineAudioContext MDN OfflineAudioContext. documentation>
newOfflineAudioContext :: (MonadDOM m) => Word -> Word -> Float -> m OfflineAudioContext
newOfflineAudioContext numberOfChannels length sampleRate = liftDOM (((new (jsg "OfflineAudioContext") [toJSVal numberOfChannels, toJSVal length, toJSVal sampleRate]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/resume MDN OfflineAudioContext.resume documentation>
resume :: (MonadDOM m) => OfflineAudioContext -> m ()
resume self = liftDOM (void (((self ^. jsf "resume" ()) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/startRendering MDN OfflineAudioContext.startRendering documentation>
startRendering :: (MonadDOM m) => OfflineAudioContext -> Maybe Word -> m AudioBuffer
startRendering self chunkSize = liftDOM (((((self ^. jsf "startRendering" [toJSVal chunkSize]) >>= readPromise)) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/startRendering MDN OfflineAudioContext.startRendering documentation>
startRendering_ :: (MonadDOM m) => OfflineAudioContext -> Maybe Word -> m ()
startRendering_ self chunkSize = liftDOM (void (((self ^. jsf "startRendering" [toJSVal chunkSize]) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/suspend MDN OfflineAudioContext.suspend documentation>
suspend :: (MonadDOM m) => OfflineAudioContext -> Double -> m ()
suspend self suspendTime = liftDOM (void (((self ^. jsf "suspend" [toJSVal suspendTime]) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/length MDN OfflineAudioContext.length documentation>
getLength :: (MonadDOM m) => OfflineAudioContext -> m (Maybe Word)
getLength self = liftDOM (((self ^. js "length") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/length MDN OfflineAudioContext.length documentation>
getLengthUnsafe :: (MonadDOM m, HasCallStack) => OfflineAudioContext -> m Word
getLengthUnsafe self = liftDOM ((((self ^. js "length") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/length MDN OfflineAudioContext.length documentation>
getLengthUnchecked :: (MonadDOM m) => OfflineAudioContext -> m Word
getLengthUnchecked self = liftDOM ((P.round <$> ((self ^. js "length") >>= valToNumber)))

-- | <https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontext-oncomplete complete event>
complete :: EventName OfflineAudioContext OfflineAudioCompletionEvent
complete = unsafeEventName (toJSString "complete")