{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.QuickTimePluginReplacement
       (postEvent, getMovieSize, getTimedMetaData, getAccessLog,
        getErrorLog, QuickTimePluginReplacement(..),
        gTypeQuickTimePluginReplacement)
       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/QuickTimePluginReplacement.postEvent Mozilla QuickTimePluginReplacement.postEvent documentation> 
postEvent ::
          (MonadDOM m, ToJSString eventName) =>
            QuickTimePluginReplacement -> eventName -> m ()
postEvent :: QuickTimePluginReplacement -> eventName -> m ()
postEvent QuickTimePluginReplacement
self eventName
eventName
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (QuickTimePluginReplacement
self QuickTimePluginReplacement
-> Getting (JSM JSVal) QuickTimePluginReplacement (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"postEvent" [eventName -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal eventName
eventName]))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/QuickTimePluginReplacement.movieSize Mozilla QuickTimePluginReplacement.movieSize documentation> 
getMovieSize ::
             (MonadDOM m) => QuickTimePluginReplacement -> m Word64
getMovieSize :: QuickTimePluginReplacement -> m Word64
getMovieSize QuickTimePluginReplacement
self
  = DOM Word64 -> m Word64
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (Double -> Word64
forall a b. (RealFrac a, Integral b) => a -> b
round (Double -> Word64) -> JSM Double -> DOM Word64
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((QuickTimePluginReplacement
self QuickTimePluginReplacement
-> Getting (JSM JSVal) QuickTimePluginReplacement (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter QuickTimePluginReplacement (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"movieSize") JSM JSVal -> (JSVal -> JSM Double) -> JSM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM Double
forall value. ToJSVal value => value -> JSM Double
valToNumber))

-- | <https://developer.mozilla.org/en-US/docs/Web/API/QuickTimePluginReplacement.timedMetaData Mozilla QuickTimePluginReplacement.timedMetaData documentation> 
getTimedMetaData ::
                 (MonadDOM m) => QuickTimePluginReplacement -> m JSVal
getTimedMetaData :: QuickTimePluginReplacement -> m JSVal
getTimedMetaData QuickTimePluginReplacement
self
  = JSM JSVal -> m JSVal
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((QuickTimePluginReplacement
self QuickTimePluginReplacement
-> Getting (JSM JSVal) QuickTimePluginReplacement (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter QuickTimePluginReplacement (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"timedMetaData") JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/QuickTimePluginReplacement.accessLog Mozilla QuickTimePluginReplacement.accessLog documentation> 
getAccessLog ::
             (MonadDOM m) => QuickTimePluginReplacement -> m JSVal
getAccessLog :: QuickTimePluginReplacement -> m JSVal
getAccessLog QuickTimePluginReplacement
self = JSM JSVal -> m JSVal
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((QuickTimePluginReplacement
self QuickTimePluginReplacement
-> Getting (JSM JSVal) QuickTimePluginReplacement (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter QuickTimePluginReplacement (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"accessLog") JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/QuickTimePluginReplacement.errorLog Mozilla QuickTimePluginReplacement.errorLog documentation> 
getErrorLog ::
            (MonadDOM m) => QuickTimePluginReplacement -> m JSVal
getErrorLog :: QuickTimePluginReplacement -> m JSVal
getErrorLog QuickTimePluginReplacement
self = JSM JSVal -> m JSVal
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((QuickTimePluginReplacement
self QuickTimePluginReplacement
-> Getting (JSM JSVal) QuickTimePluginReplacement (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter QuickTimePluginReplacement (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"errorLog") JSM JSVal -> (JSVal -> JSM JSVal) -> JSM JSVal
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal)