-- 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.1 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_afdf i_akHK. Iso (SourceId i_afdf) (SourceId i_akHK) i_afdf i_akHK 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_aoqz b_aoqA b_aoOm. Prism (Series a_aoqz b_aoOm) (Series a_aoqz b_aoqA) b_aoOm b_aoqA _Start :: forall a_aoqz b_aoqA a_aoOr. Prism (Series a_aoOr b_aoqA) (Series a_aoqz b_aoqA) a_aoOr a_aoqz 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_aoOB a_ap46. Iso (StartingFrom a_aoOB) (StartingFrom a_ap46) a_aoOB a_ap46 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_atXM s_auta. Iso (SeqNum s_atXM) (SeqNum s_auta) s_atXM s_auta 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_aB08 c_aB09 duration_aBhf c_aBhg. Iso (Segment duration_aB08 c_aB09) (Segment duration_aBhf c_aBhg) c_aB09 c_aBhg 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_aC5P s_aC5Q t_aC5R p_aC5S i_aCeM. Lens (FrameCtx i_aC5P s_aC5Q t_aC5R p_aC5S) (FrameCtx i_aCeM s_aC5Q t_aC5R p_aC5S) i_aC5P i_aCeM frameCtxSeqNumRef :: forall i_aC5P s_aC5Q t_aC5R p_aC5S s_aCeL. Lens (FrameCtx i_aC5P s_aC5Q t_aC5R p_aC5S) (FrameCtx i_aC5P s_aCeL t_aC5R p_aC5S) s_aC5Q s_aCeL frameCtxTimestampRef :: forall i_aC5P s_aC5Q t_aC5R p_aC5S t_aCeN. Lens (FrameCtx i_aC5P s_aC5Q t_aC5R p_aC5S) (FrameCtx i_aC5P s_aC5Q t_aCeN p_aC5S) t_aC5R t_aCeN frameCtxInit :: forall i_aC5P s_aC5Q t_aC5R p_aC5S p_aCeK. Lens (FrameCtx i_aC5P s_aC5Q t_aC5R p_aC5S) (FrameCtx i_aC5P s_aC5Q t_aC5R p_aCeK) p_aC5S p_aCeK -- | 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_aCfl t_aCfm c_aCfn s_aCw7. Lens (Frame s_aCfl t_aCfm c_aCfn) (Frame s_aCw7 t_aCfm c_aCfn) s_aCfl s_aCw7 frameTimestamp :: forall s_aCfl t_aCfm c_aCfn t_aCw8. Lens (Frame s_aCfl t_aCfm c_aCfn) (Frame s_aCfl t_aCw8 c_aCfn) t_aCfm t_aCw8 framePayload :: forall s_aCfl t_aCfm c_aCfn c_aCw6. Lens (Frame s_aCfl t_aCfm c_aCfn) (Frame s_aCfl t_aCfm c_aCw6) c_aCfn c_aCw6 newtype Stream i s t p c MkStream :: Streamish i s t p c -> Stream i s t p c stream :: forall i_aCwA s_aCwB t_aCwC p_aCwD c_aCwE i_aCUs s_aCUt t_aCUu p_aCUv c_aCUw. Iso (Stream i_aCwA s_aCwB t_aCwC p_aCwD c_aCwE) (Stream i_aCUs s_aCUt t_aCUu p_aCUv c_aCUw) (Streamish i_aCwA s_aCwB t_aCwC p_aCwD c_aCwE) (Streamish i_aCUs s_aCUt t_aCUu p_aCUv c_aCUw) 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_aORK. Prism' (Discontinous a_aORK) () _Got :: forall a_aORK a_aPk7. Prism (Discontinous a_aPk7) (Discontinous a_aORK) a_aPk7 a_aORK 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_aUgT sampleType_aUtN. Iso (SampleBuffer sampleType_aUgT) (SampleBuffer sampleType_aUtN) (Vector sampleType_aUgT) (Vector sampleType_aUtN) 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_aWkW. Lens' (ChannelPair a_aWkW) a_aWkW rightSample :: forall a_aWkW. Lens' (ChannelPair a_aWkW) a_aWkW 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_a10BE rate_a10Pv. Iso (S16 rate_a10BE) (S16 rate_a10Pv) 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