arduino-audio-tools
Loading...
Searching...
No Matches
MutexZephyr.h
Go to the documentation of this file.
1#pragma once
2#include "AudioToolsConfig.h"
4
5#include <zephyr/kernel.h>
6
7namespace audio_tools {
8
16class MutexZephyr : public MutexBase {
17 public:
19 virtual ~MutexZephyr() = default;
20
21 void lock() override { k_mutex_lock(&mutex, K_FOREVER); }
22
23 void unlock() override { k_mutex_unlock(&mutex); }
24
25 protected:
26 struct k_mutex mutex;
27};
28
34 public:
36 virtual ~MutexRecursiveZephyr() = default;
37
38 void lock() override { k_mutex_lock(&mutex, K_FOREVER); }
39
40 void unlock() override { k_mutex_unlock(&mutex); }
41
42 protected:
43 struct k_mutex mutex;
44};
45
49
52using Mutex = MutexZephyr;
53
54} // namespace audio_tools
Empty Mutex implementation which does nothing.
Definition Mutex.h:18
Mutex API for non IRQ mutual exclusion between cores. Mutexes are application level locks usually use...
Definition MutexRP2040.h:38
Mutex implemntation using FreeRTOS.
Definition MutexRTOS.h:25
Recursive Mutex implemntation using FreeRTOS.
Definition MutexRTOS.h:52
Recursive Mutex implementation using Zephyr kernel mutex.
Definition MutexZephyr.h:33
virtual ~MutexRecursiveZephyr()=default
void unlock() override
Definition MutexZephyr.h:40
MutexRecursiveZephyr()
Definition MutexZephyr.h:35
struct k_mutex mutex
Definition MutexZephyr.h:43
void lock() override
Definition MutexZephyr.h:38
Mutex implementation using Zephyr kernel mutex.
Definition MutexZephyr.h:16
MutexZephyr()
Definition MutexZephyr.h:18
void unlock() override
Definition MutexZephyr.h:23
struct k_mutex mutex
Definition MutexZephyr.h:26
void lock() override
Definition MutexZephyr.h:21
virtual ~MutexZephyr()=default
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition AudioCodecsBase.h:10
size_t writeData(Print *p_out, T *data, int samples, int maxSamples=512)
Definition AudioTypes.h:508