Formatting and style fixes for the MSIGPUv2Controller

* Change Hex literals to uppercase
* Adjusting Metadata to correctly reflect the declared controller
* Adding defines for Speed and Brightness values and adjusting mode declarations to suit
* Replacing brightness array in favour of more flexible multiple
This commit is contained in:
Chris 2023-01-13 21:59:17 +11:00 committed by Adam Honse
parent 94a8ce3cbe
commit 915ecefd16
4 changed files with 240 additions and 238 deletions

View file

@ -66,7 +66,6 @@ void MSIGPUv2Controller::SetRGB3V2(unsigned char red, unsigned char green, unsig
MSIGPUBlockWrite(MSI_GPU_V2_REG_COLOR_BLOCK3_BASE, &buffer[0], sizeof(buffer));
}
void MSIGPUv2Controller::SetMode(unsigned char mode)
{
MSIGPURegisterWrite(MSI_GPU_V2_REG_MODE, mode);

View file

@ -13,53 +13,60 @@
typedef unsigned char msi_gpu_dev_id;
#define MSI_GPU_V2_SPEED_MIN 0
#define MSI_GPU_V2_SPEED_MID 1
#define MSI_GPU_V2_SPEED_MAX 2
#define MSI_GPU_V2_BRIGHTNESS_MIN 1
#define MSI_GPU_V2_BRIGHTNESS_MAX 5
#define MSI_GPU_V2_BRIGHTNESS_MULTI 20
enum
{
MSI_GPU_V2_REG_BRIGHTNESS = 0x36, /* MSI GPU Brightness Register */
MSI_GPU_V2_REG_SPEED = 0x38, /* MSI GPU Speed Register */
MSI_GPU_V2_REG_UNKNOWN = 0x2E, /* MSI GPU Unknown Register */
MSI_GPU_V2_REG_R1 = 0x30, /* MSI GPU R1 Register */
MSI_GPU_V2_REG_G1 = 0x31, /* MSI GPU G1 Register */
MSI_GPU_V2_REG_B1 = 0x32, /* MSI GPU B1 Register */
MSI_GPU_V2_REG_COLOR_BLOCK1_BASE = 0x27, /* MSI GPU 1 Color block registyr */
MSI_GPU_V2_REG_COLOR_BLOCK2_BASE = 0x28, /* MSI GPU 1 Color block registyr */
MSI_GPU_V2_REG_COLOR_BLOCK3_BASE = 0x29, /* MSI GPU 1 Color block registyr */
MSI_GPU_V2_REG_MODE = 0x22, /* MSI GPU Mode Selection Register */
MSI_GPU_V2_REG_SAVE = 0x3f, /* MSI GPU Commit Changes Register */
MSI_GPU_V2_REG_CONTROL = 0x46, /* MSI GPU Direction Register */
MSI_GPU_V2_REG_BRIGHTNESS = 0x36, /* MSI GPU Brightness Register */
MSI_GPU_V2_REG_SPEED = 0x38, /* MSI GPU Speed Register */
MSI_GPU_V2_REG_UNKNOWN = 0x2E, /* MSI GPU Unknown Register */
MSI_GPU_V2_REG_R1 = 0x30, /* MSI GPU R1 Register */
MSI_GPU_V2_REG_G1 = 0x31, /* MSI GPU G1 Register */
MSI_GPU_V2_REG_B1 = 0x32, /* MSI GPU B1 Register */
MSI_GPU_V2_REG_COLOR_BLOCK1_BASE = 0x27, /* MSI GPU 1 Color block registyr */
MSI_GPU_V2_REG_COLOR_BLOCK2_BASE = 0x28, /* MSI GPU 1 Color block registyr */
MSI_GPU_V2_REG_COLOR_BLOCK3_BASE = 0x29, /* MSI GPU 1 Color block registyr */
MSI_GPU_V2_REG_MODE = 0x22, /* MSI GPU Mode Selection Register */
MSI_GPU_V2_REG_SAVE = 0x3F, /* MSI GPU Commit Changes Register */
MSI_GPU_V2_REG_CONTROL = 0x46, /* MSI GPU Direction Register */
};
enum
{
MSI_GPU_V2_CONTROL_DIRECTION_RIGHT = 0x00, /* Right direction light effects */
MSI_GPU_V2_CONTROL_DIRECTION_LEFT = 0x02, /* Left direction light effects */
MSI_GPU_V2_CONTROL_NON_RGBMODE = 0x01, /* Non RGB Mode - programming colors */
MSI_GPU_V2_CONTROL_DIRECTION_RIGHT = 0x00, /* Right direction light effects */
MSI_GPU_V2_CONTROL_DIRECTION_LEFT = 0x02, /* Left direction light effects */
MSI_GPU_V2_CONTROL_NON_RGBMODE = 0x01, /* Non RGB Mode - programming colors */
};
enum
{
MSI_GPU_V2_MODE_IDLE = 0x1c, /* Idle mode for programing ? */
MSI_GPU_V2_MODE_OFF = 0x01, /* OFF mode */
MSI_GPU_V2_MODE_RAINBOW = 0x08, /* Rainbow effect mode */
MSI_GPU_V2_MODE_STATIC = 0x13, /* Static color mode */
MSI_GPU_V2_MODE_RAINDROP = 0x1a, /* Raindrop effect mode */
MSI_GPU_V2_MODE_MAGIC = 0x07, /* Magic effect mode */
MSI_GPU_V2_MODE_PATROLLING = 0x05, /* Patrolling effect mode */
MSI_GPU_V2_MODE_STREAMING = 0x06, /* Streaming effect mode */
MSI_GPU_V2_MODE_LIGHTNING = 0x15, /* Lightning effect mode */
MSI_GPU_V2_MODE_WAVE = 0x1f, /* Wave effect mode */
MSI_GPU_V2_MODE_METEOR = 0x16, /* Meteor effect mode */
MSI_GPU_V2_MODE_STACK = 0x0d, /* Stack effect mode */
MSI_GPU_V2_MODE_RHYTHM = 0x0c, /* Rhythm effect mode */
MSI_GPU_V2_MODE_FLOWING = 0x09, /* Flowing effect mode */
MSI_GPU_V2_MODE_FLOWING2 = 0x0a, /* Flowing effect mode V2 */
MSI_GPU_V2_MODE_WHIRLING = 0x0f, /* Whirling effect mode */
MSI_GPU_V2_MODE_TWISTING = 0x11, /* Twisting effect mode */
MSI_GPU_V2_MODE_LAMINATING = 0x1d, /* Laminating effect mode */
MSI_GPU_V2_MODE_FADEIN = 0x14, /* Fadein effect mode */
MSI_GPU_V2_MODE_BREATHING = 0x04, /* Breathing effect mode */
MSI_GPU_V2_MODE_FLASHING = 0x02, /* Flashing effect mode */
MSI_GPU_V2_MODE_DOUBLEFLASHING = 0x03, /* Doubleflashing effect mode */
MSI_GPU_V2_MODE_IDLE = 0x1C, /* Idle mode for programing ? */
MSI_GPU_V2_MODE_OFF = 0x01, /* OFF mode */
MSI_GPU_V2_MODE_RAINBOW = 0x08, /* Rainbow effect mode */
MSI_GPU_V2_MODE_STATIC = 0x13, /* Static color mode */
MSI_GPU_V2_MODE_RAINDROP = 0x1A, /* Raindrop effect mode */
MSI_GPU_V2_MODE_MAGIC = 0x07, /* Magic effect mode */
MSI_GPU_V2_MODE_PATROLLING = 0x05, /* Patrolling effect mode */
MSI_GPU_V2_MODE_STREAMING = 0x06, /* Streaming effect mode */
MSI_GPU_V2_MODE_LIGHTNING = 0x15, /* Lightning effect mode */
MSI_GPU_V2_MODE_WAVE = 0x1F, /* Wave effect mode */
MSI_GPU_V2_MODE_METEOR = 0x16, /* Meteor effect mode */
MSI_GPU_V2_MODE_STACK = 0x0D, /* Stack effect mode */
MSI_GPU_V2_MODE_RHYTHM = 0x0C, /* Rhythm effect mode */
MSI_GPU_V2_MODE_FLOWING = 0x09, /* Flowing effect mode */
MSI_GPU_V2_MODE_FLOWING2 = 0x0A, /* Flowing effect mode V2 */
MSI_GPU_V2_MODE_WHIRLING = 0x0F, /* Whirling effect mode */
MSI_GPU_V2_MODE_TWISTING = 0x11, /* Twisting effect mode */
MSI_GPU_V2_MODE_LAMINATING = 0x1D, /* Laminating effect mode */
MSI_GPU_V2_MODE_FADEIN = 0x14, /* Fadein effect mode */
MSI_GPU_V2_MODE_BREATHING = 0x04, /* Breathing effect mode */
MSI_GPU_V2_MODE_FLASHING = 0x02, /* Flashing effect mode */
MSI_GPU_V2_MODE_DOUBLEFLASHING = 0x03, /* Doubleflashing effect mode */
};
class MSIGPUv2Controller

View file

@ -7,21 +7,19 @@
#include "Detector.h"
#include "LogManager.h"
#include "RGBController_MSIGPUv2.h"
#include "MSIGPUv2Controller.h"
#include "i2c_smbus.h"
#include "pci_ids.h"
#include <vector>
#include <stdio.h>
#include <stdlib.h>
/******************************************************************************************\
* *
* DetectMSIGPUControllers *
* *
* Detect MSI GPU controllers on the enumerated I2C busses. *
* *
\******************************************************************************************/
#include "RGBController_MSIGPUv2.h"
#include "MSIGPUv2Controller.h"
/*-----------------------------------------------------------------------------------------*\
| |
| DetectMSI GPU V2 Controllers |
| |
| Detect MSI GPU v2 controllers on the enumerated I2C busses. |
| |
\*-----------------------------------------------------------------------------------------*/
void DetectMSIGPUv2Controllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name)
{
@ -37,7 +35,7 @@ void DetectMSIGPUv2Controllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const
LOG_TRACE("MSI GPU Controler using ITE9 chip");
} /* DetectMSIGPUControllers() */
} /* DetectMSIGPUv2Controllers() */
REGISTER_I2C_PCI_DETECTOR("MSI GeForce RTX 4070Ti 12GB Gaming X Trio", DetectMSIGPUv2Controllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, MSI_SUB_VEN, MSI_RTX4070TI_GAMING_X_TRIO_SUB_DEV, 0x68);
REGISTER_I2C_PCI_DETECTOR("MSI GeForce RTX 4080 16GB Gaming X Trio", DetectMSIGPUv2Controllers, NVIDIA_VEN, NVIDIA_RTX4080_DEV, MSI_SUB_VEN, MSI_RTX4080_GAMING_X_TRIO_SUB_DEV, 0x68);

View file

@ -9,261 +9,259 @@
#include "RGBController_MSIGPUv2.h"
#include <array>
static const unsigned char brightness_values[5] = { 0x14, 0x28, 0x3c, 0x50, 0x64 };
static const unsigned char speed_values[3] = { 0x04, 0x02, 0x01 };
/**------------------------------------------------------------------*\
@name MSI GPU
@name MSI GPU v2
@category GPU
@type I2C
@save :white_check_mark:
@direct :white_check_mark:
@effects :white_check_mark:
@detectors DetectMSIGPUControllers
@detectors DetectMSIGPUv2Controllers
@comment
\*-------------------------------------------------------------------*/
RGBController_MSIGPUv2::RGBController_MSIGPUv2(MSIGPUv2Controller * msi_gpu_ptr)
{
msi_gpu = msi_gpu_ptr;
msi_gpu = msi_gpu_ptr;
name = "MSI GPU Device";
vendor = "MSI";
type = DEVICE_TYPE_GPU;
description = "MSI GPU Device";
description = name;
location = msi_gpu->GetDeviceLocation();
mode Off;
Off.name = "Off";
Off.value = MSI_GPU_V2_MODE_OFF;
Off.flags = MODE_FLAG_MANUAL_SAVE;
Off.color_mode = MODE_COLORS_NONE;
Off.name = "Off";
Off.value = MSI_GPU_V2_MODE_OFF;
Off.flags = MODE_FLAG_MANUAL_SAVE;
Off.color_mode = MODE_COLORS_NONE;
modes.push_back(Off);
mode Rainbow;
Rainbow.name = "Rainbow";
Rainbow.value = MSI_GPU_V2_MODE_RAINBOW;
Rainbow.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE | MODE_FLAG_HAS_DIRECTION_LR;
Rainbow.speed_min = 0;
Rainbow.speed = 0;
Rainbow.speed_max = 2;
Rainbow.brightness_min = 0;
Rainbow.brightness = 2;
Rainbow.brightness_max = 4;
Rainbow.color_mode = MODE_COLORS_NONE;
modes.push_back(Rainbow);
mode Direct;
Direct.name = "Direct";
Direct.value = MSI_GPU_V2_MODE_STATIC;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
Direct.color_mode = MODE_COLORS_PER_LED;
Direct.brightness_min = 0;
Direct.brightness = 2;
Direct.brightness_max = 4;
Direct.name = "Direct";
Direct.value = MSI_GPU_V2_MODE_STATIC;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
Direct.color_mode = MODE_COLORS_PER_LED;
Direct.brightness_min = MSI_GPU_V2_BRIGHTNESS_MIN;
Direct.brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
Direct.brightness_max = MSI_GPU_V2_BRIGHTNESS_MAX;
modes.push_back(Direct);
mode Rainbow;
Rainbow.name = "Rainbow Wave";
Rainbow.value = MSI_GPU_V2_MODE_RAINBOW;
Rainbow.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE | MODE_FLAG_HAS_DIRECTION_LR;
Rainbow.speed_min = MSI_GPU_V2_SPEED_MIN;
Rainbow.speed = MSI_GPU_V2_SPEED_MID;
Rainbow.speed_max = MSI_GPU_V2_SPEED_MAX;
Rainbow.brightness_min = MSI_GPU_V2_BRIGHTNESS_MIN;
Rainbow.brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
Rainbow.brightness_max = MSI_GPU_V2_BRIGHTNESS_MAX;
Rainbow.color_mode = MODE_COLORS_NONE;
modes.push_back(Rainbow);
mode Magic;
Magic.name = "Magic";
Magic.value = MSI_GPU_V2_MODE_MAGIC;
Magic.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
Magic.speed_min = 0;
Magic.speed = 0;
Magic.speed_max = 2;
Magic.brightness_min = 0;
Magic.brightness = 2;
Magic.brightness_max = 4;
Magic.color_mode = MODE_COLORS_NONE;
Magic.name = "Magic";
Magic.value = MSI_GPU_V2_MODE_MAGIC;
Magic.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
Magic.speed_min = MSI_GPU_V2_SPEED_MIN;
Magic.speed = MSI_GPU_V2_SPEED_MID;
Magic.speed_max = MSI_GPU_V2_SPEED_MAX;
Magic.brightness_min = MSI_GPU_V2_BRIGHTNESS_MIN;
Magic.brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
Magic.brightness_max = MSI_GPU_V2_BRIGHTNESS_MAX;
Magic.color_mode = MODE_COLORS_NONE;
modes.push_back(Magic);
mode ColorCycle;
ColorCycle.name = "Color Cycle";
ColorCycle.value = MSI_GPU_V2_MODE_MAGIC;
ColorCycle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
ColorCycle.speed_min = 0;
ColorCycle.speed = 0;
ColorCycle.speed_max = 2;
ColorCycle.brightness_min = 0;
ColorCycle.brightness = 2;
ColorCycle.brightness_max = 4;
ColorCycle.color_mode = MODE_COLORS_PER_LED;
ColorCycle.name = "Color Cycle";
ColorCycle.value = MSI_GPU_V2_MODE_MAGIC;
ColorCycle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
ColorCycle.speed_min = MSI_GPU_V2_SPEED_MIN;
ColorCycle.speed = MSI_GPU_V2_SPEED_MID;
ColorCycle.speed_max = MSI_GPU_V2_SPEED_MAX;
ColorCycle.brightness_min = MSI_GPU_V2_BRIGHTNESS_MIN;
ColorCycle.brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
ColorCycle.brightness_max = MSI_GPU_V2_BRIGHTNESS_MAX;
ColorCycle.color_mode = MODE_COLORS_PER_LED;
modes.push_back(ColorCycle);
mode Patrolling;
Patrolling.name = "Patrolling";
Patrolling.value = MSI_GPU_V2_MODE_PATROLLING;
Patrolling.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
Patrolling.speed_min = 0;
Patrolling.speed = 0;
Patrolling.speed_max = 2;
Patrolling.brightness_min = 0;
Patrolling.brightness = 2;
Patrolling.brightness_max = 4;
Patrolling.color_mode = MODE_COLORS_PER_LED;
Patrolling.name = "Patrolling";
Patrolling.value = MSI_GPU_V2_MODE_PATROLLING;
Patrolling.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
Patrolling.speed_min = MSI_GPU_V2_SPEED_MIN;
Patrolling.speed = MSI_GPU_V2_SPEED_MID;
Patrolling.speed_max = MSI_GPU_V2_SPEED_MAX;
Patrolling.brightness_min = MSI_GPU_V2_BRIGHTNESS_MIN;
Patrolling.brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
Patrolling.brightness_max = MSI_GPU_V2_BRIGHTNESS_MAX;
Patrolling.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Patrolling);
mode Streaming;
Streaming.name = "Streaming";
Streaming.value = MSI_GPU_V2_MODE_STREAMING;
Streaming.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
Streaming.speed_min = 0;
Streaming.speed = 0;
Streaming.speed_max = 2;
Streaming.brightness_min = 0;
Streaming.brightness = 2;
Streaming.brightness_max = 4;
Streaming.color_mode = MODE_COLORS_NONE;
Streaming.name = "Streaming";
Streaming.value = MSI_GPU_V2_MODE_STREAMING;
Streaming.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
Streaming.speed_min = MSI_GPU_V2_SPEED_MIN;
Streaming.speed = MSI_GPU_V2_SPEED_MID;
Streaming.speed_max = MSI_GPU_V2_SPEED_MAX;
Streaming.brightness_min = MSI_GPU_V2_BRIGHTNESS_MIN;
Streaming.brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
Streaming.brightness_max = MSI_GPU_V2_BRIGHTNESS_MAX;
Streaming.color_mode = MODE_COLORS_NONE;
modes.push_back(Streaming);
mode Lightning;
Lightning.name = "Lightning";
Lightning.value = MSI_GPU_V2_MODE_LIGHTNING;
Lightning.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
Lightning.speed_min = 0;
Lightning.speed = 0;
Lightning.speed_max = 2;
Lightning.brightness_min = 0;
Lightning.brightness = 2;
Lightning.brightness_max = 4;
Lightning.color_mode = MODE_COLORS_NONE;
Lightning.name = "Lightning";
Lightning.value = MSI_GPU_V2_MODE_LIGHTNING;
Lightning.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
Lightning.speed_min = MSI_GPU_V2_SPEED_MIN;
Lightning.speed = MSI_GPU_V2_SPEED_MID;
Lightning.speed_max = MSI_GPU_V2_SPEED_MAX;
Lightning.brightness_min = MSI_GPU_V2_BRIGHTNESS_MIN;
Lightning.brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
Lightning.brightness_max = MSI_GPU_V2_BRIGHTNESS_MAX;
Lightning.color_mode = MODE_COLORS_NONE;
modes.push_back(Lightning);
mode Wave;
Wave.name = "Wave";
Wave.value = MSI_GPU_V2_MODE_RAINBOW;//Rainbow has two modes now
Wave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE | MODE_FLAG_HAS_DIRECTION_LR;
Wave.speed_min = 0;
Wave.speed = 1;
Wave.speed_max = 2;
Wave.brightness_min = 0;
Wave.brightness = 2;
Wave.brightness_max = 4;
Wave.color_mode = MODE_COLORS_PER_LED;
Wave.name = "Wave";
Wave.value = MSI_GPU_V2_MODE_RAINBOW; //Rainbow has two modes now
Wave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE | MODE_FLAG_HAS_DIRECTION_LR;
Wave.speed_min = MSI_GPU_V2_SPEED_MIN;
Wave.speed = MSI_GPU_V2_SPEED_MID;
Wave.speed_max = MSI_GPU_V2_SPEED_MAX;
Wave.brightness_min = MSI_GPU_V2_BRIGHTNESS_MIN;
Wave.brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
Wave.brightness_max = MSI_GPU_V2_BRIGHTNESS_MAX;
Wave.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Wave);
mode Meteor;
Meteor.name = "Meteor";
Meteor.value = MSI_GPU_V2_MODE_METEOR;
Meteor.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
Meteor.speed_min = 0;
Meteor.speed = 1;
Meteor.speed_max = 2;
Meteor.brightness_min = 0;
Meteor.brightness = 2;
Meteor.brightness_max = 4;
Meteor.color_mode = MODE_COLORS_PER_LED;
Meteor.name = "Meteor";
Meteor.value = MSI_GPU_V2_MODE_METEOR;
Meteor.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
Meteor.speed_min = MSI_GPU_V2_SPEED_MIN;
Meteor.speed = MSI_GPU_V2_SPEED_MID;
Meteor.speed_max = MSI_GPU_V2_SPEED_MAX;
Meteor.brightness_min = MSI_GPU_V2_BRIGHTNESS_MIN;
Meteor.brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
Meteor.brightness_max = MSI_GPU_V2_BRIGHTNESS_MAX;
Meteor.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Meteor);
mode Stack;
Stack.name = "Stack";
Stack.value = MSI_GPU_V2_MODE_STACK;
Stack.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
Stack.speed_min = 0;
Stack.speed = 1;
Stack.speed_max = 2;
Stack.brightness_min = 0;
Stack.brightness = 2;
Stack.brightness_max = 4;
Stack.color_mode = MODE_COLORS_PER_LED;
Stack.name = "Stack";
Stack.value = MSI_GPU_V2_MODE_STACK;
Stack.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
Stack.speed_min = MSI_GPU_V2_SPEED_MIN;
Stack.speed = MSI_GPU_V2_SPEED_MID;
Stack.speed_max = MSI_GPU_V2_SPEED_MAX;
Stack.brightness_min = MSI_GPU_V2_BRIGHTNESS_MIN;
Stack.brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
Stack.brightness_max = MSI_GPU_V2_BRIGHTNESS_MAX;
Stack.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Stack);
mode Rhythm;
Rhythm.name = "Rhythm";
Rhythm.value = MSI_GPU_V2_MODE_RHYTHM;
Rhythm.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
Rhythm.speed_min = 0;
Rhythm.speed = 1;
Rhythm.speed_max = 2;
Rhythm.brightness_min = 0;
Rhythm.brightness = 2;
Rhythm.brightness_max = 4;
Rhythm.color_mode = MODE_COLORS_PER_LED;
Rhythm.name = "Rhythm";
Rhythm.value = MSI_GPU_V2_MODE_RHYTHM;
Rhythm.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
Rhythm.speed_min = MSI_GPU_V2_SPEED_MIN;
Rhythm.speed = MSI_GPU_V2_SPEED_MID;
Rhythm.speed_max = MSI_GPU_V2_SPEED_MAX;
Rhythm.brightness_min = MSI_GPU_V2_BRIGHTNESS_MIN;
Rhythm.brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
Rhythm.brightness_max = MSI_GPU_V2_BRIGHTNESS_MAX;
Rhythm.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Rhythm);
mode Flowing;
Flowing.name = "Flowing";
Flowing.value = MSI_GPU_V2_MODE_FLOWING;
Flowing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
Flowing.speed_min = 0;
Flowing.speed = 1;
Flowing.speed_max = 2;
Flowing.brightness_min = 0;
Flowing.brightness = 2;
Flowing.brightness_max = 4;
Flowing.color_mode = MODE_COLORS_PER_LED;
Flowing.name = "Flowing";
Flowing.value = MSI_GPU_V2_MODE_FLOWING;
Flowing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
Flowing.speed_min = MSI_GPU_V2_SPEED_MIN;
Flowing.speed = MSI_GPU_V2_SPEED_MID;
Flowing.speed_max = MSI_GPU_V2_SPEED_MAX;
Flowing.brightness_min = MSI_GPU_V2_BRIGHTNESS_MIN;
Flowing.brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
Flowing.brightness_max = MSI_GPU_V2_BRIGHTNESS_MAX;
Flowing.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Flowing);
mode Whirling;
Whirling.name = "Whirling";
Whirling.value = MSI_GPU_V2_MODE_WHIRLING;
Whirling.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
Whirling.speed_min = 0;
Whirling.speed = 1;
Whirling.speed_max = 2;
Whirling.brightness_min = 0;
Whirling.brightness = 2;
Whirling.brightness_max = 4;
Whirling.color_mode = MODE_COLORS_PER_LED;
Whirling.name = "Whirling";
Whirling.value = MSI_GPU_V2_MODE_WHIRLING;
Whirling.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
Whirling.speed_min = MSI_GPU_V2_SPEED_MIN;
Whirling.speed = MSI_GPU_V2_SPEED_MID;
Whirling.speed_max = MSI_GPU_V2_SPEED_MAX;
Whirling.brightness_min = MSI_GPU_V2_BRIGHTNESS_MIN;
Whirling.brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
Whirling.brightness_max = MSI_GPU_V2_BRIGHTNESS_MAX;
Whirling.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Whirling);
mode Fadein;
Fadein.name = "Fadein";
Fadein.value = MSI_GPU_V2_MODE_FADEIN;
Fadein.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
Fadein.speed_min = 0;
Fadein.speed = 1;
Fadein.speed_max = 2;
Fadein.brightness_min = 0;
Fadein.brightness = 2;
Fadein.brightness_max = 4;
Fadein.color_mode = MODE_COLORS_PER_LED;
Fadein.name = "Fade In";
Fadein.value = MSI_GPU_V2_MODE_FADEIN;
Fadein.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
Fadein.speed_min = MSI_GPU_V2_SPEED_MIN;
Fadein.speed = MSI_GPU_V2_SPEED_MID;
Fadein.speed_max = MSI_GPU_V2_SPEED_MAX;
Fadein.brightness_min = MSI_GPU_V2_BRIGHTNESS_MIN;
Fadein.brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
Fadein.brightness_max = MSI_GPU_V2_BRIGHTNESS_MAX;
Fadein.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Fadein);
mode Breathing;
Breathing.name = "Breathing";
Breathing.value = MSI_GPU_V2_MODE_BREATHING;
Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
Breathing.speed_min = 0;
Breathing.speed = 1;
Breathing.speed_max = 2;
Breathing.brightness_min = 0;
Breathing.brightness = 2;
Breathing.brightness_max = 4;
Breathing.color_mode = MODE_COLORS_PER_LED;
Breathing.name = "Breathing";
Breathing.value = MSI_GPU_V2_MODE_BREATHING;
Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
Breathing.speed_min = MSI_GPU_V2_SPEED_MIN;
Breathing.speed = MSI_GPU_V2_SPEED_MID;
Breathing.speed_max = MSI_GPU_V2_SPEED_MAX;
Breathing.brightness_min = MSI_GPU_V2_BRIGHTNESS_MIN;
Breathing.brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
Breathing.brightness_max = MSI_GPU_V2_BRIGHTNESS_MAX;
Breathing.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Breathing);
mode flashing;
flashing.name = "Flashing";
flashing.value = MSI_GPU_V2_MODE_FLASHING;
flashing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
flashing.speed_min = 0;
flashing.speed = 1;
flashing.speed_max = 2;
flashing.brightness_min = 0;
flashing.brightness = 2;
flashing.brightness_max = 4;
flashing.color_mode = MODE_COLORS_PER_LED;
flashing.name = "Flashing";
flashing.value = MSI_GPU_V2_MODE_FLASHING;
flashing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
flashing.speed_min = MSI_GPU_V2_SPEED_MIN;
flashing.speed = MSI_GPU_V2_SPEED_MID;
flashing.speed_max = MSI_GPU_V2_SPEED_MAX;
flashing.brightness_min = MSI_GPU_V2_BRIGHTNESS_MIN;
flashing.brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
flashing.brightness_max = MSI_GPU_V2_BRIGHTNESS_MAX;
flashing.color_mode = MODE_COLORS_PER_LED;
modes.push_back(flashing);
mode doubleflashing;
doubleflashing.name = "Doubleflashing";
doubleflashing.value = MSI_GPU_V2_MODE_DOUBLEFLASHING;
doubleflashing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
doubleflashing.speed_min = 0;
doubleflashing.speed = 1;
doubleflashing.speed_max = 2;
doubleflashing.brightness_min = 0;
doubleflashing.brightness = 2;
doubleflashing.brightness_max = 4;
doubleflashing.color_mode = MODE_COLORS_PER_LED;
doubleflashing.name = "Double Flashing";
doubleflashing.value = MSI_GPU_V2_MODE_DOUBLEFLASHING;
doubleflashing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
doubleflashing.speed_min = MSI_GPU_V2_SPEED_MIN;
doubleflashing.speed = MSI_GPU_V2_SPEED_MID;
doubleflashing.speed_max = MSI_GPU_V2_SPEED_MAX;
doubleflashing.brightness_min = MSI_GPU_V2_BRIGHTNESS_MIN;
doubleflashing.brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
doubleflashing.brightness_max = MSI_GPU_V2_BRIGHTNESS_MAX;
doubleflashing.color_mode = MODE_COLORS_PER_LED;
modes.push_back(doubleflashing);
SetupZones();
active_mode = 0;
modes[active_mode].speed = 1;
modes[active_mode].brightness = 3;
modes[active_mode].speed = MSI_GPU_V2_SPEED_MID;
modes[active_mode].brightness = MSI_GPU_V2_BRIGHTNESS_MAX;
}
RGBController_MSIGPUv2::~RGBController_MSIGPUv2()
@ -303,9 +301,9 @@ void RGBController_MSIGPUv2::SetupZones()
/*---------------------------------------------------------*\
| Initialize color |
\*---------------------------------------------------------*/
colors[0] = ToRGBColor(0xff, 0, 0);
colors[1] = ToRGBColor(0xff, 0, 0);
colors[2] = ToRGBColor(0xff, 0 ,0);
colors[0] = ToRGBColor(0xFF, 0, 0);
colors[1] = ToRGBColor(0xFF, 0, 0);
colors[2] = ToRGBColor(0xFF, 0 ,0);
}
void RGBController_MSIGPUv2::ResizeZone(int /*zone*/, int /*new_size*/)
@ -422,7 +420,7 @@ void RGBController_MSIGPUv2::DeviceUpdateAll()
if(modes[active_mode].flags & MODE_FLAG_HAS_BRIGHTNESS)
{
msi_gpu->MSIGPURegisterWrite(MSI_GPU_V2_REG_BRIGHTNESS, brightness_values[modes[active_mode].brightness]);
msi_gpu->MSIGPURegisterWrite(MSI_GPU_V2_REG_BRIGHTNESS, MSI_GPU_V2_BRIGHTNESS_MULTI * modes[active_mode].brightness);
if(modes[active_mode].flags & MODE_FLAG_HAS_SPEED)
{
msi_gpu->MSIGPURegisterWrite(MSI_GPU_V2_REG_SPEED, speed_values[modes[active_mode].speed]);
@ -464,7 +462,7 @@ void RGBController_MSIGPUv2::UpdateSingleLED(int /*led*/)
void RGBController_MSIGPUv2::DeviceUpdateMode()
{
if(TimeToSend())
{
{
DeviceUpdateAll();
/*-----------------------------------------------------*\