summaryrefslogtreecommitdiff
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
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
-rw-r--r--trivmix.cabal2
-rw-r--r--trivmix.nix2
-rw-r--r--trivmix/Trivmix.hs12
3 files changed, 9 insertions, 7 deletions
diff --git a/trivmix.cabal b/trivmix.cabal
index 130680d..6ce861a 100644
--- a/trivmix.cabal
+++ b/trivmix.cabal
@@ -2,7 +2,7 @@
2-- documentation, see http://haskell.org/cabal/users-guide/ 2-- documentation, see http://haskell.org/cabal/users-guide/
3 3
4name: trivmix 4name: trivmix
5version: 2.7.1 5version: 2.7.3
6-- synopsis: 6-- synopsis:
7-- description: 7-- description:
8license: PublicDomain 8license: PublicDomain
diff --git a/trivmix.nix b/trivmix.nix
index 88df3fe..734fb36 100644
--- a/trivmix.nix
+++ b/trivmix.nix
@@ -4,7 +4,7 @@
4}: 4}:
5mkDerivation { 5mkDerivation {
6 pname = "trivmix"; 6 pname = "trivmix";
7 version = "2.7.1"; 7 version = "2.7.3";
8 src = ./.; 8 src = ./.;
9 isLibrary = true; 9 isLibrary = true;
10 isExecutable = true; 10 isExecutable = true;
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