packages feed

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

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from mediastream-recording (webref). Do not edit.
module JSDOM.Generated.MediaRecorder
       (newMediaRecorder, pause, requestData, resume, start, stop, isTypeSupported, isTypeSupported_, getStream, getMimeType, getState, getVideoBitsPerSecond, getAudioBitsPerSecond, startEvent, stopEvent, dataavailable, pauseEvent, resumeEvent, error, MediaRecorder(..), gTypeMediaRecorder)
       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/MediaRecorder/MediaRecorder MDN MediaRecorder. documentation>
newMediaRecorder :: (MonadDOM m) => MediaStream -> Maybe MediaRecorderOptions -> m MediaRecorder
newMediaRecorder stream options = liftDOM (((new (jsg "MediaRecorder") [toJSVal stream, P.maybe (P.return jsUndefined) toJSVal options]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/MediaRecorder/pause MDN MediaRecorder.pause documentation>
pause :: (MonadDOM m) => MediaRecorder -> m ()
pause self = liftDOM (void (self ^. jsf "pause" ()))

-- | <https://developer.mozilla.org/docs/Web/API/MediaRecorder/requestData MDN MediaRecorder.requestData documentation>
requestData :: (MonadDOM m) => MediaRecorder -> m ()
requestData self = liftDOM (void (self ^. jsf "requestData" ()))

-- | <https://developer.mozilla.org/docs/Web/API/MediaRecorder/resume MDN MediaRecorder.resume documentation>
resume :: (MonadDOM m) => MediaRecorder -> m ()
resume self = liftDOM (void (self ^. jsf "resume" ()))

-- | <https://developer.mozilla.org/docs/Web/API/MediaRecorder/start MDN MediaRecorder.start documentation>
start :: (MonadDOM m) => MediaRecorder -> Maybe Word -> m ()
start self timeslice = liftDOM (void (self ^. jsf "start" [P.maybe (P.return jsUndefined) toJSVal timeslice]))

-- | <https://developer.mozilla.org/docs/Web/API/MediaRecorder/stop MDN MediaRecorder.stop documentation>
stop :: (MonadDOM m) => MediaRecorder -> m ()
stop self = liftDOM (void (self ^. jsf "stop" ()))

-- | <https://developer.mozilla.org/docs/Web/API/MediaRecorder/isTypeSupported_static MDN MediaRecorder.isTypeSupported documentation>
isTypeSupported :: (MonadDOM m, ToJSString type') => type' -> m Bool
isTypeSupported type' = liftDOM ((((jsg "MediaRecorder") ^. jsf "isTypeSupported" [toJSVal type']) >>= valToBool))

-- | <https://developer.mozilla.org/docs/Web/API/MediaRecorder/isTypeSupported_static MDN MediaRecorder.isTypeSupported documentation>
isTypeSupported_ :: (MonadDOM m, ToJSString type') => type' -> m ()
isTypeSupported_ type' = liftDOM (void ((jsg "MediaRecorder") ^. jsf "isTypeSupported" [toJSVal type']))

-- | <https://developer.mozilla.org/docs/Web/API/MediaRecorder/stream MDN MediaRecorder.stream documentation>
getStream :: (MonadDOM m) => MediaRecorder -> m MediaStream
getStream self = liftDOM (((self ^. js "stream") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/MediaRecorder/mimeType MDN MediaRecorder.mimeType documentation>
getMimeType :: (MonadDOM m, FromJSString result) => MediaRecorder -> m result
getMimeType self = liftDOM (((self ^. js "mimeType") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/MediaRecorder/state MDN MediaRecorder.state documentation>
getState :: (MonadDOM m) => MediaRecorder -> m RecordingState
getState self = liftDOM (((self ^. js "state") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/MediaRecorder/videoBitsPerSecond MDN MediaRecorder.videoBitsPerSecond documentation>
getVideoBitsPerSecond :: (MonadDOM m) => MediaRecorder -> m Word
getVideoBitsPerSecond self = liftDOM ((P.round <$> ((self ^. js "videoBitsPerSecond") >>= valToNumber)))

-- | <https://developer.mozilla.org/docs/Web/API/MediaRecorder/audioBitsPerSecond MDN MediaRecorder.audioBitsPerSecond documentation>
getAudioBitsPerSecond :: (MonadDOM m) => MediaRecorder -> m Word
getAudioBitsPerSecond self = liftDOM ((P.round <$> ((self ^. js "audioBitsPerSecond") >>= valToNumber)))

-- | <https://w3c.github.io/mediacapture-record/#dom-mediarecorder-onstart start event>
startEvent :: EventName MediaRecorder Event
startEvent = unsafeEventName (toJSString "start")

-- | <https://w3c.github.io/mediacapture-record/#dom-mediarecorder-onstop stop event>
stopEvent :: EventName MediaRecorder Event
stopEvent = unsafeEventName (toJSString "stop")

-- | <https://w3c.github.io/mediacapture-record/#dom-mediarecorder-ondataavailable dataavailable event>
dataavailable :: EventName MediaRecorder BlobEvent
dataavailable = unsafeEventName (toJSString "dataavailable")

-- | <https://w3c.github.io/mediacapture-record/#dom-mediarecorder-onpause pause event>
pauseEvent :: EventName MediaRecorder Event
pauseEvent = unsafeEventName (toJSString "pause")

-- | <https://w3c.github.io/mediacapture-record/#dom-mediarecorder-onresume resume event>
resumeEvent :: EventName MediaRecorder Event
resumeEvent = unsafeEventName (toJSString "resume")

-- | <https://w3c.github.io/mediacapture-record/#dom-mediarecorder-onerror error event>
error :: EventName MediaRecorder ErrorEvent
error = unsafeEventNameAsync (toJSString "error")