| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
MusicScroll.Pipeline
Synopsis
- data DBusSignal
- data AppState = AppState {
- apUI :: UIContext
- apDB :: MVar Connection
- apSupl :: TVar (Maybe TrackSuplement)
- apStaticinput :: (Input TrackIdentifier, Input ErrorCause)
- apEphemeralInput :: Producer DBusSignal IO ()
- staticPipeline :: AppState -> IO ()
- songPipe :: MVar Connection -> UIContext -> Producer TrackIdentifier IO () -> IO ()
- suplementPipeline :: TrackSuplement -> AppState -> IO ()
- updatePipeline :: TrackSuplement -> AppState -> IO ()
- debugPS :: Show a => String -> Pipe a a IO ()
- musicSpawn :: IO (Input TrackIdentifier, Input ErrorCause, Producer DBusSignal IO (), Output TrackIdentifier, Output ErrorCause)
- addSuplArtist :: TVar (Maybe TrackSuplement) -> Pipe TrackIdentifier TrackIdentifier IO a
Documentation
data DBusSignal Source #
Constructors
| Song TrackIdentifier | |
| Error ErrorCause | |
| NoInfo |
Instances
| Show DBusSignal Source # | |
Defined in MusicScroll.Pipeline Methods showsPrec :: Int -> DBusSignal -> ShowS # show :: DBusSignal -> String # showList :: [DBusSignal] -> ShowS # | |
Constructors
| AppState | |
Fields
| |
staticPipeline :: AppState -> IO () Source #
songPipe :: MVar Connection -> UIContext -> Producer TrackIdentifier IO () -> IO () Source #
suplementPipeline :: TrackSuplement -> AppState -> IO () Source #
updatePipeline :: TrackSuplement -> AppState -> IO () Source #
musicSpawn :: IO (Input TrackIdentifier, Input ErrorCause, Producer DBusSignal IO (), Output TrackIdentifier, Output ErrorCause) Source #
Use the Output Divisible instance to create a network. These are
1) An output for songs.
2) One for errors
3) A merge from the previous two.
The last one is special as it's non-work-stealing, so we can pass it to
multiple listeners and all will receive a signal. But we have to be
careful of only taking a single value of it, as it basically a `TVar a`.