hosc-0.21: Haskell Open Sound Control
Safe HaskellSafe-Inferred
LanguageHaskell2010

Sound.Osc.Coding.Decode.Binary

Description

Optimised decode function for Osc packets.

Synopsis

Documentation

decodeMessage :: ByteString -> Message Source #

Decode an Osc Message from a lazy ByteString.

>>> let b = ByteString.Lazy.pack [47,103,95,102,114,101,101,0,44,105,0,0,0,0,0,0]
>>> decodeMessage b == Message "/g_free" [Int32 0]
True

decodeBundle :: ByteString -> BundleOf Message Source #

Decode an Osc BundleOf from a lazy ByteString.

decodePacket :: ByteString -> PacketOf Message Source #

Decode an Osc packet from a lazy ByteString.

>>> let b = ByteString.Lazy.pack [47,103,95,102,114,101,101,0,44,105,0,0,0,0,0,0]
>>> decodePacket b == Packet_Message (Message "/g_free" [Int32 0])
True

decodePacket_strict :: ByteString -> PacketOf Message Source #

Decode an Osc packet from a strict Char8 ByteString.

decodeMessageOr :: ByteString -> Either String Message Source #

Either decode Osc message or return an error message. Prevents application halt for non-valid messagebundlepacket arrives.

>>> let b = ByteString.Lazy.pack [1,2,3,2,1]
>>> decodePacketOr b
Left "not enough bytes"