X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Sound%2FEsounD%2FInternals.hs;h=735ce6324762dd14672a688df383b65515e6e727;hb=080d77f8aece1d14f71f6fd337f0cda9cdf7d740;hp=60cf4b922b39d02aea0e26ab24e6b7047691ee75;hpb=d4df6ebbadb94400304178fa4827e189462b57ec;p=EsounD.git diff --git a/Sound/EsounD/Internals.hs b/Sound/EsounD/Internals.hs index 60cf4b9..735ce63 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 @@ -97,3 +97,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 → Bool) → CInt → m CInt +failOnError msg isErr rv + | isErr rv = fail msg + | otherwise = return rv