Rework the RGBController API to handle the colors vector outside of device specific implementations

This commit is contained in:
Adam Honse 2020-01-06 21:16:05 -06:00
parent 11770aaa3a
commit c7030ad47d
38 changed files with 515 additions and 685 deletions

View file

@ -101,36 +101,6 @@ void RGBController_E131::SetCustomMode()
}
void RGBController_E131::SetAllLEDs(RGBColor color)
{
for (std::size_t i = 0; i < colors.size(); i++)
{
colors[i] = color;
}
UpdateLEDs();
}
void RGBController_E131::SetAllZoneLEDs(int zone, RGBColor color)
{
for (std::size_t x = 0; x < zones[zone].map.size(); x++)
{
for (std::size_t y = 0; y < zones[zone].map[x].size(); y++)
{
colors[zones[zone].map[x][y]] = color;
}
}
UpdateLEDs();
}
void RGBController_E131::SetLED(int led, RGBColor color)
{
colors[led] = color;
UpdateLEDs();
}
void RGBController_E131::UpdateLEDs()
{
int color_idx = 0;
@ -187,7 +157,17 @@ void RGBController_E131::UpdateLEDs()
for(std::size_t packet_idx = 0; packet_idx < packets.size(); packet_idx++)
{
e131_send(sockfd, &packets[packet_idx], &dest_addrs[packet_idx]);
e131_send(sockfd, &packets[packet_idx], &dest_addrs[packet_idx]);
packets[packet_idx].frame.seq_number++;
}
}
void RGBController_E131::UpdateZoneLEDs(int zone)
{
UpdateLEDs();
}
void RGBController_E131::UpdateSingleLED(int led)
{
UpdateLEDs();
}