summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2015-12-04 21:24:15 -0500
committerAndrew Cady <d@jerkface.net>2015-12-04 21:24:15 -0500
commit060af37ea78454b32b915c3364296720be118025 (patch)
treec2e1aa0c9954f32339026592e74d54d7ff4291e9
parent2c7fa00813d51cf5a8436b459b62f2d343b75cde (diff)
treat EOF from stdin as if "exit" were typed
-rw-r--r--midi-dump.hs7
1 files changed, 3 insertions, 4 deletions
diff --git a/midi-dump.hs b/midi-dump.hs
index c47e8bf..747ae28 100644
--- a/midi-dump.hs
+++ b/midi-dump.hs
@@ -27,7 +27,6 @@ import qualified Sound.ALSA.Sequencer.Address
27import qualified Sound.ALSA.Sequencer.Port 27import qualified Sound.ALSA.Sequencer.Port
28import qualified Sound.ALSA.Sequencer.Queue 28import qualified Sound.ALSA.Sequencer.Queue
29 29
30
31verbose = False 30verbose = False
32 31
33main = main' `AlsaExc.catch` handler 32main = main' `AlsaExc.catch` handler
@@ -144,7 +143,7 @@ emptyRecording now = Recording now []
144maybeReadLine = asks _lineReader >>= liftIO . tryTakeMVar 143maybeReadLine = asks _lineReader >>= liftIO . tryTakeMVar
145startLineReader = do 144startLineReader = do
146 mv <- liftIO newEmptyMVar 145 mv <- liftIO newEmptyMVar
147 thread <- liftIO $ forkIO (forever $ getLine >>= putMVar mv) 146 thread <- liftIO $ forkIO (forever $ tryIOError getLine >>= either (const $ putMVar mv "exit") (putMVar mv))
148 return mv 147 return mv
149 148
150data Chunk = Chunk Int64 Int64 Int64 Int64 Int64 BS.ByteString 149data Chunk = Chunk Int64 Int64 Int64 Int64 Int64 BS.ByteString
@@ -179,8 +178,8 @@ startSaver sqlite = do
179 178
180 179
181getMidiDesc :: Event.T -> Maybe String 180getMidiDesc :: Event.T -> Maybe String
182getMidiDesc ((Event.Cons _ _ _ _ _ _ (Event.NoteEv Event.NoteOn ev))) = return $ ("on:" ++) $ showPitch $ unPitch $ Event.noteNote ev 181getMidiDesc (Event.Cons _ _ _ _ _ _ (Event.NoteEv Event.NoteOn ev)) = return $ ("on:" ++) $ showPitch $ unPitch $ Event.noteNote ev
183getMidiDesc ((Event.Cons _ _ _ _ _ _ (Event.NoteEv Event.NoteOff ev))) = return $ ("off:" ++) $ showPitch $ unPitch $ Event.noteNote ev 182getMidiDesc (Event.Cons _ _ _ _ _ _ (Event.NoteEv Event.NoteOff ev)) = return $ ("off:" ++) $ showPitch $ unPitch $ Event.noteNote ev
184getMidiDesc _ = Nothing 183getMidiDesc _ = Nothing
185 184
186tsDeltas :: [TimeSpec] -> [Integer] 185tsDeltas :: [TimeSpec] -> [Integer]