]> gitweb @ CieloNegro.org - EsounD.git/blobdiff - Sound/EsounD/Player.hs
code cleanup
[EsounD.git] / Sound / EsounD / Player.hs
index 7f7eb223a88ddb2c593c7dfd695b58a2076c7f9d..b48dfee9a849f15245ecfb3f702ebdd8ca32e5ec 100644 (file)
@@ -13,7 +13,9 @@ module Sound.EsounD.Player
     )
     where
 import Bindings.EsounD
+import Control.Exception.Peel
 import Control.Monad.IO.Class
+import Control.Monad.IO.Peel
 import Control.Monad.Trans.Region
 import Control.Monad.Trans.Region.OnExit
 import Control.Monad.Unicode
@@ -54,7 +56,7 @@ instance Frame fr ⇒ Writable (Player fr Stereo) (L.Vector fr, L.Vector fr) whe
 openPlayer ∷ ∀fr ch s pr.
                ( Frame fr
                , Channels ch
-               , MonadIO pr
+               , MonadPeelIO pr
                )
            ⇒ Int            -- ^ sample rate for the stream.
            → Maybe HostName -- ^ host to connect to.
@@ -62,7 +64,8 @@ openPlayer ∷ ∀fr ch s pr.
                              --   ESD (if any).
            → RegionT s pr (Player fr ch (RegionT s pr))
 openPlayer rate host name
-    = do h  ← liftIO openSocket
+    = block $
+      do h  ← liftIO openSocket
          ch ← onExit $ sanitizeIOError $ closeSocket h
          return Player {
                       plRate   = rate