<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <!-- $Id: header.html 8799 2010-06-28 04:12:42Z jpgr87 $ --> <HEAD> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=utf-8"> <meta name="keywords" content="stage, robot, simulation, player, player/stage"> <link href="doxygen.css" rel="stylesheet" type="text/css"> <style type="text/css"> .floatright { float: right; margin: 0 0 1em 1em; } body { font-family: sans-serif; #font-family: Geneva, Verdana, Helvetica, Arial, sans-serif; background-color: #FFF; color:#000; } a:link { color: #A00; } a:visited { color: #800; } a { text-decoration: none; } a:hover { text-decoration: underline; } .timestamp { text-align:right; background-color: #DDD; font-size:75%;} h1 { font-size:160%; } h2 { font-size:110%; #color: #FFF; #background-color: #666; #padding:3px; } h3 { text-align:left; } img { border: 0; } ul.menu { position:relative; left:-2.5em; margin-bottom:0px; margin-top:0px; } ul.menu1 { position:relative; left:-2.1em; margin-bottom:0px; margin-top:0px; } li.menu { list-style-type: none; position:relative; #left:-0.5em; } #sidebar { position: absolute; left:0px; padding:2em; top:0em; width:12em;} #content { position: absolute; left:12em; top:0em; padding-left:3em; padding-right:3em; padding-bottom:2em; margin-top:1em; margin-right:2em; } div.box { background-color:#EEE; border: 1px solid #000; padding: 0.5ex 0.4em 0.5ex 0.6em; margin:1em; } div.title { font-weight:bold; background-color:#eee; margin-bottom:2px;} div.topbar { position: absolute; top:0px; left:9em; margin:1em; } </style> <TITLE>Player Manual</TITLE> </HEAD> <body> <div id="sidebar"> <h2 style="text-align:center;"> <a href="index.html"> <img width=140 src="http://playerstage.sourceforge.net/images/player_button_v3.png" alt="Player logo"><br></a> </h2> <div class="box"> <div class=title>Player</div> <ul class=menu> <li class=menu><a href="index.html">Frontpage</a> <li class=menu><a href="modules.html">Contents</a> </ul> </div> <div class="box"> <div class=title>User</div> <ul class=menu> <li class=menu><a href="install.html">Installation</a> <li class=menu><a href="start.html">Quick start</a> <li class=menu><a href="supported_hardware.html">Supported devices</a> <li class=menu><a href="group__tutorials.html">Tutorials</a> <li class=menu><a href="group__utils.html">Utilities</a> <li class=menu><a href="group__clientlibs.html">Client libraries</a> <li class=menu><a href="http://playerstage.sourceforge.net/wiki/Basic_FAQ">FAQ</a> <li class=menu><a href="help.html">Help</a> </ul> </div> <div class=box> <div class="title">Developer</div> <ul class=menu> <li class=menu><a href="architecture.html">Architecture</a> <li class=menu><a href="group__libplayercore.html">libplayercore</a> <ul class=menu1> <li class=menu><a href="group__interfaces.html">interfaces</a></li> </ul> <li class=menu><a href="group__libplayerdrivers.html">libplayerdrivers</a> <ul class=menu1> <li class=menu><a href="group__drivers.html">drivers</a></li> </ul> <li class=menu><a href="group__libplayercommon.html">libplayercommon</a> <li class=menu><a href="group__libplayerutils.html">libplayerutils</a> <li class=menu><a href="group__libplayersd.html">libplayersd</a> <li class=menu><a href="group__libplayertcp.html">libplayertcp</a> <li class=menu><a href="group__libplayerxdr.html">libplayerxdr</a> <li class=menu><a href="todo.html">TODO</a> </ul> </div> <div class=box> <!-- <a href="http://sourceforge.net"><img border=0 src="http://sourceforge.net/sflogo.php?group_id=42445&type=1"></a> --> <div class="title">Online</div> <a href="http://playerstage.sourceforge.net">Homepage</a><br> <a href="http://sourceforge.net/project/showfiles.php?group_id=42445">Download</a><br> <a href="http://sourceforge.net/projects/playerstage">Project</a><br> <a href="http://sourceforge.net/tracker/?group_id=42445">Bugs</a><br> <a href="http://sourceforge.net/mail/?group_id=42445">Help</a> </div> </div> <div id="content" > <!-- Generated by Doxygen 1.7.1 --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pri-methods">Private Member Functions</a> | <a href="#pri-attribs">Private Attributes</a> </div> <div class="headertitle"> <h1>Alsa Class Reference</h1> </div> </div> <div class="contents"> <!-- doxytag: class="Alsa" --><!-- doxytag: inherits="ThreadedDriver" --><div class="dynheader"> Inheritance diagram for Alsa:</div> <div class="dyncontent"> <div class="center"> <img src="classAlsa.png" usemap="#Alsa_map" alt=""/> <map id="Alsa_map" name="Alsa_map"> <area href="classThreadedDriver.html" alt="ThreadedDriver" shape="rect" coords="0,56,102,80"/> <area href="classDriver.html" alt="Driver" shape="rect" coords="0,0,102,24"/> </map> </div> <p><a href="classAlsa-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63af6bead20a56b093d8e44ccad9d4dd"></a><!-- doxytag: member="Alsa::Alsa" ref="a63af6bead20a56b093d8e44ccad9d4dd" args="(ConfigFile *cf, int section)" --> </td><td class="memItemRight" valign="bottom"><b>Alsa</b> (<a class="el" href="classConfigFile.html">ConfigFile</a> *cf, int section)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classAlsa.html#a7ed88e541c2471cc7bb1cebda8025e41">ProcessMessage</a> (<a class="el" href="classQueuePointer.html">QueuePointer</a> &resp_queue, <a class="el" href="structplayer__msghdr.html">player_msghdr</a> *hdr, void *data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classMessage.html" title="Reference-counted message objects.">Message</a> handler. <a href="#a7ed88e541c2471cc7bb1cebda8025e41"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pri-methods"></a> Private Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAlsa.html#a46a695a8a788d0039c1465389a54d855">Main</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Main method for driver thread. <a href="#a46a695a8a788d0039c1465389a54d855"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a624c62d5369313834f0a1aaf0c20f9f1"></a><!-- doxytag: member="Alsa::MainSetup" ref="a624c62d5369313834f0a1aaf0c20f9f1" args="(void)" --> virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classAlsa.html#a624c62d5369313834f0a1aaf0c20f9f1">MainSetup</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets up the resources needed by the driver thread. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAlsa.html#a7b553f911e3a72797a493eac04ed6201">MainQuit</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Cleanup method for driver thread (called when main exits). <a href="#a7b553f911e3a72797a493eac04ed6201"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59e5b4132dfead9f2e41384ccfd61e60"></a><!-- doxytag: member="Alsa::SendStateMessage" ref="a59e5b4132dfead9f2e41384ccfd61e60" args="(void)" --> void </td><td class="memItemRight" valign="bottom"><b>SendStateMessage</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f71c00855c430f28fb8f00d4dff4929"></a><!-- doxytag: member="Alsa::AddStoredSample" ref="a3f71c00855c430f28fb8f00d4dff4929" args="(StoredSample *newSample)" --> bool </td><td class="memItemRight" valign="bottom"><b>AddStoredSample</b> (<a class="el" href="structStoredSample.html">StoredSample</a> *newSample)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a831f8f0099060ea37a79880cf974f730"></a><!-- doxytag: member="Alsa::AddStoredSample" ref="a831f8f0099060ea37a79880cf974f730" args="(player_audio_wav_t *waveData)" --> bool </td><td class="memItemRight" valign="bottom"><b>AddStoredSample</b> (<a class="el" href="structplayer__audio__wav.html">player_audio_wav_t</a> *waveData)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a3b4290c213913f3d9f27aef1887bb8"></a><!-- doxytag: member="Alsa::AddStoredSample" ref="a6a3b4290c213913f3d9f27aef1887bb8" args="(const char *filePath)" --> bool </td><td class="memItemRight" valign="bottom"><b>AddStoredSample</b> (const char *filePath)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa7972137e406d9df8f0a767075a162c2"></a><!-- doxytag: member="Alsa::GetSampleAtIndex" ref="aa7972137e406d9df8f0a767075a162c2" args="(int index)" --> <a class="el" href="structStoredSample.html">StoredSample</a> * </td><td class="memItemRight" valign="bottom"><b>GetSampleAtIndex</b> (int index)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a58648f7a7d832f07289c9965bdba5cff"></a><!-- doxytag: member="Alsa::ClearQueue" ref="a58648f7a7d832f07289c9965bdba5cff" args="(void)" --> void </td><td class="memItemRight" valign="bottom"><b>ClearQueue</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7ce0723002721d1e73c669e72b399c95"></a><!-- doxytag: member="Alsa::AddToQueue" ref="a7ce0723002721d1e73c669e72b399c95" args="(QueueItem *newItem)" --> bool </td><td class="memItemRight" valign="bottom"><b>AddToQueue</b> (<a class="el" href="structQueueItem.html">QueueItem</a> *newItem)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a401fedbede937de02ed7739284a6e61b"></a><!-- doxytag: member="Alsa::AddToQueue" ref="a401fedbede937de02ed7739284a6e61b" args="(player_audio_wav_t *waveData)" --> bool </td><td class="memItemRight" valign="bottom"><b>AddToQueue</b> (<a class="el" href="structplayer__audio__wav.html">player_audio_wav_t</a> *waveData)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a06069d35bd63ecd800efe1f129d3e592"></a><!-- doxytag: member="Alsa::AddToQueue" ref="a06069d35bd63ecd800efe1f129d3e592" args="(AudioSample *sample)" --> bool </td><td class="memItemRight" valign="bottom"><b>AddToQueue</b> (<a class="el" href="classAudioSample.html">AudioSample</a> *sample)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4724542b66e48db9911f5d31fd6a169c"></a><!-- doxytag: member="Alsa::AddSilence" ref="a4724542b66e48db9911f5d31fd6a169c" args="(uint32_t time, AudioSample *format)" --> bool </td><td class="memItemRight" valign="bottom"><b>AddSilence</b> (uint32_t time, <a class="el" href="classAudioSample.html">AudioSample</a> *format)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a35a209bf1c692768ca4ad09c8196457b"></a><!-- doxytag: member="Alsa::AdvanceQueue" ref="a35a209bf1c692768ca4ad09c8196457b" args="(void)" --> void </td><td class="memItemRight" valign="bottom"><b>AdvanceQueue</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a470ab3e16bb9ca5ca599aaeb8e614198"></a><!-- doxytag: member="Alsa::SetupPlayBack" ref="a470ab3e16bb9ca5ca599aaeb8e614198" args="(void)" --> bool </td><td class="memItemRight" valign="bottom"><b>SetupPlayBack</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2eb2df14dd3819086684dbf9460f7e89"></a><!-- doxytag: member="Alsa::SetPBParams" ref="a2eb2df14dd3819086684dbf9460f7e89" args="(AudioSample *sample)" --> bool </td><td class="memItemRight" valign="bottom"><b>SetPBParams</b> (<a class="el" href="classAudioSample.html">AudioSample</a> *sample)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01c239c2175d3d531493e41d30cab9d5"></a><!-- doxytag: member="Alsa::PlaybackCallback" ref="a01c239c2175d3d531493e41d30cab9d5" args="(int numFrames)" --> void </td><td class="memItemRight" valign="bottom"><b>PlaybackCallback</b> (int numFrames)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af9eb07dcdee1c05cf1c35ef808a3ffb9"></a><!-- doxytag: member="Alsa::SetupRecord" ref="af9eb07dcdee1c05cf1c35ef808a3ffb9" args="(void)" --> bool </td><td class="memItemRight" valign="bottom"><b>SetupRecord</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4de00d4eb89239ddf15f37c69120886c"></a><!-- doxytag: member="Alsa::SetRecParams" ref="a4de00d4eb89239ddf15f37c69120886c" args="(void)" --> bool </td><td class="memItemRight" valign="bottom"><b>SetRecParams</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a7c049e1591d05c4ef503c051c62897"></a><!-- doxytag: member="Alsa::SetupRecordBuffer" ref="a4a7c049e1591d05c4ef503c051c62897" args="(uint32_t length)" --> bool </td><td class="memItemRight" valign="bottom"><b>SetupRecordBuffer</b> (uint32_t length)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a93986acaa8eac1626ffd7eabd0866ead"></a><!-- doxytag: member="Alsa::RecordCallback" ref="a93986acaa8eac1626ffd7eabd0866ead" args="(int numFrames)" --> void </td><td class="memItemRight" valign="bottom"><b>RecordCallback</b> (int numFrames)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5fb6782fd0510f0049f07bcafc618d58"></a><!-- doxytag: member="Alsa::HandleRecordedData" ref="a5fb6782fd0510f0049f07bcafc618d58" args="(void)" --> void </td><td class="memItemRight" valign="bottom"><b>HandleRecordedData</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a892d2bb9940c2722494ceb4b0cb9f2bc"></a><!-- doxytag: member="Alsa::PublishRecordedData" ref="a892d2bb9940c2722494ceb4b0cb9f2bc" args="(void)" --> void </td><td class="memItemRight" valign="bottom"><b>PublishRecordedData</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a53613bba295dacd94b6a488c44fa06c1"></a><!-- doxytag: member="Alsa::StartPlayback" ref="a53613bba295dacd94b6a488c44fa06c1" args="(void)" --> void </td><td class="memItemRight" valign="bottom"><b>StartPlayback</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa7e9c2c774ef0727efc101c57864ea55"></a><!-- doxytag: member="Alsa::StopPlayback" ref="aa7e9c2c774ef0727efc101c57864ea55" args="(void)" --> void </td><td class="memItemRight" valign="bottom"><b>StopPlayback</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f52941a706bd012489de350aa311dae"></a><!-- doxytag: member="Alsa::StartRecording" ref="a7f52941a706bd012489de350aa311dae" args="(void)" --> void </td><td class="memItemRight" valign="bottom"><b>StartRecording</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45e70e9d57daa0fe887d49669772d8df"></a><!-- doxytag: member="Alsa::StopRecording" ref="a45e70e9d57daa0fe887d49669772d8df" args="(void)" --> void </td><td class="memItemRight" valign="bottom"><b>StopRecording</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace990a73171538472a3ba36f59b543a8"></a><!-- doxytag: member="Alsa::SetupMixer" ref="ace990a73171538472a3ba36f59b543a8" args="(void)" --> bool </td><td class="memItemRight" valign="bottom"><b>SetupMixer</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adc42d3eb1622467ef1bf99d94a909a94"></a><!-- doxytag: member="Alsa::EnumMixerElements" ref="adc42d3eb1622467ef1bf99d94a909a94" args="(void)" --> bool </td><td class="memItemRight" valign="bottom"><b>EnumMixerElements</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a06a73d8e3e243e4741539df7c2fe77a3"></a><!-- doxytag: member="Alsa::EnumElementCaps" ref="a06a73d8e3e243e4741539df7c2fe77a3" args="(MixerElement *element)" --> bool </td><td class="memItemRight" valign="bottom"><b>EnumElementCaps</b> (<a class="el" href="structMixerElement.html">MixerElement</a> *element)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aae40db16105f6a1eedabed27deedea46"></a><!-- doxytag: member="Alsa::SplitElements" ref="aae40db16105f6a1eedabed27deedea46" args="(MixerElement *elements, uint32_t &count)" --> <a class="el" href="structMixerElement.html">MixerElement</a> * </td><td class="memItemRight" valign="bottom"><b>SplitElements</b> (<a class="el" href="structMixerElement.html">MixerElement</a> *elements, uint32_t &count)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6412e3906906f7ea24aa28b8e9bb5b6a"></a><!-- doxytag: member="Alsa::FilterElements" ref="a6412e3906906f7ea24aa28b8e9bb5b6a" args="(MixerElement *elements, uint32_t &count)" --> <a class="el" href="structMixerElement.html">MixerElement</a> * </td><td class="memItemRight" valign="bottom"><b>FilterElements</b> (<a class="el" href="structMixerElement.html">MixerElement</a> *elements, uint32_t &count)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a360914add6d783d2b898e78c66d67199"></a><!-- doxytag: member="Alsa::CleanUpMixerElements" ref="a360914add6d783d2b898e78c66d67199" args="(MixerElement *elements, uint32_t count)" --> void </td><td class="memItemRight" valign="bottom"><b>CleanUpMixerElements</b> (<a class="el" href="structMixerElement.html">MixerElement</a> *elements, uint32_t count)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8f84d293d505a8cb85d5d5e1e21b67d1"></a><!-- doxytag: member="Alsa::MixerDetailsToPlayer" ref="a8f84d293d505a8cb85d5d5e1e21b67d1" args="(player_audio_mixer_channel_list_detail_t *dest)" --> void </td><td class="memItemRight" valign="bottom"><b>MixerDetailsToPlayer</b> (<a class="el" href="structplayer__audio__mixer__channel__list__detail.html">player_audio_mixer_channel_list_detail_t</a> *dest)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e7dabce93f8e20a0c8f0bab08eb36bd"></a><!-- doxytag: member="Alsa::MixerLevelsToPlayer" ref="a5e7dabce93f8e20a0c8f0bab08eb36bd" args="(player_audio_mixer_channel_list_t *dest)" --> void </td><td class="memItemRight" valign="bottom"><b>MixerLevelsToPlayer</b> (<a class="el" href="structplayer__audio__mixer__channel__list.html">player_audio_mixer_channel_list_t</a> *dest)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a78b312e82a89a0caf42adfab1ac90783"></a><!-- doxytag: member="Alsa::SetElementLevel" ref="a78b312e82a89a0caf42adfab1ac90783" args="(uint32_t index, float level)" --> void </td><td class="memItemRight" valign="bottom"><b>SetElementLevel</b> (uint32_t index, float level)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a42e25c41cb7fff378e0c231b87356bc0"></a><!-- doxytag: member="Alsa::SetElementSwitch" ref="a42e25c41cb7fff378e0c231b87356bc0" args="(uint32_t index, player_bool_t active)" --> void </td><td class="memItemRight" valign="bottom"><b>SetElementSwitch</b> (uint32_t index, <a class="el" href="structplayer__bool.html">player_bool_t</a> active)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af1636814bba70837ce61776e9b97574d"></a><!-- doxytag: member="Alsa::PublishMixerData" ref="af1636814bba70837ce61776e9b97574d" args="(void)" --> void </td><td class="memItemRight" valign="bottom"><b>PublishMixerData</b> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab871aee5263e60a1d2086ae3c66f292b"></a><!-- doxytag: member="Alsa::LevelToPlayer" ref="ab871aee5263e60a1d2086ae3c66f292b" args="(long min, long max, long level)" --> float </td><td class="memItemRight" valign="bottom"><b>LevelToPlayer</b> (long min, long max, long level)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a02627938917d0c3190659550983daec7"></a><!-- doxytag: member="Alsa::LevelFromPlayer" ref="a02627938917d0c3190659550983daec7" args="(long min, long max, float level)" --> long </td><td class="memItemRight" valign="bottom"><b>LevelFromPlayer</b> (long min, long max, float level)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1e645115ac41c03d92576fdb21ee26bc"></a><!-- doxytag: member="Alsa::PrintMixerElements" ref="a1e645115ac41c03d92576fdb21ee26bc" args="(MixerElement *elements, uint32_t count)" --> void </td><td class="memItemRight" valign="bottom"><b>PrintMixerElements</b> (<a class="el" href="structMixerElement.html">MixerElement</a> *elements, uint32_t count)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acbbce73eaea34223e2cba50fe44ef8c5"></a><!-- doxytag: member="Alsa::HandleWavePlayCmd" ref="acbbce73eaea34223e2cba50fe44ef8c5" args="(player_audio_wav_t *waveData)" --> int </td><td class="memItemRight" valign="bottom"><b>HandleWavePlayCmd</b> (<a class="el" href="structplayer__audio__wav.html">player_audio_wav_t</a> *waveData)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a76ef164def09a98c75502fedf036f52b"></a><!-- doxytag: member="Alsa::HandleSamplePlayCmd" ref="a76ef164def09a98c75502fedf036f52b" args="(player_audio_sample_item_t *data)" --> int </td><td class="memItemRight" valign="bottom"><b>HandleSamplePlayCmd</b> (<a class="el" href="structplayer__audio__sample__item.html">player_audio_sample_item_t</a> *data)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69803385503d84b52832a86b972a48b8"></a><!-- doxytag: member="Alsa::HandleRecordCmd" ref="a69803385503d84b52832a86b972a48b8" args="(player_bool_t *data)" --> int </td><td class="memItemRight" valign="bottom"><b>HandleRecordCmd</b> (<a class="el" href="structplayer__bool.html">player_bool_t</a> *data)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5500f282ce74cadea29a5480254ce489"></a><!-- doxytag: member="Alsa::HandleMixerChannelCmd" ref="a5500f282ce74cadea29a5480254ce489" args="(player_audio_mixer_channel_list_t *data)" --> int </td><td class="memItemRight" valign="bottom"><b>HandleMixerChannelCmd</b> (<a class="el" href="structplayer__audio__mixer__channel__list.html">player_audio_mixer_channel_list_t</a> *data)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a184eea3a171759e6206524ee598e0193"></a><!-- doxytag: member="Alsa::HandleSampleLoadReq" ref="a184eea3a171759e6206524ee598e0193" args="(player_audio_sample_t *data, QueuePointer &resp_queue)" --> int </td><td class="memItemRight" valign="bottom"><b>HandleSampleLoadReq</b> (<a class="el" href="structplayer__audio__sample.html">player_audio_sample_t</a> *data, <a class="el" href="classQueuePointer.html">QueuePointer</a> &resp_queue)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae21184fd76c2df2d75da0f710352bb7b"></a><!-- doxytag: member="Alsa::HandleSampleRetrieveReq" ref="ae21184fd76c2df2d75da0f710352bb7b" args="(player_audio_sample_t *data, QueuePointer &resp_queue)" --> int </td><td class="memItemRight" valign="bottom"><b>HandleSampleRetrieveReq</b> (<a class="el" href="structplayer__audio__sample.html">player_audio_sample_t</a> *data, <a class="el" href="classQueuePointer.html">QueuePointer</a> &resp_queue)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abccd1f9f7265b1c988520e8938828fb1"></a><!-- doxytag: member="Alsa::HandleSampleRecordReq" ref="abccd1f9f7265b1c988520e8938828fb1" args="(player_audio_sample_rec_req_t *data, QueuePointer &resp_queue)" --> int </td><td class="memItemRight" valign="bottom"><b>HandleSampleRecordReq</b> (<a class="el" href="structplayer__audio__sample__rec__req.html">player_audio_sample_rec_req_t</a> *data, <a class="el" href="classQueuePointer.html">QueuePointer</a> &resp_queue)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae1b683b45f11b007a8bbc87a369df4c0"></a><!-- doxytag: member="Alsa::HandleMixerChannelListReq" ref="ae1b683b45f11b007a8bbc87a369df4c0" args="(player_audio_mixer_channel_list_detail_t *data, QueuePointer &resp_queue)" --> int </td><td class="memItemRight" valign="bottom"><b>HandleMixerChannelListReq</b> (<a class="el" href="structplayer__audio__mixer__channel__list__detail.html">player_audio_mixer_channel_list_detail_t</a> *data, <a class="el" href="classQueuePointer.html">QueuePointer</a> &resp_queue)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b767870e977367109d8039bbca1173f"></a><!-- doxytag: member="Alsa::HandleMixerChannelLevelReq" ref="a1b767870e977367109d8039bbca1173f" args="(player_audio_mixer_channel_list_t *data, QueuePointer &resp_queue)" --> int </td><td class="memItemRight" valign="bottom"><b>HandleMixerChannelLevelReq</b> (<a class="el" href="structplayer__audio__mixer__channel__list.html">player_audio_mixer_channel_list_t</a> *data, <a class="el" href="classQueuePointer.html">QueuePointer</a> &resp_queue)</td></tr> <tr><td colspan="2"><h2><a name="pri-attribs"></a> Private Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a022ebbe8c2e629d0e85ba1267c751366"></a><!-- doxytag: member="Alsa::useQueue" ref="a022ebbe8c2e629d0e85ba1267c751366" args="" --> bool </td><td class="memItemRight" valign="bottom"><b>useQueue</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a64643301c238d8a750bef9505fb51807"></a><!-- doxytag: member="Alsa::debugLevel" ref="a64643301c238d8a750bef9505fb51807" args="" --> uint8_t </td><td class="memItemRight" valign="bottom"><b>debugLevel</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad9b652a684d46dc3ef6b1197f7fd67ea"></a><!-- doxytag: member="Alsa::mixerFilters" ref="ad9b652a684d46dc3ef6b1197f7fd67ea" args="" --> char ** </td><td class="memItemRight" valign="bottom"><b>mixerFilters</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f344f787e989f207d36b5f203a396c5"></a><!-- doxytag: member="Alsa::mixerFilterExact" ref="a4f344f787e989f207d36b5f203a396c5" args="" --> bool </td><td class="memItemRight" valign="bottom"><b>mixerFilterExact</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a00daf892a32c883d8a7e81e0512a11eb"></a><!-- doxytag: member="Alsa::pbDevice" ref="a00daf892a32c883d8a7e81e0512a11eb" args="" --> char * </td><td class="memItemRight" valign="bottom"><b>pbDevice</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a50d57864747b930a6bdc4fb5c1e29234"></a><!-- doxytag: member="Alsa::mixerDevice" ref="a50d57864747b930a6bdc4fb5c1e29234" args="" --> char * </td><td class="memItemRight" valign="bottom"><b>mixerDevice</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a91fc87eb964efee4030bd4254b96f612"></a><!-- doxytag: member="Alsa::recDevice" ref="a91fc87eb964efee4030bd4254b96f612" args="" --> char * </td><td class="memItemRight" valign="bottom"><b>recDevice</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a027700652aba60fe7ad01448175375"></a><!-- doxytag: member="Alsa::cfgPBPeriodTime" ref="a3a027700652aba60fe7ad01448175375" args="" --> uint32_t </td><td class="memItemRight" valign="bottom"><b>cfgPBPeriodTime</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac1f26c18e6e18026d365583457512b76"></a><!-- doxytag: member="Alsa::cfgPBBufferTime" ref="ac1f26c18e6e18026d365583457512b76" args="" --> uint32_t </td><td class="memItemRight" valign="bottom"><b>cfgPBBufferTime</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acd7ae60c5eb3a896f15c79914988de2d"></a><!-- doxytag: member="Alsa::silenceTime" ref="acd7ae60c5eb3a896f15c79914988de2d" args="" --> uint32_t </td><td class="memItemRight" valign="bottom"><b>silenceTime</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a61e03066113a9e0befb99fcbdb1619cc"></a><!-- doxytag: member="Alsa::cfgRecBufferTime" ref="a61e03066113a9e0befb99fcbdb1619cc" args="" --> uint32_t </td><td class="memItemRight" valign="bottom"><b>cfgRecBufferTime</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a62ed359433558c98c651eda2697efe45"></a><!-- doxytag: member="Alsa::cfgRecStoreTime" ref="a62ed359433558c98c651eda2697efe45" args="" --> uint32_t </td><td class="memItemRight" valign="bottom"><b>cfgRecStoreTime</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a66f04a7a377a6b2f0b63b674c501e714"></a><!-- doxytag: member="Alsa::cfgRecPeriodTime" ref="a66f04a7a377a6b2f0b63b674c501e714" args="" --> uint32_t </td><td class="memItemRight" valign="bottom"><b>cfgRecPeriodTime</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad76e50b687aebb7312caeb0c539e86cb"></a><!-- doxytag: member="Alsa::recNumChannels" ref="ad76e50b687aebb7312caeb0c539e86cb" args="" --> uint8_t </td><td class="memItemRight" valign="bottom"><b>recNumChannels</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a54c6d23c61da9f0fc798adc0280d6134"></a><!-- doxytag: member="Alsa::recSampleRate" ref="a54c6d23c61da9f0fc798adc0280d6134" args="" --> uint32_t </td><td class="memItemRight" valign="bottom"><b>recSampleRate</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65a0b4a225a72d88f90578fb028c933c"></a><!-- doxytag: member="Alsa::recBits" ref="a65a0b4a225a72d88f90578fb028c933c" args="" --> uint8_t </td><td class="memItemRight" valign="bottom"><b>recBits</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afd03e940846518cab1012b018c6436ba"></a><!-- doxytag: member="Alsa::pbHandle" ref="afd03e940846518cab1012b018c6436ba" args="" --> snd_pcm_t * </td><td class="memItemRight" valign="bottom"><b>pbHandle</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5c7ed62ae54194d11a9d7376d8d3ff1f"></a><!-- doxytag: member="Alsa::numPBFDs" ref="a5c7ed62ae54194d11a9d7376d8d3ff1f" args="" --> int </td><td class="memItemRight" valign="bottom"><b>numPBFDs</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a88319e1739c52b503c4d3b691c230aca"></a><!-- doxytag: member="Alsa::pbFDs" ref="a88319e1739c52b503c4d3b691c230aca" args="" --> struct pollfd * </td><td class="memItemRight" valign="bottom"><b>pbFDs</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2319c4849481c867ef14c7b949653de7"></a><!-- doxytag: member="Alsa::actPBBufferTime" ref="a2319c4849481c867ef14c7b949653de7" args="" --> uint32_t </td><td class="memItemRight" valign="bottom"><b>actPBBufferTime</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a420227cab9667b4f1907d863896a2fca"></a><!-- doxytag: member="Alsa::actPBPeriodTime" ref="a420227cab9667b4f1907d863896a2fca" args="" --> uint32_t </td><td class="memItemRight" valign="bottom"><b>actPBPeriodTime</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a546ce4d00aa8b167306104ca8af42a81"></a><!-- doxytag: member="Alsa::pbPeriodSize" ref="a546ce4d00aa8b167306104ca8af42a81" args="" --> snd_pcm_uframes_t </td><td class="memItemRight" valign="bottom"><b>pbPeriodSize</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7886554f87a883698160e2e4bae2efa1"></a><!-- doxytag: member="Alsa::periodBuffer" ref="a7886554f87a883698160e2e4bae2efa1" args="" --> uint8_t * </td><td class="memItemRight" valign="bottom"><b>periodBuffer</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae5f85a58e74ef814e9c8e4cabb81150f"></a><!-- doxytag: member="Alsa::recHandle" ref="ae5f85a58e74ef814e9c8e4cabb81150f" args="" --> snd_pcm_t * </td><td class="memItemRight" valign="bottom"><b>recHandle</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adbb923202d262a420fed1761a652356b"></a><!-- doxytag: member="Alsa::numRecFDs" ref="adbb923202d262a420fed1761a652356b" args="" --> int </td><td class="memItemRight" valign="bottom"><b>numRecFDs</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a79bb4b80474ad96104b52af3ee77e81b"></a><!-- doxytag: member="Alsa::recFDs" ref="a79bb4b80474ad96104b52af3ee77e81b" args="" --> struct pollfd * </td><td class="memItemRight" valign="bottom"><b>recFDs</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae017ba1dce644e72efe3b6b634b3d1bf"></a><!-- doxytag: member="Alsa::actRecBufferTime" ref="ae017ba1dce644e72efe3b6b634b3d1bf" args="" --> uint32_t </td><td class="memItemRight" valign="bottom"><b>actRecBufferTime</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3bbd64d84c8021b8568772399cb997d9"></a><!-- doxytag: member="Alsa::actRecPeriodTime" ref="a3bbd64d84c8021b8568772399cb997d9" args="" --> uint32_t </td><td class="memItemRight" valign="bottom"><b>actRecPeriodTime</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa04b160a65a8b2e0dfcf01f7a54bbb1e"></a><!-- doxytag: member="Alsa::recPeriodSize" ref="aa04b160a65a8b2e0dfcf01f7a54bbb1e" args="" --> snd_pcm_uframes_t </td><td class="memItemRight" valign="bottom"><b>recPeriodSize</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f14eaf6d616882cc4c7cbb6a4421453"></a><!-- doxytag: member="Alsa::mixerHandle" ref="a4f14eaf6d616882cc4c7cbb6a4421453" args="" --> snd_mixer_t * </td><td class="memItemRight" valign="bottom"><b>mixerHandle</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adc3d4f374d583f8358d92fe7853a0c42"></a><!-- doxytag: member="Alsa::mixerElements" ref="adc3d4f374d583f8358d92fe7853a0c42" args="" --> <a class="el" href="structMixerElement.html">MixerElement</a> * </td><td class="memItemRight" valign="bottom"><b>mixerElements</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0b03f69dd0363c06e391d94d6d12c12d"></a><!-- doxytag: member="Alsa::numElements" ref="a0b03f69dd0363c06e391d94d6d12c12d" args="" --> uint32_t </td><td class="memItemRight" valign="bottom"><b>numElements</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3d0ed91584b267c5236a3b0246e86de4"></a><!-- doxytag: member="Alsa::nextSampleIdx" ref="a3d0ed91584b267c5236a3b0246e86de4" args="" --> int </td><td class="memItemRight" valign="bottom"><b>nextSampleIdx</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a735d53a72dbc4b2c82d10eaf606296c7"></a><!-- doxytag: member="Alsa::samplesHead" ref="a735d53a72dbc4b2c82d10eaf606296c7" args="" --> <a class="el" href="structStoredSample.html">StoredSample</a> * </td><td class="memItemRight" valign="bottom"><b>samplesHead</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a75d67e2203b12b168bba3a61dbea76fe"></a><!-- doxytag: member="Alsa::samplesTail" ref="a75d67e2203b12b168bba3a61dbea76fe" args="" --> <a class="el" href="structStoredSample.html">StoredSample</a> * </td><td class="memItemRight" valign="bottom"><b>samplesTail</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa74f6d208eb54f323c4730367fff5a7e"></a><!-- doxytag: member="Alsa::queueHead" ref="aa74f6d208eb54f323c4730367fff5a7e" args="" --> <a class="el" href="structQueueItem.html">QueueItem</a> * </td><td class="memItemRight" valign="bottom"><b>queueHead</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aae08bbdf7d45dfb9e425069e7893e240"></a><!-- doxytag: member="Alsa::queueTail" ref="aae08bbdf7d45dfb9e425069e7893e240" args="" --> <a class="el" href="structQueueItem.html">QueueItem</a> * </td><td class="memItemRight" valign="bottom"><b>queueTail</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36e83a9f2749461cdf9d90c027d82d2e"></a><!-- doxytag: member="Alsa::playState" ref="a36e83a9f2749461cdf9d90c027d82d2e" args="" --> PBState </td><td class="memItemRight" valign="bottom"><b>playState</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa664cafaf6309a4a82c1da78aab370b9"></a><!-- doxytag: member="Alsa::recState" ref="aa664cafaf6309a4a82c1da78aab370b9" args="" --> PBState </td><td class="memItemRight" valign="bottom"><b>recState</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7a6fc10fdae9bc0b47d2ab1cc28c1d06"></a><!-- doxytag: member="Alsa::recDataLength" ref="a7a6fc10fdae9bc0b47d2ab1cc28c1d06" args="" --> uint32_t </td><td class="memItemRight" valign="bottom"><b>recDataLength</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae82ea8f8aab18ab737c7bcd30a56c6f8"></a><!-- doxytag: member="Alsa::recDataOffset" ref="ae82ea8f8aab18ab737c7bcd30a56c6f8" args="" --> uint32_t </td><td class="memItemRight" valign="bottom"><b>recDataOffset</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5a53c1235ba89a2899540da6c73165e9"></a><!-- doxytag: member="Alsa::recData" ref="a5a53c1235ba89a2899540da6c73165e9" args="" --> uint8_t * </td><td class="memItemRight" valign="bottom"><b>recData</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01856b279ef4530fe4479ecec1683c1c"></a><!-- doxytag: member="Alsa::recDest" ref="a01856b279ef4530fe4479ecec1683c1c" args="" --> int </td><td class="memItemRight" valign="bottom"><b>recDest</b></td></tr> </table> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a46a695a8a788d0039c1465389a54d855"></a><!-- doxytag: member="Alsa::Main" ref="a46a695a8a788d0039c1465389a54d855" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Alsa::Main </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td><code> [private, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Main method for driver thread. </p> <p>drivers have their own thread of execution, created using StartThread(); this is the entry point for the driver thread, and must be overloaded by all threaded drivers. </p> <p>Implements <a class="el" href="classThreadedDriver.html#a962ea9c4e4e36570dd33604552726ae9">ThreadedDriver</a>.</p> <p>References <a class="el" href="classDriver.html#a125eab00b72ad55885162aef7024e09b">Driver::InQueue</a>, <a class="el" href="group__libplayercommon.html#ga65a614d6a5e549ca15019bcc8aa7f931">PLAYER_WARN1</a>, and <a class="el" href="classDriver.html#a91c6a959c611b5ff76623e82de665f68">Driver::ProcessMessages()</a>.</p> </div> </div> <a class="anchor" id="a7b553f911e3a72797a493eac04ed6201"></a><!-- doxytag: member="Alsa::MainQuit" ref="a7b553f911e3a72797a493eac04ed6201" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Alsa::MainQuit </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td><code> [private, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Cleanup method for driver thread (called when main exits). </p> <p>Overload this method and to do additional cleanup when the driver thread exits. </p> <p>Reimplemented from <a class="el" href="classThreadedDriver.html#ae35d4f9522aace06af1ca7056af9a2ae">ThreadedDriver</a>.</p> <p>References <a class="el" href="group__libplayercommon.html#ga107ea47b28d5a6293b328ece093a91db">PLAYER_WARN</a>.</p> </div> </div> <a class="anchor" id="a7ed88e541c2471cc7bb1cebda8025e41"></a><!-- doxytag: member="Alsa::ProcessMessage" ref="a7ed88e541c2471cc7bb1cebda8025e41" args="(QueuePointer &resp_queue, player_msghdr *hdr, void *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int Alsa::ProcessMessage </td> <td>(</td> <td class="paramtype"><a class="el" href="classQueuePointer.html">QueuePointer</a> & </td> <td class="paramname"> <em>resp_queue</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structplayer__msghdr.html">player_msghdr</a> * </td> <td class="paramname"> <em>hdr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>data</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p><a class="el" href="classMessage.html" title="Reference-counted message objects.">Message</a> handler. </p> <p>This function is called once for each message in the incoming queue. Reimplement it to provide message handling. Return 0 if you handled the message and -1 otherwise</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>resp_queue</em> </td><td>The queue to which any response should go. </td></tr> <tr><td valign="top"></td><td valign="top"><em>hdr</em> </td><td>The message header </td></tr> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>The message body </td></tr> </table> </dd> </dl> <p>Reimplemented from <a class="el" href="classDriver.html#ab05d0e8502a494a83d0442a48095a35c">Driver</a>.</p> <p>References <a class="el" href="classDriver.html#a98fc106a6ad39263aa769b37bd58905c">Driver::device_addr</a>, <a class="el" href="classMessage.html#a5fd1734509a7520a64186c2653207751">Message::MatchMessage()</a>, <a class="el" href="group__interface__audio.html#ga9363821c49c00f79cb5fdd7193d4fa97">PLAYER_AUDIO_CMD_MIXER_CHANNEL</a>, <a class="el" href="group__interface__audio.html#gae756641898babf9d2f51dd0e2c2385e7">PLAYER_AUDIO_CMD_SAMPLE_PLAY</a>, <a class="el" href="group__interface__audio.html#ga948ee3baf77ce31d0485b2b95678e1d9">PLAYER_AUDIO_CMD_WAV_PLAY</a>, <a class="el" href="group__interface__audio.html#gaacb5a88ca1add361786b79574bfd23ba">PLAYER_AUDIO_CMD_WAV_STREAM_REC</a>, <a class="el" href="group__interface__audio.html#gab7c4f3543fe2c58e0f082e1d359ce281">PLAYER_AUDIO_REQ_MIXER_CHANNEL_LEVEL</a>, <a class="el" href="group__interface__audio.html#gaaad4011851411a403087171c701e4658">PLAYER_AUDIO_REQ_MIXER_CHANNEL_LIST</a>, <a class="el" href="group__interface__audio.html#gaf612caf32ca4991d88801017cd3da345">PLAYER_AUDIO_REQ_SAMPLE_LOAD</a>, <a class="el" href="group__interface__audio.html#ga60edda4334dc61d9091d7bb421245154">PLAYER_AUDIO_REQ_SAMPLE_REC</a>, <a class="el" href="group__interface__audio.html#ga5fc1cd23e50cfe20995a1309d2c5b682">PLAYER_AUDIO_REQ_SAMPLE_RETRIEVE</a>, <a class="el" href="group__message__types.html#gaf8fb5087b5a1f4ec631034e71dec0f3d">PLAYER_MSGTYPE_CMD</a>, and <a class="el" href="group__message__types.html#ga59ed953188471436df98bfc3adf0f457">PLAYER_MSGTYPE_REQ</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="alsa_8h_source.html">alsa.h</a></li> <li>alsa.cc</li> </ul> </div> <!-- render the modification time of the source file --> <div class="timestamp"> <hr> <table style="width:100%;"> <tr> <td style="text-align:left;"> Last updated 12 September 2005 21:38:45 <!-- <td style="text-align:right;"> <a href="http://validator.w3.org/check/referer"><img style="vertical-align:middle;border:0;width:88px;height:31px" src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a> <a href="http://jigsaw.w3.org/css-validator/"> <img style="vertical-align:middle;border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"> </a> --> </tr> </table> </div> </tr> </table> </BODY> </HTML>