Sophie

Sophie

distrib > Mandriva > 2009.1 > x86_64 > media > main-testing > by-pkgid > 187676b5433787923dfa2cdd6900c6cd > files > 196

lib64pulseaudio-devel-0.9.15-2.0.7mdv2009.1.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>PulseAudio: volume.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.8 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>volume.h File Reference</h1>Constants and routines for volume handling.  
<a href="#_details">More...</a>
<p>

<p>
<a href="volume_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpa__cvolume.html">pa_cvolume</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A structure encapsulating a per-channel volume.  <a href="structpa__cvolume.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#ded56902e68e0f8ab576339bde55960e">PA_VOLUME_NORM</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>) 0x10000U)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Normal volume (100%, 0 dB).  <a href="#ded56902e68e0f8ab576339bde55960e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#9e6e4562a3be216d39ad2246f0339f4c">PA_VOLUME_MUTED</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>) 0U)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Muted volume (0%, -inf dB).  <a href="#9e6e4562a3be216d39ad2246f0339f4c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#fc3ad20b0ddc813e847b44afd90488ca">PA_VOLUME_MAX</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>) UINT32_MAX)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maximum volume we can store.  <a href="#fc3ad20b0ddc813e847b44afd90488ca"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#a2701828c290031c9bca9036f5148c72">pa_cvolume_reset</a>(a, n)&nbsp;&nbsp;&nbsp;pa_cvolume_set((a), (n), PA_VOLUME_NORM)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the volume of all channels to PA_VOLUME_NORM.  <a href="#a2701828c290031c9bca9036f5148c72"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#04805cb4b83ded75deca9c122977d8fb">pa_cvolume_mute</a>(a, n)&nbsp;&nbsp;&nbsp;pa_cvolume_set((a), (n), PA_VOLUME_MUTED)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the volume of all channels to PA_VOLUME_MUTED.  <a href="#04805cb4b83ded75deca9c122977d8fb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#4162617e79bec0c7972326cf28a98712">PA_CVOLUME_SNPRINT_MAX</a>&nbsp;&nbsp;&nbsp;320</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maximum length of the strings returned by <a class="el" href="volume_8h.html#99f2e389f425b888d3a02ade86d7c85f" title="Pretty print a volume structure.">pa_cvolume_snprint()</a>.  <a href="#4162617e79bec0c7972326cf28a98712"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#c516da5ed0f43f2ff41792fef4466115">PA_SW_CVOLUME_SNPRINT_DB_MAX</a>&nbsp;&nbsp;&nbsp;448</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maximum length of the strings returned by pa_cvolume_snprint_dB().  <a href="#c516da5ed0f43f2ff41792fef4466115"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#80190278ec6e8506092d3d57d309234f">PA_VOLUME_SNPRINT_MAX</a>&nbsp;&nbsp;&nbsp;10</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maximum length of the strings returned by <a class="el" href="volume_8h.html#379a97102f5b88dc82ccccffc95b8aac" title="Pretty print a volume.">pa_volume_snprint()</a>.  <a href="#80190278ec6e8506092d3d57d309234f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#98deb2bff93c29e036c4cc14ad3d2e8f">PA_SW_VOLUME_SNPRINT_DB_MAX</a>&nbsp;&nbsp;&nbsp;10</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maximum length of the strings returned by pa_volume_snprint_dB().  <a href="#98deb2bff93c29e036c4cc14ad3d2e8f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#6b8766a2f30420a83457d2e1f0f139b2">pa_cvolume_is_muted</a>(a)&nbsp;&nbsp;&nbsp;pa_cvolume_channels_equal_to((a), PA_VOLUME_MUTED)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return 1 if the specified volume has all channels muted.  <a href="#6b8766a2f30420a83457d2e1f0f139b2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#0b374bbe16de9ac047fc4e5f6994390c">pa_cvolume_is_norm</a>(a)&nbsp;&nbsp;&nbsp;pa_cvolume_channels_equal_to((a), PA_VOLUME_NORM)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return 1 if the specified volume has all channels on normal level.  <a href="#0b374bbe16de9ac047fc4e5f6994390c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#e0b917d42c58310ed848916058d75f27">PA_DECIBEL_MININFTY</a>&nbsp;&nbsp;&nbsp;((double) -200.0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This value is used as minus infinity when using pa_volume_{to,from}_dB().  <a href="#e0b917d42c58310ed848916058d75f27"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Volume specification: PA_VOLUME_MUTED: silence; &lt; PA_VOLUME_NORM: decreased volume; PA_VOLUME_NORM: normal volume; &gt; PA_VOLUME_NORM: increased volume.  <a href="#6d671c65284ff2e94d3773c7368a0352"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#84b52cdbff47aad9c058df783f342b57">pa_cvolume_equal</a> (const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *a, const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *b) PA_GCC_PURE</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return non-zero when *a == *b.  <a href="#84b52cdbff47aad9c058df783f342b57"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#6fdc24192547d6ef3d5b32e746016e22">pa_cvolume_init</a> (<a class="el" href="structpa__cvolume.html">pa_cvolume</a> *a)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the specified volume and return a pointer to it.  <a href="#6fdc24192547d6ef3d5b32e746016e22"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#0777581d85a1d4bf9c831bdacaac51ac">pa_cvolume_set</a> (<a class="el" href="structpa__cvolume.html">pa_cvolume</a> *a, unsigned channels, <a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the volume of all channels to the specified parameter.  <a href="#0777581d85a1d4bf9c831bdacaac51ac"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#99f2e389f425b888d3a02ade86d7c85f">pa_cvolume_snprint</a> (char *s, size_t l, const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *c)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pretty print a volume structure.  <a href="#99f2e389f425b888d3a02ade86d7c85f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#af68a0e6959d18e192104802aab25717">pa_sw_cvolume_snprint_dB</a> (char *s, size_t l, const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *c)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pretty print a volume structure but show dB values.  <a href="#af68a0e6959d18e192104802aab25717"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#379a97102f5b88dc82ccccffc95b8aac">pa_volume_snprint</a> (char *s, size_t l, <a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pretty print a volume.  <a href="#379a97102f5b88dc82ccccffc95b8aac"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#bcf6e407dfaec50edc13a994b2b0d9f9">pa_sw_volume_snprint_dB</a> (char *s, size_t l, <a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> v)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pretty print a volume but show dB values.  <a href="#bcf6e407dfaec50edc13a994b2b0d9f9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#0f34f2c6d1b4738bf7f11ff06775dc1f">pa_cvolume_avg</a> (const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *a) PA_GCC_PURE</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the average volume of all channels.  <a href="#0f34f2c6d1b4738bf7f11ff06775dc1f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#8d65b3af7da133c78ce9def86ea54ba9">pa_cvolume_max</a> (const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *a) PA_GCC_PURE</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the maximum volume of all channels.  <a href="#8d65b3af7da133c78ce9def86ea54ba9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#ba14d00682b29838ef39ca5a9afe8972">pa_cvolume_valid</a> (const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *v) PA_GCC_PURE</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return TRUE when the passed cvolume structure is valid, FALSE otherwise.  <a href="#ba14d00682b29838ef39ca5a9afe8972"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#2dd140d5c2fadd1d8cb7aa0eace05109">pa_cvolume_channels_equal_to</a> (const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *a, <a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> v) PA_GCC_PURE</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return non-zero if the volume of all channels is equal to the specified value.  <a href="#2dd140d5c2fadd1d8cb7aa0eace05109"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#1ca01f5bd640e7c5b2d3a6dad9093226">pa_sw_volume_multiply</a> (<a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> a, <a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> b) PA_GCC_CONST</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply two volume specifications, return the result.  <a href="#1ca01f5bd640e7c5b2d3a6dad9093226"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#6ae924bdad225c405c1e2f40c22b041b">pa_sw_cvolume_multiply</a> (<a class="el" href="structpa__cvolume.html">pa_cvolume</a> *dest, const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *a, const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *b)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply two per-channel volumes and return the result in *dest.  <a href="#6ae924bdad225c405c1e2f40c22b041b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#dcf659351cef912786f53132664fa2b4">pa_sw_volume_divide</a> (<a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> a, <a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> b) PA_GCC_CONST</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Divide two volume specifications, return the result.  <a href="#dcf659351cef912786f53132664fa2b4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#7392cdb5137cedc579891ac4c8c6ff7d">pa_sw_cvolume_divide</a> (<a class="el" href="structpa__cvolume.html">pa_cvolume</a> *dest, const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *a, const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *b)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply to per-channel volumes and return the result in *dest.  <a href="#7392cdb5137cedc579891ac4c8c6ff7d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#d638dfbc737f126e743584665ea8f557">pa_sw_volume_from_dB</a> (double f) PA_GCC_CONST</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a decibel value to a volume.  <a href="#d638dfbc737f126e743584665ea8f557"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#297851419c1e994d9fd2cfbb49aa480a">pa_sw_volume_to_dB</a> (<a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> v) PA_GCC_CONST</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a volume to a decibel value.  <a href="#297851419c1e994d9fd2cfbb49aa480a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#afb4825a03178ee327e55ae0866b7471">pa_sw_volume_from_linear</a> (double v) PA_GCC_CONST</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a linear factor to a volume.  <a href="#afb4825a03178ee327e55ae0866b7471"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#04da6c4572a758a0244bbfc81d370cfb">pa_sw_volume_to_linear</a> (<a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> v) PA_GCC_CONST</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a volume to a linear factor.  <a href="#04da6c4572a758a0244bbfc81d370cfb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#5eab9b175690ff534492673ad30ed2e7">pa_cvolume_remap</a> (<a class="el" href="structpa__cvolume.html">pa_cvolume</a> *v, const <a class="el" href="structpa__channel__map.html">pa_channel_map</a> *from, const <a class="el" href="structpa__channel__map.html">pa_channel_map</a> *to)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remap a volume from one channel mapping to a different channel mapping.  <a href="#5eab9b175690ff534492673ad30ed2e7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#9f315d36ea592c0e91407db899e5fab5">pa_cvolume_compatible</a> (const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *v, const <a class="el" href="structpa__sample__spec.html">pa_sample_spec</a> *ss) PA_GCC_PURE</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return non-zero if the specified volume is compatible with the specified sample spec.  <a href="#9f315d36ea592c0e91407db899e5fab5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#15263326cff59a120509bafd24565c1d">pa_cvolume_compatible_with_channel_map</a> (const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *v, const <a class="el" href="structpa__channel__map.html">pa_channel_map</a> *cm) PA_GCC_PURE</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return non-zero if the specified volume is compatible with the specified sample spec.  <a href="#15263326cff59a120509bafd24565c1d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#ffea337dd40255580c9de68799e569d1">pa_cvolume_get_balance</a> (const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *v, const <a class="el" href="structpa__channel__map.html">pa_channel_map</a> *map) PA_GCC_PURE</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate a 'balance' value for the specified volume with the specified channel map.  <a href="#ffea337dd40255580c9de68799e569d1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#0cad9c475a9a318c433f12ff019d7fec">pa_cvolume_set_balance</a> (<a class="el" href="structpa__cvolume.html">pa_cvolume</a> *v, const <a class="el" href="structpa__channel__map.html">pa_channel_map</a> *map, float new_balance)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adjust the 'balance' value for the specified volume with the specified channel map.  <a href="#0cad9c475a9a318c433f12ff019d7fec"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#af78aa9297c11860338ffa3c958f9a36">pa_cvolume_get_fade</a> (const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *v, const <a class="el" href="structpa__channel__map.html">pa_channel_map</a> *map) PA_GCC_PURE</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate a 'fade' value (i.e.  <a href="#af78aa9297c11860338ffa3c958f9a36"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#4379c7e84379121f4baaba0aefaf76ee">pa_cvolume_set_fade</a> (<a class="el" href="structpa__cvolume.html">pa_cvolume</a> *v, const <a class="el" href="structpa__channel__map.html">pa_channel_map</a> *map, float new_fade)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adjust the 'fade' value (i.e.  <a href="#4379c7e84379121f4baaba0aefaf76ee"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="volume_8h.html#175fa9c547655cd868b4812755a0a113">pa_cvolume_scale</a> (<a class="el" href="structpa__cvolume.html">pa_cvolume</a> *v, <a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> max)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scale the passed <a class="el" href="structpa__cvolume.html" title="A structure encapsulating a per-channel volume.">pa_cvolume</a> structure so that the maximum volume of all channels equals max.  <a href="#175fa9c547655cd868b4812755a0a113"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Constants and routines for volume handling. 
<p>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="6b8766a2f30420a83457d2e1f0f139b2"></a><!-- doxytag: member="volume.h::pa_cvolume_is_muted" ref="6b8766a2f30420a83457d2e1f0f139b2" args="(a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define pa_cvolume_is_muted          </td>
          <td>(</td>
          <td class="paramtype">a&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;pa_cvolume_channels_equal_to((a), PA_VOLUME_MUTED)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return 1 if the specified volume has all channels muted. 
<p>

</div>
</div><p>
<a class="anchor" name="0b374bbe16de9ac047fc4e5f6994390c"></a><!-- doxytag: member="volume.h::pa_cvolume_is_norm" ref="0b374bbe16de9ac047fc4e5f6994390c" args="(a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define pa_cvolume_is_norm          </td>
          <td>(</td>
          <td class="paramtype">a&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;pa_cvolume_channels_equal_to((a), PA_VOLUME_NORM)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return 1 if the specified volume has all channels on normal level. 
<p>

</div>
</div><p>
<a class="anchor" name="04805cb4b83ded75deca9c122977d8fb"></a><!-- doxytag: member="volume.h::pa_cvolume_mute" ref="04805cb4b83ded75deca9c122977d8fb" args="(a, n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define pa_cvolume_mute          </td>
          <td>(</td>
          <td class="paramtype">a,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">n&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;pa_cvolume_set((a), (n), PA_VOLUME_MUTED)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the volume of all channels to PA_VOLUME_MUTED. 
<p>

</div>
</div><p>
<a class="anchor" name="a2701828c290031c9bca9036f5148c72"></a><!-- doxytag: member="volume.h::pa_cvolume_reset" ref="a2701828c290031c9bca9036f5148c72" args="(a, n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define pa_cvolume_reset          </td>
          <td>(</td>
          <td class="paramtype">a,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">n&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;pa_cvolume_set((a), (n), PA_VOLUME_NORM)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the volume of all channels to PA_VOLUME_NORM. 
<p>

</div>
</div><p>
<a class="anchor" name="4162617e79bec0c7972326cf28a98712"></a><!-- doxytag: member="volume.h::PA_CVOLUME_SNPRINT_MAX" ref="4162617e79bec0c7972326cf28a98712" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PA_CVOLUME_SNPRINT_MAX&nbsp;&nbsp;&nbsp;320          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Maximum length of the strings returned by <a class="el" href="volume_8h.html#99f2e389f425b888d3a02ade86d7c85f" title="Pretty print a volume structure.">pa_cvolume_snprint()</a>. 
<p>
Please note that this value can change with any release without warning and without being considered API or ABI breakage. You should not use this definition anywhere where it might become part of an ABI. 
</div>
</div><p>
<a class="anchor" name="e0b917d42c58310ed848916058d75f27"></a><!-- doxytag: member="volume.h::PA_DECIBEL_MININFTY" ref="e0b917d42c58310ed848916058d75f27" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PA_DECIBEL_MININFTY&nbsp;&nbsp;&nbsp;((double) -200.0)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This value is used as minus infinity when using pa_volume_{to,from}_dB(). 
<p>

</div>
</div><p>
<a class="anchor" name="c516da5ed0f43f2ff41792fef4466115"></a><!-- doxytag: member="volume.h::PA_SW_CVOLUME_SNPRINT_DB_MAX" ref="c516da5ed0f43f2ff41792fef4466115" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PA_SW_CVOLUME_SNPRINT_DB_MAX&nbsp;&nbsp;&nbsp;448          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Maximum length of the strings returned by pa_cvolume_snprint_dB(). 
<p>
Please note that this value can change with any release without warning and without being considered API or ABI breakage. You should not use this definition anywhere where it might become part of an ABI. <dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.13 </dd></dl>

</div>
</div><p>
<a class="anchor" name="98deb2bff93c29e036c4cc14ad3d2e8f"></a><!-- doxytag: member="volume.h::PA_SW_VOLUME_SNPRINT_DB_MAX" ref="98deb2bff93c29e036c4cc14ad3d2e8f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PA_SW_VOLUME_SNPRINT_DB_MAX&nbsp;&nbsp;&nbsp;10          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Maximum length of the strings returned by pa_volume_snprint_dB(). 
<p>
Please note that this value can change with any release without warning and without being considered API or ABI breakage. You should not use this definition anywhere where it might become part of an ABI. <dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.15 </dd></dl>

</div>
</div><p>
<a class="anchor" name="fc3ad20b0ddc813e847b44afd90488ca"></a><!-- doxytag: member="volume.h::PA_VOLUME_MAX" ref="fc3ad20b0ddc813e847b44afd90488ca" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PA_VOLUME_MAX&nbsp;&nbsp;&nbsp;((<a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>) UINT32_MAX)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Maximum volume we can store. 
<p>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.15 </dd></dl>

</div>
</div><p>
<a class="anchor" name="9e6e4562a3be216d39ad2246f0339f4c"></a><!-- doxytag: member="volume.h::PA_VOLUME_MUTED" ref="9e6e4562a3be216d39ad2246f0339f4c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PA_VOLUME_MUTED&nbsp;&nbsp;&nbsp;((<a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>) 0U)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Muted volume (0%, -inf dB). 
<p>

</div>
</div><p>
<a class="anchor" name="ded56902e68e0f8ab576339bde55960e"></a><!-- doxytag: member="volume.h::PA_VOLUME_NORM" ref="ded56902e68e0f8ab576339bde55960e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PA_VOLUME_NORM&nbsp;&nbsp;&nbsp;((<a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>) 0x10000U)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Normal volume (100%, 0 dB). 
<p>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="pacat_8c-example.html#a5">pacat.c</a>, and <a class="el" href="paplay_8c-example.html#a4">paplay.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="80190278ec6e8506092d3d57d309234f"></a><!-- doxytag: member="volume.h::PA_VOLUME_SNPRINT_MAX" ref="80190278ec6e8506092d3d57d309234f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PA_VOLUME_SNPRINT_MAX&nbsp;&nbsp;&nbsp;10          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Maximum length of the strings returned by <a class="el" href="volume_8h.html#379a97102f5b88dc82ccccffc95b8aac" title="Pretty print a volume.">pa_volume_snprint()</a>. 
<p>
Please note that this value can change with any release without warning and without being considered API or ABI breakage. You should not use this definition anywhere where it might become part of an ABI. <dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.15 </dd></dl>

</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="6d671c65284ff2e94d3773c7368a0352"></a><!-- doxytag: member="volume.h::pa_volume_t" ref="6d671c65284ff2e94d3773c7368a0352" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint32_t <a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Volume specification: PA_VOLUME_MUTED: silence; &lt; PA_VOLUME_NORM: decreased volume; PA_VOLUME_NORM: normal volume; &gt; PA_VOLUME_NORM: increased volume. 
<p>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="pacat_8c-example.html#a4">pacat.c</a>, and <a class="el" href="paplay_8c-example.html#a3">paplay.c</a>.</dl>
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="0f34f2c6d1b4738bf7f11ff06775dc1f"></a><!-- doxytag: member="volume.h::pa_cvolume_avg" ref="0f34f2c6d1b4738bf7f11ff06775dc1f" args="(const pa_cvolume *a) PA_GCC_PURE" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> pa_cvolume_avg           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>a</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the average volume of all channels. 
<p>

</div>
</div><p>
<a class="anchor" name="2dd140d5c2fadd1d8cb7aa0eace05109"></a><!-- doxytag: member="volume.h::pa_cvolume_channels_equal_to" ref="2dd140d5c2fadd1d8cb7aa0eace05109" args="(const pa_cvolume *a, pa_volume_t v) PA_GCC_PURE" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int pa_cvolume_channels_equal_to           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>&nbsp;</td>
          <td class="paramname"> <em>v</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return non-zero if the volume of all channels is equal to the specified value. 
<p>

</div>
</div><p>
<a class="anchor" name="9f315d36ea592c0e91407db899e5fab5"></a><!-- doxytag: member="volume.h::pa_cvolume_compatible" ref="9f315d36ea592c0e91407db899e5fab5" args="(const pa_cvolume *v, const pa_sample_spec *ss) PA_GCC_PURE" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int pa_cvolume_compatible           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpa__sample__spec.html">pa_sample_spec</a> *&nbsp;</td>
          <td class="paramname"> <em>ss</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return non-zero if the specified volume is compatible with the specified sample spec. 
<p>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.13 </dd></dl>

</div>
</div><p>
<a class="anchor" name="15263326cff59a120509bafd24565c1d"></a><!-- doxytag: member="volume.h::pa_cvolume_compatible_with_channel_map" ref="15263326cff59a120509bafd24565c1d" args="(const pa_cvolume *v, const pa_channel_map *cm) PA_GCC_PURE" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int pa_cvolume_compatible_with_channel_map           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpa__channel__map.html">pa_channel_map</a> *&nbsp;</td>
          <td class="paramname"> <em>cm</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return non-zero if the specified volume is compatible with the specified sample spec. 
<p>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.15 </dd></dl>

</div>
</div><p>
<a class="anchor" name="84b52cdbff47aad9c058df783f342b57"></a><!-- doxytag: member="volume.h::pa_cvolume_equal" ref="84b52cdbff47aad9c058df783f342b57" args="(const pa_cvolume *a, const pa_cvolume *b) PA_GCC_PURE" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int pa_cvolume_equal           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>b</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return non-zero when *a == *b. 
<p>

</div>
</div><p>
<a class="anchor" name="ffea337dd40255580c9de68799e569d1"></a><!-- doxytag: member="volume.h::pa_cvolume_get_balance" ref="ffea337dd40255580c9de68799e569d1" args="(const pa_cvolume *v, const pa_channel_map *map) PA_GCC_PURE" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float pa_cvolume_get_balance           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpa__channel__map.html">pa_channel_map</a> *&nbsp;</td>
          <td class="paramname"> <em>map</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Calculate a 'balance' value for the specified volume with the specified channel map. 
<p>
The return value will range from -1.0f (left) to +1.0f (right). If no balance value is applicable to this channel map the return value will always be 0.0f. See <a class="el" href="channelmap_8h.html#0ece3ec5671817252fd5e8d804c31452" title="Returns non-zero if it makes sense to apply a volume &#39;balance&#39; with this...">pa_channel_map_can_balance()</a>. <dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.15 </dd></dl>

</div>
</div><p>
<a class="anchor" name="af78aa9297c11860338ffa3c958f9a36"></a><!-- doxytag: member="volume.h::pa_cvolume_get_fade" ref="af78aa9297c11860338ffa3c958f9a36" args="(const pa_cvolume *v, const pa_channel_map *map) PA_GCC_PURE" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float pa_cvolume_get_fade           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpa__channel__map.html">pa_channel_map</a> *&nbsp;</td>
          <td class="paramname"> <em>map</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Calculate a 'fade' value (i.e. 
<p>
'balance' between front and rear) for the specified volume with the specified channel map. The return value will range from -1.0f (rear) to +1.0f (left). If no fade value is applicable to this channel map the return value will always be 0.0f. See <a class="el" href="channelmap_8h.html#2204e8c49245a7526dbed708ca9cef05" title="Returns non-zero if it makes sense to apply a volume &#39;fade&#39; (i.e.">pa_channel_map_can_fade()</a>. <dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.15 </dd></dl>

</div>
</div><p>
<a class="anchor" name="6fdc24192547d6ef3d5b32e746016e22"></a><!-- doxytag: member="volume.h::pa_cvolume_init" ref="6fdc24192547d6ef3d5b32e746016e22" args="(pa_cvolume *a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structpa__cvolume.html">pa_cvolume</a>* pa_cvolume_init           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>a</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the specified volume and return a pointer to it. 
<p>
The sample spec will have a defined state but <a class="el" href="volume_8h.html#ba14d00682b29838ef39ca5a9afe8972" title="Return TRUE when the passed cvolume structure is valid, FALSE otherwise.">pa_cvolume_valid()</a> will fail for it. <dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.13 </dd></dl>

</div>
</div><p>
<a class="anchor" name="8d65b3af7da133c78ce9def86ea54ba9"></a><!-- doxytag: member="volume.h::pa_cvolume_max" ref="8d65b3af7da133c78ce9def86ea54ba9" args="(const pa_cvolume *a) PA_GCC_PURE" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> pa_cvolume_max           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>a</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the maximum volume of all channels. 
<p>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.12 </dd></dl>

</div>
</div><p>
<a class="anchor" name="5eab9b175690ff534492673ad30ed2e7"></a><!-- doxytag: member="volume.h::pa_cvolume_remap" ref="5eab9b175690ff534492673ad30ed2e7" args="(pa_cvolume *v, const pa_channel_map *from, const pa_channel_map *to)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structpa__cvolume.html">pa_cvolume</a>* pa_cvolume_remap           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpa__channel__map.html">pa_channel_map</a> *&nbsp;</td>
          <td class="paramname"> <em>from</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpa__channel__map.html">pa_channel_map</a> *&nbsp;</td>
          <td class="paramname"> <em>to</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remap a volume from one channel mapping to a different channel mapping. 
<p>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.12 </dd></dl>

</div>
</div><p>
<a class="anchor" name="175fa9c547655cd868b4812755a0a113"></a><!-- doxytag: member="volume.h::pa_cvolume_scale" ref="175fa9c547655cd868b4812755a0a113" args="(pa_cvolume *v, pa_volume_t max)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structpa__cvolume.html">pa_cvolume</a>* pa_cvolume_scale           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>&nbsp;</td>
          <td class="paramname"> <em>max</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Scale the passed <a class="el" href="structpa__cvolume.html" title="A structure encapsulating a per-channel volume.">pa_cvolume</a> structure so that the maximum volume of all channels equals max. 
<p>
The proportions between the channel volumes are kept. <dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.15 </dd></dl>

</div>
</div><p>
<a class="anchor" name="0777581d85a1d4bf9c831bdacaac51ac"></a><!-- doxytag: member="volume.h::pa_cvolume_set" ref="0777581d85a1d4bf9c831bdacaac51ac" args="(pa_cvolume *a, unsigned channels, pa_volume_t v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structpa__cvolume.html">pa_cvolume</a>* pa_cvolume_set           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned&nbsp;</td>
          <td class="paramname"> <em>channels</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>&nbsp;</td>
          <td class="paramname"> <em>v</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the volume of all channels to the specified parameter. 
<p>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="pacat_8c-example.html#a66">pacat.c</a>, and <a class="el" href="paplay_8c-example.html#a38">paplay.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="0cad9c475a9a318c433f12ff019d7fec"></a><!-- doxytag: member="volume.h::pa_cvolume_set_balance" ref="0cad9c475a9a318c433f12ff019d7fec" args="(pa_cvolume *v, const pa_channel_map *map, float new_balance)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structpa__cvolume.html">pa_cvolume</a>* pa_cvolume_set_balance           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpa__channel__map.html">pa_channel_map</a> *&nbsp;</td>
          <td class="paramname"> <em>map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>new_balance</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adjust the 'balance' value for the specified volume with the specified channel map. 
<p>
v will be modified in place and returned. The balance is a value between -1.0f and +1.0f. This operation might not be reversible! Also, after this call <a class="el" href="volume_8h.html#ffea337dd40255580c9de68799e569d1" title="Calculate a &#39;balance&#39; value for the specified volume with the specified channel...">pa_cvolume_get_balance()</a> is not guaranteed to actually return the requested balance value (e.g. when the input volume was zero anyway for all channels). If no balance value is applicable to this channel map the volume will not be modified. See <a class="el" href="channelmap_8h.html#0ece3ec5671817252fd5e8d804c31452" title="Returns non-zero if it makes sense to apply a volume &#39;balance&#39; with this...">pa_channel_map_can_balance()</a>. <dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.15 </dd></dl>

</div>
</div><p>
<a class="anchor" name="4379c7e84379121f4baaba0aefaf76ee"></a><!-- doxytag: member="volume.h::pa_cvolume_set_fade" ref="4379c7e84379121f4baaba0aefaf76ee" args="(pa_cvolume *v, const pa_channel_map *map, float new_fade)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structpa__cvolume.html">pa_cvolume</a>* pa_cvolume_set_fade           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpa__channel__map.html">pa_channel_map</a> *&nbsp;</td>
          <td class="paramname"> <em>map</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>new_fade</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adjust the 'fade' value (i.e. 
<p>
'balance' between front and rear) for the specified volume with the specified channel map. v will be modified in place and returned. The balance is a value between -1.0f and +1.0f. This operation might not be reversible! Also, after this call <a class="el" href="volume_8h.html#af78aa9297c11860338ffa3c958f9a36" title="Calculate a &#39;fade&#39; value (i.e.">pa_cvolume_get_fade()</a> is not guaranteed to actually return the requested fade value (e.g. when the input volume was zero anyway for all channels). If no fade value is applicable to this channel map the volume will not be modified. See <a class="el" href="channelmap_8h.html#2204e8c49245a7526dbed708ca9cef05" title="Returns non-zero if it makes sense to apply a volume &#39;fade&#39; (i.e.">pa_channel_map_can_fade()</a>. <dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.15 </dd></dl>

</div>
</div><p>
<a class="anchor" name="99f2e389f425b888d3a02ade86d7c85f"></a><!-- doxytag: member="volume.h::pa_cvolume_snprint" ref="99f2e389f425b888d3a02ade86d7c85f" args="(char *s, size_t l, const pa_cvolume *c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* pa_cvolume_snprint           </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>l</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>c</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Pretty print a volume structure. 
<p>

</div>
</div><p>
<a class="anchor" name="ba14d00682b29838ef39ca5a9afe8972"></a><!-- doxytag: member="volume.h::pa_cvolume_valid" ref="ba14d00682b29838ef39ca5a9afe8972" args="(const pa_cvolume *v) PA_GCC_PURE" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int pa_cvolume_valid           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return TRUE when the passed cvolume structure is valid, FALSE otherwise. 
<p>

</div>
</div><p>
<a class="anchor" name="7392cdb5137cedc579891ac4c8c6ff7d"></a><!-- doxytag: member="volume.h::pa_sw_cvolume_divide" ref="7392cdb5137cedc579891ac4c8c6ff7d" args="(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structpa__cvolume.html">pa_cvolume</a>* pa_sw_cvolume_divide           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>b</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Multiply to per-channel volumes and return the result in *dest. 
<p>
This is only valid for software volumes! <dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.13 </dd></dl>

</div>
</div><p>
<a class="anchor" name="6ae924bdad225c405c1e2f40c22b041b"></a><!-- doxytag: member="volume.h::pa_sw_cvolume_multiply" ref="6ae924bdad225c405c1e2f40c22b041b" args="(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structpa__cvolume.html">pa_cvolume</a>* pa_sw_cvolume_multiply           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>b</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Multiply two per-channel volumes and return the result in *dest. 
<p>
This is only valid for software volumes! 
</div>
</div><p>
<a class="anchor" name="af68a0e6959d18e192104802aab25717"></a><!-- doxytag: member="volume.h::pa_sw_cvolume_snprint_dB" ref="af68a0e6959d18e192104802aab25717" args="(char *s, size_t l, const pa_cvolume *c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* pa_sw_cvolume_snprint_dB           </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>l</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structpa__cvolume.html">pa_cvolume</a> *&nbsp;</td>
          <td class="paramname"> <em>c</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Pretty print a volume structure but show dB values. 
<p>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.13 </dd></dl>

</div>
</div><p>
<a class="anchor" name="dcf659351cef912786f53132664fa2b4"></a><!-- doxytag: member="volume.h::pa_sw_volume_divide" ref="dcf659351cef912786f53132664fa2b4" args="(pa_volume_t a, pa_volume_t b) PA_GCC_CONST" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> pa_sw_volume_divide           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>&nbsp;</td>
          <td class="paramname"> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>&nbsp;</td>
          <td class="paramname"> <em>b</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Divide two volume specifications, return the result. 
<p>
This uses PA_VOLUME_NORM as neutral element of division. This is only valid for software volumes! If a division by zero is tried the result will be 0. <dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.13 </dd></dl>

</div>
</div><p>
<a class="anchor" name="d638dfbc737f126e743584665ea8f557"></a><!-- doxytag: member="volume.h::pa_sw_volume_from_dB" ref="d638dfbc737f126e743584665ea8f557" args="(double f) PA_GCC_CONST" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> pa_sw_volume_from_dB           </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>f</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert a decibel value to a volume. 
<p>
This is only valid for software volumes! 
</div>
</div><p>
<a class="anchor" name="afb4825a03178ee327e55ae0866b7471"></a><!-- doxytag: member="volume.h::pa_sw_volume_from_linear" ref="afb4825a03178ee327e55ae0866b7471" args="(double v) PA_GCC_CONST" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> pa_sw_volume_from_linear           </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert a linear factor to a volume. 
<p>
This is only valid for software volumes! 
</div>
</div><p>
<a class="anchor" name="1ca01f5bd640e7c5b2d3a6dad9093226"></a><!-- doxytag: member="volume.h::pa_sw_volume_multiply" ref="1ca01f5bd640e7c5b2d3a6dad9093226" args="(pa_volume_t a, pa_volume_t b) PA_GCC_CONST" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> pa_sw_volume_multiply           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>&nbsp;</td>
          <td class="paramname"> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>&nbsp;</td>
          <td class="paramname"> <em>b</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Multiply two volume specifications, return the result. 
<p>
This uses PA_VOLUME_NORM as neutral element of multiplication. This is only valid for software volumes! 
</div>
</div><p>
<a class="anchor" name="bcf6e407dfaec50edc13a994b2b0d9f9"></a><!-- doxytag: member="volume.h::pa_sw_volume_snprint_dB" ref="bcf6e407dfaec50edc13a994b2b0d9f9" args="(char *s, size_t l, pa_volume_t v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* pa_sw_volume_snprint_dB           </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>l</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>&nbsp;</td>
          <td class="paramname"> <em>v</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Pretty print a volume but show dB values. 
<p>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.15 </dd></dl>

</div>
</div><p>
<a class="anchor" name="297851419c1e994d9fd2cfbb49aa480a"></a><!-- doxytag: member="volume.h::pa_sw_volume_to_dB" ref="297851419c1e994d9fd2cfbb49aa480a" args="(pa_volume_t v) PA_GCC_CONST" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double pa_sw_volume_to_dB           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert a volume to a decibel value. 
<p>
This is only valid for software volumes! 
</div>
</div><p>
<a class="anchor" name="04da6c4572a758a0244bbfc81d370cfb"></a><!-- doxytag: member="volume.h::pa_sw_volume_to_linear" ref="04da6c4572a758a0244bbfc81d370cfb" args="(pa_volume_t v) PA_GCC_CONST" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double pa_sw_volume_to_linear           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>&nbsp;</td>
          <td class="paramname"> <em>v</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert a volume to a linear factor. 
<p>
This is only valid for software volumes! 
</div>
</div><p>
<a class="anchor" name="379a97102f5b88dc82ccccffc95b8aac"></a><!-- doxytag: member="volume.h::pa_volume_snprint" ref="379a97102f5b88dc82ccccffc95b8aac" args="(char *s, size_t l, pa_volume_t v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* pa_volume_snprint           </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>l</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="volume_8h.html#6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>&nbsp;</td>
          <td class="paramname"> <em>v</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Pretty print a volume. 
<p>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.15 </dd></dl>

</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Sep 2 04:18:20 2009 for PulseAudio by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
</body>
</html>