+updateBrightness :: State -> IO ()
+updateBrightness state = do
+ let brightness = (stVolume state)
+ writeStatus (stPowerMate state) $
+ statusInit { brightness=brightness }
+
+volumeUp :: State -> IO State
+volumeUp state = do
+ createProcess (proc "volume-up" [])
+ state <- readState $ State {
+ stPowerMate=(stPowerMate state),
+ stVolume=(max 0 $ 1+(stVolume state)),
+ stDir=(stDir state) }
+ return state
+
+volumeDown :: State -> IO State
+volumeDown state = do
+ createProcess (proc "volume-down" [])
+ state <- readState $ State {
+ stPowerMate=(stPowerMate state),
+ stVolume=(max 0 $ (stVolume state)-1),
+ stDir=(stDir state) }
+ return state