libmpd-0.9.0: src/Network/MPD/Commands/StoredPlaylists.hs
{-# LANGUAGE OverloadedStrings #-}
{- |
Module : Network.MPD.Commands.StoredPlaylists
Copyright : (c) Ben Sinclair 2005-2009, Joachim Fasting 2012
License : MIT (see LICENSE)
Maintainer : joachim.fasting@gmail.com
Stability : stable
Portability : unportable
Stored playlists.
-}
module Network.MPD.Commands.StoredPlaylists
( listPlaylist
, listPlaylistInfo
, listPlaylists
, load
, playlistAdd
, playlistClear
, playlistDelete
, playlistMove
, rename
, rm
, save
) where
import qualified Network.MPD.Applicative.Internal as A
import qualified Network.MPD.Applicative.StoredPlaylists as A
import Network.MPD.Commands.Types
import Network.MPD.Core
-- | Retrieve a list of files in a given playlist.
listPlaylist :: MonadMPD m => PlaylistName -> m [Path]
listPlaylist = A.runCommand . A.listPlaylist
-- | Retrieve metadata for files in a given playlist.
listPlaylistInfo :: MonadMPD m => PlaylistName -> m [Song]
listPlaylistInfo = A.runCommand . A.listPlaylistInfo
-- | Retreive a list of stored playlists.
listPlaylists :: MonadMPD m => m [PlaylistName]
listPlaylists = A.runCommand A.listPlaylists
-- | Load an existing playlist.
load :: MonadMPD m => PlaylistName -> m ()
load = A.runCommand . A.load
-- | Add a song (or a whole directory) to a stored playlist.
-- Will create a new playlist if the one specified does not already exist.
playlistAdd :: MonadMPD m => PlaylistName -> Path -> m ()
playlistAdd plname = A.runCommand . A.playlistAdd plname
-- | Clear a playlist. If the specified playlist does not exist, it will be
-- created.
playlistClear :: MonadMPD m => PlaylistName -> m ()
playlistClear = A.runCommand . A.playlistClear
-- | Remove a song from a playlist.
playlistDelete :: MonadMPD m => PlaylistName -> Position -> m ()
playlistDelete name = A.runCommand . A.playlistDelete name
-- | Move a song to a given position in the playlist specified.
playlistMove :: MonadMPD m => PlaylistName -> Id -> Position -> m ()
playlistMove name from = A.runCommand . A.playlistMove name from
-- | Rename an existing playlist.
rename :: MonadMPD m
=> PlaylistName -- ^ Original playlist
-> PlaylistName -- ^ New playlist name
-> m ()
rename plname = A.runCommand . A.rename plname
-- | Delete existing playlist.
rm :: MonadMPD m => PlaylistName -> m ()
rm = A.runCommand . A.rm
-- | Save the current playlist.
save :: MonadMPD m => PlaylistName -> m ()
save = A.runCommand . A.save