Control Surface
main
MIDI Control Surface library for Arduino
Loading...
Searching...
No Matches
src
MIDI_Interfaces
BLEMIDI
Util
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
9
BEGIN_CS_NAMESPACE
10
11
struct
ScopedThreadConfig
{
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
27
~ScopedThreadConfig
() {
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
47
END_CS_NAMESPACE
END_CS_NAMESPACE
#define END_CS_NAMESPACE
Definition
Settings/NamespaceSettings.hpp:14
BEGIN_CS_NAMESPACE
#define BEGIN_CS_NAMESPACE
Definition
Settings/NamespaceSettings.hpp:11
AH::copyAs
Array< T, N > copyAs(const Array< U, N > &src)
Copy an Array to an Array of a different type.
Definition
ArrayHelpers.hpp:105
ScopedThreadConfig
Definition
ESP32Threads.hpp:11
ScopedThreadConfig::ScopedThreadConfig
ScopedThreadConfig(size_t stack_size, size_t priority, bool inherit_cfg, const char *thread_name, int pin_to_core=-1)
Definition
ESP32Threads.hpp:36
Generated by
1.10.0