-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Multimedia streaming on top of Conduit -- -- Please see README.md @package mediabus @version 0.2.0.0 module Data.MediaBus.SourceId class SetSourceId a (GetSourceId a) ~ a => HasSourceIdT a where type GetSourceId a type SetSourceId a b where { type family GetSourceId a; type family SetSourceId a b; } -- | Things that can be uniquely identified by a looking at a (much -- simpler) representation, the identity. newtype SourceId i MkSourceId :: i -> SourceId i type SrcId32 = SourceId Word32 type SrcId64 = SourceId Word64 sourceId :: forall i_afim i_akN8. Iso (SourceId i_afim) (SourceId i_akN8) i_afim i_akN8 instance GHC.Show.Show i => GHC.Show.Show (Data.MediaBus.SourceId.SourceId i) instance GHC.Generics.Generic (Data.MediaBus.SourceId.SourceId i) instance GHC.Classes.Ord i => GHC.Classes.Ord (Data.MediaBus.SourceId.SourceId i) instance Data.Default.Class.Default i => Data.Default.Class.Default (Data.MediaBus.SourceId.SourceId i) instance Test.QuickCheck.Arbitrary.Arbitrary i => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.SourceId.SourceId i) instance GHC.Classes.Eq i => GHC.Classes.Eq (Data.MediaBus.SourceId.SourceId i) instance Control.DeepSeq.NFData i => Control.DeepSeq.NFData (Data.MediaBus.SourceId.SourceId i) module Data.MediaBus.Series data Series a b Next :: !b -> Series a b Start :: !a -> Series a b type Series' a = Series a a _Next :: forall a_aovX b_aovY b_aoTK. Prism (Series a_aovX b_aoTK) (Series a_aovX b_aovY) b_aoTK b_aovY _Start :: forall a_aovX b_aovY a_aoTP. Prism (Series a_aoTP b_aovY) (Series a_aovX b_aovY) a_aoTP a_aovX class AsSeries s a b | s -> a, s -> b seriesStart' :: AsSeries s a b => Prism' s a seriesNext' :: AsSeries s a b => Prism' s b class (SetSeriesStart s (GetSeriesStart s) ~ s) => AsSeriesStart s where type GetSeriesStart s type SetSeriesStart s t where { type family GetSeriesStart s; type family SetSeriesStart s t; } seriesStart :: AsSeriesStart s => Prism s (SetSeriesStart s n) (GetSeriesStart s) n class (SetSeriesNext s (GetSeriesNext s) ~ s) => AsSeriesNext s where type GetSeriesNext s type SetSeriesNext s t where { type family GetSeriesNext s; type family SetSeriesNext s t; } seriesNext :: AsSeriesNext s => Prism s (SetSeriesNext s n) (GetSeriesNext s) n newtype StartingFrom a MkStartingFrom :: a -> StartingFrom a startingFromValue :: forall a_aoTZ a_ap9u. Iso (StartingFrom a_aoTZ) (StartingFrom a_ap9u) a_aoTZ a_ap9u toNextsC' :: Monad m => Conduit (Series a b) m b toStartsC' :: Monad m => Conduit (Series a b) m a monotoneSeriesC :: Monad m => m a -> (i -> m b) -> Conduit i m (Series a b) instance GHC.Show.Show a => GHC.Show.Show (Data.MediaBus.Series.StartingFrom a) instance Test.QuickCheck.Arbitrary.Arbitrary a => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Series.StartingFrom a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.MediaBus.Series.StartingFrom a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.MediaBus.Series.StartingFrom a) instance Data.MediaBus.Series.AsSeries (Data.MediaBus.Series.Series a b) a b instance Data.MediaBus.Series.AsSeriesNext (Data.MediaBus.Series.Series a b) instance Data.MediaBus.Series.AsSeriesStart (Data.MediaBus.Series.Series a b) instance GHC.Base.Functor (Data.MediaBus.Series.Series a) instance Data.Bifunctor.Bifunctor Data.MediaBus.Series.Series instance GHC.Generics.Generic (Data.MediaBus.Series.Series a b) instance (GHC.Classes.Eq a, GHC.Classes.Eq b) => GHC.Classes.Eq (Data.MediaBus.Series.Series a b) instance Data.MediaBus.Series.AsSeries (Data.Either.Either a b) a b instance Data.MediaBus.Series.AsSeriesStart (Data.Either.Either a b) instance Data.MediaBus.Series.AsSeriesNext (Data.Either.Either a b) instance (Control.DeepSeq.NFData a, Control.DeepSeq.NFData b) => Control.DeepSeq.NFData (Data.MediaBus.Series.Series a b) instance (GHC.Show.Show a, GHC.Show.Show b) => GHC.Show.Show (Data.MediaBus.Series.Series a b) instance (GHC.Classes.Ord a, GHC.Classes.Ord b) => GHC.Classes.Ord (Data.MediaBus.Series.Series a b) instance (Test.QuickCheck.Arbitrary.Arbitrary a, Test.QuickCheck.Arbitrary.Arbitrary b) => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Series.Series a b) module Data.MediaBus.Payload class (SetPayload a (GetPayload a) ~ a) => HasPayload a where type GetPayload a type SetPayload a b where { type family GetPayload a; type family SetPayload a b; } payload :: HasPayload a => Traversal a (SetPayload a b) (GetPayload a) b module Data.MediaBus.OrderedBy data OrderedBy a MkOrderedBy :: (a -> a -> Ordering) -> a -> OrderedBy a instance GHC.Classes.Eq (Data.MediaBus.OrderedBy.OrderedBy a) instance GHC.Classes.Ord (Data.MediaBus.OrderedBy.OrderedBy a) module Data.MediaBus.Monotone -- | Class of numbers that are monotone increasing (or decreasing) and have -- a relative order, that is not necessarily transitive. -- -- For example, for a series of Word8 values: 0 64 128 192 0 -- 64 128 ... could be interpreted as a monotone series of -- consecutive increasing values, that wrap around after 255. But note -- that the Ord instance is not sufficient to express that -- 0 is after 192, since 0 < 192. class LocalOrd a where x `succeeds` y = (x - y) < ((maxBound - minBound) `div` 2) succeeds :: LocalOrd a => a -> a -> Bool succeeds :: (LocalOrd a, Bounded a, Integral a) => a -> a -> Bool instance Data.MediaBus.Monotone.LocalOrd GHC.Word.Word8 instance Data.MediaBus.Monotone.LocalOrd GHC.Word.Word16 instance Data.MediaBus.Monotone.LocalOrd GHC.Word.Word32 instance Data.MediaBus.Monotone.LocalOrd GHC.Word.Word64 instance Data.MediaBus.Monotone.LocalOrd GHC.Int.Int8 instance Data.MediaBus.Monotone.LocalOrd GHC.Int.Int16 instance Data.MediaBus.Monotone.LocalOrd GHC.Int.Int32 instance Data.MediaBus.Monotone.LocalOrd GHC.Int.Int64 instance Data.MediaBus.Monotone.LocalOrd GHC.Types.Int module Data.MediaBus.Sequence newtype SeqNum s MkSeqNum :: s -> SeqNum s type SeqNum8 = SeqNum Word8 type SeqNum16 = SeqNum Word16 type SeqNum32 = SeqNum Word32 type SeqNum64 = SeqNum Word64 class SetSeqNum t (GetSeqNum t) ~ t => HasSeqNumT t where type GetSeqNum t type SetSeqNum t s where { type family GetSeqNum t; type family SetSeqNum t s; } class HasSeqNumT t => HasSeqNum t seqNum :: HasSeqNum t => Lens t (SetSeqNum t s) (GetSeqNum t) s fromSeqNum :: forall s_au3a s_auyy. Iso (SeqNum s_au3a) (SeqNum s_auyy) s_au3a s_auyy synchronizeToSeqNum :: (HasSeqNum a, Monad m, Integral i) => i -> Conduit a m (SetSeqNum a i) instance (GHC.Real.Real a, GHC.Num.Num a, GHC.Classes.Eq a, Data.MediaBus.Monotone.LocalOrd a) => GHC.Real.Real (Data.MediaBus.Sequence.SeqNum a) instance (GHC.Real.Integral a, GHC.Enum.Enum a, GHC.Real.Real a, GHC.Classes.Eq a, Data.MediaBus.Monotone.LocalOrd a) => GHC.Real.Integral (Data.MediaBus.Sequence.SeqNum a) instance Data.MediaBus.Sequence.HasSeqNumT (Data.MediaBus.Sequence.SeqNum s) instance Data.MediaBus.Sequence.HasSeqNum (Data.MediaBus.Sequence.SeqNum s) instance GHC.Show.Show s => GHC.Show.Show (Data.MediaBus.Sequence.SeqNum s) instance (GHC.Classes.Eq a, Data.MediaBus.Monotone.LocalOrd a) => GHC.Classes.Ord (Data.MediaBus.Sequence.SeqNum a) instance System.Random.Random s => System.Random.Random (Data.MediaBus.Sequence.SeqNum s) instance GHC.Generics.Generic (Data.MediaBus.Sequence.SeqNum s) instance Data.Default.Class.Default s => Data.Default.Class.Default (Data.MediaBus.Sequence.SeqNum s) instance Test.QuickCheck.Arbitrary.Arbitrary s => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Sequence.SeqNum s) instance Data.MediaBus.Monotone.LocalOrd s => Data.MediaBus.Monotone.LocalOrd (Data.MediaBus.Sequence.SeqNum s) instance GHC.Enum.Enum s => GHC.Enum.Enum (Data.MediaBus.Sequence.SeqNum s) instance GHC.Enum.Bounded s => GHC.Enum.Bounded (Data.MediaBus.Sequence.SeqNum s) instance GHC.Classes.Eq s => GHC.Classes.Eq (Data.MediaBus.Sequence.SeqNum s) instance GHC.Num.Num s => GHC.Num.Num (Data.MediaBus.Sequence.SeqNum s) instance (Data.MediaBus.Sequence.HasSeqNumT a, Data.MediaBus.Sequence.HasSeqNumT b, Data.MediaBus.Sequence.GetSeqNum a ~ Data.MediaBus.Sequence.GetSeqNum b) => Data.MediaBus.Sequence.HasSeqNumT (Data.MediaBus.Series.Series a b) instance (Data.MediaBus.Sequence.HasSeqNum a, Data.MediaBus.Sequence.HasSeqNum b, Data.MediaBus.Sequence.GetSeqNum a ~ Data.MediaBus.Sequence.GetSeqNum b) => Data.MediaBus.Sequence.HasSeqNum (Data.MediaBus.Series.Series a b) instance Control.DeepSeq.NFData s => Control.DeepSeq.NFData (Data.MediaBus.Sequence.SeqNum s) module Data.MediaBus.Ticks -- | Types with a duration (e.g. audio samples). class HasDuration a where getDuration !x = from nominalDiffTime # (getDurationTicks x :: Ticks 1000000000000 Integer) getDurationTicks !x = nominalDiffTime # getDuration x getDuration :: HasDuration a => a -> NominalDiffTime getDurationTicks :: (HasDuration a, Integral i, KnownNat r) => a -> Ticks r i class SetTimestamp t (GetTimestamp t) ~ t => HasTimestampT t where type GetTimestamp t type SetTimestamp t s where { type family GetTimestamp t; type family SetTimestamp t s; } class HasTimestampT t => HasTimestamp t where timestamp' = timestamp timestamp :: HasTimestamp t => Lens t (SetTimestamp t s) (GetTimestamp t) s timestamp' :: HasTimestamp t => Lens' t (GetTimestamp t) newtype Ticks (rate :: Nat) w MkTicks :: w -> Ticks w type Ticks32 r = Ticks r Word32 type Ticks64 r = Ticks r Word64 type Ticks32At8000 = Ticks32 8000 type Ticks32At16000 = Ticks32 16000 type Ticks32At48000 = Ticks32 48000 type Ticks64At8000 = Ticks64 8000 type Ticks64At16000 = Ticks64 16000 type Ticks64At48000 = Ticks64 48000 mkTicks :: forall proxy rate baseType. proxy '(rate, baseType) -> baseType -> Ticks rate baseType at8kHzU32 :: Proxy '(8000, Word32) at16kHzU32 :: Proxy '(16000, Word32) at48kHzU32 :: Proxy '(48000, Word32) at16kHzU64 :: Proxy '(16000, Word64) at48kHzU64 :: Proxy '(48000, Word64) nominalDiffTime :: forall r w. (Integral w, KnownNat r) => Iso' (Ticks r w) NominalDiffTime convertTicks :: (Integral w, Integral w', KnownNat r, KnownNat r') => Ticks r w -> Ticks r' w' deriveFrameTimestamp :: (Monad m, KnownNat r, Integral t, HasDuration a, HasTimestamp a) => Ticks r t -> Conduit a m (SetTimestamp a (Ticks r t)) data StaticTicks [MkStaticTicks] :: Nat -> Rate -> StaticTicks class KnownStaticTicks (s :: StaticTicks) staticTicksVal :: (KnownStaticTicks s, KnownNat r) => proxy s -> Ticks r Integer data Rate MkRate :: Nat -> Rate type (:@) ticks rate = MkStaticTicks ticks (MkRate rate) class (KnownStaticTicks (GetStaticDuration s), SetStaticDuration s (GetStaticDuration s) ~ s) => HasStaticDuration (s :: k) where type SetStaticDuration s (pt :: StaticTicks) :: k' type GetStaticDuration s :: StaticTicks where { type family SetStaticDuration s (pt :: StaticTicks) :: k'; type family GetStaticDuration s :: StaticTicks; } toStaticDurationProxy :: (HasStaticDuration s) => proxy s -> Proxy (GetStaticDuration s) getStaticDuration :: forall proxy s. HasStaticDuration s => proxy s -> NominalDiffTime getStaticTicks :: forall proxy s r t i. (KnownNat r, KnownNat t, HasStaticDuration s, GetStaticDuration s ~ (t :@ r), Integral i) => proxy s -> Ticks r i getStaticRate :: forall proxy s r t. (KnownNat r, KnownNat t, HasStaticDuration s, GetStaticDuration s ~ (t :@ r)) => proxy s -> Integer ticksFromStaticDuration :: forall proxy rate ticks i. (KnownNat rate, KnownNat ticks, Integral i) => proxy (ticks :@ rate) -> Ticks rate i rateFromStaticDuration :: forall proxy rate ticks. (KnownNat rate, KnownNat ticks) => proxy (ticks :@ rate) -> Integer instance System.Random.Random w => System.Random.Random (Data.MediaBus.Ticks.Ticks rate w) instance GHC.Generics.Generic (Data.MediaBus.Ticks.Ticks rate w) instance Data.Default.Class.Default w => Data.Default.Class.Default (Data.MediaBus.Ticks.Ticks rate w) instance Test.QuickCheck.Arbitrary.Arbitrary w => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Ticks.Ticks rate w) instance GHC.Num.Num w => GHC.Num.Num (Data.MediaBus.Ticks.Ticks rate w) instance Data.MediaBus.Monotone.LocalOrd w => Data.MediaBus.Monotone.LocalOrd (Data.MediaBus.Ticks.Ticks rate w) instance GHC.Enum.Enum w => GHC.Enum.Enum (Data.MediaBus.Ticks.Ticks rate w) instance (Data.MediaBus.Monotone.LocalOrd w, GHC.Real.Integral w) => GHC.Real.Integral (Data.MediaBus.Ticks.Ticks rate w) instance (Data.MediaBus.Monotone.LocalOrd w, GHC.Real.Real w) => GHC.Real.Real (Data.MediaBus.Ticks.Ticks rate w) instance GHC.Classes.Eq w => GHC.Classes.Eq (Data.MediaBus.Ticks.Ticks rate w) instance Control.DeepSeq.NFData w => Control.DeepSeq.NFData (Data.MediaBus.Ticks.Ticks rate w) instance (GHC.TypeLits.KnownNat r, GHC.Real.Integral w, GHC.Show.Show w) => GHC.Show.Show (Data.MediaBus.Ticks.Ticks r w) instance (GHC.Classes.Eq w, Data.MediaBus.Monotone.LocalOrd w) => GHC.Classes.Ord (Data.MediaBus.Ticks.Ticks rate w) instance Data.MediaBus.Ticks.HasDuration a => Data.MediaBus.Ticks.HasDuration (GHC.Base.Maybe a) instance (Data.MediaBus.Ticks.HasTimestampT a, Data.MediaBus.Ticks.HasTimestampT b, Data.MediaBus.Ticks.GetTimestamp a ~ Data.MediaBus.Ticks.GetTimestamp b) => Data.MediaBus.Ticks.HasTimestampT (Data.MediaBus.Series.Series a b) instance (Data.MediaBus.Ticks.HasTimestamp a, Data.MediaBus.Ticks.HasTimestamp b, Data.MediaBus.Ticks.GetTimestamp a ~ Data.MediaBus.Ticks.GetTimestamp b) => Data.MediaBus.Ticks.HasTimestamp (Data.MediaBus.Series.Series a b) instance (GHC.TypeLits.KnownNat r, GHC.TypeLits.KnownNat t) => Data.MediaBus.Ticks.HasStaticDuration Data.MediaBus.Ticks.StaticTicks (t Data.MediaBus.Ticks.:@ r) instance (GHC.TypeLits.KnownNat d, GHC.TypeLits.KnownNat r) => Data.MediaBus.Ticks.KnownStaticTicks ('Data.MediaBus.Ticks.MkStaticTicks d ('Data.MediaBus.Ticks.MkRate r)) module Data.MediaBus.Segment -- | Class of types that support splitting of from the front a packet -- containing roughly a certain duration. class CanSegment a -- | Try to split the packet into the a part which has at most the given -- duration and a rest. If not possible, e.g. because the input data is -- already shorter than the given duration, return Nothing. splitAfterDuration :: (CanSegment a, HasStaticDuration d) => proxy d -> a -> Maybe (Segment d a, a) -- | A segment is some content with a fixed (type level) duration. newtype Segment (duration :: StaticTicks) c MkSegment :: c -> Segment c segmentContent :: forall duration_aB5w c_aB5x duration_aBmD c_aBmE. Iso (Segment duration_aB5w c_aB5x) (Segment duration_aBmD c_aBmE) c_aB5x c_aBmE instance Data.MediaBus.Ticks.KnownStaticTicks d => Data.MediaBus.Ticks.HasStaticDuration * (Data.MediaBus.Segment.Segment d x) instance Data.MediaBus.Ticks.HasStaticDuration Data.MediaBus.Ticks.StaticTicks d => Data.MediaBus.Ticks.HasDuration (Data.MediaBus.Segment.Segment d x) instance GHC.Classes.Eq c => GHC.Classes.Eq (Data.MediaBus.Segment.Segment duration c) instance GHC.Base.Functor (Data.MediaBus.Segment.Segment duration) instance Test.QuickCheck.Arbitrary.Arbitrary c => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Segment.Segment duration c) instance Data.Default.Class.Default c => Data.Default.Class.Default (Data.MediaBus.Segment.Segment duration c) instance Control.DeepSeq.NFData c => Control.DeepSeq.NFData (Data.MediaBus.Segment.Segment duration c) instance (Data.MediaBus.Ticks.HasStaticDuration Data.MediaBus.Ticks.StaticTicks d, GHC.Show.Show c) => GHC.Show.Show (Data.MediaBus.Segment.Segment d c) module Data.MediaBus.Stream class (SetPayload a (GetPayload a) ~ a) => HasPayload a where type GetPayload a type SetPayload a b where { type family GetPayload a; type family SetPayload a b; } payload :: HasPayload a => Traversal a (SetPayload a b) (GetPayload a) b data FrameCtx i s t p MkFrameCtx :: !i -> !t -> !s -> !p -> FrameCtx i s t p frameCtxSourceId :: forall i_aCbd s_aCbe t_aCbf p_aCbg i_aCka. Lens (FrameCtx i_aCbd s_aCbe t_aCbf p_aCbg) (FrameCtx i_aCka s_aCbe t_aCbf p_aCbg) i_aCbd i_aCka frameCtxSeqNumRef :: forall i_aCbd s_aCbe t_aCbf p_aCbg s_aCk9. Lens (FrameCtx i_aCbd s_aCbe t_aCbf p_aCbg) (FrameCtx i_aCbd s_aCk9 t_aCbf p_aCbg) s_aCbe s_aCk9 frameCtxTimestampRef :: forall i_aCbd s_aCbe t_aCbf p_aCbg t_aCkb. Lens (FrameCtx i_aCbd s_aCbe t_aCbf p_aCbg) (FrameCtx i_aCbd s_aCbe t_aCkb p_aCbg) t_aCbf t_aCkb frameCtxInit :: forall i_aCbd s_aCbe t_aCbf p_aCbg p_aCk8. Lens (FrameCtx i_aCbd s_aCbe t_aCbf p_aCbg) (FrameCtx i_aCbd s_aCbe t_aCbf p_aCk8) p_aCbg p_aCk8 -- | A Frame can be anything that has a start time and is exactly -- one time unit long, it can respresent anything ranging from an audio -- buffer with 20ms of audio to a single pulse coded audio sample, of -- course it could also be a video frame or a chat message. data Frame s t c MkFrame :: !t -> !s -> !c -> Frame s t c frameSeqNum :: forall s_aCkJ t_aCkK c_aCkL s_aCBv. Lens (Frame s_aCkJ t_aCkK c_aCkL) (Frame s_aCBv t_aCkK c_aCkL) s_aCkJ s_aCBv frameTimestamp :: forall s_aCkJ t_aCkK c_aCkL t_aCBw. Lens (Frame s_aCkJ t_aCkK c_aCkL) (Frame s_aCkJ t_aCBw c_aCkL) t_aCkK t_aCBw framePayload :: forall s_aCkJ t_aCkK c_aCkL c_aCBu. Lens (Frame s_aCkJ t_aCkK c_aCkL) (Frame s_aCkJ t_aCkK c_aCBu) c_aCkL c_aCBu newtype Stream i s t p c MkStream :: Streamish i s t p c -> Stream i s t p c stream :: forall i_aCBY s_aCBZ t_aCC0 p_aCC1 c_aCC2 i_aCZQ s_aCZR t_aCZS p_aCZT c_aCZU. Iso (Stream i_aCBY s_aCBZ t_aCC0 p_aCC1 c_aCC2) (Stream i_aCZQ s_aCZR t_aCZS p_aCZT c_aCZU) (Streamish i_aCBY s_aCBZ t_aCC0 p_aCC1 c_aCC2) (Streamish i_aCZQ s_aCZR t_aCZS p_aCZT c_aCZU) yieldStreamish :: Monad m => Streamish i s t p c -> Conduit a m (Stream i s t p c) 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) yieldNextFrame :: Monad m => Frame s t c -> Conduit a m (Stream i s t p c) 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) yieldStartFrameCtx :: Monad m => FrameCtx i s t p -> Conduit a m (Stream i s t p c) 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) toFramesC :: Monad m => Conduit (Stream i s t p c) m (Frame s t c) overStreamC :: Monad m => Conduit (Series (FrameCtx i s t p) (Frame s t c)) m (Series (FrameCtx i' s' t' p') (Frame s' t' c')) -> Conduit (Stream i s t p c) m (Stream i' s' t' p' c') 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') 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') mapSeqNumC :: Monad m => (s -> s') -> Conduit (Stream i s t p c) m (Stream i s' t p c) mapTicksC :: Monad m => (t -> t') -> Conduit (Stream i s t p c) m (Stream i s t' p c) mapTicksC' :: (NFData t, Monad m) => (t -> t') -> Conduit (Stream i s t p c) m (Stream i s t' p c) mapPayloadMC :: Monad m => (c -> m c') -> Conduit (Stream i s t p c) m (Stream i s t p c') mapPayloadMC' :: (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') mapPayloadC' :: (NFData c', Monad m) => (c -> c') -> Conduit (Stream i s t p c) m (Stream i s t p c') convertTicksC' :: forall proxy0 proxy1 m r t r' t' i s c p. (NFData t, NFData t', KnownNat r, KnownNat r', Integral t, Integral t', Monad m, NFData t') => proxy0 '(r, t) -> proxy1 '(r', t') -> Conduit (Stream i s (Ticks r t) p c) m (Stream i s (Ticks r' t') p c) foldStream :: (Monoid o, Monad m) => (Stream i s t p c -> o) -> Sink (Stream i s t p c) m o foldStreamM :: (Monoid o, Monad m) => (Stream i s t p c -> m o) -> Sink (Stream i s t p c) m o concatStreamContents :: (Monoid c, Monad m) => Sink (Stream i s t p c) m c instance Data.MediaBus.Payload.HasPayload (Data.MediaBus.Stream.Stream i s t p c) instance Data.MediaBus.Ticks.HasDuration c => Data.MediaBus.Ticks.HasDuration (Data.MediaBus.Stream.Stream i s t p c) instance Data.MediaBus.Sequence.HasSeqNumT (Data.MediaBus.Stream.Stream i s t p c) instance Data.MediaBus.Sequence.HasSeqNum (Data.MediaBus.Stream.Stream i s t p c) instance Data.MediaBus.Ticks.HasTimestampT (Data.MediaBus.Stream.Stream i s t p c) instance Data.MediaBus.Ticks.HasTimestamp (Data.MediaBus.Stream.Stream i s t p c) instance (Data.Default.Class.Default c, Data.Default.Class.Default s, Data.Default.Class.Default t) => Data.Default.Class.Default (Data.MediaBus.Stream.Stream i s t p c) instance (GHC.Show.Show i, GHC.Show.Show s, GHC.Show.Show t, GHC.Show.Show c, GHC.Show.Show p) => GHC.Show.Show (Data.MediaBus.Stream.Stream i s t p c) instance GHC.Generics.Generic (Data.MediaBus.Stream.Stream i s t p c) instance (Test.QuickCheck.Arbitrary.Arbitrary c, Test.QuickCheck.Arbitrary.Arbitrary p, Test.QuickCheck.Arbitrary.Arbitrary t, Test.QuickCheck.Arbitrary.Arbitrary s, Test.QuickCheck.Arbitrary.Arbitrary i) => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Stream.Stream i s t p c) instance (GHC.Classes.Eq c, GHC.Classes.Eq i, GHC.Classes.Eq t, GHC.Classes.Eq s, GHC.Classes.Eq p) => GHC.Classes.Eq (Data.MediaBus.Stream.Stream i s t p c) instance (GHC.Classes.Ord c, GHC.Classes.Ord i, GHC.Classes.Ord t, GHC.Classes.Ord s, GHC.Classes.Ord p) => GHC.Classes.Ord (Data.MediaBus.Stream.Stream i s t p c) instance Data.MediaBus.Payload.HasPayload (Data.MediaBus.Stream.Frame s t c) instance Data.MediaBus.Ticks.HasTimestampT (Data.MediaBus.Stream.Frame s t c) instance Data.MediaBus.Ticks.HasTimestamp (Data.MediaBus.Stream.Frame s t c) instance Data.MediaBus.Sequence.HasSeqNumT (Data.MediaBus.Stream.Frame s t c) instance Data.MediaBus.Sequence.HasSeqNum (Data.MediaBus.Stream.Frame s t c) instance Data.MediaBus.Ticks.HasDuration c => Data.MediaBus.Ticks.HasDuration (Data.MediaBus.Stream.Frame s t c) instance (Test.QuickCheck.Arbitrary.Arbitrary c, Test.QuickCheck.Arbitrary.Arbitrary s, Test.QuickCheck.Arbitrary.Arbitrary t) => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Stream.Frame s t c) instance (Data.Default.Class.Default s, Data.Default.Class.Default t, Data.Default.Class.Default c) => Data.Default.Class.Default (Data.MediaBus.Stream.Frame s t c) instance (GHC.Show.Show s, GHC.Show.Show t, GHC.Show.Show v) => GHC.Show.Show (Data.MediaBus.Stream.Frame s t v) instance (Control.DeepSeq.NFData i, Control.DeepSeq.NFData s, Control.DeepSeq.NFData t, Control.DeepSeq.NFData c, Control.DeepSeq.NFData p) => Control.DeepSeq.NFData (Data.MediaBus.Stream.Stream i s t p c) instance GHC.Generics.Generic (Data.MediaBus.Stream.Frame s t c) instance (GHC.Classes.Ord c, GHC.Classes.Ord s, GHC.Classes.Ord t) => GHC.Classes.Ord (Data.MediaBus.Stream.Frame s t c) instance (GHC.Classes.Eq c, GHC.Classes.Eq s, GHC.Classes.Eq t) => GHC.Classes.Eq (Data.MediaBus.Stream.Frame s t c) instance GHC.Base.Functor (Data.MediaBus.Stream.Frame s t) instance Data.MediaBus.Ticks.HasTimestampT (Data.MediaBus.Stream.FrameCtx i s t p) instance Data.MediaBus.Ticks.HasTimestamp (Data.MediaBus.Stream.FrameCtx i s t p) instance Data.MediaBus.Sequence.HasSeqNumT (Data.MediaBus.Stream.FrameCtx i s t p) instance Data.MediaBus.Ticks.HasDuration (Data.MediaBus.Stream.FrameCtx i s t p) instance Data.MediaBus.Sequence.HasSeqNum (Data.MediaBus.Stream.FrameCtx i s t p) instance (Test.QuickCheck.Arbitrary.Arbitrary i, Test.QuickCheck.Arbitrary.Arbitrary s, Test.QuickCheck.Arbitrary.Arbitrary t, Test.QuickCheck.Arbitrary.Arbitrary p) => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Stream.FrameCtx i s t p) instance (Data.Default.Class.Default i, Data.Default.Class.Default s, Data.Default.Class.Default t, Data.Default.Class.Default p) => Data.Default.Class.Default (Data.MediaBus.Stream.FrameCtx i s t p) instance (GHC.Show.Show i, GHC.Show.Show s, GHC.Show.Show t, GHC.Show.Show p) => GHC.Show.Show (Data.MediaBus.Stream.FrameCtx i s t p) instance (Control.DeepSeq.NFData c, Control.DeepSeq.NFData s, Control.DeepSeq.NFData t) => Control.DeepSeq.NFData (Data.MediaBus.Stream.Frame s t c) instance GHC.Generics.Generic (Data.MediaBus.Stream.FrameCtx i s t p) instance (GHC.Classes.Ord p, GHC.Classes.Ord s, GHC.Classes.Ord t, GHC.Classes.Ord i) => GHC.Classes.Ord (Data.MediaBus.Stream.FrameCtx i s t p) instance (GHC.Classes.Eq p, GHC.Classes.Eq s, GHC.Classes.Eq t, GHC.Classes.Eq i) => GHC.Classes.Eq (Data.MediaBus.Stream.FrameCtx i s t p) instance (Control.DeepSeq.NFData i, Control.DeepSeq.NFData s, Control.DeepSeq.NFData t, Control.DeepSeq.NFData p) => Control.DeepSeq.NFData (Data.MediaBus.Stream.FrameCtx i s t p) module Data.MediaBus.Reorder reorderFramesBySeqNumC :: (Default s, Default i, Default t, Default p, Num s, Ord s, Monad m) => Int -> Conduit (Stream i s t p c) m (Stream i s t p c) reorderFramesByC :: (Monad m, Ord rank, Default i, Default t, Default s, Default p, Default rank) => Lens' (Stream i s t p c) rank -> (rank -> rank) -> Int -> Conduit (Stream i s t p c) m (Stream i s t p c) module Data.MediaBus.Transcoder class Transcoder from to where type TranscodingSeqNum from to s :: Constraint type TranscodingTicks from to t :: Constraint type TranscodingSeqNum from to s = () type TranscodingTicks from to t = () where { type family TranscodingSeqNum from to s :: Constraint; type family TranscodingTicks from to t :: Constraint; type TranscodingSeqNum from to s = (); type TranscodingTicks from to t = (); } transcode :: (Transcoder from to, TranscodingSeqNum from to s, TranscodingTicks from to t) => Frame s t from -> Frame s t to transcodeStreamC' :: (NFData to, NFData p, NFData i, NFData s, NFData t, NFData p, Monad m, Transcoder from to, TranscodingSeqNum from to s, TranscodingTicks from to t) => Conduit (Stream i s t p from) m (Stream i s t p to) module Data.MediaBus.StreamSegment -- | The packetizer recombines incoming packets into Segments of the -- given size. The sequence numbers will be offsetted by the number extra -- frames generated. segmentC :: (Num s, Monad m, HasDuration c, CanSegment c, Monoid c, Default i, KnownNat r, Integral t, HasStaticDuration d) => Conduit (Stream i s (Ticks r t) p c) m (Stream i s (Ticks r t) p (Segment d c)) segmentC' :: (Num s, Monad m, HasDuration c, CanSegment c, Monoid c, Default i, KnownNat r, Integral t, HasStaticDuration d) => proxy d -> Conduit (Stream i s (Ticks r t) p c) m (Stream i s (Ticks r t) p (Segment d c)) module Data.MediaBus.Discontinous data Discontinous a Missing :: Discontinous a Got :: !a -> Discontinous a _Missing :: forall a_aOX8. Prism' (Discontinous a_aOX8) () _Got :: forall a_aOX8 a_aPpw. Prism (Discontinous a_aPpw) (Discontinous a_aOX8) a_aPpw a_aOX8 concealMissing :: (NFData c, Monad m) => c -> Conduit (Stream i s t p (Discontinous c)) m (Stream i s t p c) instance Data.MediaBus.Ticks.HasDuration a => Data.MediaBus.Ticks.HasDuration (Data.MediaBus.Discontinous.Discontinous a) instance Data.MediaBus.Payload.HasPayload a => Data.MediaBus.Payload.HasPayload (Data.MediaBus.Discontinous.Discontinous a) instance GHC.Generics.Generic (Data.MediaBus.Discontinous.Discontinous a) instance GHC.Show.Show a => GHC.Show.Show (Data.MediaBus.Discontinous.Discontinous a) instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Data.MediaBus.Discontinous.Discontinous a) instance Data.Default.Class.Default (Data.MediaBus.Discontinous.Discontinous a) module Data.MediaBus.Conduit annotateTypeC :: proxy a -> Conduit a m a -> Conduit a m a annotateTypeCIn :: proxy a -> Conduit a m b -> Conduit a m b annotateTypeCOut :: proxy b -> Conduit a m b -> Conduit a m b annotateTypeSink :: proxy a -> Sink a m r -> Sink a m r annotateTypeSource :: proxy a -> Source m a -> Source m a exitAfterC :: Monad m => Int -> Conduit a m a traceShowC :: (Show a, Monad m) => Double -> String -> Conduit a m a traceShowSink :: (Show a, Monad m) => Double -> String -> Consumer a m [a] module Data.MediaBus.Clock -- | Clocks can generate reference times, and they can convert these to -- tickss. Tickss are mere integrals class (Default (ClockTimeDiff c), Ord (ClockTimeDiff c), Eq (ClockTimeDiff c), Num (ClockTimeDiff c), Show (ClockTime c), Eq (ClockTime c), Show (ClockTimeDiff c), LocalOrd (ClockTimeDiff c)) => IsClock c where data ClockTime c data ClockTimeDiff c type MonadClock c (m :: Type -> Type) :: Constraint where { data family ClockTime c; data family ClockTimeDiff c; type family MonadClock c (m :: Type -> Type) :: Constraint; } now :: (IsClock c, MonadClock c m) => m (ClockTime c) timeAsTimeDiff :: IsClock c => ClockTime c -> ClockTimeDiff c diffTime :: IsClock c => ClockTime c -> ClockTime c -> ClockTimeDiff c timeAddTimeDiff :: IsClock c => ClockTime c -> ClockTimeDiff c -> ClockTime c timeSince :: (IsClock c, MonadClock c m, Monad m) => ClockTime c -> m (ClockTimeDiff c) data UtcClock MkUtcClock :: UtcClock useUtcClock :: Proxy UtcClock ($sel:_utcClockTimeDiff:MkUtcClockTimeDiff) :: ClockTimeDiff UtcClock -> NominalDiffTime ($sel:_utcClockTime:MkUtcClockTime) :: ClockTime UtcClock -> UTCTime utcClockTimeDiff :: Lens' (ClockTimeDiff UtcClock) NominalDiffTime instance GHC.Generics.Generic Data.MediaBus.Clock.UtcClock instance GHC.Generics.Generic (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock) instance GHC.Num.Num (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock) instance GHC.Classes.Eq (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock) instance GHC.Classes.Ord (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock) instance GHC.Generics.Generic (Data.MediaBus.Clock.ClockTime * Data.MediaBus.Clock.UtcClock) instance GHC.Classes.Eq (Data.MediaBus.Clock.ClockTime * Data.MediaBus.Clock.UtcClock) instance Control.DeepSeq.NFData Data.MediaBus.Clock.UtcClock instance Data.MediaBus.Clock.IsClock * Data.MediaBus.Clock.UtcClock instance Control.DeepSeq.NFData (Data.MediaBus.Clock.ClockTime * Data.MediaBus.Clock.UtcClock) instance GHC.Show.Show (Data.MediaBus.Clock.ClockTime * Data.MediaBus.Clock.UtcClock) instance GHC.Show.Show (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock) instance Control.DeepSeq.NFData (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock) instance Data.Default.Class.Default (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock) instance Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Clock.ClockTime * Data.MediaBus.Clock.UtcClock) instance Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock) instance Data.MediaBus.Monotone.LocalOrd (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock) module Data.MediaBus.Transport.Udp -- | A UDP source that uses MonandResource to make sure the socket -- is closed. udpDatagramSource :: (IsClock c, MonadClock c m, MonadResource m, Num s, Default p) => proxy c -> Int -> HostPreference -> Source m (Stream (SourceId (Maybe SockAddr)) (SeqNum s) (ClockTimeDiff c) p ByteString) module Data.MediaBus.BlankMedia class CanGenerateBlankMedia a where blankFor dt = blankForTicks (nominalDiffTime # dt :: Ticks 1000000000000 Integer) blankForTicks ticks = blankFor (from nominalDiffTime # ticks) blankFor :: CanGenerateBlankMedia a => NominalDiffTime -> a blankForTicks :: (CanGenerateBlankMedia a, Integral i, KnownNat r) => Ticks r i -> a class CanBeBlank a blank :: CanBeBlank a => a instance (Data.MediaBus.Ticks.HasStaticDuration Data.MediaBus.Ticks.StaticTicks d, Data.MediaBus.BlankMedia.CanGenerateBlankMedia a) => Data.MediaBus.BlankMedia.CanBeBlank (Data.MediaBus.Segment.Segment d a) module Data.MediaBus.Sample -- | A sample is a discrete value of a continuous signal, periodically -- sampled at the sampling frequency. This is a full buffer of those -- things. newtype SampleBuffer sampleType MkSampleBuffer :: Vector sampleType -> SampleBuffer sampleType sampleBufferFromByteString :: Storable a => ByteString -> SampleBuffer a byteStringFromSampleBuffer :: Storable a => SampleBuffer a -> ByteString sampleBufferToList :: Storable s => SampleBuffer s -> [s] sampleBufferFromList :: Storable s => [s] -> SampleBuffer s sampleVector :: forall sampleType_aUmi sampleType_aUzc. Iso (SampleBuffer sampleType_aUmi) (SampleBuffer sampleType_aUzc) (Vector sampleType_aUmi) (Vector sampleType_aUzc) createSampleBufferFrom :: (Storable sample') => (forall s. Vector sample -> ST s (MVector s sample')) -> SampleBuffer sample -> SampleBuffer sample' -- | A type class for media formats, like encodings, sample rate, etc... class (Storable (GetSampleType s), SetSampleType s (GetSampleType s) ~ s) => HasSampleBuffer s where type SetSampleType s t type GetSampleType s where { type family SetSampleType s t; type family GetSampleType s; } sampleCount :: HasSampleBuffer s => s -> Int eachSample :: (HasSampleBuffer s, Storable t) => Traversal s (SetSampleType s t) (GetSampleType s) t sampleBuffer :: (HasSampleBuffer s, Storable t) => Lens s (SetSampleType s t) (SampleBuffer (GetSampleType s)) (SampleBuffer t) type GetSampleBuffer s = SampleBuffer (GetSampleType s) mutateSamples :: Storable a => (forall s. MVector s a -> ST s ()) -> SampleBuffer a -> SampleBuffer a -- | Unsafe because results can be returned, which might contain the -- thawn vector. unsafeMutateSamples :: Storable a => (forall s. MVector s a -> ST s r) -> SampleBuffer a -> (r, SampleBuffer a) instance (Data.MediaBus.BlankMedia.CanBeBlank sa, Foreign.Storable.Storable sa, Data.MediaBus.Ticks.HasDuration (Data.Proxy.Proxy * sa)) => Data.MediaBus.BlankMedia.CanGenerateBlankMedia (Data.MediaBus.Sample.SampleBuffer sa) instance Foreign.Storable.Storable sampleType => Data.Default.Class.Default (Data.MediaBus.Sample.SampleBuffer sampleType) instance (Data.MediaBus.Ticks.HasDuration (Data.Proxy.Proxy * sampleType), Foreign.Storable.Storable sampleType) => Data.MediaBus.Ticks.HasDuration (Data.MediaBus.Sample.SampleBuffer sampleType) instance (Foreign.Storable.Storable a, Data.MediaBus.Ticks.HasDuration (Data.Proxy.Proxy * a)) => Data.MediaBus.Segment.CanSegment (Data.MediaBus.Sample.SampleBuffer a) instance Foreign.Storable.Storable s => GHC.Exts.IsList (Data.MediaBus.Sample.SampleBuffer s) instance Foreign.Storable.Storable a => Data.MediaBus.Sample.HasSampleBuffer (Data.MediaBus.Sample.SampleBuffer a) instance GHC.Generics.Generic (Data.MediaBus.Sample.SampleBuffer sampleType) instance Foreign.Storable.Storable sampleType => GHC.Base.Monoid (Data.MediaBus.Sample.SampleBuffer sampleType) instance (GHC.Classes.Eq sampleType, Foreign.Storable.Storable sampleType) => GHC.Classes.Eq (Data.MediaBus.Sample.SampleBuffer sampleType) instance Control.DeepSeq.NFData sampleType => Control.DeepSeq.NFData (Data.MediaBus.Sample.SampleBuffer sampleType) instance (Foreign.Storable.Storable sampleType, Data.Typeable.Internal.Typeable * sampleType, GHC.Show.Show sampleType) => GHC.Show.Show (Data.MediaBus.Sample.SampleBuffer sampleType) module Data.MediaBus.Audio.Channels data ChannelLayout SingleChannel :: ChannelLayout ChannelPair :: ChannelLayout data ChannelPair a MkChannelPair :: a -> a -> ChannelPair a leftSample :: forall a_aWql. Lens' (ChannelPair a_aWql) a_aWql rightSample :: forall a_aWql. Lens' (ChannelPair a_aWql) a_aWql class HasChannelLayout c channelLayout :: HasChannelLayout c => c -> ChannelLayout instance Data.MediaBus.Audio.Channels.HasChannelLayout a => Data.MediaBus.Audio.Channels.HasChannelLayout (Data.MediaBus.Audio.Channels.ChannelPair a) instance Data.MediaBus.Ticks.HasDuration (Data.Proxy.Proxy * a) => Data.MediaBus.Ticks.HasDuration (Data.Proxy.Proxy * (Data.MediaBus.Audio.Channels.ChannelPair a)) instance Foreign.Storable.Storable s => Foreign.Storable.Storable (Data.MediaBus.Audio.Channels.ChannelPair s) instance GHC.Generics.Generic (Data.MediaBus.Audio.Channels.ChannelPair a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.MediaBus.Audio.Channels.ChannelPair a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.MediaBus.Audio.Channels.ChannelPair a) instance GHC.Show.Show a => GHC.Show.Show (Data.MediaBus.Audio.Channels.ChannelPair a) instance GHC.Generics.Generic Data.MediaBus.Audio.Channels.ChannelLayout instance GHC.Enum.Enum Data.MediaBus.Audio.Channels.ChannelLayout instance GHC.Classes.Ord Data.MediaBus.Audio.Channels.ChannelLayout instance GHC.Classes.Eq Data.MediaBus.Audio.Channels.ChannelLayout instance GHC.Show.Show Data.MediaBus.Audio.Channels.ChannelLayout instance Data.MediaBus.BlankMedia.CanBeBlank r => Data.MediaBus.BlankMedia.CanBeBlank (Data.MediaBus.Audio.Channels.ChannelPair r) instance Control.DeepSeq.NFData Data.MediaBus.Audio.Channels.ChannelLayout instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Data.MediaBus.Audio.Channels.ChannelPair a) instance Test.QuickCheck.Arbitrary.Arbitrary a => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Audio.Channels.ChannelPair a) module Data.MediaBus.Audio.Raw newtype S16 (rate :: Nat) MkS16 :: Int16 -> S16 s16Sample :: forall rate_a10H3 rate_a10UU. Iso (S16 rate_a10H3) (S16 rate_a10UU) Int16 Int16 class (KnownNat (GetAudioSampleRate a), SetAudioSampleRate a (GetAudioSampleRate a) ~ a, Show a, Storable a, Eq a, Ord a, Arbitrary a) => IsAudioSample a where type GetAudioSampleRate a :: Nat type SetAudioSampleRate a (b :: Nat) where { type family GetAudioSampleRate a :: Nat; type family SetAudioSampleRate a (b :: Nat); } avgSamples :: IsAudioSample a => a -> a -> a setAudioSampleRate :: (IsAudioSample a, KnownNat r) => proxy r -> a -> SetAudioSampleRate a r setAudioSampleRateTo8kHz :: (IsAudioSample x, y ~ SetAudioSampleRate x 8000) => x -> y setAudioSampleRateTo16kHz :: (IsAudioSample x, y ~ SetAudioSampleRate x 16000) => x -> y setAudioSampleRateTo48kHz :: (IsAudioSample x, y ~ SetAudioSampleRate x 48000) => x -> y doubleAudioSampleRate :: forall a b. (IsAudioSample a, b ~ SetAudioSampleRate a (GetAudioSampleRate a + GetAudioSampleRate a), KnownNat (GetAudioSampleRate a + GetAudioSampleRate a)) => a -> b instance GHC.TypeLits.KnownNat r => Data.MediaBus.Audio.Raw.IsAudioSample (Data.MediaBus.Audio.Raw.S16 r) instance Data.MediaBus.BlankMedia.CanBeBlank (Data.MediaBus.Audio.Raw.S16 r) instance Data.MediaBus.Audio.Raw.IsAudioSample a => Data.MediaBus.Audio.Raw.IsAudioSample (Data.MediaBus.Audio.Channels.ChannelPair a) instance Data.MediaBus.Audio.Channels.HasChannelLayout (Data.MediaBus.Audio.Raw.S16 r) instance GHC.Generics.Generic (Data.MediaBus.Audio.Raw.S16 rate) instance Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Audio.Raw.S16 rate) instance GHC.Classes.Ord (Data.MediaBus.Audio.Raw.S16 rate) instance GHC.Classes.Eq (Data.MediaBus.Audio.Raw.S16 rate) instance GHC.Num.Num (Data.MediaBus.Audio.Raw.S16 rate) instance Foreign.Storable.Storable (Data.MediaBus.Audio.Raw.S16 rate) instance Control.DeepSeq.NFData (Data.MediaBus.Audio.Raw.S16 rate) instance GHC.TypeLits.KnownNat r => Data.MediaBus.Ticks.HasDuration (Data.Proxy.Proxy * (Data.MediaBus.Audio.Raw.S16 r)) instance GHC.Show.Show (Data.MediaBus.Audio.Raw.S16 r) module Data.MediaBus.Audio.Resample resample8to16kHz' :: (NFData s, NFData t, NFData p, NFData i, IsAudioSample sa, GetAudioSampleRate sa ~ 8000, Monad m, IsAudioSample (SetAudioSampleRate sa 16000), NFData (SetAudioSampleRate sa 16000)) => sa -> Conduit (Stream i s t p (SampleBuffer sa)) m (Stream i s t p (SampleBuffer (SetAudioSampleRate sa 16000))) module Data.MediaBus.DebugSink class HasDebugPlaybackSink s t c debugPlaybackSink :: (HasDebugPlaybackSink s t c, MonadIO m) => Sink (Frame s t c) m () streamDebugPlaybackSink :: (Default i, HasDebugPlaybackSink s t c, MonadIO m) => Sink (Stream i s t p c) m () instance Data.MediaBus.DebugSink.HasDebugPlaybackSink s t c => Data.MediaBus.DebugSink.HasDebugPlaybackSink s t (Data.MediaBus.Segment.Segment d c) instance GHC.TypeLits.KnownNat r => Data.MediaBus.DebugSink.HasDebugPlaybackSink s t (Data.MediaBus.Sample.SampleBuffer (Data.MediaBus.Audio.Raw.S16 r)) module Data.MediaBus.Audio.Alaw newtype ALaw MkALaw :: Word8 -> ALaw alawSample :: Iso' ALaw Word8 instance GHC.Classes.Ord Data.MediaBus.Audio.Alaw.ALaw instance Data.MediaBus.Ticks.HasDuration (Data.Proxy.Proxy * Data.MediaBus.Audio.Alaw.ALaw) instance Data.MediaBus.Audio.Channels.HasChannelLayout Data.MediaBus.Audio.Alaw.ALaw instance Data.MediaBus.Transcoder.Transcoder (Data.MediaBus.Sample.SampleBuffer Data.MediaBus.Audio.Alaw.ALaw) (Data.MediaBus.Sample.SampleBuffer (Data.MediaBus.Audio.Raw.S16 8000)) instance Data.MediaBus.Transcoder.Transcoder (Data.MediaBus.Sample.SampleBuffer (Data.MediaBus.Audio.Raw.S16 8000)) (Data.MediaBus.Sample.SampleBuffer Data.MediaBus.Audio.Alaw.ALaw) instance Data.MediaBus.Audio.Raw.IsAudioSample Data.MediaBus.Audio.Alaw.ALaw instance Data.MediaBus.BlankMedia.CanBeBlank Data.MediaBus.Audio.Alaw.ALaw instance GHC.Generics.Generic Data.MediaBus.Audio.Alaw.ALaw instance Test.QuickCheck.Arbitrary.Arbitrary Data.MediaBus.Audio.Alaw.ALaw instance Data.Bits.Bits Data.MediaBus.Audio.Alaw.ALaw instance GHC.Classes.Eq Data.MediaBus.Audio.Alaw.ALaw instance GHC.Num.Num Data.MediaBus.Audio.Alaw.ALaw instance Foreign.Storable.Storable Data.MediaBus.Audio.Alaw.ALaw instance GHC.Show.Show Data.MediaBus.Audio.Alaw.ALaw instance Control.DeepSeq.NFData Data.MediaBus.Audio.Alaw.ALaw module Data.MediaBus.AsyncConduit withAsyncPolledSource :: (MonadResource m, MonadBaseControl IO m, KnownNat r, Integral t, Integral s, Default c, Default p, HasStaticDuration c, HasDuration c, NFData c, NFData p, NFData s, NFData t, Random i, Random t, Random s, Show c) => Int -> Source m (Stream i s (Ticks r t) p c) -> ((Async (), Source m (Stream i s (Ticks r t) p (Discontinous c))) -> m o) -> m o data PayloadQ a mkPayloadQ :: forall m a. (HasStaticDuration a, MonadBaseControl IO m) => Int -> m (PayloadQ a) payloadQSink :: (NFData a, MonadBaseControl IO m, Show a) => PayloadQ a -> Sink (Stream i s t p a) m () payloadQSource :: (Random i, NFData c, NFData p, Default p, HasStaticDuration c, HasDuration c, MonadBaseControl IO m, KnownNat r, Integral t, Integral s, NFData t, NFData s) => PayloadQ c -> Source m (Stream i s (Ticks r t) p (Discontinous c)) module Data.MediaBus