fluidsynth 0.1.1.0 → 0.2.0.0
raw patch · 2 files changed
+16/−13 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Sound.Fluidsynth: data Driver
+ Sound.Fluidsynth: data Synth
- Sound.Fluidsynth: newDriver :: Settings -> Synth -> IO Driver
+ Sound.Fluidsynth: newDriver :: Synth -> IO Driver
Files
- Sound/Fluidsynth.hs +15/−12
- fluidsynth.cabal +1/−1
Sound/Fluidsynth.hs view
@@ -9,6 +9,8 @@ ,newSynth ,newDriver ,newPlayer+ ,Driver()+ ,Synth() ,loadSF ,playerAdd ,playerPlay@@ -32,7 +34,8 @@ import Sound.Fluidsynth.Internal newtype Settings = Settings (ForeignPtr C'fluid_settings_t)-data Synth = Synth (M.Map FilePath CUInt) (ForeignPtr C'fluid_synth_t)+data Synth = Synth (ForeignPtr C'fluid_settings_t) (M.Map FilePath CUInt)+ (ForeignPtr C'fluid_synth_t) newtype Driver = Driver (ForeignPtr C'fluid_audio_driver_t) newtype Player = Player (ForeignPtr C'fluid_player_t) newtype Event = Event (ForeignPtr C'fluid_event_t)@@ -61,10 +64,10 @@ withForeignPtr settings $ \ptr -> do ptr' <- c'new_fluid_synth ptr synth <- newForeignPtr p'delete_fluid_synth ptr'- return $! Synth M.empty synth+ return $! Synth settings M.empty synth -newDriver :: Settings -> Synth -> IO Driver-newDriver (Settings settings) (Synth _ synth) = do+newDriver :: Synth -> IO Driver+newDriver (Synth settings _ synth) = do withForeignPtr settings $ \ptr -> do withForeignPtr synth $ \ptr' -> do ptr'' <- c'new_fluid_audio_driver ptr ptr'@@ -72,14 +75,14 @@ return $! Driver driver newPlayer :: Synth -> IO Player-newPlayer (Synth _ synth) = do+newPlayer (Synth _ _ synth) = do withForeignPtr synth $ \ptr -> do ptr' <- c'new_fluid_player ptr player <- newForeignPtr p'delete_fluid_player ptr' return $! Player player loadSF :: Synth -> String -> IO Synth-loadSF (Synth sfmap synth) path = do+loadSF (Synth settings sfmap synth) path = do abspath <- canonicalizePath path let msfid = M.lookup abspath sfmap withForeignPtr synth $ \ptr ->@@ -88,16 +91,16 @@ err <- c'fluid_synth_sfreload ptr sfid if err == -1 then error "Couldn't reload soundfont!"- else return $ Synth sfmap synth+ else return $ Synth settings sfmap synth Nothing -> do sfid <- c'fluid_synth_sfload ptr cstr 1 let sfmap' = M.insert abspath (fromIntegral sfid) sfmap if sfid == -1 then error "Couldn't load soundfont!"- else return $ Synth sfmap' synth+ else return $ Synth settings sfmap' synth unloadSF :: Synth -> String -> IO Synth-unloadSF (Synth sfmap synth) path = do+unloadSF (Synth settings sfmap synth) path = do abspath <- canonicalizePath path let msfid = M.lookup abspath sfmap sfid = fromMaybe (error "Couldn't unload soundfont!") msfid@@ -106,16 +109,16 @@ let sfmap' = M.delete abspath sfmap if err == -1 then error "Couldn't unload soundfont!"- else return $ Synth sfmap' synth+ else return $ Synth settings sfmap' synth synthNoteOn :: Synth -> Channel -> Key -> Velocity -> IO ()-synthNoteOn (Synth _ synth) c k v =+synthNoteOn (Synth _ _ synth) c k v = void $ withForeignPtr synth $ \ptr -> c'fluid_synth_noteon ptr (fromIntegral c) (fromIntegral k) (fromIntegral v) synthNoteOff :: Synth -> Channel -> Key -> IO ()-synthNoteOff (Synth _ synth) c k =+synthNoteOff (Synth _ _ synth) c k = withForeignPtr synth $ \ptr -> void $ c'fluid_synth_noteoff ptr (fromIntegral c) (fromIntegral k)
fluidsynth.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: fluidsynth-version: 0.1.1.0+version: 0.2.0.0 synopsis: Haskell bindings to FluidSynth description: Simple Haskell bindings to FluidSynth. homepage: https://github.com/MostAwesomeDude/hsfluidsynth