packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/MIDIPort.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.MIDIPort
       (close, close_, open, open_, getId, getManufacturer, getManufacturerUnsafe, getManufacturerUnchecked, getName, getNameUnsafe, getNameUnchecked, getType, getVersion, getVersionUnsafe, getVersionUnchecked, getState, getConnection, statechange, MIDIPort(..), gTypeMIDIPort, IsMIDIPort, toMIDIPort)
       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/MIDIPort/close MDN MIDIPort.close documentation>
close :: (MonadDOM m, IsMIDIPort self) => self -> m MIDIPort
close self = liftDOM ((((((Types.toMIDIPort self) ^. jsf "close" ()) >>= readPromise)) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/MIDIPort/close MDN MIDIPort.close documentation>
close_ :: (MonadDOM m, IsMIDIPort self) => self -> m ()
close_ self = liftDOM (void ((((Types.toMIDIPort self) ^. jsf "close" ()) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/MIDIPort/open MDN MIDIPort.open documentation>
open :: (MonadDOM m, IsMIDIPort self) => self -> m MIDIPort
open self = liftDOM ((((((Types.toMIDIPort self) ^. jsf "open" ()) >>= readPromise)) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/MIDIPort/open MDN MIDIPort.open documentation>
open_ :: (MonadDOM m, IsMIDIPort self) => self -> m ()
open_ self = liftDOM (void ((((Types.toMIDIPort self) ^. jsf "open" ()) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/MIDIPort/id MDN MIDIPort.id documentation>
getId :: (MonadDOM m, IsMIDIPort self, FromJSString result) => self -> m result
getId self = liftDOM ((((Types.toMIDIPort self) ^. js "id") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/MIDIPort/manufacturer MDN MIDIPort.manufacturer documentation>
getManufacturer :: (MonadDOM m, IsMIDIPort self, FromJSString result) => self -> m (Maybe result)
getManufacturer self = liftDOM ((((Types.toMIDIPort self) ^. js "manufacturer") >>= fromMaybeJSString))

-- | <https://developer.mozilla.org/docs/Web/API/MIDIPort/manufacturer MDN MIDIPort.manufacturer documentation>
getManufacturerUnsafe :: (MonadDOM m, IsMIDIPort self, HasCallStack, FromJSString result) => self -> m result
getManufacturerUnsafe self = liftDOM (((((Types.toMIDIPort self) ^. js "manufacturer") >>= fromMaybeJSString) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/MIDIPort/manufacturer MDN MIDIPort.manufacturer documentation>
getManufacturerUnchecked :: (MonadDOM m, IsMIDIPort self, FromJSString result) => self -> m result
getManufacturerUnchecked self = liftDOM ((((Types.toMIDIPort self) ^. js "manufacturer") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/MIDIPort/name MDN MIDIPort.name documentation>
getName :: (MonadDOM m, IsMIDIPort self, FromJSString result) => self -> m (Maybe result)
getName self = liftDOM ((((Types.toMIDIPort self) ^. js "name") >>= fromMaybeJSString))

-- | <https://developer.mozilla.org/docs/Web/API/MIDIPort/name MDN MIDIPort.name documentation>
getNameUnsafe :: (MonadDOM m, IsMIDIPort self, HasCallStack, FromJSString result) => self -> m result
getNameUnsafe self = liftDOM (((((Types.toMIDIPort self) ^. js "name") >>= fromMaybeJSString) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/MIDIPort/name MDN MIDIPort.name documentation>
getNameUnchecked :: (MonadDOM m, IsMIDIPort self, FromJSString result) => self -> m result
getNameUnchecked self = liftDOM ((((Types.toMIDIPort self) ^. js "name") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/MIDIPort/type MDN MIDIPort.type documentation>
getType :: (MonadDOM m, IsMIDIPort self) => self -> m MIDIPortType
getType self = liftDOM ((((Types.toMIDIPort self) ^. js "type") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/MIDIPort/version MDN MIDIPort.version documentation>
getVersion :: (MonadDOM m, IsMIDIPort self, FromJSString result) => self -> m (Maybe result)
getVersion self = liftDOM ((((Types.toMIDIPort self) ^. js "version") >>= fromMaybeJSString))

-- | <https://developer.mozilla.org/docs/Web/API/MIDIPort/version MDN MIDIPort.version documentation>
getVersionUnsafe :: (MonadDOM m, IsMIDIPort self, HasCallStack, FromJSString result) => self -> m result
getVersionUnsafe self = liftDOM (((((Types.toMIDIPort self) ^. js "version") >>= fromMaybeJSString) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/MIDIPort/version MDN MIDIPort.version documentation>
getVersionUnchecked :: (MonadDOM m, IsMIDIPort self, FromJSString result) => self -> m result
getVersionUnchecked self = liftDOM ((((Types.toMIDIPort self) ^. js "version") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/MIDIPort/state MDN MIDIPort.state documentation>
getState :: (MonadDOM m, IsMIDIPort self) => self -> m MIDIPortDeviceState
getState self = liftDOM ((((Types.toMIDIPort self) ^. js "state") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/MIDIPort/connection MDN MIDIPort.connection documentation>
getConnection :: (MonadDOM m, IsMIDIPort self) => self -> m MIDIPortConnectionState
getConnection self = liftDOM ((((Types.toMIDIPort self) ^. js "connection") >>= fromJSValUnchecked))

-- | <https://webaudio.github.io/web-midi-api/#dom-midiport-onstatechange statechange event>
statechange :: (IsMIDIPort self, IsEventTarget self) => EventName self MIDIConnectionEvent
statechange = unsafeEventName (toJSString "statechange")