Version 0.9.1

This commit is contained in:
Lars Immisch
2022-05-03 21:06:28 +02:00
parent e15481ead5
commit 06e3798ef5
14 changed files with 481 additions and 285 deletions

View File

@@ -4,15 +4,15 @@
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>alsaaudio &#8212; alsaaudio documentation 0.9.0 documentation</title>
<link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>alsaaudio &#8212; alsaaudio documentation 0.9.1 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/language_data.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="prev" title="PCM Terminology and Concepts" href="terminology.html" />
@@ -32,16 +32,16 @@
<div class="body" role="main">
<div class="section" id="module-alsaaudio">
<section id="module-alsaaudio">
<span id="alsaaudio"></span><h1><a class="reference internal" href="#module-alsaaudio" title="alsaaudio (Linux)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">alsaaudio</span></code></a><a class="headerlink" href="#module-alsaaudio" title="Permalink to this headline"></a></h1>
<p>The <a class="reference internal" href="#module-alsaaudio" title="alsaaudio (Linux)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">alsaaudio</span></code></a> module defines functions and classes for using ALSA.</p>
<dl class="py function">
<dt id="alsaaudio.pcms">
<code class="sig-prename descclassname">alsaaudio.</code><code class="sig-name descname">pcms</code><span class="sig-paren">(</span><span class="optional">[</span><em class="sig-param">type=PCM_PLAYBACK</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.pcms" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.pcms">
<span class="sig-prename descclassname"><span class="pre">alsaaudio.</span></span><span class="sig-name descname"><span class="pre">pcms</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pcmtype</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">PCM_PLAYBACK</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.pcms" title="Permalink to this definition"></a></dt>
<dd><p>List available PCM devices by name.</p>
<p>Arguments are:</p>
<ul class="simple">
<li><p><em>type</em> - can be either <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_CAPTURE</span></code> or <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_PLAYBACK</span></code>
<li><p><em>pcmtype</em> - can be either <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_CAPTURE</span></code> or <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_PLAYBACK</span></code>
(default).</p></li>
</ul>
<p><strong>Note:</strong></p>
@@ -60,16 +60,16 @@ commandline:</p>
</dd></dl>
<dl class="py function">
<dt id="alsaaudio.cards">
<code class="sig-prename descclassname">alsaaudio.</code><code class="sig-name descname">cards</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.cards" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.cards">
<span class="sig-prename descclassname"><span class="pre">alsaaudio.</span></span><span class="sig-name descname"><span class="pre">cards</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.cards" title="Permalink to this definition"></a></dt>
<dd><p>List the available ALSA cards by name. This function is only moderately
useful. If you want to see a list of available PCM devices, use <a class="reference internal" href="#alsaaudio.pcms" title="alsaaudio.pcms"><code class="xref py py-func docutils literal notranslate"><span class="pre">pcms()</span></code></a>
instead.</p>
</dd></dl>
<dl class="py function">
<dt id="alsaaudio.mixers">
<code class="sig-prename descclassname">alsaaudio.</code><code class="sig-name descname">mixers</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">cardindex</span><span class="o">=</span><span class="default_value">- 1</span></em>, <em class="sig-param"><span class="n">device</span><span class="o">=</span><span class="default_value">'default'</span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.mixers" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.mixers">
<span class="sig-prename descclassname"><span class="pre">alsaaudio.</span></span><span class="sig-name descname"><span class="pre">mixers</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cardindex</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">-</span> <span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">device</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'default'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.mixers" title="Permalink to this definition"></a></dt>
<dd><p>List the available mixers. The arguments are:</p>
<ul class="simple">
<li><p><em>cardindex</em> - the card index. If this argument is given, the device name
@@ -103,14 +103,20 @@ device, not the mixers for the first card.</p></li>
</ul>
</dd></dl>
<div class="section" id="pcm-objects">
<dl class="py function">
<dt class="sig sig-object py" id="alsaaudio.asoundlib_version">
<span class="sig-prename descclassname"><span class="pre">alsaaudio.</span></span><span class="sig-name descname"><span class="pre">asoundlib_version</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.asoundlib_version" title="Permalink to this definition"></a></dt>
<dd><p>Return a Python string containing the ALSA version found.</p>
</dd></dl>
<section id="pcm-objects">
<span id="id1"></span><h2>PCM Objects<a class="headerlink" href="#pcm-objects" title="Permalink to this headline"></a></h2>
<p>PCM objects in <a class="reference internal" href="#module-alsaaudio" title="alsaaudio (Linux)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">alsaaudio</span></code></a> can play or capture (record) PCM
sound through speakers or a microphone. The PCM constructor takes the
following arguments:</p>
<dl class="py class">
<dt id="alsaaudio.PCM">
<em class="property">class </em><code class="sig-prename descclassname">alsaaudio.</code><code class="sig-name descname">PCM</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">type</span><span class="o">=</span><span class="default_value">PCM_PLAYBACK</span></em>, <em class="sig-param"><span class="n">mode</span><span class="o">=</span><span class="default_value">PCM_NORMAL</span></em>, <em class="sig-param"><span class="n">rate</span><span class="o">=</span><span class="default_value">44100</span></em>, <em class="sig-param"><span class="n">channels</span><span class="o">=</span><span class="default_value">2</span></em>, <em class="sig-param"><span class="n">format</span><span class="o">=</span><span class="default_value">PCM_FORMAT_S16_LE</span></em>, <em class="sig-param"><span class="n">periodsize</span><span class="o">=</span><span class="default_value">32</span></em>, <em class="sig-param"><span class="n">device</span><span class="o">=</span><span class="default_value">'default'</span></em>, <em class="sig-param"><span class="n">cardindex</span><span class="o">=</span><span class="default_value">- 1</span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.PCM">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">alsaaudio.</span></span><span class="sig-name descname"><span class="pre">PCM</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">PCM_PLAYBACK</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mode</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">PCM_NORMAL</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">44100</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channels</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">format</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">PCM_FORMAT_S16_LE</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">periodsize</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">32</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">device</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'default'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cardindex</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">-</span> <span class="pre">1</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM" title="Permalink to this definition"></a></dt>
<dd><p>This class is used to represent a PCM device (either for playback and
recording). The arguments are:</p>
<ul class="simple">
@@ -244,60 +250,60 @@ name of the card. This was always fragile and broke some legitimate usecases.</p
<p>PCM objects have the following methods:</p>
<dl class="py method">
<dt id="alsaaudio.PCM.pcmtype">
<code class="sig-prename descclassname">PCM.</code><code class="sig-name descname">pcmtype</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.pcmtype" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.PCM.pcmtype">
<span class="sig-prename descclassname"><span class="pre">PCM.</span></span><span class="sig-name descname"><span class="pre">pcmtype</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.pcmtype" title="Permalink to this definition"></a></dt>
<dd><p>Returns the type of PCM object. Either <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_CAPTURE</span></code> or
<code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_PLAYBACK</span></code>.</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.PCM.pcmmode">
<code class="sig-prename descclassname">PCM.</code><code class="sig-name descname">pcmmode</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.pcmmode" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.PCM.pcmmode">
<span class="sig-prename descclassname"><span class="pre">PCM.</span></span><span class="sig-name descname"><span class="pre">pcmmode</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.pcmmode" title="Permalink to this definition"></a></dt>
<dd><p>Return the mode of the PCM object. One of <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_NONBLOCK</span></code>,
<code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_ASYNC</span></code>, or <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_NORMAL</span></code></p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.PCM.cardname">
<code class="sig-prename descclassname">PCM.</code><code class="sig-name descname">cardname</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.cardname" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.PCM.cardname">
<span class="sig-prename descclassname"><span class="pre">PCM.</span></span><span class="sig-name descname"><span class="pre">cardname</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.cardname" title="Permalink to this definition"></a></dt>
<dd><p>Return the name of the sound card used by this PCM object.</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.PCM.setchannels">
<code class="sig-prename descclassname">PCM.</code><code class="sig-name descname">setchannels</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">nchannels</span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.setchannels" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.PCM.setchannels">
<span class="sig-prename descclassname"><span class="pre">PCM.</span></span><span class="sig-name descname"><span class="pre">setchannels</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">nchannels</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.setchannels" title="Permalink to this definition"></a></dt>
<dd><div class="deprecated">
<p><span class="versionmodified deprecated">Deprecated since version 0.9: </span>Use the <cite>channels</cite> named argument to <a class="reference internal" href="#alsaaudio.PCM" title="alsaaudio.PCM"><code class="xref py py-func docutils literal notranslate"><span class="pre">PCM()</span></code></a>.</p>
</div>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.PCM.setrate">
<code class="sig-prename descclassname">PCM.</code><code class="sig-name descname">setrate</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">rate</span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.setrate" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.PCM.setrate">
<span class="sig-prename descclassname"><span class="pre">PCM.</span></span><span class="sig-name descname"><span class="pre">setrate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">rate</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.setrate" title="Permalink to this definition"></a></dt>
<dd><div class="deprecated">
<p><span class="versionmodified deprecated">Deprecated since version 0.9: </span>Use the <cite>rate</cite> named argument to <a class="reference internal" href="#alsaaudio.PCM" title="alsaaudio.PCM"><code class="xref py py-func docutils literal notranslate"><span class="pre">PCM()</span></code></a>.</p>
</div>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.PCM.setformat">
<code class="sig-prename descclassname">PCM.</code><code class="sig-name descname">setformat</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">format</span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.setformat" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.PCM.setformat">
<span class="sig-prename descclassname"><span class="pre">PCM.</span></span><span class="sig-name descname"><span class="pre">setformat</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">format</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.setformat" title="Permalink to this definition"></a></dt>
<dd><div class="deprecated">
<p><span class="versionmodified deprecated">Deprecated since version 0.9: </span>Use the <cite>format</cite> named argument to <a class="reference internal" href="#alsaaudio.PCM" title="alsaaudio.PCM"><code class="xref py py-func docutils literal notranslate"><span class="pre">PCM()</span></code></a>.</p>
</div>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.PCM.setperiodsize">
<code class="sig-prename descclassname">PCM.</code><code class="sig-name descname">setperiodsize</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">period</span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.setperiodsize" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.PCM.setperiodsize">
<span class="sig-prename descclassname"><span class="pre">PCM.</span></span><span class="sig-name descname"><span class="pre">setperiodsize</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">period</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.setperiodsize" title="Permalink to this definition"></a></dt>
<dd><div class="deprecated">
<p><span class="versionmodified deprecated">Deprecated since version 0.9: </span>Use the <cite>periodsize</cite> named argument to <a class="reference internal" href="#alsaaudio.PCM" title="alsaaudio.PCM"><code class="xref py py-func docutils literal notranslate"><span class="pre">PCM()</span></code></a>.</p>
</div>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.PCM.read">
<code class="sig-prename descclassname">PCM.</code><code class="sig-name descname">read</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.read" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.PCM.read">
<span class="sig-prename descclassname"><span class="pre">PCM.</span></span><span class="sig-name descname"><span class="pre">read</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.read" title="Permalink to this definition"></a></dt>
<dd><p>In <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_NORMAL</span></code> mode, this function blocks until a full period is
available, and then returns a tuple (length,data) where <em>length</em> is
the number of frames of captured data, and <em>data</em> is the captured
@@ -312,8 +318,8 @@ Try using a larger periodsize.</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.PCM.write">
<code class="sig-prename descclassname">PCM.</code><code class="sig-name descname">write</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">data</span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.write" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.PCM.write">
<span class="sig-prename descclassname"><span class="pre">PCM.</span></span><span class="sig-name descname"><span class="pre">write</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.write" title="Permalink to this definition"></a></dt>
<dd><p>Writes (plays) the sound in data. The length of data <em>must</em> be a
multiple of the frame size, and <em>should</em> be exactly the size of a
period. If less than period size frames are provided, the actual
@@ -328,21 +334,104 @@ should be written at a later time.</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.PCM.pause">
<code class="sig-prename descclassname">PCM.</code><code class="sig-name descname">pause</code><span class="sig-paren">(</span><span class="optional">[</span><em class="sig-param">enable=True</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.pause" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.PCM.pause">
<span class="sig-prename descclassname"><span class="pre">PCM.</span></span><span class="sig-name descname"><span class="pre">pause</span></span><span class="sig-paren">(</span><span class="optional">[</span><em class="sig-param"><span class="n"><span class="pre">enable=True</span></span></em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.pause" title="Permalink to this definition"></a></dt>
<dd><p>If <em>enable</em> is <code class="xref py py-const docutils literal notranslate"><span class="pre">True</span></code>, playback or capture is paused.
Otherwise, playback/capture is resumed.</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.PCM.polldescriptors">
<code class="sig-prename descclassname">PCM.</code><code class="sig-name descname">polldescriptors</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.polldescriptors" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.PCM.polldescriptors">
<span class="sig-prename descclassname"><span class="pre">PCM.</span></span><span class="sig-name descname"><span class="pre">polldescriptors</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.polldescriptors" title="Permalink to this definition"></a></dt>
<dd><p>Returns a tuple of <em>(file descriptor, eventmask)</em> that can be used to
wait for changes on the mixer with <em>select.poll</em>.</p>
wait for changes on the PCM with <em>select.poll</em>.</p>
<p>The <em>eventmask</em> value is compatible with <a class="reference external" href="http://docs.python.org/library/select.html#poll-objects">poll.register</a> in the Python
<code class="xref py py-const docutils literal notranslate"><span class="pre">select</span></code> module.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="alsaaudio.PCM.set_tstamp_mode">
<span class="sig-prename descclassname"><span class="pre">PCM.</span></span><span class="sig-name descname"><span class="pre">set_tstamp_mode</span></span><span class="sig-paren">(</span><span class="optional">[</span><em class="sig-param"><span class="n"><span class="pre">mode=PCM_TSTAMP_ENABLE</span></span></em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.set_tstamp_mode" title="Permalink to this definition"></a></dt>
<dd><p>Set the ALSA timestamp mode on the device. The mode argument can be set to
either <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_TSTAMP_NONE</span></code> or <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_TSTAMP_ENABLE</span></code>.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="alsaaudio.PCM.get_tstamp_mode">
<span class="sig-prename descclassname"><span class="pre">PCM.</span></span><span class="sig-name descname"><span class="pre">get_tstamp_mode</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.get_tstamp_mode" title="Permalink to this definition"></a></dt>
<dd><p>Return the integer value corresponding to the ALSA timestamp mode. The
return value can be either <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_TSTAMP_NONE</span></code> or <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_TSTAMP_ENABLE</span></code>.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="alsaaudio.PCM.set_tstamp_type">
<span class="sig-prename descclassname"><span class="pre">PCM.</span></span><span class="sig-name descname"><span class="pre">set_tstamp_type</span></span><span class="sig-paren">(</span><span class="optional">[</span><em class="sig-param"><span class="n"><span class="pre">type=PCM_TSTAMP_TYPE_GETTIMEOFDAY</span></span></em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.set_tstamp_type" title="Permalink to this definition"></a></dt>
<dd><p>Set the ALSA timestamp mode on the device. The type argument
can be set to either <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_TSTAMP_TYPE_GETTIMEOFDAY</span></code>,
<code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_TSTAMP_TYPE_MONOTONIC</span></code> or <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_TSTAMP_TYPE_MONOTONIC_RAW</span></code>.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="alsaaudio.PCM.get_tstamp_type">
<span class="sig-prename descclassname"><span class="pre">PCM.</span></span><span class="sig-name descname"><span class="pre">get_tstamp_type</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.get_tstamp_type" title="Permalink to this definition"></a></dt>
<dd><p>Return the integer value corresponding to the ALSA timestamp type. The
return value can be either <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_TSTAMP_TYPE_GETTIMEOFDAY</span></code>,
<code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_TSTAMP_TYPE_MONOTONIC</span></code> or <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_TSTAMP_TYPE_MONOTONIC_RAW</span></code>.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="alsaaudio.PCM.htimestamp">
<span class="sig-prename descclassname"><span class="pre">PCM.</span></span><span class="sig-name descname"><span class="pre">htimestamp</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.PCM.htimestamp" title="Permalink to this definition"></a></dt>
<dd><p>Return a Python tuple <em>(seconds, nanoseconds, frames_available_in_buffer)</em>.</p>
<p>The type of output is controlled by the tstamp_type, as described in the table below.</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 43%" />
<col style="width: 57%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Timestamp Type</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">PCM_TSTAMP_TYPE_GETTIMEOFDAY</span></code></p></td>
<td><p>System-wide realtime clock with seconds
since epoch.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PCM_TSTAMP_TYPE_MONOTONIC</span></code></p></td>
<td><p>Monotonic time from an unspecified starting
time. Progress is NTP synchronized.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">PCM_TSTAMP_TYPE_MONOTONIC_RAW</span></code></p></td>
<td><p>Monotonic time from an unspecified starting
time using only the system clock.</p></td>
</tr>
</tbody>
</table>
<p>The timestamp mode is controlled by the tstamp_mode, as described in the table below.</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 43%" />
<col style="width: 57%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Timestamp Mode</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">PCM_TSTAMP_NONE</span></code></p></td>
<td><p>No timestamp.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">PCM_TSTAMP_ENABLE</span></code></p></td>
<td><p>Update timestamp at every hardware position
update.</p></td>
</tr>
</tbody>
</table>
</dd></dl>
<p><strong>A few hints on using PCM devices for playback</strong></p>
<p>The most common reason for problems with playback of PCM audio is that writes
to PCM devices must <em>exactly</em> match the data rate of the device.</p>
@@ -364,13 +453,13 @@ accummulate time delays: If you set the timer to expire after 1/10th
of a second, the actual timeout will happen slightly later, which will
accumulate to quite a lot after a few seconds. Hint: use time.time()
to check how much time has really passed, and add extra writes as nessecary.</p>
</div>
<div class="section" id="mixer-objects">
</section>
<section id="mixer-objects">
<span id="id3"></span><h2>Mixer Objects<a class="headerlink" href="#mixer-objects" title="Permalink to this headline"></a></h2>
<p>Mixer objects provides access to the ALSA mixer API.</p>
<dl class="py class">
<dt id="alsaaudio.Mixer">
<em class="property">class </em><code class="sig-prename descclassname">alsaaudio.</code><code class="sig-name descname">Mixer</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">control</span><span class="o">=</span><span class="default_value">'Master'</span></em>, <em class="sig-param"><span class="n">id</span><span class="o">=</span><span class="default_value">0</span></em>, <em class="sig-param"><span class="n">cardindex</span><span class="o">=</span><span class="default_value">- 1</span></em>, <em class="sig-param"><span class="n">device</span><span class="o">=</span><span class="default_value">'default'</span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.Mixer">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">alsaaudio.</span></span><span class="sig-name descname"><span class="pre">Mixer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">control</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'Master'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">id</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cardindex</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">-</span> <span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">device</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'default'</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer" title="Permalink to this definition"></a></dt>
<dd><p>Arguments are:</p>
<ul class="simple">
<li><p><em>control</em> - specifies which control to manipulate using this mixer
@@ -395,27 +484,27 @@ devices.</p></li>
<p>Mixer objects have the following methods:</p>
<dl class="py method">
<dt id="alsaaudio.Mixer.cardname">
<code class="sig-prename descclassname">Mixer.</code><code class="sig-name descname">cardname</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.cardname" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.Mixer.cardname">
<span class="sig-prename descclassname"><span class="pre">Mixer.</span></span><span class="sig-name descname"><span class="pre">cardname</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.cardname" title="Permalink to this definition"></a></dt>
<dd><p>Return the name of the sound card used by this Mixer object</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.Mixer.mixer">
<code class="sig-prename descclassname">Mixer.</code><code class="sig-name descname">mixer</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.mixer" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.Mixer.mixer">
<span class="sig-prename descclassname"><span class="pre">Mixer.</span></span><span class="sig-name descname"><span class="pre">mixer</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.mixer" title="Permalink to this definition"></a></dt>
<dd><p>Return the name of the specific mixer controlled by this object, For example
<code class="docutils literal notranslate"><span class="pre">'Master'</span></code> or <code class="docutils literal notranslate"><span class="pre">'PCM'</span></code></p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.Mixer.mixerid">
<code class="sig-prename descclassname">Mixer.</code><code class="sig-name descname">mixerid</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.mixerid" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.Mixer.mixerid">
<span class="sig-prename descclassname"><span class="pre">Mixer.</span></span><span class="sig-name descname"><span class="pre">mixerid</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.mixerid" title="Permalink to this definition"></a></dt>
<dd><p>Return the ID of the ALSA mixer controlled by this object.</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.Mixer.switchcap">
<code class="sig-prename descclassname">Mixer.</code><code class="sig-name descname">switchcap</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.switchcap" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.Mixer.switchcap">
<span class="sig-prename descclassname"><span class="pre">Mixer.</span></span><span class="sig-name descname"><span class="pre">switchcap</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.switchcap" title="Permalink to this definition"></a></dt>
<dd><p>Returns a list of the switches which are defined by this specific mixer.
Possible values in this list are:</p>
<table class="docutils align-default">
@@ -457,8 +546,8 @@ Possible values in this list are:</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.Mixer.volumecap">
<code class="sig-prename descclassname">Mixer.</code><code class="sig-name descname">volumecap</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.volumecap" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.Mixer.volumecap">
<span class="sig-prename descclassname"><span class="pre">Mixer.</span></span><span class="sig-name descname"><span class="pre">volumecap</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.volumecap" title="Permalink to this definition"></a></dt>
<dd><p>Returns a list of the volume control capabilities of this
mixer. Possible values in the list are:</p>
<table class="docutils align-default">
@@ -495,8 +584,8 @@ mixer. Possible values in the list are:</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.Mixer.getenum">
<code class="sig-prename descclassname">Mixer.</code><code class="sig-name descname">getenum</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.getenum" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.Mixer.getenum">
<span class="sig-prename descclassname"><span class="pre">Mixer.</span></span><span class="sig-name descname"><span class="pre">getenum</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.getenum" title="Permalink to this definition"></a></dt>
<dd><p>For enumerated controls, return the currently selected item and the list of
items available.</p>
<p>Returns a tuple <em>(string, list of strings)</em>.</p>
@@ -521,59 +610,59 @@ control.</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.Mixer.getmute">
<code class="sig-prename descclassname">Mixer.</code><code class="sig-name descname">getmute</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.getmute" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.Mixer.getmute">
<span class="sig-prename descclassname"><span class="pre">Mixer.</span></span><span class="sig-name descname"><span class="pre">getmute</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.getmute" title="Permalink to this definition"></a></dt>
<dd><p>Return a list indicating the current mute setting for each
channel. 0 means not muted, 1 means muted.</p>
<p>This method will fail if the mixer has no playback switch capabilities.</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.Mixer.getrange">
<code class="sig-prename descclassname">Mixer.</code><code class="sig-name descname">getrange</code><span class="sig-paren">(</span><span class="optional">[</span><em class="sig-param">direction</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.getrange" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.Mixer.getrange">
<span class="sig-prename descclassname"><span class="pre">Mixer.</span></span><span class="sig-name descname"><span class="pre">getrange</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pcmtype</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">PCM_PLAYBACK</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.getrange" title="Permalink to this definition"></a></dt>
<dd><p>Return the volume range of the ALSA mixer controlled by this object.</p>
<p>The optional <em>direction</em> argument can be either <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_PLAYBACK</span></code> or
<p>The optional <em>pcmtype</em> argument can be either <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_PLAYBACK</span></code> or
<code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_CAPTURE</span></code>, which is relevant if the mixer can control both
playback and capture volume. The default value is <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_PLAYBACK</span></code>
if the mixer has playback channels, otherwise it is <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_CAPTURE</span></code>.</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.Mixer.getrec">
<code class="sig-prename descclassname">Mixer.</code><code class="sig-name descname">getrec</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.getrec" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.Mixer.getrec">
<span class="sig-prename descclassname"><span class="pre">Mixer.</span></span><span class="sig-name descname"><span class="pre">getrec</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.getrec" title="Permalink to this definition"></a></dt>
<dd><p>Return a list indicating the current record mute setting for each channel. 0
means not recording, 1 means recording.</p>
<p>This method will fail if the mixer has no capture switch capabilities.</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.Mixer.getvolume">
<code class="sig-prename descclassname">Mixer.</code><code class="sig-name descname">getvolume</code><span class="sig-paren">(</span><span class="optional">[</span><em class="sig-param">direction</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.getvolume" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.Mixer.getvolume">
<span class="sig-prename descclassname"><span class="pre">Mixer.</span></span><span class="sig-name descname"><span class="pre">getvolume</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pcmtype</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">PCM_PLAYBACK</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.getvolume" title="Permalink to this definition"></a></dt>
<dd><p>Returns a list with the current volume settings for each channel. The list
elements are integer percentages.</p>
<p>The optional <em>direction</em> argument can be either <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_PLAYBACK</span></code> or
<p>The optional <em>pcmtype</em> argument can be either <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_PLAYBACK</span></code> or
<code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_CAPTURE</span></code>, which is relevant if the mixer can control both
playback and capture volume. The default value is <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_PLAYBACK</span></code>
if the mixer has playback channels, otherwise it is <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_CAPTURE</span></code>.</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.Mixer.setvolume">
<code class="sig-prename descclassname">Mixer.</code><code class="sig-name descname">setvolume</code><span class="sig-paren">(</span><em class="sig-param">volume</em><span class="optional">[</span>, <em class="sig-param">channel</em><span class="optional">]</span><span class="optional">[</span>, <em class="sig-param">direction</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.setvolume" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.Mixer.setvolume">
<span class="sig-prename descclassname"><span class="pre">Mixer.</span></span><span class="sig-name descname"><span class="pre">setvolume</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">volume</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pcmtype</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">PCM_PLAYBACK</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.setvolume" title="Permalink to this definition"></a></dt>
<dd><p>Change the current volume settings for this mixer. The <em>volume</em> argument
controls the new volume setting as an integer percentage.</p>
<p>If the optional argument <em>channel</em> is present, the volume is set
only for this channel. This assumes that the mixer can control the
volume for the channels independently.</p>
<p>The optional <em>direction</em> argument can be either <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_PLAYBACK</span></code> or
<p>The optional <em>pcmtype</em> argument can be either <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_PLAYBACK</span></code> or
<code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_CAPTURE</span></code>, which is relevant if the mixer can control both
playback and capture volume. The default value is <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_PLAYBACK</span></code>
if the mixer has playback channels, otherwise it is <code class="xref py py-const docutils literal notranslate"><span class="pre">PCM_CAPTURE</span></code>.</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.Mixer.setmute">
<code class="sig-prename descclassname">Mixer.</code><code class="sig-name descname">setmute</code><span class="sig-paren">(</span><em class="sig-param">mute</em><span class="optional">[</span>, <em class="sig-param">channel</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.setmute" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.Mixer.setmute">
<span class="sig-prename descclassname"><span class="pre">Mixer.</span></span><span class="sig-name descname"><span class="pre">setmute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mute</span></span></em><span class="optional">[</span>, <em class="sig-param"><span class="n"><span class="pre">channel</span></span></em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.setmute" title="Permalink to this definition"></a></dt>
<dd><p>Sets the mute flag to a new value. The <em>mute</em> argument is either 0 for not
muted, or 1 for muted.</p>
<p>The optional <em>channel</em> argument controls which channel is
@@ -582,8 +671,8 @@ muted. The default is to set the mute flag for all channels.</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.Mixer.setrec">
<code class="sig-prename descclassname">Mixer.</code><code class="sig-name descname">setrec</code><span class="sig-paren">(</span><em class="sig-param">capture</em><span class="optional">[</span>, <em class="sig-param">channel</em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.setrec" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.Mixer.setrec">
<span class="sig-prename descclassname"><span class="pre">Mixer.</span></span><span class="sig-name descname"><span class="pre">setrec</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">capture</span></span></em><span class="optional">[</span>, <em class="sig-param"><span class="n"><span class="pre">channel</span></span></em><span class="optional">]</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.setrec" title="Permalink to this definition"></a></dt>
<dd><p>Sets the capture mute flag to a new value. The <em>capture</em> argument
is either 0 for no capture, or 1 for capture.</p>
<p>The optional <em>channel</em> argument controls which channel is
@@ -592,8 +681,8 @@ changed. The default is to set the capture flag for all channels.</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.Mixer.polldescriptors">
<code class="sig-prename descclassname">Mixer.</code><code class="sig-name descname">polldescriptors</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.polldescriptors" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.Mixer.polldescriptors">
<span class="sig-prename descclassname"><span class="pre">Mixer.</span></span><span class="sig-name descname"><span class="pre">polldescriptors</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.polldescriptors" title="Permalink to this definition"></a></dt>
<dd><p>Returns a tuple of <em>(file descriptor, eventmask)</em> that can be used to
wait for changes on the mixer with <em>select.poll</em>.</p>
<p>The <em>eventmask</em> value is compatible with <a class="reference external" href="http://docs.python.org/library/select.html#poll-objects">poll.register</a> in the Python
@@ -601,8 +690,8 @@ wait for changes on the mixer with <em>select.poll</em>.</p>
</dd></dl>
<dl class="py method">
<dt id="alsaaudio.Mixer.handleevents">
<code class="sig-prename descclassname">Mixer.</code><code class="sig-name descname">handleevents</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.handleevents" title="Permalink to this definition"></a></dt>
<dt class="sig sig-object py" id="alsaaudio.Mixer.handleevents">
<span class="sig-prename descclassname"><span class="pre">Mixer.</span></span><span class="sig-name descname"><span class="pre">handleevents</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#alsaaudio.Mixer.handleevents" title="Permalink to this definition"></a></dt>
<dd><p>Acknowledge events on the <em>polldescriptors</em> file descriptors
to prevent subsequent polls from returning the same events again.
Returns the number of events that were acknowledged.</p>
@@ -625,8 +714,8 @@ the availability of ALSA mixer capable devices will stay quite limited.</p>
<p>Unfortunately, Im not able to create such a HOWTO myself, since I only
understand half of the API, and that which I do understand has come from a
painful trial and error process.</p>
</div>
<div class="section" id="examples">
</section>
<section id="examples">
<span id="pcm-example"></span><h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline"></a></h2>
<p>The following example are provided:</p>
<ul class="simple">
@@ -650,15 +739,15 @@ painful trial and error process.</p>
</div>
<p>mixertest.py accepts the commandline options <em>-d &lt;device&gt;</em> and
<em>-c &lt;cardindex&gt;</em>.</p>
<div class="section" id="playwav-py">
<section id="playwav-py">
<h3>playwav.py<a class="headerlink" href="#playwav-py" title="Permalink to this headline"></a></h3>
<p><strong>playwav.py</strong> plays a wav file.</p>
<p>To test PCM playback (on your default soundcard), run:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ python playwav.py &lt;wav file&gt;
</pre></div>
</div>
</div>
<div class="section" id="recordtest-py-and-playbacktest-py">
</section>
<section id="recordtest-py-and-playbacktest-py">
<h3>recordtest.py and playbacktest.py<a class="headerlink" href="#recordtest-py-and-playbacktest-py" title="Permalink to this headline"></a></h3>
<p><strong>recordtest.py</strong> and <strong>playbacktest.py</strong> will record and play a raw
sound file in CD quality.</p>
@@ -672,8 +761,8 @@ with <code class="docutils literal notranslate"><span class="pre">Ctl-C</span></
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ python playbacktest.py &lt;filename&gt;
</pre></div>
</div>
</div>
<div class="section" id="mixertest-py">
</section>
<section id="mixertest-py">
<h3>mixertest.py<a class="headerlink" href="#mixertest-py" title="Permalink to this headline"></a></h3>
<p>Without arguments, <strong>mixertest.py</strong> will list all available <em>controls</em> on the
default soundcard.</p>
@@ -731,9 +820,9 @@ Channel 1 volume: 61%
<dd><p>ALSA also allows <code class="docutils literal notranslate"><span class="pre">PCM_ASYNC</span></code>, but this is not supported yet.</p>
</dd>
</dl>
</div>
</div>
</div>
</section>
</section>
</section>
</div>
@@ -752,7 +841,7 @@ Channel 1 volume: 61%
<h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="pyalsaaudio.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="pyalsaaudio.html#what-is-alsa">What is ALSA</a></li>
@@ -779,7 +868,7 @@ Channel 1 volume: 61%
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
@@ -801,7 +890,7 @@ Channel 1 volume: 61%
&copy;2017, Lars Immisch & Casper Wilstrup.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 3.1.2</a>
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.5.0</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|