jsaddle-dom-0.10.0.0: src/JSDOM/Generated/MediaKeySession.hs
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from encrypted-media-2 (webref). Do not edit.
module JSDOM.Generated.MediaKeySession
(close, generateRequest, load, load_, remove, update, getSessionId, getExpiration, getClosed, getKeyStatuses, keystatuseschange, message, MediaKeySession(..), gTypeMediaKeySession)
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/MediaKeySession/close MDN MediaKeySession.close documentation>
close :: (MonadDOM m) => MediaKeySession -> m ()
close self = liftDOM (void (((self ^. jsf "close" ()) >>= readPromise)))
-- | <https://developer.mozilla.org/docs/Web/API/MediaKeySession/generateRequest MDN MediaKeySession.generateRequest documentation>
generateRequest :: (MonadDOM m, ToJSString initDataType, IsBufferSource initData) => MediaKeySession -> initDataType -> initData -> m ()
generateRequest self initDataType initData = liftDOM (void (((self ^. jsf "generateRequest" [toJSVal initDataType, toJSVal initData]) >>= readPromise)))
-- | <https://developer.mozilla.org/docs/Web/API/MediaKeySession/load MDN MediaKeySession.load documentation>
load :: (MonadDOM m, ToJSString sessionId) => MediaKeySession -> sessionId -> m Bool
load self sessionId = liftDOM (((((self ^. jsf "load" [toJSVal sessionId]) >>= readPromise)) >>= valToBool))
-- | <https://developer.mozilla.org/docs/Web/API/MediaKeySession/load MDN MediaKeySession.load documentation>
load_ :: (MonadDOM m, ToJSString sessionId) => MediaKeySession -> sessionId -> m ()
load_ self sessionId = liftDOM (void (((self ^. jsf "load" [toJSVal sessionId]) >>= readPromise)))
-- | <https://developer.mozilla.org/docs/Web/API/MediaKeySession/remove MDN MediaKeySession.remove documentation>
remove :: (MonadDOM m) => MediaKeySession -> m ()
remove self = liftDOM (void (((self ^. jsf "remove" ()) >>= readPromise)))
-- | <https://developer.mozilla.org/docs/Web/API/MediaKeySession/update MDN MediaKeySession.update documentation>
update :: (MonadDOM m, IsBufferSource response) => MediaKeySession -> response -> m ()
update self response = liftDOM (void (((self ^. jsf "update" [toJSVal response]) >>= readPromise)))
-- | <https://developer.mozilla.org/docs/Web/API/MediaKeySession/sessionId MDN MediaKeySession.sessionId documentation>
getSessionId :: (MonadDOM m, FromJSString result) => MediaKeySession -> m result
getSessionId self = liftDOM (((self ^. js "sessionId") >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/MediaKeySession/expiration MDN MediaKeySession.expiration documentation>
getExpiration :: (MonadDOM m) => MediaKeySession -> m Double
getExpiration self = liftDOM (((self ^. js "expiration") >>= valToNumber))
-- | <https://developer.mozilla.org/docs/Web/API/MediaKeySession/closed MDN MediaKeySession.closed documentation>
getClosed :: (MonadDOM m) => MediaKeySession -> m MediaKeySessionClosedReason
getClosed self = liftDOM (((((self ^. js "closed") >>= readPromise)) >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/MediaKeySession/keyStatuses MDN MediaKeySession.keyStatuses documentation>
getKeyStatuses :: (MonadDOM m) => MediaKeySession -> m MediaKeyStatusMap
getKeyStatuses self = liftDOM (((self ^. js "keyStatuses") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/encrypted-media/#dom-mediakeysession-onkeystatuseschange keystatuseschange event>
keystatuseschange :: EventName MediaKeySession Event
keystatuseschange = unsafeEventName (toJSString "keystatuseschange")
-- | <https://w3c.github.io/encrypted-media/#dom-mediakeysession-onmessage message event>
message :: EventName MediaKeySession MediaKeyMessageEvent
message = unsafeEventNameAsync (toJSString "message")