Control Surface main
MIDI Control Surface library for Arduino
ESP32Threads.hpp
Go to the documentation of this file.
1#pragma once
2
3#ifdef ESP32
4#include <esp_pthread.h>
5#endif
6
7#include <Settings/NamespaceSettings.hpp>
8
10
12#ifdef ESP32
13 ScopedThreadConfig(size_t stack_size, size_t priority, bool inherit_cfg,
14 const char *thread_name,
15 int pin_to_core = tskNO_AFFINITY) {
16 memset(&previousConfig, 0, sizeof(previousConfig));
17 hadPreviousConfig = esp_pthread_get_cfg(&previousConfig) == ESP_OK;
18 esp_pthread_cfg_t cfg = previousConfig;
19 cfg.stack_size = stack_size;
20 cfg.prio = priority;
21 cfg.inherit_cfg = inherit_cfg;
22 cfg.thread_name = thread_name;
23 cfg.pin_to_core = pin_to_core;
24 esp_pthread_set_cfg(&cfg);
25 }
26
28 if(hadPreviousConfig)
29 esp_pthread_set_cfg(&previousConfig);
30 }
31
32 private:
33 bool hadPreviousConfig;
34 esp_pthread_cfg_t previousConfig;
35#else
36 ScopedThreadConfig(size_t stack_size, size_t priority, bool inherit_cfg,
37 const char *thread_name, int pin_to_core = -1) {
38 (void)stack_size;
39 (void)priority;
40 (void)inherit_cfg;
41 (void)thread_name;
42 (void)pin_to_core;
43 }
44#endif
45};
46
#define END_CS_NAMESPACE
#define BEGIN_CS_NAMESPACE
ScopedThreadConfig(size_t stack_size, size_t priority, bool inherit_cfg, const char *thread_name, int pin_to_core=-1)