module Sound.SC3.Server.NRT ( encodeNRT
, writeNRT
, putNRT ) where
import qualified Data.ByteString.Lazy as B
import Sound.OpenSoundControl
import System.IO
oscWithSize :: OSC -> B.ByteString
oscWithSize o = B.append l b
where b = encodeOSC o
l = encode_i32 (fromIntegral (B.length b))
encodeNRT :: [OSC] -> B.ByteString
encodeNRT = B.concat . map oscWithSize
writeNRT :: FilePath -> [OSC] -> IO ()
writeNRT fn = B.writeFile fn . encodeNRT
putNRT :: Handle -> [OSC] -> IO ()
putNRT h = B.hPut h . encodeNRT