Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
This is the most simple base class for audio sinks that only requires subclasses to implement a set of simple functions:
<variablelist>
<varlistentry>
<term>open()
</term>
<listitem><para>Open the device.</para></listitem>
</varlistentry>
<varlistentry>
<term>prepare()
</term>
<listitem><para>Configure the device with the specified format.</para></listitem>
</varlistentry>
<varlistentry>
<term>write()
</term>
<listitem><para>Write samples to the device.</para></listitem>
</varlistentry>
<varlistentry>
<term>reset()
</term>
<listitem><para>Unblock writes and flush the device.</para></listitem>
</varlistentry>
<varlistentry>
<term>delay()
</term>
<listitem><para>Get the number of samples written but not yet played
by the device.</para></listitem>
</varlistentry>
<varlistentry>
<term>unprepare()
</term>
<listitem><para>Undo operations done by prepare.</para></listitem>
</varlistentry>
<varlistentry>
<term>close()
</term>
<listitem><para>Close the device.</para></listitem>
</varlistentry>
</variablelist>
All scheduling of samples and timestamps is done in this base class
together with AudioBaseSink
using a default implementation of a
AudioRingBuffer
that uses threads.
- newtype AudioSink = AudioSink (ManagedPtr AudioSink)
- class GObject o => IsAudioSink o
- toAudioSink :: IsAudioSink o => o -> IO AudioSink
- noAudioSink :: Maybe AudioSink
Exported types
GObject AudioSink Source # | |
IsObject AudioSink Source # | |
IsElement AudioSink Source # | |
IsObject AudioSink Source # | |
IsBaseSink AudioSink Source # | |
IsAudioBaseSink AudioSink Source # | |
IsAudioSink AudioSink Source # | |
((~) * info (ResolveAudioSinkMethod t AudioSink), MethodInfo * info AudioSink p) => IsLabel t (AudioSink -> p) Source # | |
((~) * info (ResolveAudioSinkMethod t AudioSink), MethodInfo * info AudioSink p) => IsLabelProxy t (AudioSink -> p) Source # | |
HasAttributeList * AudioSink Source # | |
type AttributeList AudioSink Source # | |
type SignalList AudioSink Source # | |
class GObject o => IsAudioSink o Source #
toAudioSink :: IsAudioSink o => o -> IO AudioSink Source #