module Sound.ALSA.Sequencer.Address
  ( Addr.T(Addr.Cons, Addr.client, Addr.port)
  , Addr.subscribers
  , parse
  ) where

import qualified Sound.ALSA.Sequencer.Marshal.Address as Addr
import qualified Sound.ALSA.Sequencer.Marshal.Sequencer as MSeq
import qualified Sound.ALSA.Sequencer.Sequencer as Seq

{- |
Parse the given string into sequencer address.
The client and port are separated by either colon or period, e.g. 128:1.
The function also accepts client names.
-}
parse
  :: MSeq.T mode  -- ^ Sequencer handle.
  -> String       -- ^ String to be parsed.
  -> IO Addr.T    -- ^ The parsed address.
parse = Seq.parseAddress