Sophie

Sophie

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

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: mainloop-api.h Source File</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>
<h1>mainloop-api.h</h1><a href="mainloop-api_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef foomainloopapihfoo</span>
<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define foomainloopapihfoo</span>
<a name="l00003"></a>00003 <span class="preprocessor"></span>
<a name="l00004"></a>00004 <span class="comment">/***</span>
<a name="l00005"></a>00005 <span class="comment">  This file is part of PulseAudio.</span>
<a name="l00006"></a>00006 <span class="comment"></span>
<a name="l00007"></a>00007 <span class="comment">  Copyright 2004-2006 Lennart Poettering</span>
<a name="l00008"></a>00008 <span class="comment">  Copyright 2006 Pierre Ossman &lt;ossman@cendio.se&gt; for Cendio AB</span>
<a name="l00009"></a>00009 <span class="comment"></span>
<a name="l00010"></a>00010 <span class="comment">  PulseAudio is free software; you can redistribute it and/or modify</span>
<a name="l00011"></a>00011 <span class="comment">  it under the terms of the GNU Lesser General Public License as</span>
<a name="l00012"></a>00012 <span class="comment">  published by the Free Software Foundation; either version 2.1 of the</span>
<a name="l00013"></a>00013 <span class="comment">  License, or (at your option) any later version.</span>
<a name="l00014"></a>00014 <span class="comment"></span>
<a name="l00015"></a>00015 <span class="comment">  PulseAudio is distributed in the hope that it will be useful, but</span>
<a name="l00016"></a>00016 <span class="comment">  WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00017"></a>00017 <span class="comment">  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00018"></a>00018 <span class="comment">  Lesser General Public License for more details.</span>
<a name="l00019"></a>00019 <span class="comment"></span>
<a name="l00020"></a>00020 <span class="comment">  You should have received a copy of the GNU Lesser General Public</span>
<a name="l00021"></a>00021 <span class="comment">  License along with PulseAudio; if not, write to the Free Software</span>
<a name="l00022"></a>00022 <span class="comment">  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307</span>
<a name="l00023"></a>00023 <span class="comment">  USA.</span>
<a name="l00024"></a>00024 <span class="comment">***/</span>
<a name="l00025"></a>00025 
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;sys/time.h&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;time.h&gt;</span>
<a name="l00028"></a>00028 
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;pulse/cdecl.h&gt;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &lt;<a class="code" href="version_8h.html" title="Define header version.">pulse/version.h</a>&gt;</span>
<a name="l00031"></a>00031 
<a name="l00047"></a>00047 PA_C_DECL_BEGIN
<a name="l00048"></a>00048 
<a name="l00050"></a><a class="code" href="mainloop-api_8h.html#02723ebcaea4464cd8d63845d4c2dd92">00050</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structpa__mainloop__api.html" title="An abstract mainloop API vtable.">pa_mainloop_api</a> <a class="code" href="structpa__mainloop__api.html" title="An abstract mainloop API vtable.">pa_mainloop_api</a>;
<a name="l00051"></a>00051 
<a name="l00053"></a><a class="code" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa">00053</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa" title="A bitmask for IO events.">pa_io_event_flags</a> {
<a name="l00054"></a><a class="code" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa458d976392190c7626b4f789bf11b2ea">00054</a>     <a class="code" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa458d976392190c7626b4f789bf11b2ea" title="No event.">PA_IO_EVENT_NULL</a> = 0,     
<a name="l00055"></a><a class="code" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1faba9fbd1e6cb3031098a2aaa144c78336">00055</a>     <a class="code" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1faba9fbd1e6cb3031098a2aaa144c78336" title="Input event.">PA_IO_EVENT_INPUT</a> = 1,    
<a name="l00056"></a><a class="code" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa3aff35dad0cd23ae3796b3141fee4dce">00056</a>     <a class="code" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa3aff35dad0cd23ae3796b3141fee4dce" title="Output event.">PA_IO_EVENT_OUTPUT</a> = 2,   
<a name="l00057"></a><a class="code" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa9b6a006b1dc3894fd6bd8d5d99be5831">00057</a>     <a class="code" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa9b6a006b1dc3894fd6bd8d5d99be5831" title="Hangup event.">PA_IO_EVENT_HANGUP</a> = 4,   
<a name="l00058"></a><a class="code" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa7e0f4c300b66f92e0c59a0d56326f488">00058</a>     <a class="code" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa7e0f4c300b66f92e0c59a0d56326f488" title="Error event.">PA_IO_EVENT_ERROR</a> = 8     
<a name="l00059"></a>00059 } <a class="code" href="mainloop-api_8h.html#01d415df4f23e46b20cd218678c4c9a7" title="A bitmask for IO events.">pa_io_event_flags_t</a>;
<a name="l00060"></a>00060 
<a name="l00062"></a><a class="code" href="mainloop-api_8h.html#e7acb1df28956a7761ee5488167840a3">00062</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="mainloop-api_8h.html#e7acb1df28956a7761ee5488167840a3" title="An opaque IO event source object.">pa_io_event</a> <a class="code" href="mainloop-api_8h.html#e7acb1df28956a7761ee5488167840a3" title="An opaque IO event source object.">pa_io_event</a>;
<a name="l00064"></a><a class="code" href="mainloop-api_8h.html#6efed27d20bcdd5a83ca31633bbae024">00064</a> <span class="keyword">typedef</span> void (*<a class="code" href="mainloop-api_8h.html#6efed27d20bcdd5a83ca31633bbae024" title="An IO event callback protoype.">pa_io_event_cb_t</a>)(<a class="code" href="structpa__mainloop__api.html" title="An abstract mainloop API vtable.">pa_mainloop_api</a>*ea, <a class="code" href="mainloop-api_8h.html#e7acb1df28956a7761ee5488167840a3" title="An opaque IO event source object.">pa_io_event</a>* e, <span class="keywordtype">int</span> fd, <a class="code" href="mainloop-api_8h.html#01d415df4f23e46b20cd218678c4c9a7" title="A bitmask for IO events.">pa_io_event_flags_t</a> events, <span class="keywordtype">void</span> *userdata);
<a name="l00066"></a><a class="code" href="mainloop-api_8h.html#654d65737cc659a1613815c06d1ea5e4">00066</a> <span class="keyword">typedef</span> void (*<a class="code" href="mainloop-api_8h.html#654d65737cc659a1613815c06d1ea5e4" title="A IO event destroy callback prototype \ since 0.9.3.">pa_io_event_destroy_cb_t</a>)(<a class="code" href="structpa__mainloop__api.html" title="An abstract mainloop API vtable.">pa_mainloop_api</a>*a, <a class="code" href="mainloop-api_8h.html#e7acb1df28956a7761ee5488167840a3" title="An opaque IO event source object.">pa_io_event</a> *e, <span class="keywordtype">void</span> *userdata);
<a name="l00067"></a>00067 
<a name="l00069"></a><a class="code" href="mainloop-api_8h.html#45b1a5f366caddb669789d5e69338f06">00069</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="mainloop-api_8h.html#45b1a5f366caddb669789d5e69338f06" title="An opaque timer event source object.">pa_time_event</a> <a class="code" href="mainloop-api_8h.html#45b1a5f366caddb669789d5e69338f06" title="An opaque timer event source object.">pa_time_event</a>;
<a name="l00071"></a><a class="code" href="mainloop-api_8h.html#2817e719415fe5aa267de4104b4e10bb">00071</a> <span class="keyword">typedef</span> void (*<a class="code" href="mainloop-api_8h.html#2817e719415fe5aa267de4104b4e10bb" title="A time event callback prototype.">pa_time_event_cb_t</a>)(<a class="code" href="structpa__mainloop__api.html" title="An abstract mainloop API vtable.">pa_mainloop_api</a>*a, <a class="code" href="mainloop-api_8h.html#45b1a5f366caddb669789d5e69338f06" title="An opaque timer event source object.">pa_time_event</a>* e, <span class="keyword">const</span> <span class="keyword">struct </span>timeval *tv, <span class="keywordtype">void</span> *userdata);
<a name="l00073"></a><a class="code" href="mainloop-api_8h.html#622d07a5be8276ee0d5a82797cbaa570">00073</a> <span class="keyword">typedef</span> void (*<a class="code" href="mainloop-api_8h.html#622d07a5be8276ee0d5a82797cbaa570" title="A time event destroy callback prototype \ since 0.9.3.">pa_time_event_destroy_cb_t</a>)(<a class="code" href="structpa__mainloop__api.html" title="An abstract mainloop API vtable.">pa_mainloop_api</a>*a, <a class="code" href="mainloop-api_8h.html#45b1a5f366caddb669789d5e69338f06" title="An opaque timer event source object.">pa_time_event</a> *e, <span class="keywordtype">void</span> *userdata);
<a name="l00074"></a>00074 
<a name="l00076"></a><a class="code" href="mainloop-api_8h.html#545440c2c08074c93939cb1240a7d087">00076</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="mainloop-api_8h.html#545440c2c08074c93939cb1240a7d087" title="An opaque deferred event source object.">pa_defer_event</a> <a class="code" href="mainloop-api_8h.html#545440c2c08074c93939cb1240a7d087" title="An opaque deferred event source object.">pa_defer_event</a>;
<a name="l00078"></a><a class="code" href="mainloop-api_8h.html#0b61fda082ff90b5a0f6e3478f8edb22">00078</a> <span class="keyword">typedef</span> void (*<a class="code" href="mainloop-api_8h.html#0b61fda082ff90b5a0f6e3478f8edb22" title="A defer event callback protoype.">pa_defer_event_cb_t</a>)(<a class="code" href="structpa__mainloop__api.html" title="An abstract mainloop API vtable.">pa_mainloop_api</a>*a, <a class="code" href="mainloop-api_8h.html#545440c2c08074c93939cb1240a7d087" title="An opaque deferred event source object.">pa_defer_event</a>* e, <span class="keywordtype">void</span> *userdata);
<a name="l00080"></a><a class="code" href="mainloop-api_8h.html#e6fb5d67b08d48d219295dc84672cdb4">00080</a> <span class="keyword">typedef</span> void (*<a class="code" href="mainloop-api_8h.html#e6fb5d67b08d48d219295dc84672cdb4" title="A defer event destroy callback prototype \ since 0.9.3.">pa_defer_event_destroy_cb_t</a>)(<a class="code" href="structpa__mainloop__api.html" title="An abstract mainloop API vtable.">pa_mainloop_api</a>*a, <a class="code" href="mainloop-api_8h.html#545440c2c08074c93939cb1240a7d087" title="An opaque deferred event source object.">pa_defer_event</a> *e, <span class="keywordtype">void</span> *userdata);
<a name="l00081"></a>00081 
<a name="l00083"></a><a class="code" href="structpa__mainloop__api.html">00083</a> <span class="keyword">struct </span><a class="code" href="structpa__mainloop__api.html" title="An abstract mainloop API vtable.">pa_mainloop_api</a>  {
<a name="l00085"></a><a class="code" href="structpa__mainloop__api.html#83546677d6c10792e98221996599c835">00085</a>     <span class="keywordtype">void</span> *<a class="code" href="structpa__mainloop__api.html#83546677d6c10792e98221996599c835" title="A pointer to some private, arbitrary data of the main loop implementation.">userdata</a>;
<a name="l00086"></a>00086 
<a name="l00088"></a>00088     <a class="code" href="mainloop-api_8h.html#e7acb1df28956a7761ee5488167840a3" title="An opaque IO event source object.">pa_io_event</a>* (*io_new)(<a class="code" href="structpa__mainloop__api.html" title="An abstract mainloop API vtable.">pa_mainloop_api</a>*a, <span class="keywordtype">int</span> fd, <a class="code" href="mainloop-api_8h.html#01d415df4f23e46b20cd218678c4c9a7" title="A bitmask for IO events.">pa_io_event_flags_t</a> events, <a class="code" href="mainloop-api_8h.html#6efed27d20bcdd5a83ca31633bbae024" title="An IO event callback protoype.">pa_io_event_cb_t</a> cb, <span class="keywordtype">void</span> *<a class="code" href="structpa__mainloop__api.html#83546677d6c10792e98221996599c835" title="A pointer to some private, arbitrary data of the main loop implementation.">userdata</a>);
<a name="l00090"></a>00090     void (*<a class="code" href="structpa__mainloop__api.html#c8372ccaf7b5291008d6f59cf40ce3aa" title="Enable or disable IO events on this object.">io_enable</a>)(<a class="code" href="mainloop-api_8h.html#e7acb1df28956a7761ee5488167840a3" title="An opaque IO event source object.">pa_io_event</a>* e, <a class="code" href="mainloop-api_8h.html#01d415df4f23e46b20cd218678c4c9a7" title="A bitmask for IO events.">pa_io_event_flags_t</a> events);
<a name="l00092"></a>00092     void (*<a class="code" href="structpa__mainloop__api.html#3a48c4fa72ef016e5c7b8cfd011a3d7a" title="Free a IO event source object.">io_free</a>)(<a class="code" href="mainloop-api_8h.html#e7acb1df28956a7761ee5488167840a3" title="An opaque IO event source object.">pa_io_event</a>* e);
<a name="l00094"></a>00094     void (*<a class="code" href="structpa__mainloop__api.html#0b88f5970c234b62ad2cb18559d7a6d0" title="Set a function that is called when the IO event source is destroyed.">io_set_destroy</a>)(<a class="code" href="mainloop-api_8h.html#e7acb1df28956a7761ee5488167840a3" title="An opaque IO event source object.">pa_io_event</a> *e, <a class="code" href="mainloop-api_8h.html#654d65737cc659a1613815c06d1ea5e4" title="A IO event destroy callback prototype \ since 0.9.3.">pa_io_event_destroy_cb_t</a> cb);
<a name="l00095"></a>00095 
<a name="l00097"></a>00097     <a class="code" href="mainloop-api_8h.html#45b1a5f366caddb669789d5e69338f06" title="An opaque timer event source object.">pa_time_event</a>* (*time_new)(<a class="code" href="structpa__mainloop__api.html" title="An abstract mainloop API vtable.">pa_mainloop_api</a>*a, <span class="keyword">const</span> <span class="keyword">struct </span>timeval *tv, <a class="code" href="mainloop-api_8h.html#2817e719415fe5aa267de4104b4e10bb" title="A time event callback prototype.">pa_time_event_cb_t</a> cb, <span class="keywordtype">void</span> *<a class="code" href="structpa__mainloop__api.html#83546677d6c10792e98221996599c835" title="A pointer to some private, arbitrary data of the main loop implementation.">userdata</a>);
<a name="l00099"></a>00099     void (*<a class="code" href="structpa__mainloop__api.html#2e03bc11278275c4855c41eb2d54e826" title="Restart a running or expired timer event source with a new Unix time.">time_restart</a>)(<a class="code" href="mainloop-api_8h.html#45b1a5f366caddb669789d5e69338f06" title="An opaque timer event source object.">pa_time_event</a>* e, <span class="keyword">const</span> <span class="keyword">struct </span>timeval *tv);
<a name="l00101"></a>00101     void (*<a class="code" href="structpa__mainloop__api.html#da2de717320b502a8fce1e30228aa1d5" title="Free a deferred timer event source object.">time_free</a>)(<a class="code" href="mainloop-api_8h.html#45b1a5f366caddb669789d5e69338f06" title="An opaque timer event source object.">pa_time_event</a>* e);
<a name="l00103"></a>00103     void (*<a class="code" href="structpa__mainloop__api.html#d1889e86ac8aff08c31b0c5ac078bb33" title="Set a function that is called when the timer event source is destroyed.">time_set_destroy</a>)(<a class="code" href="mainloop-api_8h.html#45b1a5f366caddb669789d5e69338f06" title="An opaque timer event source object.">pa_time_event</a> *e, <a class="code" href="mainloop-api_8h.html#622d07a5be8276ee0d5a82797cbaa570" title="A time event destroy callback prototype \ since 0.9.3.">pa_time_event_destroy_cb_t</a> cb);
<a name="l00104"></a>00104 
<a name="l00106"></a>00106     <a class="code" href="mainloop-api_8h.html#545440c2c08074c93939cb1240a7d087" title="An opaque deferred event source object.">pa_defer_event</a>* (*defer_new)(<a class="code" href="structpa__mainloop__api.html" title="An abstract mainloop API vtable.">pa_mainloop_api</a>*a, <a class="code" href="mainloop-api_8h.html#0b61fda082ff90b5a0f6e3478f8edb22" title="A defer event callback protoype.">pa_defer_event_cb_t</a> cb, <span class="keywordtype">void</span> *<a class="code" href="structpa__mainloop__api.html#83546677d6c10792e98221996599c835" title="A pointer to some private, arbitrary data of the main loop implementation.">userdata</a>);
<a name="l00108"></a>00108     void (*<a class="code" href="structpa__mainloop__api.html#dd00a04e86a34a2fcdfb022c101cb4e3" title="Enable or disable a deferred event source temporarily.">defer_enable</a>)(<a class="code" href="mainloop-api_8h.html#545440c2c08074c93939cb1240a7d087" title="An opaque deferred event source object.">pa_defer_event</a>* e, <span class="keywordtype">int</span> b);
<a name="l00110"></a>00110     void (*<a class="code" href="structpa__mainloop__api.html#6f6e81b632d910d02de3739b880c197f" title="Free a deferred event source object.">defer_free</a>)(<a class="code" href="mainloop-api_8h.html#545440c2c08074c93939cb1240a7d087" title="An opaque deferred event source object.">pa_defer_event</a>* e);
<a name="l00112"></a>00112     void (*<a class="code" href="structpa__mainloop__api.html#a8e2109a98d9946cac1df48bf5dcc033" title="Set a function that is called when the deferred event source is destroyed.">defer_set_destroy</a>)(<a class="code" href="mainloop-api_8h.html#545440c2c08074c93939cb1240a7d087" title="An opaque deferred event source object.">pa_defer_event</a> *e, <a class="code" href="mainloop-api_8h.html#e6fb5d67b08d48d219295dc84672cdb4" title="A defer event destroy callback prototype \ since 0.9.3.">pa_defer_event_destroy_cb_t</a> cb);
<a name="l00113"></a>00113 
<a name="l00115"></a>00115     void (*<a class="code" href="structpa__mainloop__api.html#6931949737d103f7b34628fedf5661cb" title="Exit the main loop and return the specfied retval.">quit</a>)(<a class="code" href="structpa__mainloop__api.html" title="An abstract mainloop API vtable.">pa_mainloop_api</a>*a, <span class="keywordtype">int</span> retval);
<a name="l00116"></a>00116 };
<a name="l00117"></a>00117 
<a name="l00119"></a>00119 <span class="keywordtype">void</span> <a class="code" href="mainloop-api_8h.html#0b38e33a821ac63ce99b4beb3f6313e8" title="Run the specified callback function once from the main loop using an anonymous defer...">pa_mainloop_api_once</a>(<a class="code" href="structpa__mainloop__api.html" title="An abstract mainloop API vtable.">pa_mainloop_api</a>*m, <span class="keywordtype">void</span> (*callback)(<a class="code" href="structpa__mainloop__api.html" title="An abstract mainloop API vtable.">pa_mainloop_api</a>*m, <span class="keywordtype">void</span> *userdata), <span class="keywordtype">void</span> *userdata);
<a name="l00120"></a>00120 
<a name="l00121"></a>00121 PA_C_DECL_END
<a name="l00122"></a>00122 
<a name="l00123"></a>00123 <span class="preprocessor">#endif</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Sep 2 04:18:19 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>