From 8ec23ca5f2107187fffbad36510d80a0b4aa5834 Mon Sep 17 00:00:00 2001
From: jao <jao@gnu.org>
Date: Mon, 24 Dec 2018 01:45:12 +0000
Subject: Upgrade to alsa-mixer 0.3.0 (cf. #372, #373)

---
 src/Xmobar/Plugins/Monitors/Volume.hs | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

(limited to 'src/Xmobar')

diff --git a/src/Xmobar/Plugins/Monitors/Volume.hs b/src/Xmobar/Plugins/Monitors/Volume.hs
index 1d3281c..05c12d1 100644
--- a/src/Xmobar/Plugins/Monitors/Volume.hs
+++ b/src/Xmobar/Plugins/Monitors/Volume.hs
@@ -151,7 +151,7 @@ runVolumeWith opts mixerName controlName = do
                    val <- getVal $ volumeControl control
                    db <- getDB $ volumeControl control
                    sw <- getSw $ switchControl control
-                   return (lo, hi, val, db, sw))
+                   return (fmap toInteger lo, fmap toInteger hi, val, db, sw))
                 (const $ return (Nothing, Nothing, Nothing, Nothing, Nothing))
 
     volumeControl :: Maybe Control -> Maybe Volume
@@ -171,7 +171,9 @@ runVolumeWith opts mixerName controlName = do
     liftMonitor Nothing = unavailable
     liftMonitor (Just m) = m
 
-    channel v r = AE.catch (getChannel FrontLeft v) (const $ return $ Just r)
+    channel' v r = AE.catch (getChannel FrontLeft v) (const $ return $ Just r)
+
+    channel v r = channel' v r >>= \x -> return (x >>= Just . toInteger)
 
     getDB :: Maybe Volume -> IO (Maybe Integer)
     getDB Nothing = return Nothing
@@ -183,7 +185,7 @@ runVolumeWith opts mixerName controlName = do
 
     getSw :: Maybe Switch -> IO (Maybe Bool)
     getSw Nothing = return Nothing
-    getSw (Just s) = channel s False
+    getSw (Just s) = channel' s False
 
     getFormatDB :: VolumeOpts -> Maybe Integer -> Monitor String
     getFormatDB _ Nothing = unavailable
-- 
cgit v1.2.3