44 color.
r = requestMode.colors[0].r;
45 color.
g = requestMode.colors[0].g;
46 color.
b = requestMode.colors[0].b;
47 color.
a = requestMode.colors[0].a;
49 switch(requestMode.mode)
51 case cob_light::LightModes::STATIC:
52 mode.reset(
new StaticMode(color, requestMode.priority, requestMode.frequency,\
53 requestMode.pulses, requestMode.timeout));
56 case cob_light::LightModes::FLASH:
57 mode.reset(
new FlashMode(color, requestMode.priority, requestMode.frequency,\
58 requestMode.pulses, requestMode.timeout));
61 case cob_light::LightModes::BREATH:
62 mode.reset(
new BreathMode(color, requestMode.priority, requestMode.frequency,\
63 requestMode.pulses, requestMode.timeout));
66 case cob_light::LightModes::BREATH_COLOR:
67 mode.reset(
new BreathColorMode(color, requestMode.priority, requestMode.frequency,\
68 requestMode.pulses, requestMode.timeout));
71 case cob_light::LightModes::FADE_COLOR:
72 mode.reset(
new FadeColorMode(color, requestMode.priority, requestMode.frequency,\
73 requestMode.pulses, requestMode.timeout));
76 case cob_light::LightModes::SEQ:
78 std::vector<seq_t> seqs;
79 for(
size_t i = 0; i < requestMode.sequences.size(); i++)
82 seq.
color.
r = requestMode.sequences[i].color.r;
83 seq.
color.
g = requestMode.sequences[i].color.g;
84 seq.
color.
b = requestMode.sequences[i].color.b;
85 seq.
color.
a = requestMode.sequences[i].color.a;
86 seq.
holdtime = requestMode.sequences[i].hold_time;
87 seq.
crosstime = requestMode.sequences[i].cross_time;
90 mode.reset(
new SequenceMode(seqs, requestMode.priority, requestMode.frequency,\
91 requestMode.pulses, requestMode.timeout));
95 case cob_light::LightModes::CIRCLE_COLORS:
97 std::vector<color::rgba> colors;
98 if(requestMode.colors.empty())
100 colors.push_back(color);
104 for(
size_t i = 0; i < requestMode.colors.size(); i++)
106 color.
r = requestMode.colors[i].r;
107 color.
g = requestMode.colors[i].g;
108 color.
b = requestMode.colors[i].b;
109 color.
a = requestMode.colors[i].a;
110 colors.push_back(color);
114 requestMode.pulses, requestMode.timeout));
118 case cob_light::LightModes::SWEEP:
120 std::vector<color::rgba> colors;
121 if(requestMode.colors.empty())
123 colors.push_back(color);
127 for(
size_t i = 0; i < requestMode.colors.size(); i++)
129 color.
r = requestMode.colors[i].r;
130 color.
g = requestMode.colors[i].g;
131 color.
b = requestMode.colors[i].b;
132 color.
a = requestMode.colors[i].a;
133 colors.push_back(color);
137 requestMode.pulses, requestMode.timeout));
141 case cob_light::LightModes::DIST_APPROX:
143 requestMode.pulses, requestMode.timeout));
146 case cob_light::LightModes::GLOW:
147 mode.reset(
new GlowColorMode(color, requestMode.priority, requestMode.frequency,\
148 requestMode.pulses, requestMode.timeout));
151 case cob_light::LightModes::XMAS:
152 mode.reset(
new XMasMode(colorO->
getNumLeds(), requestMode.priority, requestMode.frequency,\
153 requestMode.pulses, requestMode.timeout));
156 case cob_light::LightModes::KIT:
157 mode.reset(
new KitMode(color, colorO->
getNumLeds(), requestMode.priority, requestMode.frequency,
158 requestMode.pulses, requestMode.timeout));
161 case cob_light::LightModes::TURN_LEFT:
163 requestMode.pulses, requestMode.timeout));
166 case cob_light::LightModes::TURN_RIGHT:
168 requestMode.pulses, requestMode.timeout));
182 if(requestMode ==
"Static" || requestMode ==
"static" || requestMode ==
"STATIC")
186 else if(requestMode ==
"Flash" || requestMode ==
"flash" || requestMode ==
"FLASH")
190 else if(requestMode ==
"Breath" || requestMode ==
"breath" || requestMode ==
"BREATH")
194 else if(requestMode ==
"BreathColor" || requestMode ==
"BreathColor" || requestMode ==
"BreathColor" ||
195 requestMode ==
"Breath_Color" || requestMode ==
"breath_color" || requestMode ==
"BREATH_COLOR")
199 else if(requestMode ==
"FadeColor" || requestMode ==
"fadecolor" || requestMode ==
"FADECOLOR" ||
200 requestMode ==
"Fade_Color" || requestMode ==
"fade_color" || requestMode ==
"FADE_COLOR")
214 ret = cob_light::LightModes::NONE;
215 else if(dynamic_cast<StaticMode*>(mode) != NULL)
216 ret = cob_light::LightModes::STATIC;
217 else if(dynamic_cast<FlashMode*>(mode) != NULL)
218 ret = cob_light::LightModes::FLASH;
219 else if(dynamic_cast<BreathMode*>(mode) != NULL)
220 ret = cob_light::LightModes::BREATH;
221 else if(dynamic_cast<BreathColorMode*>(mode) != NULL)
222 ret = cob_light::LightModes::BREATH_COLOR;
223 else if(dynamic_cast<FadeColorMode*>(mode) != NULL)
224 ret = cob_light::LightModes::FADE_COLOR;
225 else if(dynamic_cast<SequenceMode*>(mode) != NULL)
226 ret = cob_light::LightModes::SEQ;
227 else if(dynamic_cast<CircleColorMode*>(mode) != NULL)
228 ret = cob_light::LightModes::CIRCLE_COLORS;
229 else if(dynamic_cast<SweepColorMode*>(mode) != NULL)
230 ret = cob_light::LightModes::SWEEP;
231 else if(dynamic_cast<DistApproxMode*>(mode) != NULL)
232 ret = cob_light::LightModes::DIST_APPROX;
233 else if(dynamic_cast<GlowColorMode*>(mode) != NULL)
234 ret = cob_light::LightModes::GLOW;
235 else if(dynamic_cast<XMasMode*>(mode) != NULL)
236 ret = cob_light::LightModes::XMAS;
237 else if(dynamic_cast<KitMode*>(mode) != NULL)
238 ret = cob_light::LightModes::KIT;
239 else if(dynamic_cast<TurnIndicatorMode*>(mode) != NULL)
240 ret = cob_light::LightModes::TURN_LEFT;
241 else if(dynamic_cast<TurnIndicatorMode*>(mode) != NULL)
242 ret = cob_light::LightModes::TURN_RIGHT;
244 ret = cob_light::LightModes::NONE;
static int type(Mode *mode)
static boost::shared_ptr< Mode > create(cob_light::LightMode requestMode, IColorO *colorO)