-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Ableton Link integration for Tidal
--   
--   Ableton Link integration for Tidal, to let Tidal sync with external
--   clocks
@package tidal-link
@version 1.0.1

module Sound.Tidal.Link
data AbletonLinkImpl
data SessionStateImpl
newtype AbletonLink
AbletonLink :: Ptr AbletonLinkImpl -> AbletonLink
newtype SessionState
SessionState :: Ptr SessionStateImpl -> SessionState
type Beat = CDouble
type BPM = CDouble
type Micros = Int64
type Quantum = CDouble
create :: BPM -> IO AbletonLink
abl_link_enable :: AbletonLink -> CBool -> IO ()
setEnabled :: Bool -> AbletonLink -> IO ()
enable :: AbletonLink -> IO ()
disable :: AbletonLink -> IO ()
createSessionState :: IO SessionState
captureAppSessionState :: AbletonLink -> SessionState -> IO ()
createAndCaptureAppSessionState :: AbletonLink -> IO SessionState
commitAppSessionState :: AbletonLink -> SessionState -> IO ()
destroySessionState :: SessionState -> IO ()
commitAndDestroyAppSessionState :: AbletonLink -> SessionState -> IO ()
clock :: AbletonLink -> IO Micros
beatAtTime :: SessionState -> Micros -> Quantum -> IO Beat
timeAtBeat :: SessionState -> Beat -> Quantum -> IO Micros
getTempo :: SessionState -> IO BPM
setTempo :: SessionState -> BPM -> Micros -> IO ()
requestBeatAtTime :: SessionState -> Beat -> Micros -> Quantum -> IO ()
forceBeatAtTime :: SessionState -> Beat -> Micros -> Quantum -> IO ()

-- | Test
hello :: IO ()
instance GHC.Show.Show Sound.Tidal.Link.SessionState
instance Foreign.Storable.Storable Sound.Tidal.Link.SessionState
instance GHC.Show.Show Sound.Tidal.Link.AbletonLink
instance Foreign.Storable.Storable Sound.Tidal.Link.AbletonLink
