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

Safe HaskellNone

Sound.ALSA.PCM.Node.ALSA

Contents

Synopsis

Types

data Handle i y Source

Instances

data Mode Source

Instances

Classes

class SampleFmt y => MonoSampleFmt y Source

Sample types of this class must have exactly one channel, i.e. Frame.numberOfChannels == 1.

Management of streams

openSource

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 SizeSource

retry on buffer over-run

writeiRetry :: SampleFmt y => Handle Interleaved y -> Ptr y -> Size -> IO SizeSource

retry on buffer under-run

readn :: MonoSampleFmt y => Handle Noninterleaved y -> Ptr (Ptr y) -> Size -> IO SizeSource

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.