summaryrefslogtreecommitdiff
path: root/trivmix
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2017-03-09 17:04:50 +0100
committerGregor Kleen <gkleen@yggdrasil.li>2017-03-09 17:04:50 +0100
commit70e600346fb5875defe14d578883c9838695d533 (patch)
tree280720bc936c3244d858339ac4c7b0784b768343 /trivmix
parent6dd4d2560b7a50b3d9415983560e2a1aa9046381 (diff)
downloadtrivmix-70e600346fb5875defe14d578883c9838695d533.tar
trivmix-70e600346fb5875defe14d578883c9838695d533.tar.gz
trivmix-70e600346fb5875defe14d578883c9838695d533.tar.bz2
trivmix-70e600346fb5875defe14d578883c9838695d533.tar.xz
trivmix-70e600346fb5875defe14d578883c9838695d533.zip
Make failing startup scripts nonfatal
Diffstat (limited to 'trivmix')
-rw-r--r--trivmix/Trivmix.hs12
1 files changed, 7 insertions, 5 deletions
diff --git a/trivmix/Trivmix.hs b/trivmix/Trivmix.hs
index cf9587f..fdd94b4 100644
--- a/trivmix/Trivmix.hs
+++ b/trivmix/Trivmix.hs
@@ -26,6 +26,7 @@ import qualified Control.Monad.Exception.Synchronous as Sync
26import Control.Exception 26import Control.Exception
27import System.IO.Error 27import System.IO.Error
28import System.IO 28import System.IO
29import System.Exit
29 30
30import System.FileLock 31import System.FileLock
31import System.INotify 32import System.INotify
@@ -136,11 +137,12 @@ trivmix Options{..} = do
136 Jack.handleExceptions $ 137 Jack.handleExceptions $
137 Jack.withClientDefault client $ \client' -> 138 Jack.withClientDefault client $ \client' ->
138 Jack.withPort client' input $ \input' -> 139 Jack.withPort client' input $ \input' ->
139 Jack.withPort client' output $ \output' -> do 140 Jack.withPort client' output $ \output' ->
140 Trans.lift $ do 141 Audio.withProcessMono client' input' (mix level') output' $
141 mapM_ (flip callProcess [client ++ ":" ++ input, client ++ ":" ++ output]) run 142 Jack.withActivation client' . Trans.lift $ do
142 Audio.withProcessMono client' input' (mix level') output' $ 143 forM_ run $ \script ->
143 Jack.withActivation client' . forever . Trans.lift $ threadDelay 1000000 144 (callProcess script [client ++ ":" ++ input, client ++ ":" ++ output]) `catch` (\code -> hPutStrLn stderr $ script ++ " failed: " ++ show (code :: ExitCode))
145 forever $ threadDelay 1000000
144 146
145mix :: MVar Level -> CFloat -> IO CFloat 147mix :: MVar Level -> CFloat -> IO CFloat
146mix level input = do 148mix level input = do