diff --git a/Controllers/SapphireGPUController/SapphireGPUController.cpp b/Controllers/SapphireGPUController/SapphireGPUController.cpp index 1e28bb03..a189eaca 100644 --- a/Controllers/SapphireGPUController/SapphireGPUController.cpp +++ b/Controllers/SapphireGPUController/SapphireGPUController.cpp @@ -30,6 +30,21 @@ std::string SapphireGPUController::GetDeviceLocation() return(return_string); } +unsigned char SapphireGPUController::GetRed() +{ + return(bus->i2c_smbus_read_byte_data(dev, SAPPHIRE_GPU_REG_RED)); +} + +unsigned char SapphireGPUController::GetGreen() +{ + return(bus->i2c_smbus_read_byte_data(dev, SAPPHIRE_GPU_REG_GREEN)); +} + +unsigned char SapphireGPUController::GetBlue() +{ + return(bus->i2c_smbus_read_byte_data(dev, SAPPHIRE_GPU_REG_BLUE)); +} + void SapphireGPUController::SetColor(unsigned char red, unsigned char green, unsigned char blue) { bus->i2c_smbus_write_byte_data(dev, SAPPHIRE_GPU_REG_RED, red); @@ -39,5 +54,5 @@ void SapphireGPUController::SetColor(unsigned char red, unsigned char green, uns void SapphireGPUController::SetMode(unsigned char mode, unsigned char speed) { - bus->i2c_smbus_write_byte_data(dev, SAPPHIRE_GPU_REG_MODE, 0x04); + bus->i2c_smbus_write_byte_data(dev, SAPPHIRE_GPU_REG_MODE, mode); } diff --git a/Controllers/SapphireGPUController/SapphireGPUController.h b/Controllers/SapphireGPUController/SapphireGPUController.h index 492148a5..b8951e61 100644 --- a/Controllers/SapphireGPUController/SapphireGPUController.h +++ b/Controllers/SapphireGPUController/SapphireGPUController.h @@ -23,6 +23,16 @@ enum SAPPHIRE_GPU_REG_BLUE = 0x05, }; +enum +{ + SAPPHIRE_GPU_MODE_SAPPHIRE_BLUE = 0x00, + SAPPHIRE_GPU_MODE_RAINBOW = 0x01, + SAPPHIRE_GPU_MODE_BOARD_TEMPERATURE = 0x02, + SAPPHIRE_GPU_MODE_FAN_SPEED = 0x03, + SAPPHIRE_GPU_MODE_CUSTOM = 0x04, + SAPPHIRE_GPU_MODE_OFF = 0x05, +}; + class SapphireGPUController { public: @@ -31,6 +41,10 @@ public: std::string GetDeviceLocation(); + unsigned char GetRed(); + unsigned char GetGreen(); + unsigned char GetBlue(); + void SetColor(unsigned char red, unsigned char green, unsigned char blue); void SetMode(unsigned char mode, unsigned char speed); diff --git a/Controllers/SapphireGPUController/SapphireGPUControllerDetect.cpp b/Controllers/SapphireGPUController/SapphireGPUControllerDetect.cpp index 626faceb..946ad44e 100644 --- a/Controllers/SapphireGPUController/SapphireGPUControllerDetect.cpp +++ b/Controllers/SapphireGPUController/SapphireGPUControllerDetect.cpp @@ -20,9 +20,12 @@ bool TestForSapphireGPUController(i2c_smbus_interface* bus, unsigned char addres bool pass = false; int res; - //TODO - detection + if(bus->i2c_smbus_read_byte_data(address, 0x06) == 0xCC) + { + pass = true; + } - return(false); + return(false); //TODO - better detection, leaving disabled for now } /* TestForSapphireGPUController() */ diff --git a/RGBController/RGBController_SapphireGPU.cpp b/RGBController/RGBController_SapphireGPU.cpp index 93bda624..e55088a5 100644 --- a/RGBController/RGBController_SapphireGPU.cpp +++ b/RGBController/RGBController_SapphireGPU.cpp @@ -21,11 +21,18 @@ RGBController_SapphireGPU::RGBController_SapphireGPU(SapphireGPUController* sapp mode Static; Static.name = "Static"; - Static.value = 0; + Static.value = 0x04; Static.flags = MODE_FLAG_HAS_PER_LED_COLOR; Static.color_mode = MODE_COLORS_PER_LED; modes.push_back(Static); + mode Rainbow; + Rainbow.name = "Rainbow"; + Rainbow.value = 0x01; + Rainbow.flags = 0; + Rainbow.color_mode = MODE_COLORS_NONE; + modes.push_back(Rainbow); + SetupZones(); // Initialize active mode