<!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 File Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.5 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="main.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="classes.html"><span>Data 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> <div class="contents"> <h1>mainloop-api.h File Reference</h1>Main loop abstraction layer. <a href="#_details">More...</a> <p> <p> <a href="mainloop-api_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 </td><td class="memItemRight" valign="bottom"><a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">An abstract mainloop API vtable. <a href="structpa__mainloop__api.html#_details">More...</a><br></td></tr> <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="mainloop-api_8h.html#02723ebcaea4464cd8d63845d4c2dd92">pa_mainloop_api</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">An abstract mainloop API vtable. <a href="#02723ebcaea4464cd8d63845d4c2dd92"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef enum <a class="el" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa">pa_io_event_flags</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="mainloop-api_8h.html#01d415df4f23e46b20cd218678c4c9a7">pa_io_event_flags_t</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="mainloop-api_8h.html#e7acb1df28956a7761ee5488167840a3">pa_io_event</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="mainloop-api_8h.html#e7acb1df28956a7761ee5488167840a3">pa_io_event</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">An opaque IO event source object. <a href="#e7acb1df28956a7761ee5488167840a3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="mainloop-api_8h.html#6efed27d20bcdd5a83ca31633bbae024">pa_io_event_cb_t</a> )(<a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> *ea, <a class="el" href="mainloop-api_8h.html#e7acb1df28956a7761ee5488167840a3">pa_io_event</a> *e, int fd, <a class="el" href="mainloop-api_8h.html#01d415df4f23e46b20cd218678c4c9a7">pa_io_event_flags_t</a> events, void *userdata)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">An IO event callback protoype. <a href="#6efed27d20bcdd5a83ca31633bbae024"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="mainloop-api_8h.html#654d65737cc659a1613815c06d1ea5e4">pa_io_event_destroy_cb_t</a> )(<a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> *a, <a class="el" href="mainloop-api_8h.html#e7acb1df28956a7761ee5488167840a3">pa_io_event</a> *e, void *userdata)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A IO event destroy callback prototype \ since 0.9.3. <a href="#654d65737cc659a1613815c06d1ea5e4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="mainloop-api_8h.html#45b1a5f366caddb669789d5e69338f06">pa_time_event</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="mainloop-api_8h.html#45b1a5f366caddb669789d5e69338f06">pa_time_event</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">An opaque timer event source object. <a href="#45b1a5f366caddb669789d5e69338f06"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="mainloop-api_8h.html#2817e719415fe5aa267de4104b4e10bb">pa_time_event_cb_t</a> )(<a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> *a, <a class="el" href="mainloop-api_8h.html#45b1a5f366caddb669789d5e69338f06">pa_time_event</a> *e, const struct timeval *tv, void *userdata)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A time event callback prototype. <a href="#2817e719415fe5aa267de4104b4e10bb"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="mainloop-api_8h.html#622d07a5be8276ee0d5a82797cbaa570">pa_time_event_destroy_cb_t</a> )(<a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> *a, <a class="el" href="mainloop-api_8h.html#45b1a5f366caddb669789d5e69338f06">pa_time_event</a> *e, void *userdata)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A time event destroy callback prototype \ since 0.9.3. <a href="#622d07a5be8276ee0d5a82797cbaa570"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="mainloop-api_8h.html#545440c2c08074c93939cb1240a7d087">pa_defer_event</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="mainloop-api_8h.html#545440c2c08074c93939cb1240a7d087">pa_defer_event</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">An opaque deferred event source object. <a href="#545440c2c08074c93939cb1240a7d087"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="mainloop-api_8h.html#0b61fda082ff90b5a0f6e3478f8edb22">pa_defer_event_cb_t</a> )(<a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> *a, <a class="el" href="mainloop-api_8h.html#545440c2c08074c93939cb1240a7d087">pa_defer_event</a> *e, void *userdata)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A defer event callback protoype. <a href="#0b61fda082ff90b5a0f6e3478f8edb22"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="mainloop-api_8h.html#e6fb5d67b08d48d219295dc84672cdb4">pa_defer_event_destroy_cb_t</a> )(<a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> *a, <a class="el" href="mainloop-api_8h.html#545440c2c08074c93939cb1240a7d087">pa_defer_event</a> *e, void *userdata)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A defer event destroy callback prototype \ since 0.9.3. <a href="#e6fb5d67b08d48d219295dc84672cdb4"></a><br></td></tr> <tr><td colspan="2"><br><h2>Enumerations</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa">pa_io_event_flags</a> { <br> <a class="el" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa458d976392190c7626b4f789bf11b2ea">PA_IO_EVENT_NULL</a> = 0, <br> <a class="el" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1faba9fbd1e6cb3031098a2aaa144c78336">PA_IO_EVENT_INPUT</a> = 1, <br> <a class="el" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa3aff35dad0cd23ae3796b3141fee4dce">PA_IO_EVENT_OUTPUT</a> = 2, <br> <a class="el" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa9b6a006b1dc3894fd6bd8d5d99be5831">PA_IO_EVENT_HANGUP</a> = 4, <br> <a class="el" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa7e0f4c300b66f92e0c59a0d56326f488">PA_IO_EVENT_ERROR</a> = 8 <br> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A bitmask for IO events. <a href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa">More...</a><br></td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="mainloop-api_8h.html#0b38e33a821ac63ce99b4beb3f6313e8">pa_mainloop_api_once</a> (<a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> *m, void(*callback)(<a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> *m, void *userdata), void *userdata)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Run the specified callback function once from the main loop using an anonymous defer event. <a href="#0b38e33a821ac63ce99b4beb3f6313e8"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Main loop abstraction layer. <p> Both the PulseAudio core and the PulseAudio client library use a main loop abstraction layer. Due to this it is possible to embed PulseAudio into other applications easily. Two main loop implemenations are currently available: <ul> <li>A minimal implementation based on the C library's poll() function (See <a class="el" href="mainloop_8h.html">mainloop.h</a>) </li> <li>A wrapper around the GLIB main loop. Use this to embed PulseAudio into your GLIB/GTK+/GNOME programs (See <a class="el" href="glib-mainloop_8h.html">glib-mainloop.h</a>)</li> </ul> The structure <a class="el" href="structpa__mainloop__api.html" title="An abstract mainloop API vtable.">pa_mainloop_api</a> is used as vtable for the main loop abstraction.<p> This mainloop abstraction layer has no direct support for UNIX signals. Generic, mainloop implementation agnostic support is available throught <a class="el" href="mainloop-signal_8h.html">mainloop-signal.h</a>. <hr><h2>Typedef Documentation</h2> <a class="anchor" name="545440c2c08074c93939cb1240a7d087"></a><!-- doxytag: member="mainloop-api.h::pa_defer_event" ref="545440c2c08074c93939cb1240a7d087" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="mainloop-api_8h.html#545440c2c08074c93939cb1240a7d087">pa_defer_event</a> <a class="el" href="mainloop-api_8h.html#545440c2c08074c93939cb1240a7d087">pa_defer_event</a> </td> </tr> </table> </div> <div class="memdoc"> <p> An opaque deferred event source object. <p> Events of this type are triggered once in every main loop iteration </div> </div><p> <a class="anchor" name="0b61fda082ff90b5a0f6e3478f8edb22"></a><!-- doxytag: member="mainloop-api.h::pa_defer_event_cb_t" ref="0b61fda082ff90b5a0f6e3478f8edb22" args=")(pa_mainloop_api *a, pa_defer_event *e, void *userdata)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void(* <a class="el" href="mainloop-api_8h.html#0b61fda082ff90b5a0f6e3478f8edb22">pa_defer_event_cb_t</a>)(<a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> *a, <a class="el" href="mainloop-api_8h.html#545440c2c08074c93939cb1240a7d087">pa_defer_event</a> *e, void *userdata) </td> </tr> </table> </div> <div class="memdoc"> <p> A defer event callback protoype. <p> <dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.3 </dd></dl> </div> </div><p> <a class="anchor" name="e6fb5d67b08d48d219295dc84672cdb4"></a><!-- doxytag: member="mainloop-api.h::pa_defer_event_destroy_cb_t" ref="e6fb5d67b08d48d219295dc84672cdb4" args=")(pa_mainloop_api *a, pa_defer_event *e, void *userdata)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void(* <a class="el" href="mainloop-api_8h.html#e6fb5d67b08d48d219295dc84672cdb4">pa_defer_event_destroy_cb_t</a>)(<a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> *a, <a class="el" href="mainloop-api_8h.html#545440c2c08074c93939cb1240a7d087">pa_defer_event</a> *e, void *userdata) </td> </tr> </table> </div> <div class="memdoc"> <p> A defer event destroy callback prototype \ since 0.9.3. <p> </div> </div><p> <a class="anchor" name="e7acb1df28956a7761ee5488167840a3"></a><!-- doxytag: member="mainloop-api.h::pa_io_event" ref="e7acb1df28956a7761ee5488167840a3" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="mainloop-api_8h.html#e7acb1df28956a7761ee5488167840a3">pa_io_event</a> <a class="el" href="mainloop-api_8h.html#e7acb1df28956a7761ee5488167840a3">pa_io_event</a> </td> </tr> </table> </div> <div class="memdoc"> <p> An opaque IO event source object. <p> <dl compact><dt><b>Examples: </b></dt><dd> <a class="el" href="pacat_8c-example.html#a3">pacat.c</a>.</dl> </div> </div><p> <a class="anchor" name="6efed27d20bcdd5a83ca31633bbae024"></a><!-- doxytag: member="mainloop-api.h::pa_io_event_cb_t" ref="6efed27d20bcdd5a83ca31633bbae024" args=")(pa_mainloop_api *ea, pa_io_event *e, int fd, pa_io_event_flags_t events, void *userdata)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void(* <a class="el" href="mainloop-api_8h.html#6efed27d20bcdd5a83ca31633bbae024">pa_io_event_cb_t</a>)(<a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> *ea, <a class="el" href="mainloop-api_8h.html#e7acb1df28956a7761ee5488167840a3">pa_io_event</a> *e, int fd, <a class="el" href="mainloop-api_8h.html#01d415df4f23e46b20cd218678c4c9a7">pa_io_event_flags_t</a> events, void *userdata) </td> </tr> </table> </div> <div class="memdoc"> <p> An IO event callback protoype. <p> <dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.3 </dd></dl> </div> </div><p> <a class="anchor" name="654d65737cc659a1613815c06d1ea5e4"></a><!-- doxytag: member="mainloop-api.h::pa_io_event_destroy_cb_t" ref="654d65737cc659a1613815c06d1ea5e4" args=")(pa_mainloop_api *a, pa_io_event *e, void *userdata)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void(* <a class="el" href="mainloop-api_8h.html#654d65737cc659a1613815c06d1ea5e4">pa_io_event_destroy_cb_t</a>)(<a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> *a, <a class="el" href="mainloop-api_8h.html#e7acb1df28956a7761ee5488167840a3">pa_io_event</a> *e, void *userdata) </td> </tr> </table> </div> <div class="memdoc"> <p> A IO event destroy callback prototype \ since 0.9.3. <p> </div> </div><p> <a class="anchor" name="01d415df4f23e46b20cd218678c4c9a7"></a><!-- doxytag: member="mainloop-api.h::pa_io_event_flags_t" ref="01d415df4f23e46b20cd218678c4c9a7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef enum <a class="el" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa">pa_io_event_flags</a> <a class="el" href="mainloop-api_8h.html#01d415df4f23e46b20cd218678c4c9a7">pa_io_event_flags_t</a> </td> </tr> </table> </div> <div class="memdoc"> <p> <dl compact><dt><b>Examples: </b></dt><dd> <a class="el" href="pacat_8c-example.html#a67">pacat.c</a>.</dl> </div> </div><p> <a class="anchor" name="02723ebcaea4464cd8d63845d4c2dd92"></a><!-- doxytag: member="mainloop-api.h::pa_mainloop_api" ref="02723ebcaea4464cd8d63845d4c2dd92" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> <a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> </td> </tr> </table> </div> <div class="memdoc"> <p> An abstract mainloop API vtable. <p> </div> </div><p> <a class="anchor" name="45b1a5f366caddb669789d5e69338f06"></a><!-- doxytag: member="mainloop-api.h::pa_time_event" ref="45b1a5f366caddb669789d5e69338f06" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="mainloop-api_8h.html#45b1a5f366caddb669789d5e69338f06">pa_time_event</a> <a class="el" href="mainloop-api_8h.html#45b1a5f366caddb669789d5e69338f06">pa_time_event</a> </td> </tr> </table> </div> <div class="memdoc"> <p> An opaque timer event source object. <p> <dl compact><dt><b>Examples: </b></dt><dd> <a class="el" href="pacat_8c-example.html#a78">pacat.c</a>.</dl> </div> </div><p> <a class="anchor" name="2817e719415fe5aa267de4104b4e10bb"></a><!-- doxytag: member="mainloop-api.h::pa_time_event_cb_t" ref="2817e719415fe5aa267de4104b4e10bb" args=")(pa_mainloop_api *a, pa_time_event *e, const struct timeval *tv, void *userdata)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void(* <a class="el" href="mainloop-api_8h.html#2817e719415fe5aa267de4104b4e10bb">pa_time_event_cb_t</a>)(<a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> *a, <a class="el" href="mainloop-api_8h.html#45b1a5f366caddb669789d5e69338f06">pa_time_event</a> *e, const struct timeval *tv, void *userdata) </td> </tr> </table> </div> <div class="memdoc"> <p> A time event callback prototype. <p> <dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.3 </dd></dl> </div> </div><p> <a class="anchor" name="622d07a5be8276ee0d5a82797cbaa570"></a><!-- doxytag: member="mainloop-api.h::pa_time_event_destroy_cb_t" ref="622d07a5be8276ee0d5a82797cbaa570" args=")(pa_mainloop_api *a, pa_time_event *e, void *userdata)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void(* <a class="el" href="mainloop-api_8h.html#622d07a5be8276ee0d5a82797cbaa570">pa_time_event_destroy_cb_t</a>)(<a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> *a, <a class="el" href="mainloop-api_8h.html#45b1a5f366caddb669789d5e69338f06">pa_time_event</a> *e, void *userdata) </td> </tr> </table> </div> <div class="memdoc"> <p> A time event destroy callback prototype \ since 0.9.3. <p> </div> </div><p> <hr><h2>Enumeration Type Documentation</h2> <a class="anchor" name="6769e3c8a68703a81a68d5d72b32d1fa"></a><!-- doxytag: member="mainloop-api.h::pa_io_event_flags" ref="6769e3c8a68703a81a68d5d72b32d1fa" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="mainloop-api_8h.html#6769e3c8a68703a81a68d5d72b32d1fa">pa_io_event_flags</a> </td> </tr> </table> </div> <div class="memdoc"> <p> A bitmask for IO events. <p> <dl compact><dt><b>Enumerator: </b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" name="6769e3c8a68703a81a68d5d72b32d1fa458d976392190c7626b4f789bf11b2ea"></a><!-- doxytag: member="PA_IO_EVENT_NULL" ref="6769e3c8a68703a81a68d5d72b32d1fa458d976392190c7626b4f789bf11b2ea" args="" -->PA_IO_EVENT_NULL</em> </td><td> No event. </td></tr> <tr><td valign="top"><em><a class="anchor" name="6769e3c8a68703a81a68d5d72b32d1faba9fbd1e6cb3031098a2aaa144c78336"></a><!-- doxytag: member="PA_IO_EVENT_INPUT" ref="6769e3c8a68703a81a68d5d72b32d1faba9fbd1e6cb3031098a2aaa144c78336" args="" -->PA_IO_EVENT_INPUT</em> </td><td> Input event. </td></tr> <tr><td valign="top"><em><a class="anchor" name="6769e3c8a68703a81a68d5d72b32d1fa3aff35dad0cd23ae3796b3141fee4dce"></a><!-- doxytag: member="PA_IO_EVENT_OUTPUT" ref="6769e3c8a68703a81a68d5d72b32d1fa3aff35dad0cd23ae3796b3141fee4dce" args="" -->PA_IO_EVENT_OUTPUT</em> </td><td> Output event. </td></tr> <tr><td valign="top"><em><a class="anchor" name="6769e3c8a68703a81a68d5d72b32d1fa9b6a006b1dc3894fd6bd8d5d99be5831"></a><!-- doxytag: member="PA_IO_EVENT_HANGUP" ref="6769e3c8a68703a81a68d5d72b32d1fa9b6a006b1dc3894fd6bd8d5d99be5831" args="" -->PA_IO_EVENT_HANGUP</em> </td><td> Hangup event. </td></tr> <tr><td valign="top"><em><a class="anchor" name="6769e3c8a68703a81a68d5d72b32d1fa7e0f4c300b66f92e0c59a0d56326f488"></a><!-- doxytag: member="PA_IO_EVENT_ERROR" ref="6769e3c8a68703a81a68d5d72b32d1fa7e0f4c300b66f92e0c59a0d56326f488" args="" -->PA_IO_EVENT_ERROR</em> </td><td> Error event. </td></tr> </table> </dl> </div> </div><p> <hr><h2>Function Documentation</h2> <a class="anchor" name="0b38e33a821ac63ce99b4beb3f6313e8"></a><!-- doxytag: member="mainloop-api.h::pa_mainloop_api_once" ref="0b38e33a821ac63ce99b4beb3f6313e8" args="(pa_mainloop_api *m, void(*callback)(pa_mainloop_api *m, void *userdata), void *userdata)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void pa_mainloop_api_once </td> <td>(</td> <td class="paramtype"><a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> * </td> <td class="paramname"> <em>m</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void(*)(<a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> *m, void *userdata) </td> <td class="paramname"> <em>callback</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>userdata</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Run the specified callback function once from the main loop using an anonymous defer event. <p> </div> </div><p> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Wed Mar 26 12:02:40 2008 for PulseAudio by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address> </body> </html>