summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBen Boeckel <mathstuf@gmail.com>2012-06-09 00:46:04 -0400
committerBen Boeckel <mathstuf@gmail.com>2012-06-09 00:46:04 -0400
commit4d0d5880b8e151084e6dfb27cc6d51d68609b048 (patch)
treede2f4061d7c8a7d01d986c4d86a6e6d93196d97b
parente513f7149000dfec4549d0d9f0a3add647e06c95 (diff)
downloadxmobar-4d0d5880b8e151084e6dfb27cc6d51d68609b048.tar.gz
xmobar-4d0d5880b8e151084e6dfb27cc6d51d68609b048.tar.bz2
Add a blocking call for MPD based on events
-rw-r--r--src/Plugins/Monitors/MPD.hs11
-rw-r--r--xmobar.cabal10
2 files changed, 19 insertions, 2 deletions
diff --git a/src/Plugins/Monitors/MPD.hs b/src/Plugins/Monitors/MPD.hs
index cc40a56..cb3acdf 100644
--- a/src/Plugins/Monitors/MPD.hs
+++ b/src/Plugins/Monitors/MPD.hs
@@ -12,7 +12,7 @@
--
-----------------------------------------------------------------------------
-module Plugins.Monitors.MPD ( mpdConfig, runMPD ) where
+module Plugins.Monitors.MPD ( mpdConfig, runMPD, mpdWait ) where
import Plugins.Monitors.Common
import System.Console.GetOpt
@@ -55,6 +55,15 @@ runMPD args = do
s <- parseMPD status song opts
parseTemplate s
+mpdWait :: IO ()
+mpdWait = M.withMPD idle >> return ()
+ where
+#if defined LIBMPD_07
+ idle = M.idle
+#else
+ idle = M.idle [M.PlayerS, M.MixerS]
+#endif
+
mopts :: [String] -> IO MOpts
mopts argv =
case getOpt Permute options argv of
diff --git a/xmobar.cabal b/xmobar.cabal
index 71ea524..02e618f 100644
--- a/xmobar.cabal
+++ b/xmobar.cabal
@@ -49,6 +49,10 @@ flag with_mpd
description: MPD support. Needs libmpd installed.
default: False
+flag with_mpd_07
+ description: MPD 0.7.* support.
+ default: False
+
flag all_extensions
description: Includes all optional extensions.
default: False
@@ -146,9 +150,13 @@ executable xmobar
cpp-options: -DIWLIB
if flag(with_mpd) || flag(all_extensions)
- build-depends: libmpd == 0.7.*
other-modules: Plugins.Monitors.MPD
cpp-options: -DLIBMPD
+ if flag(with_mpd_07)
+ build-depends: libmpd == 0.7.*
+ cpp-options: -DLIBMPD_07
+ else
+ build-depends: libmpd == 0.8.*
if flag(with_alsa) || flag(all_extensions)
build-depends: alsa-mixer == 0.1.*