alsa-pcm-0.6.1.1: 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
Storable (Handle i y) Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Handle

Methods

sizeOf :: Handle i y -> Int #

alignment :: Handle i y -> Int #

peekElemOff :: Ptr (Handle i y) -> Int -> IO (Handle i y) #

pokeElemOff :: Ptr (Handle i y) -> Int -> Handle i y -> IO () #

peekByteOff :: Ptr b -> Int -> IO (Handle i y) #

pokeByteOff :: Ptr b -> Int -> Handle i y -> IO () #

peek :: Ptr (Handle i y) -> IO (Handle i y) #

poke :: Ptr (Handle i y) -> Handle i y -> IO () #

data Stream Source #

Instances
Bounded Stream Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Handle

Enum Stream Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Handle

Eq Stream Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Handle

Methods

(==) :: Stream -> Stream -> Bool #

(/=) :: Stream -> Stream -> Bool #

Show Stream Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Handle

data Mode Source #

Instances
Semigroup Mode Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Handle

Methods

(<>) :: Mode -> Mode -> Mode #

sconcat :: NonEmpty Mode -> Mode #

stimes :: Integral b => b -> Mode -> Mode #

Monoid Mode Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Handle

Methods

mempty :: Mode #

mappend :: Mode -> Mode -> Mode #

mconcat :: [Mode] -> Mode #

data Interleaved Source #

Instances
Access Interleaved Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

Methods

access :: T Interleaved y Access

setChannels :: C y => T Interleaved y ()

data Noninterleaved Source #

Instances
Access Noninterleaved Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

Methods

access :: T Noninterleaved y Access

setChannels :: C y => T Noninterleaved y ()

type Time = Int Source #

type Size = Int Source #

Classes

class Access i Source #

Minimal complete definition

access, setChannels

Instances
Access Noninterleaved Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

Methods

access :: T Noninterleaved y Access

setChannels :: C y => T Noninterleaved y ()

Access Interleaved Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

Methods

access :: T Interleaved y Access

setChannels :: C y => T Interleaved y ()

class (Storable y, C y) => SampleFmt y Source #

Minimal complete definition

sampleFmtToPcmFormat

Instances
SampleFmt Double Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

Methods

sampleFmtToPcmFormat :: Double -> Format Source #

SampleFmt Float Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

Methods

sampleFmtToPcmFormat :: Float -> Format Source #

SampleFmt Int8 Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

Methods

sampleFmtToPcmFormat :: Int8 -> Format Source #

SampleFmt Int16 Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

Methods

sampleFmtToPcmFormat :: Int16 -> Format Source #

SampleFmt Int32 Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

Methods

sampleFmtToPcmFormat :: Int32 -> Format Source #

SampleFmt Word8 Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

Methods

sampleFmtToPcmFormat :: Word8 -> Format Source #

SampleFmt Word16 Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

Methods

sampleFmtToPcmFormat :: Word16 -> Format Source #

SampleFmt Word32 Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

Methods

sampleFmtToPcmFormat :: Word32 -> Format Source #

SampleFmt T Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

Methods

sampleFmtToPcmFormat :: T -> Format Source #

SampleFmt a => SampleFmt (T a) Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

Methods

sampleFmtToPcmFormat :: T a -> Format Source #

class SampleFmt y => MonoSampleFmt y Source #

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

Instances
MonoSampleFmt Double Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

MonoSampleFmt Float Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

MonoSampleFmt Int8 Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

MonoSampleFmt Int16 Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

MonoSampleFmt Int32 Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

MonoSampleFmt Word8 Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

MonoSampleFmt Word16 Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

MonoSampleFmt Word32 Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

MonoSampleFmt T Source # 
Instance details

Defined in Sound.ALSA.PCM.Core.Class

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.