<!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.8"/> <title>OpenMAXBellagio: omx_reference_resource_manager.c File Reference</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="navtree.js"></script> <script type="text/javascript"> $(document).ready(initResizable); $(window).load(resizeHeight); </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 style="padding-left: 0.5em;"> <div id="projectname">OpenMAXBellagio  <span id="projectnumber">0.9.3</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.8 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </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('omx__reference__resource__manager_8c.html','');}); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">omx_reference_resource_manager.c File Reference</div> </div> </div><!--header--> <div class="contents"> <div class="textblock"><code>#include <string.h></code><br /> <code>#include "<a class="el" href="omx__reference__resource__manager_8h_source.html">omx_reference_resource_manager.h</a>"</code><br /> <code>#include "<a class="el" href="omx__base__component_8h_source.html">base/omx_base_component.h</a>"</code><br /> <code>#include "<a class="el" href="queue_8h_source.html">queue.h</a>"</code><br /> </div> <p><a href="omx__reference__resource__manager_8c_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:a924417671f701795687c6dc498fd962b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="omx__reference__resource__manager_8c.html#a924417671f701795687c6dc498fd962b">RM_Init</a> ()</td></tr> <tr class="separator:a924417671f701795687c6dc498fd962b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2e5cb678b1ad832d6a8c1a3783d89dc2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="omx__reference__resource__manager_8c.html#a2e5cb678b1ad832d6a8c1a3783d89dc2">RM_RegisterComponent</a> (char *name, int max_components)</td></tr> <tr class="separator:a2e5cb678b1ad832d6a8c1a3783d89dc2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad7d71a888886cf2ad51e4522b7daff47"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="omx__reference__resource__manager_8c.html#ad7d71a888886cf2ad51e4522b7daff47">RM_Deinit</a> ()</td></tr> <tr class="separator:ad7d71a888886cf2ad51e4522b7daff47"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1c4a982b20b05d9d5deb59c1a9d5ab42"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="omx__reference__resource__manager_8c.html#a1c4a982b20b05d9d5deb59c1a9d5ab42">addElemToList</a> (<a class="el" href="struct_component_list_type.html">ComponentListType</a> **list, <a class="el" href="struct_o_m_x___c_o_m_p_o_n_e_n_t_t_y_p_e.html">OMX_COMPONENTTYPE</a> *openmaxStandComp, int index, <a class="el" href="_o_m_x___types_8h.html#a4aa524afe637a18762ac3cfdb3ce277b">OMX_BOOL</a> bIsWaiting)</td></tr> <tr class="separator:a1c4a982b20b05d9d5deb59c1a9d5ab42"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac8544938ed46cb490e4105e354c83fb5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="omx__reference__resource__manager_8c.html#ac8544938ed46cb490e4105e354c83fb5">removeElemFromList</a> (<a class="el" href="struct_component_list_type.html">ComponentListType</a> **list, <a class="el" href="struct_o_m_x___c_o_m_p_o_n_e_n_t_t_y_p_e.html">OMX_COMPONENTTYPE</a> *openmaxStandComp)</td></tr> <tr class="separator:ac8544938ed46cb490e4105e354c83fb5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abb69f7f84caf524a66bcefac851acbcc"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="omx__reference__resource__manager_8c.html#abb69f7f84caf524a66bcefac851acbcc">numElemInList</a> (<a class="el" href="struct_component_list_type.html">ComponentListType</a> *list)</td></tr> <tr class="separator:abb69f7f84caf524a66bcefac851acbcc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a881174659b20d25bccaecbbdfe187cb2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="omx__reference__resource__manager_8c.html#a881174659b20d25bccaecbbdfe187cb2">clearList</a> (<a class="el" href="struct_component_list_type.html">ComponentListType</a> **list)</td></tr> <tr class="separator:a881174659b20d25bccaecbbdfe187cb2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab4e44a76c9d5b0b39835189994c5cafa"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="omx__reference__resource__manager_8c.html#ab4e44a76c9d5b0b39835189994c5cafa">RM_printList</a> (<a class="el" href="struct_component_list_type.html">ComponentListType</a> *list, int viewFlag)</td></tr> <tr class="separator:ab4e44a76c9d5b0b39835189994c5cafa"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a418d434f34d08be0b1fc7fda38260fe3"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="omx__reference__resource__manager_8c.html#a418d434f34d08be0b1fc7fda38260fe3">searchLowerPriority</a> (<a class="el" href="struct_component_list_type.html">ComponentListType</a> *list, int current_priority, <a class="el" href="struct_component_list_type.html">ComponentListType</a> **oldest_component_preemptable)</td></tr> <tr class="separator:a418d434f34d08be0b1fc7fda38260fe3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad31d784fe5368094ed95c966192a6fe0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="omx__reference__resource__manager_8c.html#ad31d784fe5368094ed95c966192a6fe0">preemptComponent</a> (<a class="el" href="struct_o_m_x___c_o_m_p_o_n_e_n_t_t_y_p_e.html">OMX_COMPONENTTYPE</a> *openmaxStandComp)</td></tr> <tr class="separator:ad31d784fe5368094ed95c966192a6fe0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6b5fe9df8f6241519c7cae63a76b4cb0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="omx__reference__resource__manager_8c.html#a6b5fe9df8f6241519c7cae63a76b4cb0">RM_getResource</a> (<a class="el" href="struct_o_m_x___c_o_m_p_o_n_e_n_t_t_y_p_e.html">OMX_COMPONENTTYPE</a> *openmaxStandComp)</td></tr> <tr class="separator:a6b5fe9df8f6241519c7cae63a76b4cb0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab1fd22e9e8ead657d3b5df8be7e36485"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="omx__reference__resource__manager_8c.html#ab1fd22e9e8ead657d3b5df8be7e36485">RM_releaseResource</a> (<a class="el" href="struct_o_m_x___c_o_m_p_o_n_e_n_t_t_y_p_e.html">OMX_COMPONENTTYPE</a> *openmaxStandComp)</td></tr> <tr class="separator:ab1fd22e9e8ead657d3b5df8be7e36485"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aeb34421fa8c4c46d49cdd99c51f64715"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="omx__reference__resource__manager_8c.html#aeb34421fa8c4c46d49cdd99c51f64715">RM_waitForResource</a> (<a class="el" href="struct_o_m_x___c_o_m_p_o_n_e_n_t_t_y_p_e.html">OMX_COMPONENTTYPE</a> *openmaxStandComp)</td></tr> <tr class="separator:aeb34421fa8c4c46d49cdd99c51f64715"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5b75da4f3df7ef635cb08450b0a7e489"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="omx__reference__resource__manager_8c.html#a5b75da4f3df7ef635cb08450b0a7e489">RM_removeFromWaitForResource</a> (<a class="el" href="struct_o_m_x___c_o_m_p_o_n_e_n_t_t_y_p_e.html">OMX_COMPONENTTYPE</a> *openmaxStandComp)</td></tr> <tr class="separator:a5b75da4f3df7ef635cb08450b0a7e489"><td class="memSeparator" colspan="2"> </td></tr> </table> <h2 class="groupheader">Function Documentation</h2> <a class="anchor" id="a1c4a982b20b05d9d5deb59c1a9d5ab42"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> addElemToList </td> <td>(</td> <td class="paramtype"><a class="el" href="struct_component_list_type.html">ComponentListType</a> ** </td> <td class="paramname"><em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="struct_o_m_x___c_o_m_p_o_n_e_n_t_t_y_p_e.html">OMX_COMPONENTTYPE</a> * </td> <td class="paramname"><em>openmaxStandComp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>index</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="_o_m_x___types_8h.html#a4aa524afe637a18762ac3cfdb3ce277b">OMX_BOOL</a> </td> <td class="paramname"><em>bIsWaiting</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>This function adds a new element to a given list. If it does not yet exists, this function also allocates the list. </p> <p>Definition at line <a class="el" href="omx__reference__resource__manager_8c_source.html#l00109">109</a> of file <a class="el" href="omx__reference__resource__manager_8c_source.html">omx_reference_resource_manager.c</a>.</p> <p>References <a class="el" href="omx__comp__debug__levels_8h_source.html#l00039">DEB_LEV_ERR</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00059">DEB_LEV_FUNCTION_NAME</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00077">DEBUG</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00054">globalComponentList</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00055">globalWaitingComponentList</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00041">ComponentListType::next</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00039">ComponentListType::nGroupPriority</a>, <a class="el" href="omx__base__component_8h_source.html#l00164">omx_base_component_PrivateType::nGroupPriority</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00131">OMX_ErrorInsufficientResources</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00128">OMX_ErrorNone</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00038">ComponentListType::openmaxStandComp</a>, <a class="el" href="_o_m_x___component_8h_source.html#l00326">OMX_COMPONENTTYPE::pComponentPrivate</a>, and <a class="el" href="omx__reference__resource__manager_8h_source.html#l00040">ComponentListType::timestamp</a>.</p> <p>Referenced by <a class="el" href="omx__reference__resource__manager_8c_source.html#l00344">RM_getResource()</a>, and <a class="el" href="omx__reference__resource__manager_8c_source.html#l00451">RM_waitForResource()</a>.</p> </div> </div> <a class="anchor" id="a881174659b20d25bccaecbbdfe187cb2"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> clearList </td> <td>(</td> <td class="paramtype"><a class="el" href="struct_component_list_type.html">ComponentListType</a> ** </td> <td class="paramname"><em>list</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>This function deallocate any remaining element in a list and dispose it </p> <p>Definition at line <a class="el" href="omx__reference__resource__manager_8c_source.html#l00223">223</a> of file <a class="el" href="omx__reference__resource__manager_8c_source.html">omx_reference_resource_manager.c</a>.</p> <p>References <a class="el" href="omx__comp__debug__levels_8h_source.html#l00059">DEB_LEV_FUNCTION_NAME</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00077">DEBUG</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00041">ComponentListType::next</a>, and <a class="el" href="_o_m_x___core_8h_source.html#l00128">OMX_ErrorNone</a>.</p> <p>Referenced by <a class="el" href="omx__reference__resource__manager_8c_source.html#l00093">RM_Deinit()</a>.</p> </div> </div> <a class="anchor" id="abb69f7f84caf524a66bcefac851acbcc"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int numElemInList </td> <td>(</td> <td class="paramtype"><a class="el" href="struct_component_list_type.html">ComponentListType</a> * </td> <td class="paramname"><em>list</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>This function returns the number of elements present in the list. If the list does not exists, this function returns 0 elements without further warnings </p> <p>Definition at line <a class="el" href="omx__reference__resource__manager_8c_source.html#l00202">202</a> of file <a class="el" href="omx__reference__resource__manager_8c_source.html">omx_reference_resource_manager.c</a>.</p> <p>References <a class="el" href="omx__comp__debug__levels_8h_source.html#l00059">DEB_LEV_FUNCTION_NAME</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00048">DEB_LEV_SIMPLE_SEQ</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00077">DEBUG</a>, and <a class="el" href="omx__reference__resource__manager_8h_source.html#l00041">ComponentListType::next</a>.</p> <p>Referenced by <a class="el" href="omx__reference__resource__manager_8c_source.html#l00344">RM_getResource()</a>, and <a class="el" href="omx__reference__resource__manager_8c_source.html#l00399">RM_releaseResource()</a>.</p> </div> </div> <a class="anchor" id="ad31d784fe5368094ed95c966192a6fe0"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> preemptComponent </td> <td>(</td> <td class="paramtype"><a class="el" href="struct_o_m_x___c_o_m_p_o_n_e_n_t_t_y_p_e.html">OMX_COMPONENTTYPE</a> * </td> <td class="paramname"><em>openmaxStandComp</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>This function tries to preempt the given component, that has been detected as the candidate by the default policy defined in the OpenMAX spec. </p> <p>Definition at line <a class="el" href="omx__reference__resource__manager_8c_source.html#l00312">312</a> of file <a class="el" href="omx__reference__resource__manager_8c_source.html">omx_reference_resource_manager.c</a>.</p> <p>References <a class="el" href="omx__base__component_8h_source.html#l00164">omx_base_component_PrivateType::callbackData</a>, <a class="el" href="omx__base__component_8h_source.html#l00164">omx_base_component_PrivateType::callbacks</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00039">DEB_LEV_ERR</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00059">DEB_LEV_FUNCTION_NAME</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00077">DEBUG</a>, <a class="el" href="omxvolcontroltest_8c_source.html#l00034">err</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00530">OMX_CALLBACKTYPE::EventHandler</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00051">OMX_CommandStateSet</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00128">OMX_ErrorNone</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00172">OMX_ErrorResourcesLost</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00134">OMX_ErrorUndefined</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00482">OMX_EventError</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00745">OMX_SendCommand</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00105">OMX_StateExecuting</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00102">OMX_StateIdle</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00097">OMX_StateLoaded</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00107">OMX_StatePause</a>, <a class="el" href="_o_m_x___component_8h_source.html#l00326">OMX_COMPONENTTYPE::pComponentPrivate</a>, and <a class="el" href="omx__base__component_8h_source.html#l00164">omx_base_component_PrivateType::state</a>.</p> <p>Referenced by <a class="el" href="omx__reference__resource__manager_8c_source.html#l00344">RM_getResource()</a>.</p> </div> </div> <a class="anchor" id="ac8544938ed46cb490e4105e354c83fb5"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> removeElemFromList </td> <td>(</td> <td class="paramtype"><a class="el" href="struct_component_list_type.html">ComponentListType</a> ** </td> <td class="paramname"><em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="struct_o_m_x___c_o_m_p_o_n_e_n_t_t_y_p_e.html">OMX_COMPONENTTYPE</a> * </td> <td class="paramname"><em>openmaxStandComp</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>This function removes the given element from the list, if present. If the list is empty, this function cleans up everything. </p> <p>Definition at line <a class="el" href="omx__reference__resource__manager_8c_source.html#l00157">157</a> of file <a class="el" href="omx__reference__resource__manager_8c_source.html">omx_reference_resource_manager.c</a>.</p> <p>References <a class="el" href="omx__comp__debug__levels_8h_source.html#l00039">DEB_LEV_ERR</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00059">DEB_LEV_FUNCTION_NAME</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00077">DEBUG</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00041">ComponentListType::next</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00140">OMX_ErrorComponentNotFound</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00128">OMX_ErrorNone</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00134">OMX_ErrorUndefined</a>, <a class="el" href="_o_m_x___types_8h_source.html#l00190">OMX_FALSE</a>, <a class="el" href="_o_m_x___types_8h_source.html#l00191">OMX_TRUE</a>, and <a class="el" href="omx__reference__resource__manager_8h_source.html#l00038">ComponentListType::openmaxStandComp</a>.</p> <p>Referenced by <a class="el" href="omx__reference__resource__manager_8c_source.html#l00344">RM_getResource()</a>, <a class="el" href="omx__reference__resource__manager_8c_source.html#l00399">RM_releaseResource()</a>, and <a class="el" href="omx__reference__resource__manager_8c_source.html#l00485">RM_removeFromWaitForResource()</a>.</p> </div> </div> <a class="anchor" id="ad7d71a888886cf2ad51e4522b7daff47"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> RM_Deinit </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>This function de-initializes the resource manager. In the current implementation its responsibility is to clean up any queue that can be left pending at the end of usage. With a correct use of the resource manager it won't happen, but it is safer to clean up everything this these lists are global and alive for all the life of IL client, beyond the usual OMX_Init - Deinit scope. </p> <p>Definition at line <a class="el" href="omx__reference__resource__manager_8c_source.html#l00093">93</a> of file <a class="el" href="omx__reference__resource__manager_8c_source.html">omx_reference_resource_manager.c</a>.</p> <p>References <a class="el" href="omx__reference__resource__manager_8c_source.html#l00223">clearList()</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00059">DEB_LEV_FUNCTION_NAME</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00077">DEBUG</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00054">globalComponentList</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00055">globalWaitingComponentList</a>, and <a class="el" href="_o_m_x___core_8h_source.html#l00128">OMX_ErrorNone</a>.</p> <p>Referenced by <a class="el" href="st__static__component__loader_8c_source.html#l00170">BOSA_ST_DeInitComponentLoader()</a>, and <a class="el" href="ste__dynamic__component__loader_8c_source.html#l00156">BOSA_STE_DeInitComponentLoader()</a>.</p> </div> </div> <a class="anchor" id="a6b5fe9df8f6241519c7cae63a76b4cb0"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> RM_getResource </td> <td>(</td> <td class="paramtype"><a class="el" href="struct_o_m_x___c_o_m_p_o_n_e_n_t_t_y_p_e.html">OMX_COMPONENTTYPE</a> * </td> <td class="paramname"><em>openmaxStandComp</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>This function is executed by a component when it changes state from Loaded to Idle. If it return ErrorNone the resource is granted and it can transit to Idle. In case the resource is already busy, the resource manager preempt another component with a lower priority and a oldest time flag if it exists. Differently it returns OMX_ErrorInsufficientResources </p> <p>Definition at line <a class="el" href="omx__reference__resource__manager_8c_source.html#l00344">344</a> of file <a class="el" href="omx__reference__resource__manager_8c_source.html">omx_reference_resource_manager.c</a>.</p> <p>References <a class="el" href="omx__reference__resource__manager_8c_source.html#l00109">addElemToList()</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00046">NameIndexType::component_name</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00039">DEB_LEV_ERR</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00059">DEB_LEV_FUNCTION_NAME</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00048">DEB_LEV_SIMPLE_SEQ</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00077">DEBUG</a>, <a class="el" href="omxvolcontroltest_8c_source.html#l00034">err</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00054">globalComponentList</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00047">NameIndexType::index</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00053">listOfcomponentRegistered</a>, <a class="el" href="omx__base__component_8h_source.html#l00164">omx_base_component_PrivateType::name</a>, <a class="el" href="omx__base__component_8h_source.html#l00164">omx_base_component_PrivateType::nGroupPriority</a>, <a class="el" href="omx__reference__resource__manager_8c_source.html#l00202">numElemInList()</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00131">OMX_ErrorInsufficientResources</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00128">OMX_ErrorNone</a>, <a class="el" href="_o_m_x___types_8h_source.html#l00190">OMX_FALSE</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00038">ComponentListType::openmaxStandComp</a>, <a class="el" href="_o_m_x___component_8h_source.html#l00326">OMX_COMPONENTTYPE::pComponentPrivate</a>, <a class="el" href="omx__reference__resource__manager_8c_source.html#l00312">preemptComponent()</a>, <a class="el" href="omx__reference__resource__manager_8c_source.html#l00157">removeElemFromList()</a>, and <a class="el" href="omx__reference__resource__manager_8c_source.html#l00277">searchLowerPriority()</a>.</p> <p>Referenced by <a class="el" href="omx__base__component_8c_source.html#l00370">omx_base_component_DoStateSet()</a>.</p> </div> </div> <a class="anchor" id="a924417671f701795687c6dc498fd962b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> RM_Init </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>This function initializes the Resource manager. In the current implementation it does not perform any operation </p> <p>Definition at line <a class="el" href="omx__reference__resource__manager_8c_source.html#l00042">42</a> of file <a class="el" href="omx__reference__resource__manager_8c_source.html">omx_reference_resource_manager.c</a>.</p> <p>References <a class="el" href="omx__reference__resource__manager_8h_source.html#l00046">NameIndexType::component_name</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00059">DEB_LEV_FUNCTION_NAME</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00077">DEBUG</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00054">globalComponentList</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00052">globalIndex</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00055">globalWaitingComponentList</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00047">NameIndexType::index</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00053">listOfcomponentRegistered</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00031">MAX_COMPONENTS_TYPES_HANDLED</a>, and <a class="el" href="_o_m_x___core_8h_source.html#l00128">OMX_ErrorNone</a>.</p> <p>Referenced by <a class="el" href="st__static__component__loader_8c_source.html#l00075">BOSA_ST_InitComponentLoader()</a>, and <a class="el" href="ste__dynamic__component__loader_8c_source.html#l00079">BOSA_STE_InitComponentLoader()</a>.</p> </div> </div> <a class="anchor" id="ab4e44a76c9d5b0b39835189994c5cafa"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void RM_printList </td> <td>(</td> <td class="paramtype"><a class="el" href="struct_component_list_type.html">ComponentListType</a> * </td> <td class="paramname"><em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>viewFlag</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>This debug function is capable of printing the full list actually stored </p> <p>Definition at line <a class="el" href="omx__reference__resource__manager_8c_source.html#l00246">246</a> of file <a class="el" href="omx__reference__resource__manager_8c_source.html">omx_reference_resource_manager.c</a>.</p> <p>References <a class="el" href="omx__base__component_8h_source.html#l00164">omx_base_component_PrivateType::name</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00041">ComponentListType::next</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00038">ComponentListType::openmaxStandComp</a>, <a class="el" href="_o_m_x___component_8h_source.html#l00326">OMX_COMPONENTTYPE::pComponentPrivate</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00066">RM_SHOW_ADDRESS</a>, and <a class="el" href="omx__reference__resource__manager_8h_source.html#l00065">RM_SHOW_NAME</a>.</p> </div> </div> <a class="anchor" id="a2e5cb678b1ad832d6a8c1a3783d89dc2"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> RM_RegisterComponent </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"><em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>max_components</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>This function is called during initialization by any component interested in be handled by the internal resource manager </p> <p>Definition at line <a class="el" href="omx__reference__resource__manager_8c_source.html#l00062">62</a> of file <a class="el" href="omx__reference__resource__manager_8c_source.html">omx_reference_resource_manager.c</a>.</p> <p>References <a class="el" href="omx__reference__resource__manager_8h_source.html#l00046">NameIndexType::component_name</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00059">DEB_LEV_FUNCTION_NAME</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00077">DEBUG</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00052">globalIndex</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00047">NameIndexType::index</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00053">listOfcomponentRegistered</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00048">NameIndexType::max_components</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00131">OMX_ErrorInsufficientResources</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00128">OMX_ErrorNone</a>, and <a class="el" href="_o_m_x___core_8h_source.html#l00281">OMX_MAX_STRINGNAME_SIZE</a>.</p> <p>Referenced by <a class="el" href="omx__audiomixer__component_8c_source.html#l00035">omx_audio_mixer_component_Constructor()</a>, <a class="el" href="omx__clocksrc__component_8c_source.html#l00035">omx_clocksrc_component_Constructor()</a>, <a class="el" href="omx__video__scheduler__component_8c_source.html#l00040">omx_video_scheduler_component_Constructor()</a>, and <a class="el" href="omx__volume__component_8c_source.html#l00035">omx_volume_component_Constructor()</a>.</p> </div> </div> <a class="anchor" id="ab1fd22e9e8ead657d3b5df8be7e36485"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> RM_releaseResource </td> <td>(</td> <td class="paramtype"><a class="el" href="struct_o_m_x___c_o_m_p_o_n_e_n_t_t_y_p_e.html">OMX_COMPONENTTYPE</a> * </td> <td class="paramname"><em>openmaxStandComp</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>This function is called by a component when it transit from Idle to Loaded and can release its used resource handled by the resource manager </p> <p>Definition at line <a class="el" href="omx__reference__resource__manager_8c_source.html#l00399">399</a> of file <a class="el" href="omx__reference__resource__manager_8c_source.html">omx_reference_resource_manager.c</a>.</p> <p>References <a class="el" href="omx__reference__resource__manager_8h_source.html#l00046">NameIndexType::component_name</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00039">DEB_LEV_ERR</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00059">DEB_LEV_FUNCTION_NAME</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00077">DEBUG</a>, <a class="el" href="omxvolcontroltest_8c_source.html#l00034">err</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00054">globalComponentList</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00055">globalWaitingComponentList</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00047">NameIndexType::index</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00053">listOfcomponentRegistered</a>, <a class="el" href="omx__base__component_8h_source.html#l00164">omx_base_component_PrivateType::name</a>, <a class="el" href="omx__reference__resource__manager_8c_source.html#l00202">numElemInList()</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00051">OMX_CommandStateSet</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00128">OMX_ErrorNone</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00134">OMX_ErrorUndefined</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00745">OMX_SendCommand</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00102">OMX_StateIdle</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00038">ComponentListType::openmaxStandComp</a>, <a class="el" href="_o_m_x___component_8h_source.html#l00326">OMX_COMPONENTTYPE::pComponentPrivate</a>, and <a class="el" href="omx__reference__resource__manager_8c_source.html#l00157">removeElemFromList()</a>.</p> <p>Referenced by <a class="el" href="omx__base__component_8c_source.html#l00370">omx_base_component_DoStateSet()</a>.</p> </div> </div> <a class="anchor" id="a5b75da4f3df7ef635cb08450b0a7e489"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> RM_removeFromWaitForResource </td> <td>(</td> <td class="paramtype"><a class="el" href="struct_o_m_x___c_o_m_p_o_n_e_n_t_t_y_p_e.html">OMX_COMPONENTTYPE</a> * </td> <td class="paramname"><em>openmaxStandComp</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>This function removes a component from the waiting queue if the IL client decides that the component should not wait any more for the resource </p> <p>Definition at line <a class="el" href="omx__reference__resource__manager_8c_source.html#l00485">485</a> of file <a class="el" href="omx__reference__resource__manager_8c_source.html">omx_reference_resource_manager.c</a>.</p> <p>References <a class="el" href="omx__reference__resource__manager_8h_source.html#l00046">NameIndexType::component_name</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00039">DEB_LEV_ERR</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00059">DEB_LEV_FUNCTION_NAME</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00077">DEBUG</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00054">globalComponentList</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00053">listOfcomponentRegistered</a>, <a class="el" href="omx__base__component_8h_source.html#l00164">omx_base_component_PrivateType::name</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00128">OMX_ErrorNone</a>, <a class="el" href="_o_m_x___component_8h_source.html#l00326">OMX_COMPONENTTYPE::pComponentPrivate</a>, and <a class="el" href="omx__reference__resource__manager_8c_source.html#l00157">removeElemFromList()</a>.</p> <p>Referenced by <a class="el" href="omx__base__component_8c_source.html#l00370">omx_base_component_DoStateSet()</a>.</p> </div> </div> <a class="anchor" id="aeb34421fa8c4c46d49cdd99c51f64715"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> RM_waitForResource </td> <td>(</td> <td class="paramtype"><a class="el" href="struct_o_m_x___c_o_m_p_o_n_e_n_t_t_y_p_e.html">OMX_COMPONENTTYPE</a> * </td> <td class="paramname"><em>openmaxStandComp</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>This function adds the given component to the waiting queue for the given resource. When a resource becomes available through the RM_releaseResource function the first element in the queue is taken off the list and it receives the resource just released. </p> <p>Definition at line <a class="el" href="omx__reference__resource__manager_8c_source.html#l00451">451</a> of file <a class="el" href="omx__reference__resource__manager_8c_source.html">omx_reference_resource_manager.c</a>.</p> <p>References <a class="el" href="omx__reference__resource__manager_8c_source.html#l00109">addElemToList()</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00046">NameIndexType::component_name</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00039">DEB_LEV_ERR</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00059">DEB_LEV_FUNCTION_NAME</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00077">DEBUG</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00055">globalWaitingComponentList</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00047">NameIndexType::index</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00053">listOfcomponentRegistered</a>, <a class="el" href="omx__base__component_8h_source.html#l00164">omx_base_component_PrivateType::name</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00128">OMX_ErrorNone</a>, <a class="el" href="_o_m_x___types_8h_source.html#l00191">OMX_TRUE</a>, and <a class="el" href="_o_m_x___component_8h_source.html#l00326">OMX_COMPONENTTYPE::pComponentPrivate</a>.</p> <p>Referenced by <a class="el" href="omx__base__component_8c_source.html#l00370">omx_base_component_DoStateSet()</a>.</p> </div> </div> <a class="anchor" id="a418d434f34d08be0b1fc7fda38260fe3"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int searchLowerPriority </td> <td>(</td> <td class="paramtype"><a class="el" href="struct_component_list_type.html">ComponentListType</a> * </td> <td class="paramname"><em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>current_priority</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="struct_component_list_type.html">ComponentListType</a> ** </td> <td class="paramname"><em>oldest_component_preemptable</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>This function returns the number of components that have a lower priority than the value specified, and the lowest among all possibles. If the number returned is 0, no component is preemptable. if it is 1 or more, the oldest_component_preemptable will contain the reference to the preemptable component with the oldest time stamp. </p> <p>Definition at line <a class="el" href="omx__reference__resource__manager_8c_source.html#l00277">277</a> of file <a class="el" href="omx__reference__resource__manager_8c_source.html">omx_reference_resource_manager.c</a>.</p> <p>References <a class="el" href="omx__comp__debug__levels_8h_source.html#l00039">DEB_LEV_ERR</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00059">DEB_LEV_FUNCTION_NAME</a>, <a class="el" href="omx__comp__debug__levels_8h_source.html#l00077">DEBUG</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00041">ComponentListType::next</a>, <a class="el" href="omx__reference__resource__manager_8h_source.html#l00039">ComponentListType::nGroupPriority</a>, <a class="el" href="_o_m_x___core_8h_source.html#l00134">OMX_ErrorUndefined</a>, and <a class="el" href="omx__reference__resource__manager_8h_source.html#l00040">ComponentListType::timestamp</a>.</p> <p>Referenced by <a class="el" href="omx__reference__resource__manager_8c_source.html#l00344">RM_getResource()</a>.</p> </div> </div> </div><!-- contents --> </div><!-- doc-content --> <html> <body> <hr size="1"><small>Generated for OpenMAX Bellagio rel. 0.9.3 by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small> <br> <a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=160680&type=4" width="125" height="37" border="0" alt="SourceForge.net Logo" /></a> </body> </html>