{-# LANGUAGE PatternSynonyms, ForeignFunctionInterface, JavaScriptFFI #-} module GHCJS.DOM.JSFFI.Generated.OscillatorNode (js_start, start, js_stop, stop, js_noteOn, noteOn, js_noteOff, noteOff, js_setPeriodicWave, setPeriodicWave, pattern SINE, pattern SQUARE, pattern SAWTOOTH, pattern TRIANGLE, pattern CUSTOM, pattern UNSCHEDULED_STATE, pattern SCHEDULED_STATE, pattern PLAYING_STATE, pattern FINISHED_STATE, js_setType, setType, js_getType, getType, js_getPlaybackState, getPlaybackState, js_getFrequency, getFrequency, js_getDetune, getDetune, ended, OscillatorNode, castToOscillatorNode, gTypeOscillatorNode) where import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, fmap, Show, Read, Eq, Ord) import Data.Typeable (Typeable) import GHCJS.Types (JSRef(..), JSString, castRef) import GHCJS.Foreign (jsNull) import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..)) import GHCJS.Marshal (ToJSRef(..), FromJSRef(..)) import GHCJS.Marshal.Pure (PToJSRef(..), PFromJSRef(..)) import Control.Monad.IO.Class (MonadIO(..)) import Data.Int (Int64) import Data.Word (Word, Word64) import GHCJS.DOM.Types import Control.Applicative ((<$>)) import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName) import GHCJS.DOM.Enums foreign import javascript unsafe "$1[\"start\"]($2)" js_start :: JSRef OscillatorNode -> Double -> IO () -- | start :: (MonadIO m) => OscillatorNode -> Double -> m () start self when = liftIO (js_start (unOscillatorNode self) when) foreign import javascript unsafe "$1[\"stop\"]($2)" js_stop :: JSRef OscillatorNode -> Double -> IO () -- | stop :: (MonadIO m) => OscillatorNode -> Double -> m () stop self when = liftIO (js_stop (unOscillatorNode self) when) foreign import javascript unsafe "$1[\"noteOn\"]($2)" js_noteOn :: JSRef OscillatorNode -> Double -> IO () -- | noteOn :: (MonadIO m) => OscillatorNode -> Double -> m () noteOn self when = liftIO (js_noteOn (unOscillatorNode self) when) foreign import javascript unsafe "$1[\"noteOff\"]($2)" js_noteOff :: JSRef OscillatorNode -> Double -> IO () -- | noteOff :: (MonadIO m) => OscillatorNode -> Double -> m () noteOff self when = liftIO (js_noteOff (unOscillatorNode self) when) foreign import javascript unsafe "$1[\"setPeriodicWave\"]($2)" js_setPeriodicWave :: JSRef OscillatorNode -> JSRef PeriodicWave -> IO () -- | setPeriodicWave :: (MonadIO m) => OscillatorNode -> Maybe PeriodicWave -> m () setPeriodicWave self wave = liftIO (js_setPeriodicWave (unOscillatorNode self) (maybe jsNull pToJSRef wave)) pattern SINE = 0 pattern SQUARE = 1 pattern SAWTOOTH = 2 pattern TRIANGLE = 3 pattern CUSTOM = 4 pattern UNSCHEDULED_STATE = 0 pattern SCHEDULED_STATE = 1 pattern PLAYING_STATE = 2 pattern FINISHED_STATE = 3 foreign import javascript unsafe "$1[\"type\"] = $2;" js_setType :: JSRef OscillatorNode -> JSString -> IO () -- | setType :: (MonadIO m, ToJSString val) => OscillatorNode -> val -> m () setType self val = liftIO (js_setType (unOscillatorNode self) (toJSString val)) foreign import javascript unsafe "$1[\"type\"]" js_getType :: JSRef OscillatorNode -> IO JSString -- | getType :: (MonadIO m, FromJSString result) => OscillatorNode -> m result getType self = liftIO (fromJSString <$> (js_getType (unOscillatorNode self))) foreign import javascript unsafe "$1[\"playbackState\"]" js_getPlaybackState :: JSRef OscillatorNode -> IO Word -- | getPlaybackState :: (MonadIO m) => OscillatorNode -> m Word getPlaybackState self = liftIO (js_getPlaybackState (unOscillatorNode self)) foreign import javascript unsafe "$1[\"frequency\"]" js_getFrequency :: JSRef OscillatorNode -> IO (JSRef AudioParam) -- | getFrequency :: (MonadIO m) => OscillatorNode -> m (Maybe AudioParam) getFrequency self = liftIO ((js_getFrequency (unOscillatorNode self)) >>= fromJSRef) foreign import javascript unsafe "$1[\"detune\"]" js_getDetune :: JSRef OscillatorNode -> IO (JSRef AudioParam) -- | getDetune :: (MonadIO m) => OscillatorNode -> m (Maybe AudioParam) getDetune self = liftIO ((js_getDetune (unOscillatorNode self)) >>= fromJSRef) -- | ended :: EventName OscillatorNode Event ended = unsafeEventName (toJSString "ended")