]> gitweb @ CieloNegro.org - EsounD.git/blobdiff - Sound/EsounD/Internals.hs
samples
[EsounD.git] / Sound / EsounD / Internals.hs
index 60cf4b922b39d02aea0e26ab24e6b7047691ee75..735ce6324762dd14672a688df383b65515e6e727 100644 (file)
@@ -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