hosc-0.15: Haskell Open Sound Control

Safe HaskellNone
LanguageHaskell98

Sound.OSC.Transport.Monad

Contents

Description

Monad class implementing an Open Sound Control transport.

Synopsis

Documentation

class Monad m => SendOSC m where #

Sender monad.

Minimal complete definition

sendOSC

Methods

sendOSC :: OSC o => o -> m () #

Encode and send an OSC packet.

Instances

(Transport t, MonadIO io) => SendOSC (ReaderT * t io) # 

Methods

sendOSC :: OSC o => o -> ReaderT * t io () #

class Monad m => RecvOSC m where #

Receiver monad.

Minimal complete definition

recvPacket

Methods

recvPacket :: m Packet #

Receive and decode an OSC packet.

Instances

(Transport t, MonadIO io) => RecvOSC (ReaderT * t io) # 

Methods

recvPacket :: ReaderT * t io Packet #

class (SendOSC m, RecvOSC m) => DuplexOSC m #

DuplexOSC is the union of SendOSC and RecvOSC.

Instances

(Transport t, MonadIO io) => DuplexOSC (ReaderT * t io) # 

class (DuplexOSC m, MonadIO m) => Transport m #

Transport is DuplexOSC with a MonadIO constraint.

Instances

(Transport t, MonadIO io) => Transport (ReaderT * t io) # 

type Connection t a = ReaderT t IO a #

Transport connection.

withTransport :: Transport t => IO t -> Connection t a -> IO a #

Bracket Open Sound Control communication.

Send

sendMessage :: SendOSC m => Message -> m () #

Type restricted synonym for sendOSC.

sendBundle :: SendOSC m => Bundle -> m () #

Type restricted synonym for sendOSC.

Receive

recvOSC :: (RecvOSC m, OSC o) => m (Maybe o) #

Variant of recvPacket that runs fromPacket.

recvBundle :: RecvOSC m => m Bundle #

Variant of recvPacket that runs packet_to_bundle.

recvMessage :: RecvOSC m => m (Maybe Message) #

Variant of recvPacket that runs packet_to_message.

recvMessages :: RecvOSC m => m [Message] #

Variant of recvPacket that runs packetMessages.

Wait

waitUntil :: RecvOSC m => (Packet -> Bool) -> m Packet #

Wait for a Packet where the supplied predicate is True, discarding intervening packets.

waitFor :: RecvOSC m => (Packet -> Maybe a) -> m a #

Wait for a Packet where the supplied function does not give Nothing, discarding intervening packets.

waitMessage :: RecvOSC m => m Message #

waitFor packet_to_message, ie. an incoming Message or immediate mode Bundle with one element.

waitAddress :: RecvOSC m => Address_Pattern -> m Packet #

A waitFor for variant using packet_has_address to match on the Address_Pattern of incoming Packets.

waitReply :: RecvOSC m => Address_Pattern -> m Message #

Variant on waitAddress that returns matching Message.

waitDatum :: RecvOSC m => Address_Pattern -> m [Datum] #

Variant of waitReply that runs messageDatum.