mediabus-0.4.0.1: Multimedia streaming on top of Conduit

Safe HaskellNone
LanguageHaskell2010

Data.MediaBus.Media.Audio

Description

This module centers around the data family Audio that provides general info about an audio stream, such as sampling rate and channel layout and codec.

Synopsis

Documentation

data family Audio (sampleRate :: Rate) channelLayout encoding Source #

Family of audio media types, indexed by a sampleRate, a channel layout and a codec parameter. This type family is intended as a basis for all audio media, raw as well as encoded audio.

Instances

(Typeable k t, KnownRate r, KnownChannelLayout * c) => Show (MediaDescription * (Audio r c (Raw k t))) # 

Methods

showsPrec :: Int -> MediaDescription * (Audio r c (Raw k t)) -> ShowS #

show :: MediaDescription * (Audio r c (Raw k t)) -> String #

showList :: [MediaDescription * (Audio r c (Raw k t))] -> ShowS #

CanBeSample (Pcm c t) => Eq (Audio r c (Raw * t)) # 

Methods

(==) :: Audio r c (Raw * t) -> Audio r c (Raw * t) -> Bool #

(/=) :: Audio r c (Raw * t) -> Audio r c (Raw * t) -> Bool #

(Typeable * t, KnownRate r, KnownChannelLayout * c, CanBeSample (Pcm c t), Show (Pcm c t)) => Show (Audio r c (Raw * t)) # 

Methods

showsPrec :: Int -> Audio r c (Raw * t) -> ShowS #

show :: Audio r c (Raw * t) -> String #

showList :: [Audio r c (Raw * t)] -> ShowS #

CanBeSample (Pcm c t) => Monoid (Audio r c (Raw * t)) # 

Methods

mempty :: Audio r c (Raw * t) #

mappend :: Audio r c (Raw * t) -> Audio r c (Raw * t) -> Audio r c (Raw * t) #

mconcat :: [Audio r c (Raw * t)] -> Audio r c (Raw * t) #

CanBeSample (Pcm c t) => NFData (Audio r c (Raw * t)) # 

Methods

rnf :: Audio r c (Raw * t) -> () #

(Typeable * t, KnownRate r, KnownChannelLayout * c, CanBeSample (Pcm c t)) => IsMedia (Audio r c (Raw * t)) Source # 
KnownChannelLayout * c => HasChannelLayout (Audio r c t) Source # 

Associated Types

type ChannelLayout (Audio r c t) :: * Source #

type SetChannelLayout (Audio r c t) b :: * Source #

(KnownRate r, CanBeSample (Pcm c t)) => HasDuration (Audio r c (Raw * t)) Source # 
KnownRate r => HasRate (Audio r c t) Source # 

Associated Types

type SetRate (Audio r c t) (r :: Rate) :: * Source #

type GetRate (Audio r c t) :: Rate Source #

(CanBeSample (Pcm c t), KnownRate r) => CanSegment (Audio r c (Raw * t)) Source # 

Methods

splitAfterDuration :: HasStaticDuration StaticTicks d => proxy d -> Audio r c (Raw * t) -> Maybe (Segment d (Audio r c (Raw * t)), Audio r c (Raw * t)) Source #

(KnownRate r, CanBeSample (Pcm c t), CanBeBlank (Pcm c t)) => CanGenerateBlankMedia (Audio r c (Raw * t)) Source # 

Methods

blankFor :: NominalDiffTime -> Audio r c (Raw * t) Source #

blankForTicks :: CanBeTicks r i => Ticks r i -> Audio r c (Raw * t) Source #

(IsMedia (Audio r c e), IsMedia (Audio r' c' e')) => HasMedia (Audio r c e) (Audio r' c' e') Source # 

Associated Types

type MediaFrom (Audio r c e) :: * Source #

type MediaTo (Audio r' c' e') :: * Source #

Methods

media :: Lens (Audio r c e) (Audio r' c' e') (MediaFrom (Audio r c e)) (MediaTo (Audio r' c' e')) Source #

(CanBeSample (Pcm c t), CanBeSample (Pcm c' t'), EachSampleL (Audio r c (Raw * t)) (Audio r' c' (Raw * t')) (Pcm c t) (Pcm c' t'), EachChannelL (Pcm c t) (Pcm c' t') t t') => EachChannel (Audio r c (Raw * t)) (Audio r' c' (Raw * t')) Source # 

Associated Types

type ChannelsFrom (Audio r c (Raw * t)) :: * Source #

type ChannelsTo (Audio r' c' (Raw * t')) :: * Source #

Methods

eachChannel :: Traversal (Audio r c (Raw * t)) (Audio r' c' (Raw * t')) (ChannelsFrom (Audio r c (Raw * t))) (ChannelsTo (Audio r' c' (Raw * t'))) Source #

(CanBeSample (Pcm c t), CanBeSample (Pcm c' t')) => EachSample (Audio r c (Raw * t)) (Audio r' c' (Raw * t')) Source # 

Associated Types

type SamplesFrom (Audio r c (Raw * t)) :: * Source #

type SamplesTo (Audio r' c' (Raw * t')) :: * Source #

Methods

eachSample :: Traversal (Audio r c (Raw * t)) (Audio r' c' (Raw * t')) (SamplesFrom (Audio r c (Raw * t))) (SamplesTo (Audio r' c' (Raw * t'))) Source #

(CanBeSample (Pcm ca a), CanBeSample (Pcm cb b)) => HasMediaBuffer (Audio r ca (Raw * a)) (Audio r' cb (Raw * b)) Source # 

Associated Types

type MediaBufferFrom (Audio r ca (Raw * a)) :: * Source #

type MediaBufferTo (Audio r' cb (Raw * b)) :: * Source #

Methods

mediaBuffer :: Lens (Audio r ca (Raw * a)) (Audio r' cb (Raw * b)) (MediaBufferFrom (Audio r ca (Raw * a))) (MediaBufferTo (Audio r' cb (Raw * b))) Source #

data Audio r c (Raw * t) Source #

All Pcm audio is audio. An Audio instance with Pcms in a MediaBuffer.

data Audio r c (Raw * t) = MkPcm {}
type MediaFrom (Audio r c e) Source # 
type MediaFrom (Audio r c e) = Audio r c e
type MediaTo (Audio r' c' e') Source # 
type MediaTo (Audio r' c' e') = Audio r' c' e'
type ChannelsFrom (Audio r c (Raw * t)) Source # 
type ChannelsFrom (Audio r c (Raw * t)) = ChannelsFrom (Pcm c t)
type ChannelsTo (Audio r' c' (Raw * t')) Source # 
type ChannelsTo (Audio r' c' (Raw * t')) = ChannelsTo (Pcm c' t')
type ChannelLayout (Audio r c t) Source # 
type ChannelLayout (Audio r c t) = c
type GetRate (Audio r c t) Source # 
type GetRate (Audio r c t) = r
type SamplesFrom (Audio r c (Raw * t)) Source # 
type SamplesFrom (Audio r c (Raw * t)) = Pcm c t
type SamplesTo (Audio r' c' (Raw * t')) Source # 
type SamplesTo (Audio r' c' (Raw * t')) = Pcm c' t'
type MediaBufferFrom (Audio r ca (Raw * a)) Source # 
type MediaBufferFrom (Audio r ca (Raw * a)) = MediaBuffer (Pcm ca a)
type MediaBufferTo (Audio r' cb (Raw * b)) Source # 
type MediaBufferTo (Audio r' cb (Raw * b)) = MediaBuffer (Pcm cb b)
type SetChannelLayout (Audio r c t) c' Source # 
type SetChannelLayout (Audio r c t) c' = Audio r c' t
type SetRate (Audio r c t) x Source # 
type SetRate (Audio r c t) x = Audio x c t