EsounD 0.1 → 0.2
raw patch · 7 files changed
+37/−46 lines, 7 filesdep +monad-controldep −monad-peeldep ~regionsdep ~safer-file-handles
Dependencies added: monad-control
Dependencies removed: monad-peel
Dependency ranges changed: regions, safer-file-handles
Files
- EsounD.cabal +6/−4
- NEWS +2/−0
- Sound/EsounD/Controller.hs +11/−24
- Sound/EsounD/Filter.hs +4/−4
- Sound/EsounD/Monitor.hs +5/−5
- Sound/EsounD/Player.hs +4/−4
- Sound/EsounD/Recorder.hs +5/−5
EsounD.cabal view
@@ -2,19 +2,21 @@ Synopsis: Type-safe bindings to EsounD (ESD; Enlightened Sound Daemon) Description: Type-safe bindings to EsounD: <http://www.tux.org/~ricdude/EsounD.html>-Version: 0.1+Version: 0.2 License: PublicDomain License-File: COPYING Author: PHO <pho at cielonegro dot org> Maintainer: PHO <pho at cielonegro dot org> Stability: experimental Homepage: http://cielonegro.org/EsounD.html+Bug-Reports: http://static.cielonegro.org/ditz/EsounD/ Category: Sound Tested-With: GHC == 7.0.1 Cabal-Version: >= 1.6 Build-Type: Simple Extra-Source-Files: COPYING+ NEWS Source-Repository head Type: git@@ -29,10 +31,10 @@ base == 4.*, base-unicode-symbols == 0.2.*, bindings-EsounD == 0.1.*,- monad-peel == 0.1.*,+ monad-control == 0.2.*, network == 2.3.*,- regions == 0.8.*,- safer-file-handles == 0.9.*,+ regions == 0.9.*,+ safer-file-handles == 0.10.*, storablevector == 0.2.*, transformers == 0.2.*, unix == 2.4.*
+ NEWS view
@@ -0,0 +1,2 @@+== EsounD-0.2 / 2011-05-11+* Replace use of MonadPeelIO with MonadControlIO (Thanks: Bas van Dijk)
Sound/EsounD/Controller.hs view
@@ -42,9 +42,9 @@ ) 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@@ -75,13 +75,13 @@ return co { coCloseH = ch' } -- | Open an ESD handle for controlling ESD.-openController ∷ MonadPeelIO pr+openController ∷ MonadControlIO pr ⇒ Maybe HostName -- ^ host to connect to. → RegionT s pr (Controller (RegionT s pr)) openController host- = block $+ = mask_ $ do s ← liftIO openSocket- ch ← onExit $ sanitizeIOError $ closeSocket' s+ ch ← onExit $ closeSocket' s return Controller { coSocket = s , coCloseH = ch@@ -115,7 +115,6 @@ → cr () lock co = liftIO $- sanitizeIOError $ c'esd_lock (fdToCInt $ coSocket co) ≫= failOnError "esd_lock(fd) returned an error" (≤ 0) ≫ return ()@@ -129,7 +128,6 @@ → cr () unlock co = liftIO $- sanitizeIOError $ c'esd_unlock (fdToCInt $ coSocket co) ≫= failOnError "esd_unlock(fd) returned an error" (≤ 0) ≫ return ()@@ -143,7 +141,6 @@ → cr () standby co = liftIO $- sanitizeIOError $ c'esd_standby (fdToCInt $ coSocket co) ≫= failOnError "esd_standby(fd) returned an error" (≤ 0) ≫ return ()@@ -157,7 +154,6 @@ → cr () resume co = liftIO $- sanitizeIOError $ c'esd_resume (fdToCInt $ coSocket co) ≫= failOnError "esd_resume(fd) returned an error" (≤ 0) ≫ return ()@@ -180,7 +176,7 @@ class (Frame fr, Channels ch) ⇒ SampleSource fr ch dvec where -- | Cache a sample in the server.- cacheSample ∷ (MonadPeelIO pr)+ cacheSample ∷ (MonadControlIO pr) ⇒ Controller (RegionT s pr) → Maybe String -- ^ name used to identify this sample to → Int -- ^ sample rate@@ -189,7 +185,7 @@ instance Frame fr ⇒ SampleSource fr Mono (L.Vector fr) where cacheSample co name rate v- = block $+ = mask_ $ do sa ← createSample co name@@ -208,7 +204,7 @@ instance Frame fr ⇒ SampleSource fr Stereo (L.Vector fr, L.Vector fr) where cacheSample co name rate (l, r)- = block $+ = mask_ $ do sa ← createSample co name@@ -228,7 +224,7 @@ createSample ∷ ∀fr ch s pr. ( Frame fr , Channels ch- , MonadPeelIO pr+ , MonadControlIO pr ) ⇒ Controller (RegionT s pr) → Maybe String@@ -238,9 +234,9 @@ → Int → RegionT s pr (Sample (RegionT s pr)) createSample co name rate _ _ len- = block $+ = mask_ $ do sid ← liftIO newCache- ch ← onExit $ sanitizeIOError $ deleteCache sid+ ch ← onExit $ deleteCache sid return Sample { saID = sid , saCtrl = co@@ -290,7 +286,6 @@ → cr () playSample sa = liftIO $- sanitizeIOError $ c'esd_sample_play (fdToCInt $ coSocket $ saCtrl sa) (saID sa) ≫= failOnError ( printf "esd_sample_play(%s, %s) returned an error" (show $ coSocket $ saCtrl sa)@@ -306,7 +301,6 @@ → cr () loopSample sa = liftIO $- sanitizeIOError $ c'esd_sample_loop (fdToCInt $ coSocket $ saCtrl sa) (saID sa) ≫= failOnError ( printf "esd_sample_loop(%s, %s) returned an error" (show $ coSocket $ saCtrl sa)@@ -322,7 +316,6 @@ → cr () stopSample sa = liftIO $- sanitizeIOError $ c'esd_sample_stop (fdToCInt $ coSocket $ saCtrl sa) (saID sa) ≫= failOnError ( printf "esd_sample_stop(%s, %s) returned an error" (show $ coSocket $ saCtrl sa)@@ -338,7 +331,6 @@ → cr () killSample sa = liftIO $- sanitizeIOError $ c'esd_sample_kill (fdToCInt $ coSocket $ saCtrl sa) (saID sa) ≫= failOnError ( printf "esd_sample_kill(%s, %s) returned an error" (show $ coSocket $ saCtrl sa)@@ -398,7 +390,6 @@ → cr ServerInfo getServerInfo co = liftIO $- sanitizeIOError $ bracket retrieve dispose extractServerInfo where retrieve ∷ IO (Ptr C'esd_server_info)@@ -539,7 +530,6 @@ → cr AllInfo getAllInfo co = liftIO $- sanitizeIOError $ bracket retrieve dispose extractAllInfo where retrieve ∷ IO (Ptr C'esd_info)@@ -560,7 +550,6 @@ → cr () setStreamPan co sid l r = liftIO $- sanitizeIOError $ c'esd_set_stream_pan (fdToCInt $ coSocket co) (fromIntegral sid) (floor $ l ⋅ c'ESD_VOLUME_BASE)@@ -584,7 +573,6 @@ → cr () setDefaultSamplePan co sid l r = liftIO $- sanitizeIOError $ c'esd_set_default_sample_pan (fdToCInt $ coSocket co) (fromIntegral sid) (floor $ l ⋅ c'ESD_VOLUME_BASE)@@ -619,7 +607,6 @@ → cr ServerState getServerState co = liftIO $- sanitizeIOError $ fmap extractServerState $ c'esd_get_standby_mode (fdToCInt $ coSocket co) ≫= failOnError "esd_get_standby_mode(fd) returned an error" (≡ c'ESM_ERROR)
Sound/EsounD/Filter.hs view
@@ -13,9 +13,9 @@ ) 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@@ -87,7 +87,7 @@ openFilter ∷ ∀fr ch s pr. ( Frame fr , Channels ch- , MonadPeelIO pr+ , MonadControlIO pr ) ⇒ Int -- ^ sample rate for the stream. → Maybe HostName -- ^ host to connect to.@@ -95,7 +95,7 @@ -- ESD (if any). → RegionT s pr (Filter fr ch (RegionT s pr)) openFilter rate host name- = block $+ = mask_ $ do h ← liftIO openSocket ch ← onExit $ sanitizeIOError $ closeSocket h return Filter {
Sound/EsounD/Monitor.hs view
@@ -13,9 +13,9 @@ ) 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 @@ 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.@@ -71,7 +71,7 @@ -- 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 {@@ -83,7 +83,7 @@ fmt ∷ C'esd_format_t fmt = frameFmt ((⊥) ∷ fr) .|. channelFmt ((⊥) ∷ ch) .|.- c'ESD_STREAM .|.+ c'ESD_STREAM .|. c'ESD_MONITOR openSocket ∷ IO Handle
Sound/EsounD/Player.hs view
@@ -13,9 +13,9 @@ ) 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@@ -65,7 +65,7 @@ openPlayer ∷ ∀fr ch s pr. ( Frame fr , Channels ch- , MonadPeelIO pr+ , MonadControlIO pr ) ⇒ Int -- ^ sample rate for the stream. → Maybe HostName -- ^ host to connect to.@@ -73,7 +73,7 @@ -- ESD (if any). → RegionT s pr (Player fr ch (RegionT s pr)) openPlayer rate host name- = block $+ = mask_ $ do h ← liftIO openSocket ch ← onExit $ sanitizeIOError $ closeSocket h return Player {
Sound/EsounD/Recorder.hs view
@@ -13,9 +13,9 @@ ) 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 @@ 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 @@ -- 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 @@ fmt ∷ C'esd_format_t fmt = frameFmt ((⊥) ∷ fr) .|. channelFmt ((⊥) ∷ ch) .|.- c'ESD_STREAM .|.+ c'ESD_STREAM .|. c'ESD_RECORD openSocket ∷ IO Handle