Only load segments from profile if segment count differs from base controller, prevents segment duplication on devices with autogenerated segments
This commit is contained in:
parent
67a0f031a7
commit
77fd471915
1 changed files with 8 additions and 3 deletions
|
|
@ -291,14 +291,19 @@ bool ProfileManager::LoadDeviceFromListWithOptions
|
||||||
&&(temp_controller->zones[zone_idx].leds_min == load_controller->zones[zone_idx].leds_min )
|
&&(temp_controller->zones[zone_idx].leds_min == load_controller->zones[zone_idx].leds_min )
|
||||||
&&(temp_controller->zones[zone_idx].leds_max == load_controller->zones[zone_idx].leds_max ))
|
&&(temp_controller->zones[zone_idx].leds_max == load_controller->zones[zone_idx].leds_max ))
|
||||||
{
|
{
|
||||||
if (temp_controller->zones[zone_idx].leds_count != load_controller->zones[zone_idx].leds_count)
|
if(temp_controller->zones[zone_idx].leds_count != load_controller->zones[zone_idx].leds_count)
|
||||||
{
|
{
|
||||||
load_controller->ResizeZone((int)zone_idx, temp_controller->zones[zone_idx].leds_count);
|
load_controller->ResizeZone((int)zone_idx, temp_controller->zones[zone_idx].leds_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(std::size_t segment_idx = 0; segment_idx < temp_controller->zones[zone_idx].segments.size(); segment_idx++)
|
if(temp_controller->zones[zone_idx].segments.size() != load_controller->zones[zone_idx].segments.size())
|
||||||
{
|
{
|
||||||
load_controller->zones[zone_idx].segments.push_back(temp_controller->zones[zone_idx].segments[segment_idx]);
|
load_controller->zones[zone_idx].segments.clear();
|
||||||
|
|
||||||
|
for(std::size_t segment_idx = 0; segment_idx < temp_controller->zones[zone_idx].segments.size(); segment_idx++)
|
||||||
|
{
|
||||||
|
load_controller->zones[zone_idx].segments.push_back(temp_controller->zones[zone_idx].segments[segment_idx]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue