mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2026-05-19 12:06:37 -04:00
Group pipe and onboard LEDs into zones
This commit is contained in:
@@ -9,8 +9,6 @@
|
||||
|
||||
#include "RGBController_MSIMysticLight162.h"
|
||||
|
||||
#define NUM_LED_ZONES (sizeof(led_zones) / sizeof(ZoneDescription))
|
||||
|
||||
struct ZoneDescription
|
||||
{
|
||||
std::string name;
|
||||
|
||||
@@ -10,33 +10,75 @@
|
||||
|
||||
#include "RGBController_MSIMysticLight185.h"
|
||||
|
||||
#define NUM_LED_ZONES (sizeof(led_zones) / sizeof(ZoneDescription))
|
||||
|
||||
struct ZoneDescription
|
||||
{
|
||||
std::string name;
|
||||
MSI_ZONE value;
|
||||
std::string name;
|
||||
const MSI_ZONE* leds;
|
||||
};
|
||||
|
||||
static const MSI_ZONE ZoneList_JRGB1[] =
|
||||
{
|
||||
MSI_ZONE_J_RGB_1,
|
||||
MSI_ZONE_NONE
|
||||
};
|
||||
|
||||
static const MSI_ZONE ZoneList_JRGB2[] =
|
||||
{
|
||||
MSI_ZONE_J_RGB_2,
|
||||
MSI_ZONE_NONE
|
||||
};
|
||||
|
||||
static const MSI_ZONE ZoneList_JRainbow1[] =
|
||||
{
|
||||
MSI_ZONE_J_RAINBOW_1,
|
||||
MSI_ZONE_NONE
|
||||
};
|
||||
|
||||
static const MSI_ZONE ZoneList_JRainbow2[] =
|
||||
{
|
||||
MSI_ZONE_J_RAINBOW_2,
|
||||
MSI_ZONE_NONE
|
||||
};
|
||||
|
||||
static const MSI_ZONE ZoneList_JCorsair[] =
|
||||
{
|
||||
MSI_ZONE_J_CORSAIR,
|
||||
MSI_ZONE_NONE
|
||||
};
|
||||
|
||||
static const MSI_ZONE ZoneList_JPipe[] =
|
||||
{
|
||||
MSI_ZONE_J_PIPE_1,
|
||||
MSI_ZONE_J_PIPE_2,
|
||||
MSI_ZONE_NONE
|
||||
};
|
||||
|
||||
static const MSI_ZONE ZoneList_Onboard[] =
|
||||
{
|
||||
MSI_ZONE_ON_BOARD_LED_0,
|
||||
MSI_ZONE_ON_BOARD_LED_1,
|
||||
MSI_ZONE_ON_BOARD_LED_2,
|
||||
MSI_ZONE_ON_BOARD_LED_3,
|
||||
MSI_ZONE_ON_BOARD_LED_4,
|
||||
MSI_ZONE_ON_BOARD_LED_5,
|
||||
MSI_ZONE_ON_BOARD_LED_6,
|
||||
MSI_ZONE_ON_BOARD_LED_7,
|
||||
MSI_ZONE_ON_BOARD_LED_8,
|
||||
MSI_ZONE_ON_BOARD_LED_9,
|
||||
MSI_ZONE_NONE
|
||||
};
|
||||
|
||||
#define NUM_ZONES (sizeof(led_zones) / sizeof(led_zones[0]))
|
||||
|
||||
static const ZoneDescription led_zones[] =
|
||||
{
|
||||
ZoneDescription{"JRGB1", MSI_ZONE_J_RGB_1},
|
||||
ZoneDescription{"JRGB2", MSI_ZONE_J_RGB_2},
|
||||
ZoneDescription{"JRAINBOW1", MSI_ZONE_J_RAINBOW_1},
|
||||
ZoneDescription{"JRAINBOW2", MSI_ZONE_J_RAINBOW_2},
|
||||
ZoneDescription{"JPIPE1", MSI_ZONE_J_PIPE_1},
|
||||
ZoneDescription{"JPIPE2", MSI_ZONE_J_PIPE_2},
|
||||
ZoneDescription{"JCORSAIR", MSI_ZONE_J_CORSAIR},
|
||||
ZoneDescription{"Onboard LED 0", MSI_ZONE_ON_BOARD_LED_0},
|
||||
ZoneDescription{"Onboard LED 1", MSI_ZONE_ON_BOARD_LED_1},
|
||||
ZoneDescription{"Onboard LED 2", MSI_ZONE_ON_BOARD_LED_2},
|
||||
ZoneDescription{"Onboard LED 3", MSI_ZONE_ON_BOARD_LED_3},
|
||||
ZoneDescription{"Onboard LED 4", MSI_ZONE_ON_BOARD_LED_4},
|
||||
ZoneDescription{"Onboard LED 5", MSI_ZONE_ON_BOARD_LED_5},
|
||||
ZoneDescription{"Onboard LED 6", MSI_ZONE_ON_BOARD_LED_6},
|
||||
ZoneDescription{"Onboard LED 7", MSI_ZONE_ON_BOARD_LED_7},
|
||||
ZoneDescription{"Onboard LED 8", MSI_ZONE_ON_BOARD_LED_8},
|
||||
ZoneDescription{"Onboard LED 9", MSI_ZONE_ON_BOARD_LED_9},
|
||||
ZoneDescription{"JRGB1", ZoneList_JRGB1 },
|
||||
ZoneDescription{"JRGB2", ZoneList_JRGB2 },
|
||||
ZoneDescription{"JRAINBOW1", ZoneList_JRainbow1 },
|
||||
ZoneDescription{"JRAINBOW2", ZoneList_JRainbow2 },
|
||||
ZoneDescription{"JCORSAIR", ZoneList_JCorsair },
|
||||
ZoneDescription{"Pipe LEDs", ZoneList_JPipe },
|
||||
ZoneDescription{"Onboard LEDs", ZoneList_Onboard },
|
||||
};
|
||||
|
||||
RGBController_MSIMysticLight185::RGBController_MSIMysticLight185(MSIMysticLight185Controller* controller_ptr)
|
||||
@@ -66,16 +108,25 @@ void RGBController_MSIMysticLight185::SetupZones()
|
||||
/*---------------------------------------------------------*\
|
||||
| Set up zones |
|
||||
\*---------------------------------------------------------*/
|
||||
for(std::size_t zone_idx = 0; zone_idx < NUM_LED_ZONES; zone_idx++)
|
||||
for(std::size_t zone_idx = 0; zone_idx < NUM_ZONES; zone_idx++)
|
||||
{
|
||||
ZoneDescription zd = led_zones[zone_idx];
|
||||
ZoneDescription zd = led_zones[zone_idx];
|
||||
|
||||
zone new_zone;
|
||||
|
||||
unsigned int led_count;
|
||||
|
||||
while(zd.leds[led_count] != MSI_ZONE_NONE)
|
||||
{
|
||||
led_count++;
|
||||
}
|
||||
|
||||
new_zone.name = zd.name;
|
||||
new_zone.type = ZONE_TYPE_LINEAR;
|
||||
|
||||
new_zone.leds_min = 1;
|
||||
new_zone.leds_max = 1;
|
||||
new_zone.leds_count = 1;
|
||||
new_zone.leds_min = led_count;
|
||||
new_zone.leds_max = led_count;
|
||||
new_zone.leds_count = led_count;
|
||||
new_zone.matrix_map = NULL;
|
||||
zones.push_back(new_zone);
|
||||
|
||||
@@ -92,7 +143,7 @@ void RGBController_MSIMysticLight185::SetupZones()
|
||||
new_led.name.append(std::to_string(led_idx + 1));
|
||||
}
|
||||
|
||||
new_led.value = zone_idx;
|
||||
new_led.value = zd.leds[led_idx];
|
||||
|
||||
leds.push_back(new_led);
|
||||
}
|
||||
@@ -192,17 +243,11 @@ void RGBController_MSIMysticLight185::UpdateLed(int zone, int led)
|
||||
unsigned char red = RGBGetRValue(zones[zone].colors[led]);
|
||||
unsigned char grn = RGBGetGValue(zones[zone].colors[led]);
|
||||
unsigned char blu = RGBGetBValue(zones[zone].colors[led]);
|
||||
MSI_MODE mode = (MSI_MODE)(modes[active_mode].value);
|
||||
MSI_SPEED speed = (MSI_SPEED)(modes[active_mode].speed);
|
||||
MSI_ZONE zon = ZoneFromPos(zone);
|
||||
MSI_MODE mode = (MSI_MODE)(modes[active_mode].value);
|
||||
MSI_SPEED speed = (MSI_SPEED)(modes[active_mode].speed);
|
||||
|
||||
controller->SetMode(zon, mode, speed, MSI_BRIGHTNESS_LEVEL_100, random);
|
||||
controller->SetZoneColor(zon, red, grn, blu, red, grn, blu);
|
||||
}
|
||||
|
||||
MSI_ZONE RGBController_MSIMysticLight185::ZoneFromPos(int zone)
|
||||
{
|
||||
return led_zones[zone].value;
|
||||
controller->SetMode((MSI_ZONE)zones[zone].leds[led].value, mode, speed, MSI_BRIGHTNESS_LEVEL_100, random);
|
||||
controller->SetZoneColor((MSI_ZONE)zones[zone].leds[led].value, red, grn, blu, red, grn, blu);
|
||||
}
|
||||
|
||||
void RGBController_MSIMysticLight185::SetupMode(const char *name, MSI_MODE mod, unsigned int flags)
|
||||
|
||||
Reference in New Issue
Block a user