libmpd 0.9.0.1 → 0.9.0.2
raw patch · 9 files changed
+90/−58 lines, 9 filesdep +data-default-classdep −data-defaultdep ~bytestringdep ~containersdep ~timePVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
Dependencies added: data-default-class
Dependencies removed: data-default
Dependency ranges changed: bytestring, containers, time, utf8-string
API changes (from Hackage documentation)
+ Network.MPD: MUSICBRAINZ_RELEASETRACKID :: Metadata
Files
- LICENSE +10/−1
- changelog.md +43/−43
- libmpd.cabal +17/−7
- src/Network/MPD/Commands/Arg.hs +9/−1
- src/Network/MPD/Commands/CurrentPlaylist.hs +1/−1
- src/Network/MPD/Commands/Parse.hs +1/−0
- src/Network/MPD/Commands/Types.hs +2/−1
- src/Network/MPD/Core.hs +1/−3
- src/Network/MPD/Util.hs +6/−1
LICENSE view
@@ -1,4 +1,13 @@-Copyright (c) 2012,2014 Joachim Fasting+Copyright (c) 2005-2009 Ben Sinclair+Copyright (c) 2007-2015 Joachim Fasting+Copyright (c) 2009 Daniel Schoepe+Copyright (c) 2010 Andrzej Rybczak+Copyright (c) 2011-2014 Simon Hengel+Copyright (c) 2012 Niklas Haas+Copyright (c) 2014 Matvey Aksenov+Copyright (c) 2014 Wieland Hoffmann+Copyright (c) 2014 Tim Heap+Copyright (c) 2014 Tobias Brandt Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the
changelog.md view
@@ -28,7 +28,7 @@ - `LsResult` replaces `EntryType` (nandykins) - hspec based testing added to the test-suite - More extensive parser testing- - 'MPDError' now has an 'Exception' instance+ - `MPDError` now has an `Exception` instance - Lower bound on Cabal bumped to 1.10 * v0.7.2, 2012-02-13@@ -50,69 +50,69 @@ most notably the parser improvements have been removed for now. - Support for GHC 7 - Removed support for building against the deprecated base 3 package- - Added an `Enum' instance for `Metadata'- - Removed the `old_base' flag+ - Added an `Enum` instance for `Metadata`+ - Removed the `old_base` flag * v0.5.0, 2010-09-08- - Moved extensions to Network.MPD.Commands.Extensions- These might be removed in a later version- - Non-blocking `idle'- - The API is closer to the MPD spec, by untangling functionality- - Better MPD API coverage- - Improved parser implementation, now runs in constant space- - Constructors of the `Subsystem' type have been renamed- - Passwords can be changed using `setPassword'- - The connection handle can be accessed via `getHandle'- - The version of the MPD server is available via `getVersion'- - Added support for connecting via unix sockets+ - Moved extensions to Network.MPD.Commands.Extensions+ These might be removed in a later version+ - Non-blocking `idle`+ - The API is closer to the MPD spec, by untangling functionality+ - Better MPD API coverage+ - Improved parser implementation, now runs in constant space+ - Constructors of the `Subsystem` type have been renamed+ - Passwords can be changed using `setPassword`+ - The connection handle can be accessed via `getHandle`+ - The version of the MPD server is available via `getVersion`+ - Added support for connecting via unix sockets * v0.4.2, 2010-08-31- - Only depend on QuickCheck when building the test target+ - Only depend on QuickCheck when building the test target * v0.4.1, 2010-03-26- - Fix building test and coverage targets+ - Fix building test and coverage targets * v0.4.0, 2010-03-26- - New maintainer: Joachim Fasting <joachim.fasting@gmail.com>- - Support QuickCheck 2- - Better MPD api support- Should be mostly compatible with mpd 0.16- - Separated operations on current playlist from those on specific- playlists- - Fixed password sending- - Several minor fixes and cleanups+ - New maintainer: Joachim Fasting \<joachim.fasting@gmail.com\>+ - Support QuickCheck 2+ - Better MPD api support+ Should be mostly compatible with mpd 0.16+ - Separated operations on current playlist from those on specific+ playlists+ - Fixed password sending+ - Several minor fixes and cleanups * v0.3.1, 2008-09-14- - Now reconnects if MPD closes the connection.+ - Now reconnects if MPD closes the connection. * v0.3.0, 2008-05-06- - UTF-8 support (now depends on utf8-string package).- - Fixed corruption by `show' of command parameters.- - Tidied up `Query' interface.- - Moved StringConn out of Network.MPD to the tests directory.+ - UTF-8 support (now depends on utf8-string package).+ - Fixed corruption by `show` of command parameters.+ - Tidied up `Query` interface.+ - Moved StringConn out of Network.MPD to the tests directory. * v0.2.1, 2008-04-14- - Cleaned up libmpd.cabal.+ - Cleaned up libmpd.cabal. * v0.2.0, 2008-04-14- - A connection stub for testing purposes.- - QuickCheck tests for parsing.- - Partial unit test coverage.- - Many bug fixes.- - Precise error handling.- - Parsing improvements.- - Code coverage generation.- - Cabal 1.2 support.- - Uniform command names.+ - A connection stub for testing purposes.+ - QuickCheck tests for parsing.+ - Partial unit test coverage.+ - Many bug fixes.+ - Precise error handling.+ - Parsing improvements.+ - Code coverage generation.+ - Cabal 1.2 support.+ - Uniform command names. * v0.1.3, 2007-10-02- - Bugfixes.+ - Bugfixes. * v0.1.2, 2007-09-29- - Changed name to libmpd.+ - Changed name to libmpd. * v0.1.1, 2007-09-28- - Missing files added to the source distribution.+ - Missing files added to the source distribution. * v0.1, 2007-09-28- - Initial public release.+ - Initial public release.
libmpd.cabal view
@@ -1,12 +1,17 @@ Name: libmpd-Version: 0.9.0.1+Version: 0.9.0.2 Synopsis: An MPD client library. Description: A client library for MPD, the Music Player Daemon. Category: Network, Sound License: MIT License-file: LICENSE-Copyright: Ben Sinclair 2005-2009, Joachim Fasting 2012-2014+Copyright: Ben Sinclair 2005-2009, Joachim Fasting 2007-2015,+ Daniel Schoepe 2009, Andrzej Rybczak 2010,+ Simon Hengel 2011-2014, Niklas Haas 2012,+ Matvey Aksenov 2014, Wieland Hoffmann 2014,+ Tim Heap 2014, Tobias Brandt 2014+ Author: Ben Sinclair Maintainer: Joachim Fasting <joachifm@fastmail.fm>@@ -42,13 +47,19 @@ , mtl >= 2.0 && < 3 , old-locale >= 1 && < 2 , text >= 0.11 && < 2- , time >= 1.1 && < 2 -- Additional dependencies- , data-default >= 0.4 && < 1+ , data-default-class >= 0.0.1 && < 1 , network >= 2.1 && < 3- , utf8-string >= 0.3.1 && < 1+ , utf8-string >= 0.3.1 && < 1.1 + if impl(ghc >= 7.10.0)+ Build-Depends:+ time >= 1.5 && <1.6+ else+ Build-Depends:+ time >= 1.1 && <1.5+ Exposed-Modules: Network.MPD , Network.MPD.Applicative@@ -89,7 +100,6 @@ , Network.MPD.Applicative.Internal , Network.MPD.Util - ghc-prof-options: -auto-all -prof ghc-options: -Wall Test-Suite specs@@ -113,7 +123,7 @@ , time -- Additional dependencies- , data-default+ , data-default-class , network , utf8-string
src/Network/MPD/Commands/Arg.hs view
@@ -60,7 +60,7 @@ instance MPDArg String where -- We do this to avoid mangling -- non-ascii characters with 'show'- prep x = Args ['"' : x ++ "\""]+ prep x = Args ['"' : addSlashes x ++ "\""] instance MPDArg ByteString where prep = prep . UTF8.toString@@ -75,3 +75,11 @@ instance MPDArg Int instance MPDArg Integer instance MPDArg Bool where prep = Args . return . showBool+instance MPDArg Double++addSlashes :: String -> String+addSlashes = concatMap escapeSpecial+ where specials = "\\\""+ escapeSpecial x+ | x `elem` specials = ['\\', x]+ | otherwise = [x]
src/Network/MPD/Commands/CurrentPlaylist.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE OverloadedStrings, FlexibleContexts #-} {- | Module : Network.MPD.Commands.CurrentPlaylist
src/Network/MPD/Commands/Parse.hs view
@@ -108,6 +108,7 @@ readMeta "MUSICBRAINZ_ALBUMID" = Just MUSICBRAINZ_ALBUMID readMeta "MUSICBRAINZ_ALBUMARTISTID" = Just MUSICBRAINZ_ALBUMARTISTID readMeta "MUSICBRAINZ_TRACKID" = Just MUSICBRAINZ_TRACKID+ readMeta "MUSICBRAINZ_RELEASETRACKID" = Just MUSICBRAINZ_RELEASETRACKID readMeta _ = Nothing -- | A helper that runs a parser on a string and, depending on the
src/Network/MPD/Commands/Types.hs view
@@ -38,7 +38,7 @@ import Network.MPD.Commands.Arg (MPDArg(prep), Args(Args)) -import Data.Default+import Data.Default.Class import qualified Data.Map as M import Data.Time.Clock (UTCTime)@@ -113,6 +113,7 @@ | MUSICBRAINZ_ALBUMID | MUSICBRAINZ_ALBUMARTISTID | MUSICBRAINZ_TRACKID+ | MUSICBRAINZ_RELEASETRACKID deriving (Eq, Enum, Ord, Bounded, Show) instance MPDArg Metadata
src/Network/MPD/Core.hs view
@@ -36,7 +36,6 @@ import Network (PortID(..), withSocketsDo, connectTo) import System.IO (Handle, hPutStrLn, hReady, hClose, hFlush) import System.IO.Error (isEOFError, tryIOError, ioeGetErrorType)-import qualified System.IO.UTF8 as U import Text.Printf (printf) import qualified GHC.IO.Exception as GE @@ -45,7 +44,6 @@ import Data.ByteString.Char8 (ByteString, isPrefixOf, break, drop, dropWhile) import qualified Data.ByteString.Char8 as B import qualified Data.ByteString.UTF8 as UTF8- -- -- Data types. --@@ -169,7 +167,7 @@ send' = MPD $ gets stHandle >>= maybe (throwError NoMPD) go go handle = (liftIO . tryIOError $ do- unless (null str) $ U.hPutStrLn handle str >> hFlush handle+ unless (null str) $ B.hPutStrLn handle (UTF8.fromString str) >> hFlush handle getLines handle []) >>= either (\err -> modify (\st -> st { stHandle = Nothing }) >> throwError (ConnectionError err)) return
src/Network/MPD/Util.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE OverloadedStrings, CPP #-} -- | Module : Network.MPD.Util -- Copyright : (c) Ben Sinclair 2005-2009, Joachim Fasting 2010 -- License : MIT (see LICENSE)@@ -16,7 +16,12 @@ import Control.Arrow import Data.Time.Format (ParseTime, parseTime, FormatTime, formatTime)++#if MIN_VERSION_time(1,5,0)+import Data.Time.Format (defaultTimeLocale)+#else import System.Locale (defaultTimeLocale)+#endif import qualified Prelude import Prelude hiding (break, take, drop, dropWhile, read)