packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/MIDIOptions.hs

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from webmidi (webref). Do not edit.
module JSDOM.Generated.MIDIOptions
       (newMIDIOptions, setSysex, getSysex, getSysexUnsafe, getSysexUnchecked, setSoftware, getSoftware, getSoftwareUnsafe, getSoftwareUnchecked, MIDIOptions(..), gTypeMIDIOptions)
       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-midi-api/#dom-midioptions MIDIOptions specification>
newMIDIOptions :: (MonadDOM m) => m MIDIOptions
newMIDIOptions = liftDOM ((((new (jsg "Object") () >>= \o -> P.return o)) >>= fromJSValUnchecked))

-- | <https://webaudio.github.io/web-midi-api/#dom-midioptions-sysex MIDIOptions.sysex specification>
setSysex :: (MonadDOM m) => MIDIOptions -> Bool -> m ()
setSysex self val = liftDOM (void (self ^. jss "sysex" (toJSVal val)))

-- | <https://webaudio.github.io/web-midi-api/#dom-midioptions-sysex MIDIOptions.sysex specification>
getSysex :: (MonadDOM m) => MIDIOptions -> m (Maybe Bool)
getSysex self = liftDOM (((self ^. js "sysex") >>= fromJSValUnchecked))

-- | <https://webaudio.github.io/web-midi-api/#dom-midioptions-sysex MIDIOptions.sysex specification>
getSysexUnsafe :: (MonadDOM m, HasCallStack) => MIDIOptions -> m Bool
getSysexUnsafe self = liftDOM ((((self ^. js "sysex") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://webaudio.github.io/web-midi-api/#dom-midioptions-sysex MIDIOptions.sysex specification>
getSysexUnchecked :: (MonadDOM m) => MIDIOptions -> m Bool
getSysexUnchecked self = liftDOM (((self ^. js "sysex") >>= valToBool))

-- | <https://webaudio.github.io/web-midi-api/#dom-midioptions-software MIDIOptions.software specification>
setSoftware :: (MonadDOM m) => MIDIOptions -> Bool -> m ()
setSoftware self val = liftDOM (void (self ^. jss "software" (toJSVal val)))

-- | <https://webaudio.github.io/web-midi-api/#dom-midioptions-software MIDIOptions.software specification>
getSoftware :: (MonadDOM m) => MIDIOptions -> m (Maybe Bool)
getSoftware self = liftDOM (((self ^. js "software") >>= fromJSValUnchecked))

-- | <https://webaudio.github.io/web-midi-api/#dom-midioptions-software MIDIOptions.software specification>
getSoftwareUnsafe :: (MonadDOM m, HasCallStack) => MIDIOptions -> m Bool
getSoftwareUnsafe self = liftDOM ((((self ^. js "software") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://webaudio.github.io/web-midi-api/#dom-midioptions-software MIDIOptions.software specification>
getSoftwareUnchecked :: (MonadDOM m) => MIDIOptions -> m Bool
getSoftwareUnchecked self = liftDOM (((self ^. js "software") >>= valToBool))