29 lines
817 B
Haskell
29 lines
817 B
Haskell
{-|
|
|
IO actions that apply config side effects and save configuration settings to disk.
|
|
-}
|
|
module Dodge.Config.Update
|
|
where
|
|
import Dodge.Data.SoundOrigin
|
|
import Dodge.Config.Data
|
|
import Sound
|
|
import Preload.Data
|
|
|
|
import Data.Aeson (encodeFile)
|
|
import Control.Monad (when)
|
|
|
|
saveConfig :: Configuration -> PreloadData SoundOrigin -> IO (PreloadData SoundOrigin)
|
|
saveConfig cfig d = do
|
|
putStrLn "Saving config to data/dodge.config.json"
|
|
encodeFile "data/dodge.config.json" cfig
|
|
return d
|
|
|
|
setVolume :: Configuration -> IO ()
|
|
setVolume cfig = do
|
|
setSoundVolume ( _volume_master cfig * _volume_sound cfig)
|
|
setMusicVolume ( _volume_master cfig * _volume_music cfig)
|
|
|
|
setVol :: Configuration -> PreloadData SoundOrigin -> IO (PreloadData SoundOrigin)
|
|
setVol cfig d = do
|
|
setVolume cfig
|
|
return d
|