|
12 | 12 | #define ASROCK_MAX_ZONES 4 |
13 | 13 | #define ASROCK_MAX_LEDS 22 |
14 | 14 |
|
| 15 | +static const char* polychrome_v1_zone_names[] = |
| 16 | +{ |
| 17 | + "RGB LED 0 Header", |
| 18 | + "RGB LED 1 Header", |
| 19 | + "PCH", |
| 20 | + "IO Cover", |
| 21 | + "Audio", |
| 22 | + "Addressable Header" |
| 23 | +}; |
| 24 | + |
15 | 25 | static const char* polychrome_v2_zone_names[] = |
16 | 26 | { |
17 | 27 | "RGB LED 0 Header", |
@@ -313,7 +323,14 @@ void RGBController_Polychrome::SetupZones() |
313 | 323 | /*---------------------------------------------------------*\ |
314 | 324 | | Set zone name to channel name | |
315 | 325 | \*---------------------------------------------------------*/ |
316 | | - new_zone->name = polychrome_v2_zone_names[zone_idx]; |
| 326 | + if(polychrome->GetASRockType() == ASROCK_TYPE_POLYCHROME_V1) |
| 327 | + { |
| 328 | + new_zone->name = polychrome_v1_zone_names[zone_idx]; |
| 329 | + } |
| 330 | + else |
| 331 | + { |
| 332 | + new_zone->name = polychrome_v2_zone_names[zone_idx]; |
| 333 | + } |
317 | 334 |
|
318 | 335 | if(zone_idx == POLYCHROME_ZONE_ADDRESSABLE) |
319 | 336 | { |
@@ -361,13 +378,25 @@ void RGBController_Polychrome::SetupZones() |
361 | 378 | \*---------------------------------------------------------*/ |
362 | 379 | led* new_led = new led(); |
363 | 380 |
|
364 | | - new_led->name = polychrome_v2_zone_names[zone_idx]; |
| 381 | + if(polychrome->GetASRockType() == ASROCK_TYPE_POLYCHROME_V1) |
| 382 | + { |
| 383 | + new_led->name = polychrome_v1_zone_names[zone_idx]; |
| 384 | + } |
| 385 | + else |
| 386 | + { |
| 387 | + new_led->name = polychrome_v2_zone_names[zone_idx]; |
| 388 | + } |
| 389 | + |
365 | 390 | new_led->name.append(" " + std::to_string(led_idx + 1)); |
366 | 391 | new_led->value = 0; |
367 | 392 |
|
368 | | - if(zone_idx == POLYCHROME_ZONE_ADDRESSABLE) |
| 393 | + if(polychrome->GetASRockType() == ASROCK_TYPE_POLYCHROME_V1) |
| 394 | + { |
| 395 | + new_led->value = zone_idx; |
| 396 | + } |
| 397 | + else if(zone_idx == POLYCHROME_ZONE_ADDRESSABLE) |
369 | 398 | { |
370 | | - new_led->value = 1; |
| 399 | + new_led->value = 0x19; |
371 | 400 | } |
372 | 401 |
|
373 | 402 | /*---------------------------------------------------------*\ |
@@ -418,12 +447,12 @@ void RGBController_Polychrome::UpdateSingleLED(int led) |
418 | 447 | unsigned char blu = RGBGetBValue(colors[led]); |
419 | 448 |
|
420 | 449 | /*---------------------------------------------------------*\ |
421 | | - | If the LED value is 1, it is the addressable LED and the | |
422 | | - | address is 0x19 | |
| 450 | + | If the LED value is non-zero, this LED overrides the LED | |
| 451 | + | index | |
423 | 452 | \*---------------------------------------------------------*/ |
424 | | - if(leds[led].value == 1) |
| 453 | + if(leds[led].value != 0) |
425 | 454 | { |
426 | | - led = 0x19; |
| 455 | + led = leds[led].value; |
427 | 456 | } |
428 | 457 |
|
429 | 458 | polychrome->SetColorsAndSpeed(led, red, grn, blu); |
|
0 commit comments