Control Surface master
MIDI Control Surface library for Arduino
AH/Settings/SettingsWrapper.hpp
Go to the documentation of this file.
1#ifndef AH_SETTINGSWRAPPER_HPP
2#define AH_SETTINGSWRAPPER_HPP
3
5AH_DIAGNOSTIC_WERROR() // Enable errors on warnings
6
7// ---- User Settings ---- //
8// ======================= //
9#include "NamespaceSettings.hpp"
10#include "Settings.hpp"
11
12#define AH_IS_EMPTY_HELPER(x) x##1
13#define AH_IS_EMPTY(x) AH_IS_EMPTY_HELPER(x) == 1
14
15#if AH_IS_EMPTY(DEBUG_OUT)
16#undef DEBUG_OUT
17#endif
18
19#ifndef ARDUINO
20#ifdef DEBUG_OUT
21#undef DEBUG_OUT
22#ifndef NO_DEBUG_PRINTS
23#define DEBUG_OUT std::cout
24#endif
25#endif
26#endif
27
28#ifdef TEENSYDUINO
30#if defined(DEBUG_OUT) && (DEBUG_OUT == Serial) && \
31 !defined(TEENSY_SERIALUSB_ENABLED)
32#error \
33 "Debugging is enabled on the CDC Serial port, but the USB type doesn't support Serial"
34#endif
35#endif
36
38static_assert(
39 sizeof(ANALOG_FILTER_TYPE) * CHAR_BIT >=
41 "ANALOG_FILTER_TYPE isn't wide enough to satisfy filter requirements. \n"
42 "Either decrease the ADC resolution, decrease the filter shift factor, or"
43 "use a wider type (e.g. uint32_t)");
45
46// ------- Debug ------- //
47// ===================== //
48#include <AH/Debug/Debug.hpp>
49
51
52#endif // AH_SETTINGSWRAPPER_HPP
#define END_AH_NAMESPACE
#define BEGIN_AH_NAMESPACE
#define AH_DIAGNOSTIC_POP()
Definition: Warnings.hpp:36
#define AH_DIAGNOSTIC_WERROR()
Definition: Warnings.hpp:35
constexpr uint8_t ANALOG_FILTER_SHIFT_FACTOR
The factor for the analog filter: Difference equation: where .
constexpr uint8_t ADC_BITS
The bit depth to use for the ADC (Analog to Digital Converter).
uint16_t ANALOG_FILTER_TYPE
The unsigned integer type to use for analog inputs during filtering.