Encoding and Parsing

Encoding

OSCMessages can be created as julia structs.

using OSC
using StringViews

msg = OSCMessage(StringView("/my/address"), StringView("ifs"), UInt32(15), Float32(3.45), StringView("string"))

OSCBundles consist of a timetag and a numer of OSCBundleElements where a OSCBundleElement can either contain an OSCMessage or another OSCBundle.

using OSC
using StringViews

msg = OSCMessage(StringView("/my/address"), StringView("ifs"), UInt32(15), Float32(3.45), StringView("string"))

bundle_element = OSCBundleElement(msg)
bundle = OSCBundle(UInt64(123456), [bundle_element, bundle_element])

Both OSCBundle and OSCMessage can be encoded to their Vector{UInt8} representation via the encodeOSC function.

using OSC
using StringViews

msg = OSCMessage(StringView("/my/address"), StringView("ifs"), UInt32(15), Float32(3.45), StringView("string"))
bundle_element = OSCBundleElement(msg)
bundle = OSCBundle(UInt64(123456), [bundle_element, bundle_element])

encodeOSC(msg)
encodeOSC(bundle)

Parsing

Any incoming message buffer of the correct format can be parsed to an OSCMessage or OSCBundle struct via the parseOSC function.

using OSC
using StringViews

msg = OSCMessage(StringView("/my/address"), StringView("ifs"), UInt32(15), Float32(3.45), StringView("string"))
bundle_element = OSCBundleElement(msg)
bundle = OSCBundle(UInt64(123456), [bundle_element, bundle_element])

e_msg = encodeOSC(msg)
e_bundle = encodeOSC(bundle)

parseOSC(e_msg)
parseOSC(e_bundle)