-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A TUI MPD client, inspired by ncmpcpp -- -- A TUI MPD client, inspired by ncmpcpp. Built using brick and libmpd. @package hum @version 0.1.0.0 module Hum.Attributes humAttrMap :: AttrMap wobAttr :: Attr queueAttr :: AttrName queueAlbumAttr :: AttrName queueTitleAttr :: AttrName queueTrackAttr :: AttrName queueArtistAttr :: AttrName queueTimeAttr :: AttrName queueDateAttr :: AttrName headerAttr :: AttrName listHighlightedAttr :: AttrName queueNowPlayingAttr :: AttrName queueTitleBoldAttr :: AttrName editorAttr :: AttrName highlightOverQueueAttrs :: Widget n -> Widget n module Hum.BChan module Hum.Types data HState HState :: !BChan HumEvent -> !View -> !Maybe Status -> !Mode -> !ExState -> !Maybe Song -> !SongList -> !LibraryState -> !PlaylistsState -> !Map Name (Maybe (Extent Name)) -> !Clipboard -> !Focus -> !Bool -> !Prompts -> !Int -> HState [chan] :: HState -> !BChan HumEvent [hview] :: HState -> !View [status] :: HState -> !Maybe Status [mode] :: HState -> !Mode [ex] :: HState -> !ExState [currentSong] :: HState -> !Maybe Song [queue] :: HState -> !SongList [library] :: HState -> !LibraryState [playlists] :: HState -> !PlaylistsState [extentMap] :: HState -> !Map Name (Maybe (Extent Name)) [clipboard] :: HState -> !Clipboard [focus] :: HState -> !Focus [editable] :: HState -> !Bool [prompts] :: HState -> !Prompts [helpScreen] :: HState -> !Int data LibraryState LibraryState :: !List Name Value -> !List Name Value -> !List Name Song -> LibraryState [artists] :: LibraryState -> !List Name Value [albums] :: LibraryState -> !List Name Value [songs] :: LibraryState -> !List Name Song data PlaylistsState PlaylistsState :: !List Name PlaylistName -> !SongList -> PlaylistsState [plList] :: PlaylistsState -> !List Name PlaylistName [plSongs] :: PlaylistsState -> !SongList data ExSubMode Cmd :: ExSubMode FSearch :: ExSubMode BSearch :: ExSubMode data ExState ExState :: !ExSubMode -> !Editor Text Name -> !Bool -> ![Text] -> ![Text] -> ExState [exPrefix] :: ExState -> !ExSubMode [exEditor] :: ExState -> !Editor Text Name [searchDirection] :: ExState -> !Bool [searchHistory] :: ExState -> ![Text] [cmdHistory] :: ExState -> ![Text] data Prompts Prompts :: !PromptType -> Text -> !List Name (Maybe PlaylistName) -> !Editor Text Name -> (HState -> EventM Name HState) -> Prompts [currentPrompt] :: Prompts -> !PromptType [promptTitle] :: Prompts -> Text [plSelectPrompt] :: Prompts -> !List Name (Maybe PlaylistName) [textPrompt] :: Prompts -> !Editor Text Name [exitPrompt] :: Prompts -> HState -> EventM Name HState data PromptType PlSelectPrompt :: PromptType YNPrompt :: PromptType TextPrompt :: PromptType data Clipboard Clipboard :: !SongList -> !Maybe PlaylistName -> Clipboard [clSongs] :: Clipboard -> !SongList [clPlName] :: Clipboard -> !Maybe PlaylistName data Mode NormalMode :: Mode ExMode :: Mode PromptMode :: Mode type SongList = List Name (Song, Highlight) type HumEvent = Either Tick (Response [Subsystem]) data Name NowPlaying :: Name ClSongs :: Name Queue :: Name QueueList :: Name Library :: Name ArtistsList :: Name LibraryLeft :: Name AlbumsList :: Name LibraryMid :: Name SongsList :: Name LibraryRight :: Name PlaylistList :: Name PlaylistLeft :: Name PlaylistSongs :: Name PlaylistRight :: Name ExEditor :: Name TextPromptEditor :: Name data FocQueue FocQueue :: FocQueue data FocLib FocArtists :: FocLib FocAlbums :: FocLib FocSongs :: FocLib data FocPlay FocPlaylists :: FocPlay FocPSongs :: FocPlay data Focus Focus :: FocQueue -> FocLib -> FocPlay -> Bool -> Focus [focQueue] :: Focus -> FocQueue [focLib] :: Focus -> FocLib [focPlay] :: Focus -> FocPlay [focEx] :: Focus -> Bool data View QueueView :: View LibraryView :: View PlaylistsView :: View HelpView :: View type Highlight = Bool data Tick Tick :: Tick statusL :: Lens' HState (Maybe Status) queueL :: Lens' HState SongList promptsL :: Lens' HState Prompts playlistsL :: Lens' HState PlaylistsState modeL :: Lens' HState Mode libraryL :: Lens' HState LibraryState hviewL :: Lens' HState View helpScreenL :: Lens' HState Int focusL :: Lens' HState Focus extentMapL :: Lens' HState (Map Name (Maybe (Extent Name))) exL :: Lens' HState ExState editableL :: Lens' HState Bool currentSongL :: Lens' HState (Maybe Song) clipboardL :: Lens' HState Clipboard chanL :: Lens' HState (BChan HumEvent) focQueueL :: Lens' Focus FocQueue focPlayL :: Lens' Focus FocPlay focLibL :: Lens' Focus FocLib focExL :: Lens' Focus Bool songsL :: Lens' LibraryState (List Name Song) artistsL :: Lens' LibraryState (List Name Value) albumsL :: Lens' LibraryState (List Name Value) plSongsL :: Lens' PlaylistsState SongList plListL :: Lens' PlaylistsState (List Name PlaylistName) searchHistoryL :: Lens' ExState [Text] searchDirectionL :: Lens' ExState Bool exPrefixL :: Lens' ExState ExSubMode exEditorL :: Lens' ExState (Editor Text Name) cmdHistoryL :: Lens' ExState [Text] textPromptL :: Lens' Prompts (Editor Text Name) promptTitleL :: Lens' Prompts Text plSelectPromptL :: Lens' Prompts (List Name (Maybe PlaylistName)) exitPromptL :: Lens' Prompts (HState -> EventM Name HState) currentPromptL :: Lens' Prompts PromptType clSongsL :: Lens' Clipboard SongList clPlNameL :: Lens' Clipboard (Maybe PlaylistName) instance GHC.Classes.Ord Hum.Types.ExSubMode instance GHC.Classes.Eq Hum.Types.ExSubMode instance GHC.Show.Show Hum.Types.ExSubMode instance GHC.Classes.Eq Hum.Types.PromptType instance GHC.Show.Show Hum.Types.PromptType instance GHC.Classes.Eq Hum.Types.Mode instance GHC.Show.Show Hum.Types.Mode instance GHC.Classes.Ord Hum.Types.Name instance GHC.Classes.Eq Hum.Types.Name instance GHC.Show.Show Hum.Types.Name instance GHC.Classes.Ord Hum.Types.FocQueue instance GHC.Classes.Eq Hum.Types.FocQueue instance GHC.Show.Show Hum.Types.FocQueue instance GHC.Enum.Enum Hum.Types.FocLib instance GHC.Classes.Ord Hum.Types.FocLib instance GHC.Classes.Eq Hum.Types.FocLib instance GHC.Show.Show Hum.Types.FocLib instance GHC.Enum.Enum Hum.Types.FocPlay instance GHC.Classes.Ord Hum.Types.FocPlay instance GHC.Classes.Eq Hum.Types.FocPlay instance GHC.Show.Show Hum.Types.FocPlay instance GHC.Classes.Ord Hum.Types.Focus instance GHC.Classes.Eq Hum.Types.Focus instance GHC.Show.Show Hum.Types.Focus instance GHC.Classes.Ord Hum.Types.View instance GHC.Classes.Eq Hum.Types.View instance GHC.Show.Show Hum.Types.View module Hum.Rebuild songsOfArtist :: Maybe Value -> IO (Vector Song) songsOfAlbum :: Maybe Value -> IO (Vector Song) albumsOfArtist :: Maybe Value -> IO (Vector Value) rebuildLib :: MonadIO m => HState -> m HState rebuildLibArtists :: MonadIO m => HState -> m HState rebuildLibAlbums :: MonadIO m => HState -> m HState rebuildPl :: MonadIO m => HState -> m HState rebuildPlList :: MonadIO m => HState -> m HState rebuildQueue :: MonadIO m => HState -> m HState module Hum.Utils -- | A backwards function composition operator (?) :: (a -> b) -> (b -> c) -> a -> c infixl 8 ? -- | Get comma seperated metedata from tag meta :: Text -> Metadata -> Song -> Text -- | like meta, but returns a Maybe for future use mmeta :: Metadata -> Song -> Maybe Text secondsToTime :: Integer -> Text updateExtentMap :: EventM Name (Map Name (Maybe (Extent Name))) deleteHighlightedfromQ :: MonadMPD m => SongList -> m () deleteAll :: MonadMPD m => SongList -> m () pasteSongstoQ :: MonadMPD m => SongList -> SongList -> m () getHighlighted :: (Eq e, Filterable t, Foldable t, Splittable t) => GenericList n t (e, Highlight) -> GenericList n t (e, Highlight) listPaste :: (Splittable t, Semigroup (t e)) => GenericList n t e -> GenericList n t e -> GenericList n t e deleteHighlighted :: HState -> Lens' HState SongList -> HState -- | toggle selected items highlight status listToggleHighlight :: Traversable t => GenericList n t (e, Highlight) -> GenericList n t (e, Highlight) -- | Highlight selcted item status listHighlight :: Traversable t => GenericList n t (e, Highlight) -> GenericList n t (e, Highlight) listUnhighlightAll :: Traversable t => GenericList n t (e, Highlight) -> GenericList n t (e, Highlight) saveListToPl :: MonadMPD m => SongList -> Text -> m () overwriteListToPl :: MonadMPD m => SongList -> Text -> m () saveEditedPl :: HState -> EventM n HState deleteSelectedPl :: HState -> EventM n HState duplicatePlaylist :: PlaylistName -> HState -> EventM n HState pastePlaylist :: HState -> EventM n HState songBulkAddtoQ :: Bool -> Vector Song -> HState -> EventM n HState songBulkAddtoPl :: String -> Vector Song -> HState -> EventM n HState module Hum.Modes.PromptMode handlePromptEvent :: HState -> BrickEvent Name HumEvent -> EventM Name (Next HState) handlePlSelectPromptEvent :: HState -> BrickEvent Name HumEvent -> EventM Name (Next HState) songBulkAddtoNewPl :: Vector Song -> HState -> EventM n HState handleTextPromptEvent :: HState -> BrickEvent Name HumEvent -> EventM Name (Next HState) handleYNPromptEvent :: HState -> BrickEvent Name HumEvent -> EventM Name (Next HState) module Hum.Views.Common drawNowPlaying :: HState -> Widget Name drawProgressBar :: HState -> Widget Name data PerCol Per :: Int -> PerCol Col :: Int -> PerCol column :: Maybe PerCol -> Padding -> Padding -> Widget n -> Widget n songSearch :: Text -> [Metadata] -> Song -> Bool stringySearch :: ToString a => Text -> a -> Bool drawPrompt :: HState -> Widget Name choosePlRow :: Int -> Bool -> Maybe PlaylistName -> Widget n module Hum.Views.Help drawViewHelp :: HState -> Widget Name helpText :: HState -> Text handleEventHelp :: HState -> BrickEvent Name HumEvent -> EventM Name (Next HState) module Hum.Views.Library drawLibraryLeft :: HState -> Widget Name drawLibraryMid :: HState -> Widget Name drawLibraryRight :: HState -> Widget Name libraryRow :: HState -> Name -> Text -> Widget n librarySongRow :: HState -> Song -> Widget n libraryMoveRight :: FocLib -> FocLib libraryMoveLeft :: FocLib -> FocLib drawViewLibrary :: HState -> Widget Name libraryMove :: (forall e. List Name e -> List Name e) -> HState -> EventM Name HState libraryAddtoQ :: Bool -> HState -> EventM Name HState librarySearch :: Bool -> HState -> EventM Name HState handleEventLibrary :: HState -> BrickEvent Name HumEvent -> EventM Name (Next HState) addToPl :: EventM Name HState module Hum.Views.Playlists drawPlaylistLeft :: HState -> Widget Name drawPlaylistRight :: HState -> Widget Name playlistRow :: HState -> Text -> Widget n playlistSongRow :: HState -> (Song, Highlight) -> Widget n drawViewPlaylists :: HState -> Widget Name playlistsMove :: (forall e. List Name e -> List Name e) -> HState -> EventM Name HState playlistsAddtoQ :: Bool -> HState -> EventM Name HState playlistsSearch :: Bool -> HState -> EventM Name HState handleEventPlaylists :: HState -> BrickEvent Name HumEvent -> EventM Name (Next HState) module Hum.Views.Queue drawViewQueue :: HState -> Widget Name queueRow :: HState -> (Song, Highlight) -> Widget n pasteDeleteCleanup :: HState -> SongList -> EventM Name HState queueSearch :: Bool -> HState -> EventM Name HState queueAddToPl :: HState -> String -> EventM Name HState handleEventQueue :: HState -> BrickEvent Name HumEvent -> EventM Name (Next HState) module Hum.Views module Hum.Modes.ExMode exEnd :: HState -> EventM Name (Next HState) handleExEvent :: HState -> BrickEvent Name HumEvent -> EventM Name (Next HState) exPrefixTxt :: ExSubMode -> Text exCmdExecute :: [Text] -> HState -> EventM Name (Next HState) module Hum.Modes module Hum.UI app :: App HState HumEvent Name drawUI :: HState -> [Widget Name] chooseCursor :: HState -> [CursorLocation Name] -> Maybe (CursorLocation Name) buildInitialState :: BChan HumEvent -> IO HState humStartEvent :: HState -> EventM Name HState hBoxPad :: Padding -> [Widget n] -> Widget n seekCurEventM :: FractionalSeconds -> HState -> EventM Name HState handleEvent :: HState -> BrickEvent Name HumEvent -> EventM Name (Next HState)