module Sound.ALSA.Sequencer.Queue.Tempo
( T
, get
, set
, copy
, clone
, getQueue
, getTempo
, getPPQ
, getSkew
, getSkewBase
, setTempo
, setPPQ
, setSkew
, setSkewBase
) where
import qualified Sound.ALSA.Sequencer.Marshal.Queue as Queue
import qualified Sound.ALSA.Sequencer.Marshal.Sequencer as Seq
import qualified Sound.ALSA.Sequencer.Area as Area
import qualified Sound.ALSA.Exception as Exc
import Foreign.Ptr (Ptr, )
import Foreign.C.Types (CInt, )
import Data.Word (Word, )
type T = Area.QueueTempo
type T_ = Area.QueueTempo_
get :: Seq.T mode -> Queue.T -> IO T
get (Seq.Cons h) q =
do tempo <- Area.queue_tempo_malloc
Exc.checkResult_ "get_queue_tempo" =<< Area.with_queue_tempo tempo
(snd_seq_get_queue_tempo h (Queue.exp q))
return tempo
foreign import ccall unsafe "alsa/asoundlib.h snd_seq_get_queue_tempo"
snd_seq_get_queue_tempo :: Ptr Seq.Core -> CInt -> Ptr T_ -> IO CInt
set :: Seq.T mode -> Queue.T -> T -> IO ()
set (Seq.Cons h) p tempo =
Exc.checkResult_ "set_queue_tempo" =<< Area.with_queue_tempo tempo (snd_seq_set_queue_tempo h (Queue.exp p))
foreign import ccall unsafe "alsa/asoundlib.h snd_seq_set_queue_tempo"
snd_seq_set_queue_tempo :: Ptr Seq.Core -> CInt -> Ptr T_ -> IO CInt
copy :: T -> T -> IO ()
clone :: T -> IO T
getQueue :: T -> IO Queue.T
getTempo :: T -> IO Word
getPPQ :: T -> IO Int
getSkew :: T -> IO Word
getSkewBase :: T -> IO Word
setTempo :: T -> Word -> IO ()
setPPQ :: T -> Int -> IO ()
setSkew :: T -> Word -> IO ()
setSkewBase :: T -> Word -> IO ()
copy = Area.queue_tempo_copy
clone = Area.queue_tempo_clone
getQueue = Area.queue_tempo_get_queue
getTempo = Area.queue_tempo_get_tempo
getPPQ = Area.queue_tempo_get_ppq
getSkew = Area.queue_tempo_get_skew
getSkewBase = Area.queue_tempo_get_skew_base
setTempo = Area.queue_tempo_set_tempo
setPPQ = Area.queue_tempo_set_ppq
setSkew = Area.queue_tempo_set_skew
setSkewBase = Area.queue_tempo_set_skew_base