10
10
// uncomment this if red and green are swapped
11
11
// #define SWAPRG
12
12
13
+
13
14
// automatically uses the right driver method for each platform
14
15
#ifdef ARDUINO_ARCH_ESP32
15
- #ifdef WORKAROUND_ESP32_BITBANG
16
- #define PIXELMETHOD NeoEsp32BitBangWs2813Method
17
- #pragma message "Software BitBang is used because of your NeoPixelBus version. Look in NpbWrapper.h for instructions on how to mitigate flickering."
18
- #else
19
- #define PIXELMETHOD NeoEsp32RmtWS2813_V3Method
20
- #endif
16
+ #ifdef WORKAROUND_ESP32_BITBANG
17
+ #define PIXELMETHOD NeoEsp32BitBangWs2813Method
18
+ #pragma message "Software BitBang is used because of your NeoPixelBus version. Look in NpbWrapper.h for instructions on how to mitigate flickering."
19
+ #else
20
+ #define PIXELMETHOD NeoEsp32RmtWS2813_V3Method
21
+ #endif
21
22
#else // esp8266
22
- // autoselect the right method depending on strip pin
23
- #if LEDPIN == 2
24
- #define PIXELMETHOD NeoEsp8266Uart800KbpsMethod
25
- #elif LEDPIN == 3
26
- #define PIXELMETHOD NeoEsp8266Dma800KbpsMethod
27
- #else
28
- #define PIXELMETHOD NeoEsp8266BitBang800KbpsMethod
29
- #pragma message "Software BitBang will be used because of your selected LED pin. This may cause flicker. Use GPIO 2 or 3 for best results."
30
- #endif
23
+ // autoselect the right method depending on strip pin
24
+ #if LEDPIN == 2
25
+ #define PIXELMETHOD NeoEsp8266Uart800KbpsMethod
26
+ #elif LEDPIN == 3
27
+ #define PIXELMETHOD NeoEsp8266Dma800KbpsMethod
28
+ #else
29
+ #define PIXELMETHOD NeoEsp8266BitBang800KbpsMethod
30
+ #pragma message "Software BitBang will be used because of your selected LED pin. This may cause flicker. Use GPIO 2 or 3 for best results."
31
+ #endif
31
32
#endif
32
33
33
34
// handle swapping Red and Green automatically
34
35
#ifdef SWAPRG
35
- #define PIXELFEATURE3 NeoRgbFeature
36
- #define PIXELFEATURE4 NeoRgbwFeature
36
+ #define PIXELFEATURE3 NeoRgbFeature
37
+ #define PIXELFEATURE4 NeoRgbwFeature
37
38
#else
38
- #define PIXELFEATURE3 NeoGrbFeature
39
- #define PIXELFEATURE4 NeoGrbwFeature
39
+ #define PIXELFEATURE3 NeoGrbFeature
40
+ #define PIXELFEATURE4 NeoGrbwFeature
40
41
#endif
41
42
42
43
#include < NeoPixelBrightnessBus.h>
@@ -53,10 +54,10 @@ class NeoPixelWrapper
53
54
{
54
55
public:
55
56
NeoPixelWrapper () :
56
- // initialize each member to null
57
- _pGrb (NULL ),
58
- _pGrbw (NULL ),
59
- _type (NeoPixelType_None)
57
+ // initialize each member to null
58
+ _pGrb (NULL ),
59
+ _pGrbw (NULL ),
60
+ _type (NeoPixelType_None)
60
61
{
61
62
62
63
}
@@ -71,8 +72,8 @@ class NeoPixelWrapper
71
72
cleanup ();
72
73
_type = type;
73
74
74
- switch (_type) {
75
-
75
+ switch (_type)
76
+ {
76
77
case NeoPixelType_Grb:
77
78
_pGrb = new NeoPixelBrightnessBus<PIXELFEATURE3,PIXELMETHOD>(countPixels, LEDPIN);
78
79
_pGrb->Begin ();
@@ -88,23 +89,25 @@ class NeoPixelWrapper
88
89
void Show ()
89
90
{
90
91
#ifdef ARDUINO_ARCH_ESP32
91
- #ifdef WORKAROUND_ESP32_BITBANG
92
- delay (1 );
93
- portDISABLE_INTERRUPTS (); // this is a workaround to prevent flickering (see https://github.com/adafruit/Adafruit_NeoPixel/issues/139)
94
- #endif
92
+ #ifdef WORKAROUND_ESP32_BITBANG
93
+ delay (1 );
94
+ portDISABLE_INTERRUPTS (); // this is a workaround to prevent flickering (see https://github.com/adafruit/Adafruit_NeoPixel/issues/139)
95
+ #endif
95
96
#endif
96
97
97
- switch (_type) {
98
+ switch (_type)
99
+ {
98
100
case NeoPixelType_Grb: _pGrb->Show (); break ;
99
101
case NeoPixelType_Grbw: _pGrbw->Show (); break ;
100
102
}
101
103
102
104
#ifdef ARDUINO_ARCH_ESP32
103
- #ifdef WORKAROUND_ESP32_BITBANG
104
- portENABLE_INTERRUPTS ();
105
- #endif
105
+ #ifdef WORKAROUND_ESP32_BITBANG
106
+ portENABLE_INTERRUPTS ();
107
+ #endif
106
108
#endif
107
109
}
110
+
108
111
bool CanShow () const
109
112
{
110
113
switch (_type) {
@@ -113,65 +116,65 @@ class NeoPixelWrapper
113
116
}
114
117
}
115
118
116
- void SetPixelColor (uint16_t indexPixel, RgbColor color)
117
- {
118
- switch (_type) {
119
- case NeoPixelType_Grb: _pGrb->SetPixelColor (indexPixel, color); break ;
120
- case NeoPixelType_Grbw:_pGrbw->SetPixelColor (indexPixel, color); break ;
121
- }
119
+ void SetPixelColor (uint16_t indexPixel, RgbColor color)
120
+ {
121
+ switch (_type) {
122
+ case NeoPixelType_Grb: _pGrb->SetPixelColor (indexPixel, color); break ;
123
+ case NeoPixelType_Grbw:_pGrbw->SetPixelColor (indexPixel, color); break ;
122
124
}
125
+ }
123
126
124
- void SetPixelColor (uint16_t indexPixel, RgbwColor color)
125
- {
126
- switch (_type) {
127
- case NeoPixelType_Grb: _pGrb->SetPixelColor (indexPixel, RgbColor (color.R ,color.G ,color.B )); break ;
128
- case NeoPixelType_Grbw: _pGrbw->SetPixelColor (indexPixel, color); break ;
129
- }
127
+ void SetPixelColor (uint16_t indexPixel, RgbwColor color)
128
+ {
129
+ switch (_type) {
130
+ case NeoPixelType_Grb: _pGrb->SetPixelColor (indexPixel, RgbColor (color.R ,color.G ,color.B )); break ;
131
+ case NeoPixelType_Grbw: _pGrbw->SetPixelColor (indexPixel, color); break ;
130
132
}
133
+ }
131
134
132
- void SetBrightness (byte b)
133
- {
134
- switch (_type) {
135
- case NeoPixelType_Grb: _pGrb->SetBrightness (b); break ;
136
- case NeoPixelType_Grbw:_pGrbw->SetBrightness (b); break ;
137
- }
135
+ void SetBrightness (byte b)
136
+ {
137
+ switch (_type) {
138
+ case NeoPixelType_Grb: _pGrb->SetBrightness (b); break ;
139
+ case NeoPixelType_Grbw:_pGrbw->SetBrightness (b); break ;
138
140
}
141
+ }
139
142
140
- RgbColor GetPixelColor (uint16_t indexPixel) const
141
- {
142
- switch (_type) {
143
- case NeoPixelType_Grb: return _pGrb->GetPixelColor (indexPixel); break ;
144
- case NeoPixelType_Grbw: /* doesn't support it so we don't return it*/ break ;
145
- }
146
- return 0 ;
143
+ RgbColor GetPixelColor (uint16_t indexPixel) const
144
+ {
145
+ switch (_type) {
146
+ case NeoPixelType_Grb: return _pGrb->GetPixelColor (indexPixel); break ;
147
+ case NeoPixelType_Grbw: /* doesn't support it so we don't return it*/ break ;
147
148
}
149
+ return 0 ;
150
+ }
148
151
149
- // NOTE: Due to feature differences, some support RGBW but the method name
150
- // here needs to be unique, thus GetPixeColorRgbw
151
- RgbwColor GetPixelColorRgbw (uint16_t indexPixel) const
152
- {
153
- switch (_type) {
154
- case NeoPixelType_Grb: return _pGrb->GetPixelColor (indexPixel); break ;
155
- case NeoPixelType_Grbw: return _pGrbw->GetPixelColor (indexPixel); break ;
156
- }
157
- return 0 ;
152
+ // NOTE: Due to feature differences, some support RGBW but the method name
153
+ // here needs to be unique, thus GetPixeColorRgbw
154
+ RgbwColor GetPixelColorRgbw (uint16_t indexPixel) const
155
+ {
156
+ switch (_type) {
157
+ case NeoPixelType_Grb: return _pGrb->GetPixelColor (indexPixel); break ;
158
+ case NeoPixelType_Grbw: return _pGrbw->GetPixelColor (indexPixel); break ;
158
159
}
160
+ return 0 ;
161
+ }
159
162
160
- void ClearTo (RgbColor color)
161
- {
162
- switch (_type) {
163
- case NeoPixelType_Grb: _pGrb->ClearTo (color); break ;
164
- case NeoPixelType_Grbw:_pGrbw->ClearTo (color); break ;
165
- }
163
+ void ClearTo (RgbColor color)
164
+ {
165
+ switch (_type) {
166
+ case NeoPixelType_Grb: _pGrb->ClearTo (color); break ;
167
+ case NeoPixelType_Grbw:_pGrbw->ClearTo (color); break ;
166
168
}
169
+ }
167
170
168
- void ClearTo (RgbwColor color)
169
- {
170
- switch (_type) {
171
- case NeoPixelType_Grb: break ;
172
- case NeoPixelType_Grbw:_pGrbw->ClearTo (color); break ;
173
- }
171
+ void ClearTo (RgbwColor color)
172
+ {
173
+ switch (_type) {
174
+ case NeoPixelType_Grb: break ;
175
+ case NeoPixelType_Grbw:_pGrbw->ClearTo (color); break ;
174
176
}
177
+ }
175
178
176
179
private:
177
180
NeoPixelType _type;
0 commit comments