alsa-0.3: Binding to the ALSA Library API.Source codeContentsIndex
Sound.Alsa
Synopsis
class (Storable y, C y) => SampleFmt y where
sampleFmtToPcmFormat :: y -> PcmFormat
type SampleFreq = Int
type Time = Int
data SoundFmt y = SoundFmt {
sampleFreq :: SampleFreq
}
data SoundSource y handle = SoundSource {
soundSourceFmt :: SoundFmt y
soundSourceOpen :: IO handle
soundSourceClose :: handle -> IO ()
soundSourceStart :: handle -> IO ()
soundSourceStop :: handle -> IO ()
soundSourceRead :: handle -> Ptr y -> Int -> IO Int
}
data SoundSink y handle = SoundSink {
soundSinkFmt :: SoundFmt y
soundSinkOpen :: IO handle
soundSinkClose :: handle -> IO ()
soundSinkWrite :: handle -> Ptr y -> Int -> IO ()
soundSinkStart :: handle -> IO ()
soundSinkStop :: handle -> IO ()
}
data SoundBufferTime = SoundBufferTime {
bufferTime :: Time
periodTime :: Time
}
withSoundSource :: SoundSource y h -> (h -> IO a) -> IO a
withSoundSourceRunning :: SoundSource y h -> h -> IO a -> IO a
withSoundSink :: SoundSink y h -> (h -> IO a) -> IO a
withSoundSinkRunning :: SoundSink y h -> h -> IO a -> IO a
soundFmtMIME :: SampleFmt y => SoundFmt y -> String
audioBytesPerSample :: SampleFmt y => SoundFmt y -> Int
audioBytesPerFrame :: SampleFmt y => SoundFmt y -> Int
soundSourceBytesPerFrame :: SampleFmt y => SoundSource y h -> Int
soundSinkBytesPerFrame :: SampleFmt y => SoundSink y h -> Int
copySound :: SampleFmt y => SoundSource y h1 -> SoundSink y h2 -> Int -> IO ()
alsaSoundSource :: SampleFmt y => String -> SoundFmt y -> SoundSource y Pcm
alsaSoundSink :: SampleFmt y => String -> SoundFmt y -> SoundSink y Pcm
alsaSoundSourceTime :: SampleFmt y => String -> SoundFmt y -> SoundBufferTime -> SoundSource y Pcm
alsaSoundSinkTime :: SampleFmt y => String -> SoundFmt y -> SoundBufferTime -> SoundSink y Pcm
fileSoundSource :: SampleFmt y => FilePath -> SoundFmt y -> SoundSource y Handle
fileSoundSink :: SampleFmt y => FilePath -> SoundFmt y -> SoundSink y Handle
Documentation
class (Storable y, C y) => SampleFmt y whereSource
Methods
sampleFmtToPcmFormat :: y -> PcmFormatSource
show/hide Instances
type SampleFreq = IntSource
type Time = IntSource
data SoundFmt y Source
Constructors
SoundFmt
sampleFreq :: SampleFreq
show/hide Instances
data SoundSource y handle Source
Counts are in samples, not bytes. Multi-channel data is interleaved.
Constructors
SoundSource
soundSourceFmt :: SoundFmt y
soundSourceOpen :: IO handle
soundSourceClose :: handle -> IO ()
soundSourceStart :: handle -> IO ()
soundSourceStop :: handle -> IO ()
soundSourceRead :: handle -> Ptr y -> Int -> IO Int
data SoundSink y handle Source
Constructors
SoundSink
soundSinkFmt :: SoundFmt y
soundSinkOpen :: IO handle
soundSinkClose :: handle -> IO ()
soundSinkWrite :: handle -> Ptr y -> Int -> IO ()
soundSinkStart :: handle -> IO ()
soundSinkStop :: handle -> IO ()
data SoundBufferTime Source
Constructors
SoundBufferTime
bufferTime :: Time
periodTime :: Time
show/hide Instances
withSoundSource :: SoundSource y h -> (h -> IO a) -> IO aSource
withSoundSourceRunning :: SoundSource y h -> h -> IO a -> IO aSource
withSoundSink :: SoundSink y h -> (h -> IO a) -> IO aSource
withSoundSinkRunning :: SoundSink y h -> h -> IO a -> IO aSource
soundFmtMIME :: SampleFmt y => SoundFmt y -> StringSource
audioBytesPerSample :: SampleFmt y => SoundFmt y -> IntSource
audioBytesPerFrame :: SampleFmt y => SoundFmt y -> IntSource
soundSourceBytesPerFrame :: SampleFmt y => SoundSource y h -> IntSource
soundSinkBytesPerFrame :: SampleFmt y => SoundSink y h -> IntSource
copySoundSource
:: SampleFmt y
=> SoundSource y h1
-> SoundSink y h2
-> IntBuffer size (in sample frames) to use
-> IO ()
alsaSoundSource :: SampleFmt y => String -> SoundFmt y -> SoundSource y PcmSource
alsaSoundSink :: SampleFmt y => String -> SoundFmt y -> SoundSink y PcmSource
alsaSoundSourceTime :: SampleFmt y => String -> SoundFmt y -> SoundBufferTime -> SoundSource y PcmSource
alsaSoundSinkTime :: SampleFmt y => String -> SoundFmt y -> SoundBufferTime -> SoundSink y PcmSource
fileSoundSource :: SampleFmt y => FilePath -> SoundFmt y -> SoundSource y HandleSource
fileSoundSink :: SampleFmt y => FilePath -> SoundFmt y -> SoundSink y HandleSource
Produced by Haddock version 2.4.2