jsaddle-dom-0.10.0.0: src/JSDOM/Generated/StereoPannerOptions.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.StereoPannerOptions
(newStereoPannerOptions, setPan, getPan, getPanUnsafe, getPanUnchecked, StereoPannerOptions(..), gTypeStereoPannerOptions)
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/#StereoPannerOptions StereoPannerOptions specification>
newStereoPannerOptions :: (MonadDOM m) => m StereoPannerOptions
newStereoPannerOptions = liftDOM ((((new (jsg "Object") () >>= \o -> P.return o)) >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-stereopanneroptions-pan StereoPannerOptions.pan specification>
setPan :: (MonadDOM m) => StereoPannerOptions -> Float -> m ()
setPan self val = liftDOM (void (self ^. jss "pan" (toJSVal val)))
-- | <https://webaudio.github.io/web-audio-api/#dom-stereopanneroptions-pan StereoPannerOptions.pan specification>
getPan :: (MonadDOM m) => StereoPannerOptions -> m (Maybe Float)
getPan self = liftDOM (((self ^. js "pan") >>= fromJSValUnchecked))
-- | <https://webaudio.github.io/web-audio-api/#dom-stereopanneroptions-pan StereoPannerOptions.pan specification>
getPanUnsafe :: (MonadDOM m, HasCallStack) => StereoPannerOptions -> m Float
getPanUnsafe self = liftDOM ((((self ^. js "pan") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://webaudio.github.io/web-audio-api/#dom-stereopanneroptions-pan StereoPannerOptions.pan specification>
getPanUnchecked :: (MonadDOM m) => StereoPannerOptions -> m Float
getPanUnchecked self = liftDOM ((P.realToFrac <$> ((self ^. js "pan") >>= valToNumber)))