mediabus-0.4.0.1: Multimedia streaming on top of Conduit

Safe HaskellNone
LanguageHaskell2010

Data.MediaBus.Conduit.Stream

Description

Conduit combinators for Streams

Synopsis

Documentation

yieldStreamish :: Monad m => Streamish i s t p c -> Conduit a m (Stream i s t p c) Source #

Yield a Stream from Streamish

yieldStreamish' :: (NFData i, NFData s, NFData t, NFData c, NFData p, Monad m) => Streamish i s t p c -> Conduit a m (Stream i s t p c) Source #

Strict version of yieldStreamish

yieldNextFrame :: Monad m => Frame s t c -> Conduit a m (Stream i s t p c) Source #

Yield the next Frame of a Stream

yieldNextFrame' :: (NFData i, NFData s, NFData t, NFData c, NFData p, Monad m) => Frame s t c -> Conduit a m (Stream i s t p c) Source #

Strict version of yieldNextFrame

yieldStartFrameCtx :: Monad m => FrameCtx i s t p -> Conduit a m (Stream i s t p c) Source #

Yield the starting FrameCtx of a Stream

yieldStartFrameCtx' :: (NFData i, NFData s, NFData t, NFData c, NFData p, NFData (FrameCtx i s t p), Monad m) => FrameCtx i s t p -> Conduit a m (Stream i s t p c) Source #

Strict version of yieldStartFrameCtx

toFramesC :: Monad m => Conduit (Stream i s t p c) m (Frame s t c) Source #

A conduit that receives Streams and yields all Frames

overStreamC :: Monad m => Conduit (Streamish i s t p c) m (Streamish i' s' t' p' c') -> Conduit (Stream i s t p c) m (Stream i' s' t' p' c') Source #

Create a Stream conduit from a Streamish conduit.

mapFramesC :: Monad m => (Frame s t c -> m (Frame s t c')) -> Conduit (Stream i s t p c) m (Stream i s t p c') Source #

A conduit that applies the given function to every Frame of a Stream.

mapFramesC' :: (NFData i, NFData s, NFData t, NFData c', Monad m) => (Frame s t c -> Frame s t c') -> Conduit (Stream i s t p c) m (Stream i s t p c') Source #

Strict version of mapFramesC

mapSeqNumC :: Monad m => (s -> s') -> Conduit (Stream i s t p c) m (Stream i s' t p c) Source #

A conduit that applies the given function to every sequence number of a Stream, in Frames as well as FrameCtxs.

mapTimestampC :: Monad m => (t -> t') -> Conduit (Stream i s t p c) m (Stream i s t' p c) Source #

A conduit that applies the given function to every time stamp of a Stream, in Frames as well as FrameCtxs.

mapTimestampC' :: (NFData t, Monad m) => (t -> t') -> Conduit (Stream i s t p c) m (Stream i s t' p c) Source #

A strict version of mapTimestampC.

mapFrameContentMC :: Monad m => (c -> m c') -> Conduit (Stream i s t p c) m (Stream i s t p c') Source #

A conduit that applies the given monadic function to eachFrameContent of a Stream.

mapFrameContentMC' :: (NFData (Stream i s t p c'), Monad m) => (c -> m c') -> Conduit (Stream i s t p c) m (Stream i s t p c') Source #

A strict variant of mapFrameContentMC

mapFrameContentC' :: (NFData c', Monad m) => (c -> c') -> Conduit (Stream i s t p c) m (Stream i s t p c') Source #

A conduit that applies the given pure function to eachFrameContent of a Stream.

foldStream :: (Monoid o, Monad m) => (Stream i s t p c -> o) -> Sink (Stream i s t p c) m o Source #

Like foldMap this uses the given function to extract a monoidal value and mappends all results into a single value, which is returned when the Conduit terminates.

foldStreamM :: (Monoid o, Monad m) => (Stream i s t p c -> m o) -> Sink (Stream i s t p c) m o Source #

Monadic variant of foldStream

concatStreamContents :: (Monoid c, Monad m) => Sink (Stream i s t p c) m c Source #

Under the constraint that the stream content is a monoid, fold over the stream appending all frame contents, i.e. foldStream of eachFrameContent. When the conduit finishes the monoidal value is returned.