hosc-0.17: Haskell Open Sound Control

Safe HaskellNone
LanguageHaskell98

Sound.OSC.Transport.FD.UDP

Description

OSC over UDP implementation.

Synopsis

Documentation

data UDP Source #

The UDP transport handle data type.

Constructors

UDP 

Fields

Instances
Transport UDP Source #

UDP is an instance of Transport.

Instance details

Defined in Sound.OSC.Transport.FD.UDP

udpPort :: Integral n => UDP -> IO n Source #

Return the port number associated with the UDP socket.

upd_send_packet :: UDP -> Packet -> IO () Source #

Send packet over UDP.

udp_recv_packet :: UDP -> IO Packet Source #

Receive packet over UDP.

udp_close :: UDP -> IO () Source #

Close UDP.

with_udp :: IO UDP -> (UDP -> IO t) -> IO t Source #

Bracket UDP communication.

udp_socket :: (Socket -> SockAddr -> IO ()) -> String -> Int -> IO UDP Source #

Create and initialise UDP socket.

set_udp_opt :: SocketOption -> Int -> UDP -> IO () Source #

Set option, ie. Broadcast or RecvTimeOut.

get_udp_opt :: SocketOption -> UDP -> IO Int Source #

Get option.

openUDP :: String -> Int -> IO UDP Source #

Make a UDP connection.

udpServer :: String -> Int -> IO UDP Source #

Trivial UDP server socket.

import Control.Concurrent 
let t0 = udpServer "127.0.0.1" 57300
forkIO (FD.withTransport t0 (\fd -> forever (FD.recvMessage fd >>= print)))
let t1 = openUDP "127.0.0.1" 57300
FD.withTransport t1 (\fd -> FD.sendMessage fd (Packet.message "/n" []))

udp_server :: Int -> IO UDP Source #

Variant of udpServer that doesn't require the host address.

sendTo :: UDP -> Packet -> SockAddr -> IO () Source #

Send variant to send to specified address.

recvFrom :: UDP -> IO (Packet, SockAddr) Source #

Recv variant to collect message source address.