{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.CanvasCaptureMediaStreamTrack
       (requestFrame, getCanvas, CanvasCaptureMediaStreamTrack(..),
        gTypeCanvasCaptureMediaStreamTrack)
       where
import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..))
import qualified Prelude (error)
import Data.Typeable (Typeable)
import Data.Traversable (mapM)
import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, asyncFunction, new, array, jsUndefined, (!), (!!))
import Data.Int (Int64)
import Data.Word (Word, Word64)
import JSDOM.Types
import Control.Applicative ((<$>))
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Enums

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasCaptureMediaStreamTrack.requestFrame Mozilla CanvasCaptureMediaStreamTrack.requestFrame documentation> 
requestFrame ::
             (MonadDOM m) => CanvasCaptureMediaStreamTrack -> m ()
requestFrame :: forall (m :: * -> *).
MonadDOM m =>
CanvasCaptureMediaStreamTrack -> m ()
requestFrame CanvasCaptureMediaStreamTrack
self = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (CanvasCaptureMediaStreamTrack
self CanvasCaptureMediaStreamTrack
-> Getting (JSM JSVal) CanvasCaptureMediaStreamTrack (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"requestFrame" ()))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/CanvasCaptureMediaStreamTrack.canvas Mozilla CanvasCaptureMediaStreamTrack.canvas documentation> 
getCanvas ::
          (MonadDOM m) =>
            CanvasCaptureMediaStreamTrack -> m HTMLCanvasElement
getCanvas :: forall (m :: * -> *).
MonadDOM m =>
CanvasCaptureMediaStreamTrack -> m HTMLCanvasElement
getCanvas CanvasCaptureMediaStreamTrack
self
  = DOM HTMLCanvasElement -> m HTMLCanvasElement
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((CanvasCaptureMediaStreamTrack
self CanvasCaptureMediaStreamTrack
-> Getting (JSM JSVal) CanvasCaptureMediaStreamTrack (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String
-> IndexPreservingGetter CanvasCaptureMediaStreamTrack (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js String
"canvas") JSM JSVal
-> (JSVal -> DOM HTMLCanvasElement) -> DOM HTMLCanvasElement
forall a b. JSM a -> (a -> JSM b) -> JSM b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM HTMLCanvasElement
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)