|
101 | 101 | <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">public</span>:</div> |
102 | 102 | <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <a class="code hl_class" href="classaudio__tools_1_1_mutex_r_t_o_s.html">MutexRTOS</a>() {</div> |
103 | 103 | <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> xSemaphore = xSemaphoreCreateBinary();</div> |
104 | | -<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> xSemaphoreGive(xSemaphore);</div> |
| 104 | +<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> unlock();</div> |
105 | 105 | <div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> }</div> |
106 | 106 | <div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">virtual</span> <a class="code hl_class" href="classaudio__tools_1_1_mutex_r_t_o_s.html">~MutexRTOS</a>() {</div> |
107 | 107 | <div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> vSemaphoreDelete(xSemaphore);</div> |
|
118 | 118 | <div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span>};</div> |
119 | 119 | </div> |
120 | 120 | <div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div> |
121 | | -<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="keyword">using </span><a class="code hl_class" href="classaudio__tools_1_1_mutex_r_p2040.html">Mutex</a> = <a class="code hl_class" href="classaudio__tools_1_1_mutex_r_t_o_s.html">MutexRTOS</a>;</div> |
122 | | -<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div> |
123 | | -<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span>}</div> |
| 121 | +<div class="foldopen" id="foldopen00049" data-start="{" data-end="};"> |
| 122 | +<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classaudio__tools_1_1_mutex_recursive_r_t_o_s.html"> 49</a></span><span class="keyword">class </span><a class="code hl_class" href="classaudio__tools_1_1_mutex_recursive_r_t_o_s.html">MutexRecursiveRTOS</a> : <span class="keyword">public</span> <a class="code hl_class" href="classaudio__tools_1_1_mutex_base.html">MutexBase</a> {</div> |
| 123 | +<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="keyword">public</span>:</div> |
| 124 | +<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <a class="code hl_class" href="classaudio__tools_1_1_mutex_recursive_r_t_o_s.html">MutexRecursiveRTOS</a>() {</div> |
| 125 | +<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> xSemaphore = xSemaphoreCreateBinary();</div> |
| 126 | +<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> unlock();</div> |
| 127 | +<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> }</div> |
| 128 | +<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">virtual</span> <a class="code hl_class" href="classaudio__tools_1_1_mutex_recursive_r_t_o_s.html">~MutexRecursiveRTOS</a>() {</div> |
| 129 | +<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> vSemaphoreDelete(xSemaphore);</div> |
| 130 | +<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> }</div> |
| 131 | +<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordtype">void</span> lock()<span class="keyword"> override </span>{</div> |
| 132 | +<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> xSemaphoreTakeRecursive(xSemaphore, portMAX_DELAY);</div> |
| 133 | +<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> }</div> |
| 134 | +<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordtype">void</span> unlock()<span class="keyword"> override </span>{</div> |
| 135 | +<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> xSemaphoreGiveRecursive(xSemaphore);</div> |
| 136 | +<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> }</div> |
| 137 | +<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div> |
| 138 | +<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="keyword">protected</span>:</div> |
| 139 | +<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> SemaphoreHandle_t xSemaphore = NULL;</div> |
| 140 | +<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span>};</div> |
| 141 | +</div> |
| 142 | +<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div> |
| 143 | +<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div> |
| 144 | +<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="keyword">using </span><a class="code hl_class" href="classaudio__tools_1_1_mutex_r_p2040.html">Mutex</a> = <a class="code hl_class" href="classaudio__tools_1_1_mutex_r_t_o_s.html">MutexRTOS</a>;</div> |
| 145 | +<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div> |
| 146 | +<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span>}</div> |
124 | 147 | <div class="ttc" id="aclassaudio__tools_1_1_mutex_base_html"><div class="ttname"><a href="classaudio__tools_1_1_mutex_base.html">audio_tools::MutexBase</a></div><div class="ttdoc">Empty Mutex implementation which does nothing.</div><div class="ttdef"><b>Definition</b> Mutex.h:18</div></div> |
125 | 148 | <div class="ttc" id="aclassaudio__tools_1_1_mutex_r_p2040_html"><div class="ttname"><a href="classaudio__tools_1_1_mutex_r_p2040.html">audio_tools::MutexRP2040</a></div><div class="ttdoc">Mutex API for non IRQ mutual exclusion between cores. Mutexes are application level locks usually use...</div><div class="ttdef"><b>Definition</b> MutexRP2040.h:37</div></div> |
126 | 149 | <div class="ttc" id="aclassaudio__tools_1_1_mutex_r_t_o_s_html"><div class="ttname"><a href="classaudio__tools_1_1_mutex_r_t_o_s.html">audio_tools::MutexRTOS</a></div><div class="ttdoc">Mutex implemntation using FreeRTOS.</div><div class="ttdef"><b>Definition</b> MutexRTOS.h:22</div></div> |
| 150 | +<div class="ttc" id="aclassaudio__tools_1_1_mutex_recursive_r_t_o_s_html"><div class="ttname"><a href="classaudio__tools_1_1_mutex_recursive_r_t_o_s.html">audio_tools::MutexRecursiveRTOS</a></div><div class="ttdoc">Recursive Mutex implemntation using FreeRTOS.</div><div class="ttdef"><b>Definition</b> MutexRTOS.h:49</div></div> |
127 | 151 | <div class="ttc" id="anamespaceaudio__tools_html"><div class="ttname"><a href="namespaceaudio__tools.html">audio_tools</a></div><div class="ttdoc">Generic Implementation of sound input and output for desktop environments using portaudio.</div><div class="ttdef"><b>Definition</b> AudioCodecsBase.h:10</div></div> |
128 | 152 | </div><!-- fragment --></div><!-- contents --> |
129 | 153 | <!-- start footer part --> |
|
0 commit comments