alsa-pcm-0.6.0.4: Binding to the ALSA Library API (PCM audio).

Safe HaskellSafe
LanguageHaskell2010

Sound.ALSA.PCM.Node.ALSA

Contents

Synopsis

Types

data Handle i y Source

Instances

data Mode Source

Instances

type Time = Int Source

type Size = Int Source

Classes

class Access i Source

Minimal complete definition

access, setChannels

Management of streams

open Source

Arguments

:: (Access i, SampleFmt y) 
=> Mode 
-> Stream 
-> T i y a 
-> (a -> T i y b) 
-> String

device, e.g "default"

-> IO (b, Handle i y) 

close :: Handle i y -> IO () Source

prepare :: Handle i y -> IO () Source

start :: Handle i y -> IO () Source

drop :: Handle i y -> IO () Source

drain :: Handle i y -> IO () Source

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.