Skip to content

Commit 77fd471

Browse files
Only load segments from profile if segment count differs from base controller, prevents segment duplication on devices with autogenerated segments
1 parent 67a0f03 commit 77fd471

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

ProfileManager.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -291,14 +291,19 @@ bool ProfileManager::LoadDeviceFromListWithOptions
291291
&&(temp_controller->zones[zone_idx].leds_min == load_controller->zones[zone_idx].leds_min )
292292
&&(temp_controller->zones[zone_idx].leds_max == load_controller->zones[zone_idx].leds_max ))
293293
{
294-
if (temp_controller->zones[zone_idx].leds_count != load_controller->zones[zone_idx].leds_count)
294+
if(temp_controller->zones[zone_idx].leds_count != load_controller->zones[zone_idx].leds_count)
295295
{
296296
load_controller->ResizeZone((int)zone_idx, temp_controller->zones[zone_idx].leds_count);
297297
}
298298

299-
for(std::size_t segment_idx = 0; segment_idx < temp_controller->zones[zone_idx].segments.size(); segment_idx++)
299+
if(temp_controller->zones[zone_idx].segments.size() != load_controller->zones[zone_idx].segments.size())
300300
{
301-
load_controller->zones[zone_idx].segments.push_back(temp_controller->zones[zone_idx].segments[segment_idx]);
301+
load_controller->zones[zone_idx].segments.clear();
302+
303+
for(std::size_t segment_idx = 0; segment_idx < temp_controller->zones[zone_idx].segments.size(); segment_idx++)
304+
{
305+
load_controller->zones[zone_idx].segments.push_back(temp_controller->zones[zone_idx].segments[segment_idx]);
306+
}
302307
}
303308
}
304309
}

0 commit comments

Comments
 (0)