{-# LANGUAGE PatternSynonyms #-} module Language.Javascript.JSaddle.DOM.Generated.AudioBufferSourceNode (start, stop, noteOn, noteGrainOn, noteOff, pattern UNSCHEDULED_STATE, pattern SCHEDULED_STATE, pattern PLAYING_STATE, pattern FINISHED_STATE, setBuffer, getBuffer, getPlaybackState, getGain, getPlaybackRate, setLoop, getLoop, setLoopStart, getLoopStart, setLoopEnd, getLoopEnd, setLooping, getLooping, ended, AudioBufferSourceNode, castToAudioBufferSourceNode, gTypeAudioBufferSourceNode) where import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..)) import Data.Typeable (Typeable) import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, new, array) import Data.Int (Int64) import Data.Word (Word, Word64) import Language.Javascript.JSaddle.DOM.Types import Control.Applicative ((<$>)) import Control.Monad (void) import Control.Lens.Operators ((^.)) import Language.Javascript.JSaddle.DOM.EventTargetClosures (EventName, unsafeEventName) import Language.Javascript.JSaddle.DOM.Enums -- | start :: (MonadDOM m) => AudioBufferSourceNode -> Double -> Double -> Double -> m () start self when grainOffset grainDuration = liftDOM (void (self ^. jsf "start" [toJSVal when, toJSVal grainOffset, toJSVal grainDuration])) -- | stop :: (MonadDOM m) => AudioBufferSourceNode -> Double -> m () stop self when = liftDOM (void (self ^. jsf "stop" [toJSVal when])) -- | noteOn :: (MonadDOM m) => AudioBufferSourceNode -> Double -> m () noteOn self when = liftDOM (void (self ^. jsf "noteOn" [toJSVal when])) -- | noteGrainOn :: (MonadDOM m) => AudioBufferSourceNode -> Double -> Double -> Double -> m () noteGrainOn self when grainOffset grainDuration = liftDOM (void (self ^. jsf "noteGrainOn" [toJSVal when, toJSVal grainOffset, toJSVal grainDuration])) -- | noteOff :: (MonadDOM m) => AudioBufferSourceNode -> Double -> m () noteOff self when = liftDOM (void (self ^. jsf "noteOff" [toJSVal when])) pattern UNSCHEDULED_STATE = 0 pattern SCHEDULED_STATE = 1 pattern PLAYING_STATE = 2 pattern FINISHED_STATE = 3 -- | setBuffer :: (MonadDOM m) => AudioBufferSourceNode -> Maybe AudioBuffer -> m () setBuffer self val = liftDOM (self ^. jss "buffer" (toJSVal val)) -- | getBuffer :: (MonadDOM m) => AudioBufferSourceNode -> m (Maybe AudioBuffer) getBuffer self = liftDOM ((self ^. js "buffer") >>= fromJSVal) -- | getPlaybackState :: (MonadDOM m) => AudioBufferSourceNode -> m Word getPlaybackState self = liftDOM (round <$> ((self ^. js "playbackState") >>= valToNumber)) -- | getGain :: (MonadDOM m) => AudioBufferSourceNode -> m (Maybe AudioParam) getGain self = liftDOM ((self ^. js "gain") >>= fromJSVal) -- | getPlaybackRate :: (MonadDOM m) => AudioBufferSourceNode -> m (Maybe AudioParam) getPlaybackRate self = liftDOM ((self ^. js "playbackRate") >>= fromJSVal) -- | setLoop :: (MonadDOM m) => AudioBufferSourceNode -> Bool -> m () setLoop self val = liftDOM (self ^. jss "loop" (toJSVal val)) -- | getLoop :: (MonadDOM m) => AudioBufferSourceNode -> m Bool getLoop self = liftDOM ((self ^. js "loop") >>= valToBool) -- | setLoopStart :: (MonadDOM m) => AudioBufferSourceNode -> Double -> m () setLoopStart self val = liftDOM (self ^. jss "loopStart" (toJSVal val)) -- | getLoopStart :: (MonadDOM m) => AudioBufferSourceNode -> m Double getLoopStart self = liftDOM ((self ^. js "loopStart") >>= valToNumber) -- | setLoopEnd :: (MonadDOM m) => AudioBufferSourceNode -> Double -> m () setLoopEnd self val = liftDOM (self ^. jss "loopEnd" (toJSVal val)) -- | getLoopEnd :: (MonadDOM m) => AudioBufferSourceNode -> m Double getLoopEnd self = liftDOM ((self ^. js "loopEnd") >>= valToNumber) -- | setLooping :: (MonadDOM m) => AudioBufferSourceNode -> Bool -> m () setLooping self val = liftDOM (self ^. jss "looping" (toJSVal val)) -- | getLooping :: (MonadDOM m) => AudioBufferSourceNode -> m Bool getLooping self = liftDOM ((self ^. js "looping") >>= valToBool) -- | ended :: EventName AudioBufferSourceNode Event ended = unsafeEventName (toJSString "ended")