module Sound.ALSA.Sequencer.Queue.Info
( T
, get
, set
, copy
, clone
, getQueue
, getName
, getLocked
, getOwner
, getFlags
, setName
, setLocked
, setOwner
, setFlags
) where
import qualified Sound.ALSA.Sequencer.Marshal.Sequencer as Seq
import qualified Sound.ALSA.Sequencer.Marshal.Client as Client
import qualified Sound.ALSA.Sequencer.Marshal.Queue as Queue
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.QueueInfo
type T_ = Area.QueueInfo_
get :: Seq.T mode -> Queue.T -> IO T
get (Seq.Cons h) q =
do info <- Area.queue_info_malloc
Exc.checkResult_ "get_queue_info" =<< Area.with_queue_info info
(snd_seq_get_queue_info h (Queue.exp q))
return info
foreign import ccall unsafe "alsa/asoundlib.h snd_seq_get_queue_info"
snd_seq_get_queue_info :: Ptr Seq.Core -> CInt -> Ptr T_ -> IO CInt
set :: Seq.T mode -> Queue.T -> T -> IO ()
set (Seq.Cons h) p info =
Exc.checkResult_ "set_queue_info" =<< Area.with_queue_info info (snd_seq_set_queue_info h (Queue.exp p))
foreign import ccall unsafe "alsa/asoundlib.h snd_seq_set_queue_info"
snd_seq_set_queue_info :: Ptr Seq.Core -> CInt -> Ptr T_ -> IO CInt
copy :: T -> T -> IO ()
clone :: T -> IO T
getQueue :: T -> IO Queue.T
getName :: T -> IO String
getLocked :: T -> IO Bool
getOwner :: T -> IO Client.T
getFlags :: T -> IO Word
setName :: T -> String -> IO ()
setLocked :: T -> Bool -> IO ()
setOwner :: T -> Client.T -> IO ()
setFlags :: T -> Word -> IO ()
copy = Area.queue_info_copy
clone = Area.queue_info_clone
getQueue = Area.queue_info_get_queue
getName = Area.queue_info_get_name
getLocked = Area.queue_info_get_locked
getOwner = Area.queue_info_get_owner
getFlags = Area.queue_info_get_flags
setName = Area.queue_info_set_name
setLocked = Area.queue_info_set_locked
setOwner = Area.queue_info_set_owner
setFlags = Area.queue_info_set_flags