, interleave
, deinterleave
+ , toLSV
+
, wrapSocket
, closeSocket
, withCStrOrNull
where
import Bindings.EsounD
import Data.Int
+import Data.StorableVector as S
import Data.StorableVector.Lazy as L
import Foreign.C.String
import Foreign.C.Types
(L.cons lFr l', L.cons rFr r')
-- Utility functions
+toLSV ∷ Storable α ⇒ S.Vector α → L.Vector α
+toLSV v = L.fromChunks [v]
+
wrapSocket ∷ String → CInt → IO Handle
wrapSocket e (-1) = fail e
wrapSocket _ fd = fdToHandle (Fd fd)