X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=EsounD.git;a=blobdiff_plain;f=Sound%2FEsounD%2FRecorder.hs;h=caeaaa0b579c9e3ea272a565df531737c04fd909;hp=7a843c3b9a67ec445878d62b95de4d2fa48ccff6;hb=fe6d90865e38cb96fa33610c1b38d0e8fc86d1e9;hpb=a2e2bda599616a8e7ef0b429aaf047921f0d5950 diff --git a/Sound/EsounD/Recorder.hs b/Sound/EsounD/Recorder.hs index 7a843c3..caeaaa0 100644 --- a/Sound/EsounD/Recorder.hs +++ b/Sound/EsounD/Recorder.hs @@ -13,9 +13,9 @@ module Sound.EsounD.Recorder ) 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 @@ -63,7 +63,7 @@ instance Frame fr ⇒ ReadableStream (Recorder fr Stereo) (L.Vector fr, L.Vector openRecorder ∷ ∀fr ch s pr. ( Frame fr , Channels ch - , MonadPeelIO pr + , MonadControlIO pr ) ⇒ Int -- ^ sample rate for the stream. → Maybe HostName -- ^ host to connect to. @@ -71,7 +71,7 @@ openRecorder ∷ ∀fr ch s pr. -- to ESD (if any). → RegionT s pr (Recorder fr ch (RegionT s pr)) openRecorder rate host name - = block $ + = mask_ $ do h ← liftIO openSocket ch ← onExit $ sanitizeIOError $ closeSocket h return Recorder { @@ -83,7 +83,7 @@ openRecorder rate host name fmt ∷ C'esd_format_t fmt = frameFmt ((⊥) ∷ fr) .|. channelFmt ((⊥) ∷ ch) .|. - c'ESD_STREAM .|. + c'ESD_STREAM .|. c'ESD_RECORD openSocket ∷ IO Handle