<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.13"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>PulseAudio: volume.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">PulseAudio  <span id="projectnumber">10.0.0-1.1.mga6</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.13 --> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> $(function() { initMenu('',false,false,'search.php','Search'); }); </script> <div id="main-nav"></div> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> $(document).ready(function(){initNavTree('volume_8h_source.html','');}); </script> <div id="doc-content"> <div class="header"> <div class="headertitle"> <div class="title">volume.h</div> </div> </div><!--header--> <div class="contents"> <a href="volume_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef foovolumehfoo</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#define foovolumehfoo</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> </div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">/***</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> This file is part of PulseAudio.</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"></span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> Copyright 2004-2006 Lennart Poettering</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> Copyright 2006 Pierre Ossman <ossman@cendio.se> for Cendio AB</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"></span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> PulseAudio is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> it under the terms of the GNU Lesser General Public License as published</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> by the Free Software Foundation; either version 2.1 of the License,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> or (at your option) any later version.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"></span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> PulseAudio is distributed in the hope that it will be useful, but</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> General Public License for more details.</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"></span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> You should have received a copy of the GNU Lesser General Public License</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">***/</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <inttypes.h></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <limits.h></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <pulse/cdecl.h></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="gccmacro_8h.html">pulse/gccmacro.h</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="sample_8h.html">pulse/sample.h</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="channelmap_8h.html">pulse/channelmap.h</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="version_8h.html">pulse/version.h</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> PA_C_DECL_BEGIN</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352"> 120</a></span> <span class="keyword">typedef</span> uint32_t <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="volume_8h.html#aded56902e68e0f8ab576339bde55960e"> 123</a></span> <span class="preprocessor">#define PA_VOLUME_NORM ((pa_volume_t) 0x10000U)</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="volume_8h.html#a9e6e4562a3be216d39ad2246f0339f4c"> 126</a></span> <span class="preprocessor">#define PA_VOLUME_MUTED ((pa_volume_t) 0U)</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="volume_8h.html#afc3ad20b0ddc813e847b44afd90488ca"> 129</a></span> <span class="preprocessor">#define PA_VOLUME_MAX ((pa_volume_t) UINT32_MAX/2)</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="volume_8h.html#a353b44010677b005abd390af732eb86e"> 136</a></span> <span class="preprocessor">#define PA_VOLUME_UI_MAX (pa_sw_volume_from_dB(+11.0))</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="volume_8h.html#ae9f4578d6ad789317d2a2fb88195a732"> 139</a></span> <span class="preprocessor">#define PA_VOLUME_INVALID ((pa_volume_t) UINT32_MAX)</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="volume_8h.html#ada5f548dcb2b8c7de09bd83e2adccd2d"> 142</a></span> <span class="preprocessor">#define PA_VOLUME_IS_VALID(v) ((v) <= PA_VOLUME_MAX)</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="volume_8h.html#a7c4e15efd8cadecc75b1da13cfe50708"> 145</a></span> <span class="preprocessor">#define PA_CLAMP_VOLUME(v) (PA_CLAMP_UNLIKELY((v), PA_VOLUME_MUTED, PA_VOLUME_MAX))</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="structpa__cvolume.html"> 148</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structpa__cvolume.html">pa_cvolume</a> {</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="structpa__cvolume.html#a03f1742e241a995c6d76b6f7794fd342"> 149</a></span>  uint8_t <a class="code" href="structpa__cvolume.html#a03f1742e241a995c6d76b6f7794fd342">channels</a>; </div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="structpa__cvolume.html#ac47f79992e87428386d20411ebc9c32a"> 150</a></span>  <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> <a class="code" href="structpa__cvolume.html#ac47f79992e87428386d20411ebc9c32a">values</a>[<a class="code" href="sample_8h.html#a4c6778fd8a093f9984ce0448f81d9dcf">PA_CHANNELS_MAX</a>]; </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> } <a class="code" href="volume_8h.html#a58db6e157e614cf9699c5bead1552380">pa_cvolume</a>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="keywordtype">int</span> <a class="code" href="volume_8h.html#a84b52cdbff47aad9c058df783f342b57">pa_cvolume_equal</a>(<span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *a, <span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *b) <a class="code" href="gccmacro_8h.html#aa1c5f50faa1073e28ba469b86f6a0548">PA_GCC_PURE</a>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a>* <a class="code" href="volume_8h.html#a6fdc24192547d6ef3d5b32e746016e22">pa_cvolume_init</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *a);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="volume_8h.html#aa2701828c290031c9bca9036f5148c72"> 162</a></span> <span class="preprocessor">#define pa_cvolume_reset(a, n) pa_cvolume_set((a), (n), PA_VOLUME_NORM)</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="volume_8h.html#a04805cb4b83ded75deca9c122977d8fb"> 165</a></span> <span class="preprocessor">#define pa_cvolume_mute(a, n) pa_cvolume_set((a), (n), PA_VOLUME_MUTED)</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a>* <a class="code" href="volume_8h.html#a0777581d85a1d4bf9c831bdacaac51ac">pa_cvolume_set</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *a, <span class="keywordtype">unsigned</span> <a class="code" href="structpa__cvolume.html#a03f1742e241a995c6d76b6f7794fd342">channels</a>, <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> v);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="volume_8h.html#a4162617e79bec0c7972326cf28a98712"> 175</a></span> <span class="preprocessor">#define PA_CVOLUME_SNPRINT_MAX 320</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keywordtype">char</span> *<a class="code" href="volume_8h.html#a99f2e389f425b888d3a02ade86d7c85f">pa_cvolume_snprint</a>(<span class="keywordtype">char</span> *s, <span class="keywordtype">size_t</span> l, <span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *c);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="volume_8h.html#ac516da5ed0f43f2ff41792fef4466115"> 185</a></span> <span class="preprocessor">#define PA_SW_CVOLUME_SNPRINT_DB_MAX 448</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keywordtype">char</span> *<a class="code" href="volume_8h.html#aaf68a0e6959d18e192104802aab25717">pa_sw_cvolume_snprint_dB</a>(<span class="keywordtype">char</span> *s, <span class="keywordtype">size_t</span> l, <span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *c);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="volume_8h.html#ab7d1f1ca4bdb2ff994359b1d990c3409"> 194</a></span> <span class="preprocessor">#define PA_CVOLUME_SNPRINT_VERBOSE_MAX 1984</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keywordtype">char</span> *<a class="code" href="volume_8h.html#af0baded5d879ad10d0346a1197050d5d">pa_cvolume_snprint_verbose</a>(<span class="keywordtype">char</span> *s, <span class="keywordtype">size_t</span> l, <span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *c, <span class="keyword">const</span> <a class="code" href="structpa__channel__map.html">pa_channel_map</a> *map, <span class="keywordtype">int</span> print_dB);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="volume_8h.html#a80190278ec6e8506092d3d57d309234f"> 207</a></span> <span class="preprocessor">#define PA_VOLUME_SNPRINT_MAX 10</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keywordtype">char</span> *<a class="code" href="volume_8h.html#a379a97102f5b88dc82ccccffc95b8aac">pa_volume_snprint</a>(<span class="keywordtype">char</span> *s, <span class="keywordtype">size_t</span> l, <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> v);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="volume_8h.html#a98deb2bff93c29e036c4cc14ad3d2e8f"> 217</a></span> <span class="preprocessor">#define PA_SW_VOLUME_SNPRINT_DB_MAX 11</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="keywordtype">char</span> *<a class="code" href="volume_8h.html#abcf6e407dfaec50edc13a994b2b0d9f9">pa_sw_volume_snprint_dB</a>(<span class="keywordtype">char</span> *s, <span class="keywordtype">size_t</span> l, <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> v);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="volume_8h.html#a546b59e4beef2b68844be4e607dc0eb9"> 226</a></span> <span class="preprocessor">#define PA_VOLUME_SNPRINT_VERBOSE_MAX 35</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="keywordtype">char</span> *<a class="code" href="volume_8h.html#a00deddcbf932452475a4b3606f3859f9">pa_volume_snprint_verbose</a>(<span class="keywordtype">char</span> *s, <span class="keywordtype">size_t</span> l, <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> v, <span class="keywordtype">int</span> print_dB);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> <a class="code" href="volume_8h.html#a0f34f2c6d1b4738bf7f11ff06775dc1f">pa_cvolume_avg</a>(<span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *a) <a class="code" href="gccmacro_8h.html#aa1c5f50faa1073e28ba469b86f6a0548">PA_GCC_PURE</a>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> <a class="code" href="volume_8h.html#a1631e5a8e8a48bb67b600dee21c33e44">pa_cvolume_avg_mask</a>(<span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *a, <span class="keyword">const</span> <a class="code" href="structpa__channel__map.html">pa_channel_map</a> *cm, <a class="code" href="channelmap_8h.html#a7523d4554f7ffdcf6a9c8b1333741877">pa_channel_position_mask_t</a> mask) <a class="code" href="gccmacro_8h.html#aa1c5f50faa1073e28ba469b86f6a0548">PA_GCC_PURE</a>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> <a class="code" href="volume_8h.html#a8d65b3af7da133c78ce9def86ea54ba9">pa_cvolume_max</a>(<span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *a) <a class="code" href="gccmacro_8h.html#aa1c5f50faa1073e28ba469b86f6a0548">PA_GCC_PURE</a>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> <a class="code" href="volume_8h.html#a45d52a8d30a0042c3aaf064ab40b3047">pa_cvolume_max_mask</a>(<span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *a, <span class="keyword">const</span> <a class="code" href="structpa__channel__map.html">pa_channel_map</a> *cm, <a class="code" href="channelmap_8h.html#a7523d4554f7ffdcf6a9c8b1333741877">pa_channel_position_mask_t</a> mask) <a class="code" href="gccmacro_8h.html#aa1c5f50faa1073e28ba469b86f6a0548">PA_GCC_PURE</a>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> <a class="code" href="volume_8h.html#acf9d43b101bbe3e07b55935fe5dbb3f3">pa_cvolume_min</a>(<span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *a) <a class="code" href="gccmacro_8h.html#aa1c5f50faa1073e28ba469b86f6a0548">PA_GCC_PURE</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> <a class="code" href="volume_8h.html#aa0fb6aef11c33f84a9034f31a2f977b2">pa_cvolume_min_mask</a>(<span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *a, <span class="keyword">const</span> <a class="code" href="structpa__channel__map.html">pa_channel_map</a> *cm, <a class="code" href="channelmap_8h.html#a7523d4554f7ffdcf6a9c8b1333741877">pa_channel_position_mask_t</a> mask) <a class="code" href="gccmacro_8h.html#aa1c5f50faa1073e28ba469b86f6a0548">PA_GCC_PURE</a>;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="keywordtype">int</span> <a class="code" href="volume_8h.html#aba14d00682b29838ef39ca5a9afe8972">pa_cvolume_valid</a>(<span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *v) <a class="code" href="gccmacro_8h.html#aa1c5f50faa1073e28ba469b86f6a0548">PA_GCC_PURE</a>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="keywordtype">int</span> <a class="code" href="volume_8h.html#a2dd140d5c2fadd1d8cb7aa0eace05109">pa_cvolume_channels_equal_to</a>(<span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *a, <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> v) <a class="code" href="gccmacro_8h.html#aa1c5f50faa1073e28ba469b86f6a0548">PA_GCC_PURE</a>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div><div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="volume_8h.html#a6b8766a2f30420a83457d2e1f0f139b2"> 270</a></span> <span class="preprocessor">#define pa_cvolume_is_muted(a) pa_cvolume_channels_equal_to((a), PA_VOLUME_MUTED)</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="volume_8h.html#a0b374bbe16de9ac047fc4e5f6994390c"> 273</a></span> <span class="preprocessor">#define pa_cvolume_is_norm(a) pa_cvolume_channels_equal_to((a), PA_VOLUME_NORM)</span></div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> <a class="code" href="volume_8h.html#a1ca01f5bd640e7c5b2d3a6dad9093226">pa_sw_volume_multiply</a>(<a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> a, <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> b) <a class="code" href="gccmacro_8h.html#a318a98dce3b37977670c87a74c173b16">PA_GCC_CONST</a>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *<a class="code" href="volume_8h.html#a6ae924bdad225c405c1e2f40c22b041b">pa_sw_cvolume_multiply</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *dest, <span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *a, <span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *b);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *<a class="code" href="volume_8h.html#a3d040698f798c6cdb100771c7835c7a8">pa_sw_cvolume_multiply_scalar</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *dest, <span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *a, <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> b);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> <a class="code" href="volume_8h.html#adcf659351cef912786f53132664fa2b4">pa_sw_volume_divide</a>(<a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> a, <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> b) <a class="code" href="gccmacro_8h.html#a318a98dce3b37977670c87a74c173b16">PA_GCC_CONST</a>;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> </div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *<a class="code" href="volume_8h.html#a7392cdb5137cedc579891ac4c8c6ff7d">pa_sw_cvolume_divide</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *dest, <span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *a, <span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *b);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *<a class="code" href="volume_8h.html#ae4f20d6c7da8d906f704ced36055b555">pa_sw_cvolume_divide_scalar</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *dest, <span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *a, <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> b);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> <a class="code" href="volume_8h.html#ad638dfbc737f126e743584665ea8f557">pa_sw_volume_from_dB</a>(<span class="keywordtype">double</span> f) <a class="code" href="gccmacro_8h.html#a318a98dce3b37977670c87a74c173b16">PA_GCC_CONST</a>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="keywordtype">double</span> <a class="code" href="volume_8h.html#a297851419c1e994d9fd2cfbb49aa480a">pa_sw_volume_to_dB</a>(<a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> v) <a class="code" href="gccmacro_8h.html#a318a98dce3b37977670c87a74c173b16">PA_GCC_CONST</a>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> <a class="code" href="volume_8h.html#aafb4825a03178ee327e55ae0866b7471">pa_sw_volume_from_linear</a>(<span class="keywordtype">double</span> v) <a class="code" href="gccmacro_8h.html#a318a98dce3b37977670c87a74c173b16">PA_GCC_CONST</a>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="keywordtype">double</span> <a class="code" href="volume_8h.html#a04da6c4572a758a0244bbfc81d370cfb">pa_sw_volume_to_linear</a>(<a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> v) <a class="code" href="gccmacro_8h.html#a318a98dce3b37977670c87a74c173b16">PA_GCC_CONST</a>;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="preprocessor">#ifdef INFINITY</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="preprocessor">#define PA_DECIBEL_MININFTY ((double) -INFINITY)</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div><div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="volume_8h.html#ae0b917d42c58310ed848916058d75f27"> 325</a></span> <span class="preprocessor">#define PA_DECIBEL_MININFTY ((double) -200.0)</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *<a class="code" href="volume_8h.html#a5eab9b175690ff534492673ad30ed2e7">pa_cvolume_remap</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *v, <span class="keyword">const</span> <a class="code" href="structpa__channel__map.html">pa_channel_map</a> *from, <span class="keyword">const</span> <a class="code" href="structpa__channel__map.html">pa_channel_map</a> *to);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span> </div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="keywordtype">int</span> <a class="code" href="volume_8h.html#a9f315d36ea592c0e91407db899e5fab5">pa_cvolume_compatible</a>(<span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *v, <span class="keyword">const</span> <a class="code" href="structpa__sample__spec.html">pa_sample_spec</a> *ss) <a class="code" href="gccmacro_8h.html#aa1c5f50faa1073e28ba469b86f6a0548">PA_GCC_PURE</a>;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="keywordtype">int</span> <a class="code" href="volume_8h.html#a15263326cff59a120509bafd24565c1d">pa_cvolume_compatible_with_channel_map</a>(<span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *v, <span class="keyword">const</span> <a class="code" href="structpa__channel__map.html">pa_channel_map</a> *cm) <a class="code" href="gccmacro_8h.html#aa1c5f50faa1073e28ba469b86f6a0548">PA_GCC_PURE</a>;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="keywordtype">float</span> <a class="code" href="volume_8h.html#affea337dd40255580c9de68799e569d1">pa_cvolume_get_balance</a>(<span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *v, <span class="keyword">const</span> <a class="code" href="structpa__channel__map.html">pa_channel_map</a> *map) <a class="code" href="gccmacro_8h.html#aa1c5f50faa1073e28ba469b86f6a0548">PA_GCC_PURE</a>;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a>* <a class="code" href="volume_8h.html#a0cad9c475a9a318c433f12ff019d7fec">pa_cvolume_set_balance</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *v, <span class="keyword">const</span> <a class="code" href="structpa__channel__map.html">pa_channel_map</a> *map, <span class="keywordtype">float</span> new_balance);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="keywordtype">float</span> <a class="code" href="volume_8h.html#aaf78aa9297c11860338ffa3c958f9a36">pa_cvolume_get_fade</a>(<span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *v, <span class="keyword">const</span> <a class="code" href="structpa__channel__map.html">pa_channel_map</a> *map) <a class="code" href="gccmacro_8h.html#aa1c5f50faa1073e28ba469b86f6a0548">PA_GCC_PURE</a>;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a>* <a class="code" href="volume_8h.html#a4379c7e84379121f4baaba0aefaf76ee">pa_cvolume_set_fade</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *v, <span class="keyword">const</span> <a class="code" href="structpa__channel__map.html">pa_channel_map</a> *map, <span class="keywordtype">float</span> new_fade);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> </div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keywordtype">float</span> <a class="code" href="volume_8h.html#a0dfe2d5f3570b7ed745eec7b6cc19c08">pa_cvolume_get_lfe_balance</a>(<span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *v, <span class="keyword">const</span> <a class="code" href="structpa__channel__map.html">pa_channel_map</a> *map) <a class="code" href="gccmacro_8h.html#aa1c5f50faa1073e28ba469b86f6a0548">PA_GCC_PURE</a>;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a>* <a class="code" href="volume_8h.html#a69c70c559eac2fdeb5a42427e8295ca8">pa_cvolume_set_lfe_balance</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *v, <span class="keyword">const</span> <a class="code" href="structpa__channel__map.html">pa_channel_map</a> *map, <span class="keywordtype">float</span> new_balance);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a>* <a class="code" href="volume_8h.html#a175fa9c547655cd868b4812755a0a113">pa_cvolume_scale</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *v, <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> max);</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a>* <a class="code" href="volume_8h.html#a830ad2a196782fcac20ab3d3ccf856bf">pa_cvolume_scale_mask</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *v, <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> max, <a class="code" href="structpa__channel__map.html">pa_channel_map</a> *cm, <a class="code" href="channelmap_8h.html#a7523d4554f7ffdcf6a9c8b1333741877">pa_channel_position_mask_t</a> mask);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a>* <a class="code" href="volume_8h.html#a162e08219b4de7d4bc96d25c8b3e0d44">pa_cvolume_set_position</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *cv, <span class="keyword">const</span> <a class="code" href="structpa__channel__map.html">pa_channel_map</a> *map, <a class="code" href="channelmap_8h.html#a73a7ec05f42b21cb70ba4405b54177f6">pa_channel_position_t</a> t, <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> v);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> </div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> <a class="code" href="volume_8h.html#aa50b7a4b2e1335e0d3ba4a64d6577b26">pa_cvolume_get_position</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *cv, <span class="keyword">const</span> <a class="code" href="structpa__channel__map.html">pa_channel_map</a> *map, <a class="code" href="channelmap_8h.html#a73a7ec05f42b21cb70ba4405b54177f6">pa_channel_position_t</a> t) <a class="code" href="gccmacro_8h.html#aa1c5f50faa1073e28ba469b86f6a0548">PA_GCC_PURE</a>;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span> </div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a>* <a class="code" href="volume_8h.html#af7c6b663bfdc7c527475a0690bc7113b">pa_cvolume_merge</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *dest, <span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *a, <span class="keyword">const</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a> *b);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a>* <a class="code" href="volume_8h.html#a0091f0005e1c097d64af5ba7d088b394">pa_cvolume_inc_clamp</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *v, <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> inc, <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> limit);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span> </div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a>* <a class="code" href="volume_8h.html#a26b4a370e6fff4b318acd3a7ac055d7a">pa_cvolume_inc</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *v, <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> inc);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span> </div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <a class="code" href="structpa__cvolume.html">pa_cvolume</a>* <a class="code" href="volume_8h.html#a3d01d4da8c279bd66c0d09c7310ef95c">pa_cvolume_dec</a>(<a class="code" href="structpa__cvolume.html">pa_cvolume</a> *v, <a class="code" href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a> dec);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span> PA_C_DECL_END</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="preprocessor">#endif</span></div><div class="ttc" id="structpa__cvolume_html_ac47f79992e87428386d20411ebc9c32a"><div class="ttname"><a href="structpa__cvolume.html#ac47f79992e87428386d20411ebc9c32a">pa_cvolume::values</a></div><div class="ttdeci">pa_volume_t values[PA_CHANNELS_MAX]</div><div class="ttdoc">Per-channel volume. </div><div class="ttdef"><b>Definition:</b> volume.h:150</div></div> <div class="ttc" id="volume_8h_html_a58db6e157e614cf9699c5bead1552380"><div class="ttname"><a href="volume_8h.html#a58db6e157e614cf9699c5bead1552380">pa_cvolume</a></div><div class="ttdeci">struct pa_cvolume pa_cvolume</div><div class="ttdoc">A structure encapsulating a per-channel volume. </div></div> <div class="ttc" id="volume_8h_html_adcf659351cef912786f53132664fa2b4"><div class="ttname"><a href="volume_8h.html#adcf659351cef912786f53132664fa2b4">pa_sw_volume_divide</a></div><div class="ttdeci">pa_volume_t pa_sw_volume_divide(pa_volume_t a, pa_volume_t b) PA_GCC_CONST</div><div class="ttdoc">Divide two volume specifications, return the result. </div></div> <div class="ttc" id="structpa__sample__spec_html"><div class="ttname"><a href="structpa__sample__spec.html">pa_sample_spec</a></div><div class="ttdoc">A sample format and attribute specification. </div><div class="ttdef"><b>Definition:</b> sample.h:248</div></div> <div class="ttc" id="volume_8h_html_a0777581d85a1d4bf9c831bdacaac51ac"><div class="ttname"><a href="volume_8h.html#a0777581d85a1d4bf9c831bdacaac51ac">pa_cvolume_set</a></div><div class="ttdeci">pa_cvolume * pa_cvolume_set(pa_cvolume *a, unsigned channels, pa_volume_t v)</div><div class="ttdoc">Set the volume of the specified number of channels to the volume v. </div></div> <div class="ttc" id="volume_8h_html_a26b4a370e6fff4b318acd3a7ac055d7a"><div class="ttname"><a href="volume_8h.html#a26b4a370e6fff4b318acd3a7ac055d7a">pa_cvolume_inc</a></div><div class="ttdeci">pa_cvolume * pa_cvolume_inc(pa_cvolume *v, pa_volume_t inc)</div><div class="ttdoc">Increase the volume passed in by &#39;inc&#39;. </div></div> <div class="ttc" id="volume_8h_html_a3d040698f798c6cdb100771c7835c7a8"><div class="ttname"><a href="volume_8h.html#a3d040698f798c6cdb100771c7835c7a8">pa_sw_cvolume_multiply_scalar</a></div><div class="ttdeci">pa_cvolume * pa_sw_cvolume_multiply_scalar(pa_cvolume *dest, const pa_cvolume *a, pa_volume_t b)</div><div class="ttdoc">Multiply a per-channel volume with a scalar volume and return the result in *dest. </div></div> <div class="ttc" id="channelmap_8h_html_a7523d4554f7ffdcf6a9c8b1333741877"><div class="ttname"><a href="channelmap_8h.html#a7523d4554f7ffdcf6a9c8b1333741877">pa_channel_position_mask_t</a></div><div class="ttdeci">uint64_t pa_channel_position_mask_t</div><div class="ttdoc">A mask of channel positions. </div><div class="ttdef"><b>Definition:</b> channelmap.h:210</div></div> <div class="ttc" id="volume_8h_html_af0baded5d879ad10d0346a1197050d5d"><div class="ttname"><a href="volume_8h.html#af0baded5d879ad10d0346a1197050d5d">pa_cvolume_snprint_verbose</a></div><div class="ttdeci">char * pa_cvolume_snprint_verbose(char *s, size_t l, const pa_cvolume *c, const pa_channel_map *map, int print_dB)</div><div class="ttdoc">Pretty print a volume structure in a verbose way. </div></div> <div class="ttc" id="volume_8h_html_a0dfe2d5f3570b7ed745eec7b6cc19c08"><div class="ttname"><a href="volume_8h.html#a0dfe2d5f3570b7ed745eec7b6cc19c08">pa_cvolume_get_lfe_balance</a></div><div class="ttdeci">float pa_cvolume_get_lfe_balance(const pa_cvolume *v, const pa_channel_map *map) PA_GCC_PURE</div><div class="ttdoc">Calculate a &#39;lfe balance&#39; value for the specified volume with the specified channel map...</div></div> <div class="ttc" id="volume_8h_html_abcf6e407dfaec50edc13a994b2b0d9f9"><div class="ttname"><a href="volume_8h.html#abcf6e407dfaec50edc13a994b2b0d9f9">pa_sw_volume_snprint_dB</a></div><div class="ttdeci">char * pa_sw_volume_snprint_dB(char *s, size_t l, pa_volume_t v)</div><div class="ttdoc">Pretty print a volume but show dB values. </div></div> <div class="ttc" id="volume_8h_html_a69c70c559eac2fdeb5a42427e8295ca8"><div class="ttname"><a href="volume_8h.html#a69c70c559eac2fdeb5a42427e8295ca8">pa_cvolume_set_lfe_balance</a></div><div class="ttdeci">pa_cvolume * pa_cvolume_set_lfe_balance(pa_cvolume *v, const pa_channel_map *map, float new_balance)</div><div class="ttdoc">Adjust the &#39;lfe balance&#39; value for the specified volume with the specified channel map...</div></div> <div class="ttc" id="sample_8h_html_a4c6778fd8a093f9984ce0448f81d9dcf"><div class="ttname"><a href="sample_8h.html#a4c6778fd8a093f9984ce0448f81d9dcf">PA_CHANNELS_MAX</a></div><div class="ttdeci">#define PA_CHANNELS_MAX</div><div class="ttdoc">Maximum number of allowed channels. </div><div class="ttdef"><b>Definition:</b> sample.h:128</div></div> <div class="ttc" id="structpa__cvolume_html"><div class="ttname"><a href="structpa__cvolume.html">pa_cvolume</a></div><div class="ttdoc">A structure encapsulating a per-channel volume. </div><div class="ttdef"><b>Definition:</b> volume.h:148</div></div> <div class="ttc" id="volume_8h_html_a297851419c1e994d9fd2cfbb49aa480a"><div class="ttname"><a href="volume_8h.html#a297851419c1e994d9fd2cfbb49aa480a">pa_sw_volume_to_dB</a></div><div class="ttdeci">double pa_sw_volume_to_dB(pa_volume_t v) PA_GCC_CONST</div><div class="ttdoc">Convert a volume to a decibel value (amplitude, not power). </div></div> <div class="ttc" id="volume_8h_html_a379a97102f5b88dc82ccccffc95b8aac"><div class="ttname"><a href="volume_8h.html#a379a97102f5b88dc82ccccffc95b8aac">pa_volume_snprint</a></div><div class="ttdeci">char * pa_volume_snprint(char *s, size_t l, pa_volume_t v)</div><div class="ttdoc">Pretty print a volume. </div></div> <div class="ttc" id="volume_8h_html_affea337dd40255580c9de68799e569d1"><div class="ttname"><a href="volume_8h.html#affea337dd40255580c9de68799e569d1">pa_cvolume_get_balance</a></div><div class="ttdeci">float pa_cvolume_get_balance(const pa_cvolume *v, const pa_channel_map *map) PA_GCC_PURE</div><div class="ttdoc">Calculate a &#39;balance&#39; value for the specified volume with the specified channel map. </div></div> <div class="ttc" id="volume_8h_html_aafb4825a03178ee327e55ae0866b7471"><div class="ttname"><a href="volume_8h.html#aafb4825a03178ee327e55ae0866b7471">pa_sw_volume_from_linear</a></div><div class="ttdeci">pa_volume_t pa_sw_volume_from_linear(double v) PA_GCC_CONST</div><div class="ttdoc">Convert a linear factor to a volume. </div></div> <div class="ttc" id="volume_8h_html_aa50b7a4b2e1335e0d3ba4a64d6577b26"><div class="ttname"><a href="volume_8h.html#aa50b7a4b2e1335e0d3ba4a64d6577b26">pa_cvolume_get_position</a></div><div class="ttdeci">pa_volume_t pa_cvolume_get_position(pa_cvolume *cv, const pa_channel_map *map, pa_channel_position_t t) PA_GCC_PURE</div><div class="ttdoc">Get the maximum volume of all channels at the specified channel position. </div></div> <div class="ttc" id="channelmap_8h_html_a73a7ec05f42b21cb70ba4405b54177f6"><div class="ttname"><a href="channelmap_8h.html#a73a7ec05f42b21cb70ba4405b54177f6">pa_channel_position_t</a></div><div class="ttdeci">enum pa_channel_position pa_channel_position_t</div><div class="ttdoc">A list of channel labels. </div></div> <div class="ttc" id="volume_8h_html_a175fa9c547655cd868b4812755a0a113"><div class="ttname"><a href="volume_8h.html#a175fa9c547655cd868b4812755a0a113">pa_cvolume_scale</a></div><div class="ttdeci">pa_cvolume * pa_cvolume_scale(pa_cvolume *v, pa_volume_t max)</div><div class="ttdoc">Scale the passed pa_cvolume structure so that the maximum volume of all channels equals max...</div></div> <div class="ttc" id="volume_8h_html_a5eab9b175690ff534492673ad30ed2e7"><div class="ttname"><a href="volume_8h.html#a5eab9b175690ff534492673ad30ed2e7">pa_cvolume_remap</a></div><div class="ttdeci">pa_cvolume * pa_cvolume_remap(pa_cvolume *v, const pa_channel_map *from, const pa_channel_map *to)</div><div class="ttdoc">Remap a volume from one channel mapping to a different channel mapping. </div></div> <div class="ttc" id="gccmacro_8h_html_a318a98dce3b37977670c87a74c173b16"><div class="ttname"><a href="gccmacro_8h.html#a318a98dce3b37977670c87a74c173b16">PA_GCC_CONST</a></div><div class="ttdeci">#define PA_GCC_CONST</div><div class="ttdoc">This function&#39;s return value depends only the arguments list (stricter version of PA_GCC_PURE) ...</div><div class="ttdef"><b>Definition:</b> gccmacro.h:82</div></div> <div class="ttc" id="volume_8h_html_a99f2e389f425b888d3a02ade86d7c85f"><div class="ttname"><a href="volume_8h.html#a99f2e389f425b888d3a02ade86d7c85f">pa_cvolume_snprint</a></div><div class="ttdeci">char * pa_cvolume_snprint(char *s, size_t l, const pa_cvolume *c)</div><div class="ttdoc">Pretty print a volume structure. </div></div> <div class="ttc" id="volume_8h_html_a04da6c4572a758a0244bbfc81d370cfb"><div class="ttname"><a href="volume_8h.html#a04da6c4572a758a0244bbfc81d370cfb">pa_sw_volume_to_linear</a></div><div class="ttdeci">double pa_sw_volume_to_linear(pa_volume_t v) PA_GCC_CONST</div><div class="ttdoc">Convert a volume to a linear factor. </div></div> <div class="ttc" id="gccmacro_8h_html_aa1c5f50faa1073e28ba469b86f6a0548"><div class="ttname"><a href="gccmacro_8h.html#aa1c5f50faa1073e28ba469b86f6a0548">PA_GCC_PURE</a></div><div class="ttdeci">#define PA_GCC_PURE</div><div class="ttdoc">This function&#39;s return value depends only the arguments list and global state. </div><div class="ttdef"><b>Definition:</b> gccmacro.h:73</div></div> <div class="ttc" id="channelmap_8h_html"><div class="ttname"><a href="channelmap_8h.html">channelmap.h</a></div><div class="ttdoc">Constants and routines for channel mapping handling. </div></div> <div class="ttc" id="volume_8h_html_a6ae924bdad225c405c1e2f40c22b041b"><div class="ttname"><a href="volume_8h.html#a6ae924bdad225c405c1e2f40c22b041b">pa_sw_cvolume_multiply</a></div><div class="ttdeci">pa_cvolume * pa_sw_cvolume_multiply(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b)</div><div class="ttdoc">Multiply two per-channel volumes and return the result in *dest. </div></div> <div class="ttc" id="volume_8h_html_ae4f20d6c7da8d906f704ced36055b555"><div class="ttname"><a href="volume_8h.html#ae4f20d6c7da8d906f704ced36055b555">pa_sw_cvolume_divide_scalar</a></div><div class="ttdeci">pa_cvolume * pa_sw_cvolume_divide_scalar(pa_cvolume *dest, const pa_cvolume *a, pa_volume_t b)</div><div class="ttdoc">Divide a per-channel volume by a scalar volume and return the result in *dest. </div></div> <div class="ttc" id="volume_8h_html_a1631e5a8e8a48bb67b600dee21c33e44"><div class="ttname"><a href="volume_8h.html#a1631e5a8e8a48bb67b600dee21c33e44">pa_cvolume_avg_mask</a></div><div class="ttdeci">pa_volume_t pa_cvolume_avg_mask(const pa_cvolume *a, const pa_channel_map *cm, pa_channel_position_mask_t mask) PA_GCC_PURE</div><div class="ttdoc">Return the average volume of all channels that are included in the specified channel map with the spe...</div></div> <div class="ttc" id="volume_8h_html_a0091f0005e1c097d64af5ba7d088b394"><div class="ttname"><a href="volume_8h.html#a0091f0005e1c097d64af5ba7d088b394">pa_cvolume_inc_clamp</a></div><div class="ttdeci">pa_cvolume * pa_cvolume_inc_clamp(pa_cvolume *v, pa_volume_t inc, pa_volume_t limit)</div><div class="ttdoc">Increase the volume passed in by &#39;inc&#39;, but not exceeding &#39;limit&#39;. </div></div> <div class="ttc" id="gccmacro_8h_html"><div class="ttname"><a href="gccmacro_8h.html">gccmacro.h</a></div><div class="ttdoc">GCC attribute macros. </div></div> <div class="ttc" id="volume_8h_html_acf9d43b101bbe3e07b55935fe5dbb3f3"><div class="ttname"><a href="volume_8h.html#acf9d43b101bbe3e07b55935fe5dbb3f3">pa_cvolume_min</a></div><div class="ttdeci">pa_volume_t pa_cvolume_min(const pa_cvolume *a) PA_GCC_PURE</div><div class="ttdoc">Return the minimum volume of all channels. </div></div> <div class="ttc" id="volume_8h_html_a00deddcbf932452475a4b3606f3859f9"><div class="ttname"><a href="volume_8h.html#a00deddcbf932452475a4b3606f3859f9">pa_volume_snprint_verbose</a></div><div class="ttdeci">char * pa_volume_snprint_verbose(char *s, size_t l, pa_volume_t v, int print_dB)</div><div class="ttdoc">Pretty print a volume in a verbose way. </div></div> <div class="ttc" id="volume_8h_html_a0cad9c475a9a318c433f12ff019d7fec"><div class="ttname"><a href="volume_8h.html#a0cad9c475a9a318c433f12ff019d7fec">pa_cvolume_set_balance</a></div><div class="ttdeci">pa_cvolume * pa_cvolume_set_balance(pa_cvolume *v, const pa_channel_map *map, float new_balance)</div><div class="ttdoc">Adjust the &#39;balance&#39; value for the specified volume with the specified channel map. </div></div> <div class="ttc" id="volume_8h_html_a84b52cdbff47aad9c058df783f342b57"><div class="ttname"><a href="volume_8h.html#a84b52cdbff47aad9c058df783f342b57">pa_cvolume_equal</a></div><div class="ttdeci">int pa_cvolume_equal(const pa_cvolume *a, const pa_cvolume *b) PA_GCC_PURE</div><div class="ttdoc">Return non-zero when *a == *b. </div></div> <div class="ttc" id="version_8h_html"><div class="ttname"><a href="version_8h.html">version.h</a></div><div class="ttdoc">Define header version. </div></div> <div class="ttc" id="volume_8h_html_a162e08219b4de7d4bc96d25c8b3e0d44"><div class="ttname"><a href="volume_8h.html#a162e08219b4de7d4bc96d25c8b3e0d44">pa_cvolume_set_position</a></div><div class="ttdeci">pa_cvolume * pa_cvolume_set_position(pa_cvolume *cv, const pa_channel_map *map, pa_channel_position_t t, pa_volume_t v)</div><div class="ttdoc">Set the passed volume to all channels at the specified channel position. </div></div> <div class="ttc" id="volume_8h_html_aa0fb6aef11c33f84a9034f31a2f977b2"><div class="ttname"><a href="volume_8h.html#aa0fb6aef11c33f84a9034f31a2f977b2">pa_cvolume_min_mask</a></div><div class="ttdeci">pa_volume_t pa_cvolume_min_mask(const pa_cvolume *a, const pa_channel_map *cm, pa_channel_position_mask_t mask) PA_GCC_PURE</div><div class="ttdoc">Return the minimum volume of all channels that are included in the specified channel map with the spe...</div></div> <div class="ttc" id="sample_8h_html"><div class="ttname"><a href="sample_8h.html">sample.h</a></div><div class="ttdoc">Constants and routines for sample type handling. </div></div> <div class="ttc" id="volume_8h_html_a0f34f2c6d1b4738bf7f11ff06775dc1f"><div class="ttname"><a href="volume_8h.html#a0f34f2c6d1b4738bf7f11ff06775dc1f">pa_cvolume_avg</a></div><div class="ttdeci">pa_volume_t pa_cvolume_avg(const pa_cvolume *a) PA_GCC_PURE</div><div class="ttdoc">Return the average volume of all channels. </div></div> <div class="ttc" id="volume_8h_html_af7c6b663bfdc7c527475a0690bc7113b"><div class="ttname"><a href="volume_8h.html#af7c6b663bfdc7c527475a0690bc7113b">pa_cvolume_merge</a></div><div class="ttdeci">pa_cvolume * pa_cvolume_merge(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b)</div><div class="ttdoc">This goes through all channels in a and b and sets the corresponding channel in dest to the greater v...</div></div> <div class="ttc" id="structpa__cvolume_html_a03f1742e241a995c6d76b6f7794fd342"><div class="ttname"><a href="structpa__cvolume.html#a03f1742e241a995c6d76b6f7794fd342">pa_cvolume::channels</a></div><div class="ttdeci">uint8_t channels</div><div class="ttdoc">Number of channels. </div><div class="ttdef"><b>Definition:</b> volume.h:149</div></div> <div class="ttc" id="volume_8h_html_aaf68a0e6959d18e192104802aab25717"><div class="ttname"><a href="volume_8h.html#aaf68a0e6959d18e192104802aab25717">pa_sw_cvolume_snprint_dB</a></div><div class="ttdeci">char * pa_sw_cvolume_snprint_dB(char *s, size_t l, const pa_cvolume *c)</div><div class="ttdoc">Pretty print a volume structure but show dB values. </div></div> <div class="ttc" id="volume_8h_html_a9f315d36ea592c0e91407db899e5fab5"><div class="ttname"><a href="volume_8h.html#a9f315d36ea592c0e91407db899e5fab5">pa_cvolume_compatible</a></div><div class="ttdeci">int pa_cvolume_compatible(const pa_cvolume *v, const pa_sample_spec *ss) PA_GCC_PURE</div><div class="ttdoc">Return non-zero if the specified volume is compatible with the specified sample spec. </div></div> <div class="ttc" id="volume_8h_html_aba14d00682b29838ef39ca5a9afe8972"><div class="ttname"><a href="volume_8h.html#aba14d00682b29838ef39ca5a9afe8972">pa_cvolume_valid</a></div><div class="ttdeci">int pa_cvolume_valid(const pa_cvolume *v) PA_GCC_PURE</div><div class="ttdoc">Return non-zero when the passed cvolume structure is valid. </div></div> <div class="ttc" id="volume_8h_html_a4379c7e84379121f4baaba0aefaf76ee"><div class="ttname"><a href="volume_8h.html#a4379c7e84379121f4baaba0aefaf76ee">pa_cvolume_set_fade</a></div><div class="ttdeci">pa_cvolume * pa_cvolume_set_fade(pa_cvolume *v, const pa_channel_map *map, float new_fade)</div><div class="ttdoc">Adjust the &#39;fade&#39; value (i.e. &#39;balance&#39; between front and rear) for the specified volume with the spe...</div></div> <div class="ttc" id="volume_8h_html_a6fdc24192547d6ef3d5b32e746016e22"><div class="ttname"><a href="volume_8h.html#a6fdc24192547d6ef3d5b32e746016e22">pa_cvolume_init</a></div><div class="ttdeci">pa_cvolume * pa_cvolume_init(pa_cvolume *a)</div><div class="ttdoc">Initialize the specified volume and return a pointer to it. </div></div> <div class="ttc" id="volume_8h_html_a7392cdb5137cedc579891ac4c8c6ff7d"><div class="ttname"><a href="volume_8h.html#a7392cdb5137cedc579891ac4c8c6ff7d">pa_sw_cvolume_divide</a></div><div class="ttdeci">pa_cvolume * pa_sw_cvolume_divide(pa_cvolume *dest, const pa_cvolume *a, const pa_cvolume *b)</div><div class="ttdoc">Divide two per-channel volumes and return the result in *dest. </div></div> <div class="ttc" id="volume_8h_html_a6d671c65284ff2e94d3773c7368a0352"><div class="ttname"><a href="volume_8h.html#a6d671c65284ff2e94d3773c7368a0352">pa_volume_t</a></div><div class="ttdeci">uint32_t pa_volume_t</div><div class="ttdoc">Volume specification: PA_VOLUME_MUTED: silence; < PA_VOLUME_NORM: decreased volume; PA_VOLUME_NORM: n...</div><div class="ttdef"><b>Definition:</b> volume.h:120</div></div> <div class="ttc" id="volume_8h_html_a1ca01f5bd640e7c5b2d3a6dad9093226"><div class="ttname"><a href="volume_8h.html#a1ca01f5bd640e7c5b2d3a6dad9093226">pa_sw_volume_multiply</a></div><div class="ttdeci">pa_volume_t pa_sw_volume_multiply(pa_volume_t a, pa_volume_t b) PA_GCC_CONST</div><div class="ttdoc">Multiply two volume specifications, return the result. </div></div> <div class="ttc" id="volume_8h_html_a3d01d4da8c279bd66c0d09c7310ef95c"><div class="ttname"><a href="volume_8h.html#a3d01d4da8c279bd66c0d09c7310ef95c">pa_cvolume_dec</a></div><div class="ttdeci">pa_cvolume * pa_cvolume_dec(pa_cvolume *v, pa_volume_t dec)</div><div class="ttdoc">Decrease the volume passed in by &#39;dec&#39;. </div></div> <div class="ttc" id="structpa__channel__map_html"><div class="ttname"><a href="structpa__channel__map.html">pa_channel_map</a></div><div class="ttdoc">A channel map which can be used to attach labels to specific channels of a stream. </div><div class="ttdef"><b>Definition:</b> channelmap.h:262</div></div> <div class="ttc" id="volume_8h_html_a8d65b3af7da133c78ce9def86ea54ba9"><div class="ttname"><a href="volume_8h.html#a8d65b3af7da133c78ce9def86ea54ba9">pa_cvolume_max</a></div><div class="ttdeci">pa_volume_t pa_cvolume_max(const pa_cvolume *a) PA_GCC_PURE</div><div class="ttdoc">Return the maximum volume of all channels. </div></div> <div class="ttc" id="volume_8h_html_aaf78aa9297c11860338ffa3c958f9a36"><div class="ttname"><a href="volume_8h.html#aaf78aa9297c11860338ffa3c958f9a36">pa_cvolume_get_fade</a></div><div class="ttdeci">float pa_cvolume_get_fade(const pa_cvolume *v, const pa_channel_map *map) PA_GCC_PURE</div><div class="ttdoc">Calculate a &#39;fade&#39; value (i.e. &#39;balance&#39; between front and rear) for the specified volume with the sp...</div></div> <div class="ttc" id="volume_8h_html_a15263326cff59a120509bafd24565c1d"><div class="ttname"><a href="volume_8h.html#a15263326cff59a120509bafd24565c1d">pa_cvolume_compatible_with_channel_map</a></div><div class="ttdeci">int pa_cvolume_compatible_with_channel_map(const pa_cvolume *v, const pa_channel_map *cm) PA_GCC_PURE</div><div class="ttdoc">Return non-zero if the specified volume is compatible with the specified sample spec. </div></div> <div class="ttc" id="volume_8h_html_a45d52a8d30a0042c3aaf064ab40b3047"><div class="ttname"><a href="volume_8h.html#a45d52a8d30a0042c3aaf064ab40b3047">pa_cvolume_max_mask</a></div><div class="ttdeci">pa_volume_t pa_cvolume_max_mask(const pa_cvolume *a, const pa_channel_map *cm, pa_channel_position_mask_t mask) PA_GCC_PURE</div><div class="ttdoc">Return the maximum volume of all channels that are included in the specified channel map with the spe...</div></div> <div class="ttc" id="volume_8h_html_a2dd140d5c2fadd1d8cb7aa0eace05109"><div class="ttname"><a href="volume_8h.html#a2dd140d5c2fadd1d8cb7aa0eace05109">pa_cvolume_channels_equal_to</a></div><div class="ttdeci">int pa_cvolume_channels_equal_to(const pa_cvolume *a, pa_volume_t v) PA_GCC_PURE</div><div class="ttdoc">Return non-zero if the volume of all channels is equal to the specified value. </div></div> <div class="ttc" id="volume_8h_html_a830ad2a196782fcac20ab3d3ccf856bf"><div class="ttname"><a href="volume_8h.html#a830ad2a196782fcac20ab3d3ccf856bf">pa_cvolume_scale_mask</a></div><div class="ttdeci">pa_cvolume * pa_cvolume_scale_mask(pa_cvolume *v, pa_volume_t max, pa_channel_map *cm, pa_channel_position_mask_t mask)</div><div class="ttdoc">Scale the passed pa_cvolume structure so that the maximum volume of all channels selected via cm/mask...</div></div> <div class="ttc" id="volume_8h_html_ad638dfbc737f126e743584665ea8f557"><div class="ttname"><a href="volume_8h.html#ad638dfbc737f126e743584665ea8f557">pa_sw_volume_from_dB</a></div><div class="ttdeci">pa_volume_t pa_sw_volume_from_dB(double f) PA_GCC_CONST</div><div class="ttdoc">Convert a decibel value to a volume (amplitude, not power). </div></div> </div><!-- fragment --></div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_ec5b0a79aff2db41fe5d1b9326f09c28.html">pulse</a></li><li class="navelem"><a class="el" href="volume_8h.html">volume.h</a></li> <li class="footer">Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li> </ul> </div> </body> </html>