X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=EsounD.git;a=blobdiff_plain;f=Sound%2FEsounD%2FInternals.hs;h=f4b067f0903cf30fc9a23b62ccb13dee41c5e4fe;hp=60cf4b922b39d02aea0e26ab24e6b7047691ee75;hb=808cc2f4700bc0b2f77cee443dd237d415b4d5d7;hpb=cb4f21e26b30aff97bd7615fba86405e50b163b3 diff --git a/Sound/EsounD/Internals.hs b/Sound/EsounD/Internals.hs index 60cf4b9..f4b067f 100644 --- a/Sound/EsounD/Internals.hs +++ b/Sound/EsounD/Internals.hs @@ -14,10 +14,10 @@ module Sound.EsounD.Internals , deinterleave , toLSV - , wrapSocket , closeSocket , withCStrOrNull + , failOnError ) where import Bindings.EsounD @@ -28,6 +28,7 @@ import Foreign.C.String import Foreign.C.Types import Foreign.Ptr import Foreign.Storable +import Prelude.Unicode import System.IO import System.Posix.IO import System.Posix.Types @@ -97,3 +98,8 @@ closeSocket h = do (Fd fd) ← handleToFd h withCStrOrNull ∷ Maybe String → (CString → IO a) → IO a withCStrOrNull Nothing f = f nullPtr withCStrOrNull (Just s) f = withCString s f + +failOnError ∷ Monad m ⇒ String → CInt → m () +failOnError msg rv + | rv ≤ 0 = fail msg + | otherwise = return ()