arduino-audio-tools
src
AudioTools
Concurrency
RP2040
MutexRP2040.h
1
#pragma once
2
#include "AudioLogger.h"
3
#include "AudioTools/Concurrency/Mutex.h"
4
5
namespace
audio_tools
{
6
13
class
NoInterruptHandler
:
public
MutexBase
{
14
public
:
15
void
lock()
override
{
16
TRACED();
17
noInterrupts();
18
}
19
void
unlock()
override
{
20
TRACED();
21
interrupts();
22
}
23
};
24
37
class
MutexRP2040
:
public
MutexBase
{
38
public
:
39
MutexRP2040
() {
40
TRACED();
41
mutex_init(&mtx);
42
}
43
virtual
~
MutexRP2040
() =
default
;
44
45
void
lock()
override
{
46
TRACED();
47
mutex_enter_blocking(&mtx);
48
}
49
void
unlock()
override
{
50
TRACED();
51
mutex_exit(&mtx);
52
}
53
54
protected
:
55
mutex_t mtx;
56
};
57
58
using
Mutex
=
MutexRP2040
;
59
60
}
// namespace audio_tools
audio_tools::MutexBase
Empty Mutex implementation which does nothing.
Definition:
Mutex.h:18
audio_tools::MutexRP2040
Mutex API for non IRQ mutual exclusion between cores. Mutexes are application level locks usually use...
Definition:
MutexRP2040.h:37
audio_tools::NoInterruptHandler
Disable, enable interrupts (only on the actual core)
Definition:
MutexRP2040.h:13
audio_tools
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition:
AudioConfig.h:872
Generated by
1.9.1