Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- data Handle i y
- data Stream
- data Mode
- modes :: [Mode] -> Mode
- nonBlock :: Mode
- async :: Mode
- data Interleaved
- data Noninterleaved
- type Time = Int
- type SampleFreq = Int
- type Size = Int
- class Access i
- class (Storable y, C y) => SampleFmt y
- class SampleFmt y => MonoSampleFmt y
- open :: (Access i, SampleFmt y) => Mode -> Stream -> T i y a -> (a -> T i y b) -> String -> IO (b, Handle i y)
- close :: Handle i y -> IO ()
- prepare :: Handle i y -> IO ()
- start :: Handle i y -> IO ()
- drop :: Handle i y -> IO ()
- drain :: Handle i y -> IO ()
- readi :: SampleFmt y => Handle Interleaved y -> Ptr y -> Size -> IO Size
- writei :: SampleFmt y => Handle Interleaved y -> Ptr y -> Size -> IO Size
- readiRetry :: SampleFmt y => Handle Interleaved y -> Ptr y -> Size -> IO Size
- writeiRetry :: SampleFmt y => Handle Interleaved y -> Ptr y -> Size -> IO Size
- readn :: MonoSampleFmt y => Handle Noninterleaved y -> Ptr (Ptr y) -> Size -> IO Size
- writen :: MonoSampleFmt y => Handle Noninterleaved y -> Ptr (Ptr y) -> Size -> IO Size
Types
data Interleaved Source #
type SampleFreq = Int Source #
Classes
access, setChannels
class SampleFmt y => MonoSampleFmt y Source #
Sample types of this class must have exactly one channel, i.e. Frame.numberOfChannels == 1.
Management of streams
Data transfer
readiRetry :: SampleFmt y => Handle Interleaved y -> Ptr y -> Size -> IO Size Source #
retry on buffer over-run
writeiRetry :: SampleFmt y => Handle Interleaved y -> Ptr y -> Size -> IO Size Source #
retry on buffer under-run
readn :: MonoSampleFmt y => Handle Noninterleaved y -> Ptr (Ptr y) -> Size -> IO Size Source #
The Ptr (Ptr y)
argument is actually a pointer to an array of pointers.
The array must have the size of number of channels.
In Noninterleaved
mode you must set the number of channels manually
using setChannels
or its friends.
It is an unchecked error if the number of channels
set with setChannels
does not match the array size in the readn
call.