packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/ChannelSplitterOptions.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.ChannelSplitterOptions
       (newChannelSplitterOptions, setNumberOfOutputs, getNumberOfOutputs, getNumberOfOutputsUnsafe, getNumberOfOutputsUnchecked, ChannelSplitterOptions(..), gTypeChannelSplitterOptions)
       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/#ChannelSplitterOptions ChannelSplitterOptions specification>
newChannelSplitterOptions :: (MonadDOM m) => m ChannelSplitterOptions
newChannelSplitterOptions = liftDOM ((((new (jsg "Object") () >>= \o -> P.return o)) >>= fromJSValUnchecked))

-- | <https://webaudio.github.io/web-audio-api/#dom-channelsplitteroptions-numberofoutputs ChannelSplitterOptions.numberOfOutputs specification>
setNumberOfOutputs :: (MonadDOM m) => ChannelSplitterOptions -> Word -> m ()
setNumberOfOutputs self val = liftDOM (void (self ^. jss "numberOfOutputs" (toJSVal val)))

-- | <https://webaudio.github.io/web-audio-api/#dom-channelsplitteroptions-numberofoutputs ChannelSplitterOptions.numberOfOutputs specification>
getNumberOfOutputs :: (MonadDOM m) => ChannelSplitterOptions -> m (Maybe Word)
getNumberOfOutputs self = liftDOM (((self ^. js "numberOfOutputs") >>= fromJSValUnchecked))

-- | <https://webaudio.github.io/web-audio-api/#dom-channelsplitteroptions-numberofoutputs ChannelSplitterOptions.numberOfOutputs specification>
getNumberOfOutputsUnsafe :: (MonadDOM m, HasCallStack) => ChannelSplitterOptions -> m Word
getNumberOfOutputsUnsafe self = liftDOM ((((self ^. js "numberOfOutputs") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://webaudio.github.io/web-audio-api/#dom-channelsplitteroptions-numberofoutputs ChannelSplitterOptions.numberOfOutputs specification>
getNumberOfOutputsUnchecked :: (MonadDOM m) => ChannelSplitterOptions -> m Word
getNumberOfOutputsUnchecked self = liftDOM ((P.round <$> ((self ^. js "numberOfOutputs") >>= valToNumber)))