]> gitweb @ CieloNegro.org - EsounD.git/blobdiff - Sound/EsounD/Monitor.hs
esound-1: Replace use of MonadPeelIO with MonadControlIO
[EsounD.git] / Sound / EsounD / Monitor.hs
index 7a06b80019820bd9c2c3c131103368268878a020..20eb2ee0c1d98808d83bad397a612e547d7b4b37 100644 (file)
@@ -13,16 +13,15 @@ module Sound.EsounD.Monitor
     )
     where
 import Bindings.EsounD
-import Control.Exception.Peel
+import Control.Exception.Control
 import Control.Monad.IO.Class
-import Control.Monad.IO.Peel
+import Control.Monad.IO.Control
 import Control.Monad.Trans.Region
 import Control.Monad.Trans.Region.OnExit
 import Control.Monad.Unicode
 import Data.Bits
 import Data.StorableVector      as S
 import Data.StorableVector.Lazy as L
-import Foreign.Storable
 import Network
 import Prelude.Unicode
 import Sound.EsounD.Streams
@@ -46,9 +45,6 @@ instance Dup (Monitor fr ch) where
 instance Stream (Monitor fr ch) where
     streamSampleRate = moRate
 
-toLSV ∷ Storable α ⇒ S.Vector α → L.Vector α
-toLSV v = L.fromChunks [v]
-
 instance Frame fr ⇒ ReadableStream (Monitor fr Mono) (L.Vector fr) where
     readFrames mo nFrames
         = liftIO $
@@ -67,7 +63,7 @@ instance Frame fr ⇒ ReadableStream (Monitor fr Stereo) (L.Vector fr, L.Vector
 openMonitor ∷ ∀fr ch s pr.
                ( Frame fr
                , Channels ch
-               , MonadPeelIO pr
+               , MonadControlIO pr
                )
             ⇒ Int            -- ^ sample rate for the stream.
             → Maybe HostName -- ^ host to connect to.
@@ -75,7 +71,7 @@ openMonitor ∷ ∀fr ch s pr.
                               --   to ESD (if any).
             → RegionT s pr (Monitor fr ch (RegionT s pr))
 openMonitor rate host name
-    = block $
+    = mask_ $
       do h  ← liftIO openSocket
          ch ← onExit $ sanitizeIOError $ closeSocket h
          return Monitor {
@@ -87,7 +83,7 @@ openMonitor rate host name
       fmt ∷ C'esd_format_t
       fmt = frameFmt   ((⊥) ∷ fr) .|.
             channelFmt ((⊥) ∷ ch) .|.
-            c'ESD_STREAM            .|.
+            c'ESD_STREAM          .|.
             c'ESD_MONITOR
 
       openSocket ∷ IO Handle