diff --git a/Controllers/GigabyteSuperIORGBController/GigabyteSuperIORGBController.cpp b/Controllers/GigabyteSuperIORGBController/GigabyteSuperIORGBController.cpp index a2c1b4b0..30171f41 100644 --- a/Controllers/GigabyteSuperIORGBController/GigabyteSuperIORGBController.cpp +++ b/Controllers/GigabyteSuperIORGBController/GigabyteSuperIORGBController.cpp @@ -12,15 +12,22 @@ #include "GigabyteSuperIORGBController.h" #include "super_io.h" -GigabyteSuperIORGBController::GigabyteSuperIORGBController(int sioaddr) +GigabyteSuperIORGBController::GigabyteSuperIORGBController(int sioaddr, std::string dev_name) { gig_sioaddr = sioaddr; + name = dev_name; } GigabyteSuperIORGBController::~GigabyteSuperIORGBController() { } + +std::string GigabyteSuperIORGBController::GetDeviceName() +{ + return(name); +} + void GigabyteSuperIORGBController::ChipEntry() { /*--------------------------------*\ @@ -36,6 +43,7 @@ void GigabyteSuperIORGBController::ChipEntry() \*_-------------------------------*/ superio_outb(gig_sioaddr, GIGABYTE_SUPERIO_CHIPSELECT_REGISTER_1, GIGABYTE_SUPERIO_CHIPSELECT_VALUE_1); } + void GigabyteSuperIORGBController::ChipExit() { /*-----------------------------------------------------------------------------------*\ @@ -44,6 +52,7 @@ void GigabyteSuperIORGBController::ChipExit() \*_----------------------------------------------------------------------------------*/ superio_outb(gig_sioaddr, GIGABYTE_SUPERIO_CHIPEXIT_REGISTER_1, GIGABYTE_SUPERIO_CHIPEXIT_VALUE_1); } + void GigabyteSuperIORGBController::SetColor(unsigned int red, unsigned int green, unsigned int blue) { /*--------------------------------*\ @@ -75,11 +84,11 @@ void GigabyteSuperIORGBController::SetMode(int new_mode) ChipEntry(); } - /*-----------------------------------------------------*\ + /*-----------------------------------------------------*\ | Write the colors to the color sequence registers | \*-----------------------------------------------------*/ switch (new_mode) - { + { case GIGABYTE_MODE1_STATIC: superio_outb(gig_sioaddr, GIGABYTE_SUPERIO_STATIC_REGISTER_1, GIGABYTE_SUPERIO_STATIC_VALUE_1); superio_outb(gig_sioaddr, GIGABYTE_SUPERIO_STATIC_REGISTER_2, GIGABYTE_SUPERIO_STATIC_VALUE_2); @@ -117,7 +126,8 @@ void GigabyteSuperIORGBController::SetMode(int new_mode) superio_outb(gig_sioaddr, GIGABYTE_SUPERIO_FLASHING_REGISTER_5, GIGABYTE_SUPERIO_FLASHING_VALUE_5); superio_outb(gig_sioaddr, GIGABYTE_SUPERIO_FLASHING_REGISTER_6, GIGABYTE_SUPERIO_FLASHING_VALUE_6); break; - } + } + if(new_mode>=GIGABYTE_MODE1_STATIC && new_mode<=GIGABYTE_MODE1_FLASHING) { ChipExit(); diff --git a/Controllers/GigabyteSuperIORGBController/GigabyteSuperIORGBController.h b/Controllers/GigabyteSuperIORGBController/GigabyteSuperIORGBController.h index c5cadcc2..b042ad3d 100644 --- a/Controllers/GigabyteSuperIORGBController/GigabyteSuperIORGBController.h +++ b/Controllers/GigabyteSuperIORGBController/GigabyteSuperIORGBController.h @@ -132,11 +132,10 @@ enum class GigabyteSuperIORGBController { public: - GigabyteSuperIORGBController(int sioaddr); + GigabyteSuperIORGBController(int sioaddr, std::string dev_name); ~GigabyteSuperIORGBController(); std::string GetDeviceName(); - std::string GetDeviceLocation(); unsigned int GetMode(); void SetMode(int new_mode); @@ -145,5 +144,6 @@ public: void ChipEntry(); void ChipExit(); private: - int gig_sioaddr; + int gig_sioaddr; + std::string name; }; diff --git a/Controllers/GigabyteSuperIORGBController/GigabyteSuperIORGBControllerDetect.cpp b/Controllers/GigabyteSuperIORGBController/GigabyteSuperIORGBControllerDetect.cpp index 2fad08b7..0092424e 100644 --- a/Controllers/GigabyteSuperIORGBController/GigabyteSuperIORGBControllerDetect.cpp +++ b/Controllers/GigabyteSuperIORGBController/GigabyteSuperIORGBControllerDetect.cpp @@ -29,13 +29,13 @@ static gig_device compatible_devices[] = void DetectGigabyteSuperIORGBControllers() { - int sio_addrs[2] = {0x2E, 0x4E}; + int sio_addrs[2] = {0x2E, 0x4E}; DMIInfo board; - std::string board_dmi = board.getMainboard(); - std::string manufacturer = board.getManufacturer(); + std::string board_dmi = board.getMainboard(); + std::string manufacturer = board.getManufacturer(); - if (manufacturer != "Gigabyte Technology Co., Ltd.") + if(manufacturer != "Gigabyte Technology Co., Ltd.") { return; } @@ -53,11 +53,10 @@ void DetectGigabyteSuperIORGBControllers() case SIO_ITE8688_ID: for(unsigned int i = 0; i < NUM_COMPATIBLE_DEVICES; i++) { - if (board_dmi.find(std::string(compatible_devices[i].name)) != std::string::npos) + if(board_dmi.find(std::string(compatible_devices[i].name)) != std::string::npos) { - GigabyteSuperIORGBController* controller = new GigabyteSuperIORGBController(sioaddr); + GigabyteSuperIORGBController* controller = new GigabyteSuperIORGBController(sioaddr, "Gigabyte " + board_dmi); RGBController_GigabyteSuperIORGB* rgb_controller = new RGBController_GigabyteSuperIORGB(controller); - rgb_controller->name = "Gigabyte " + board_dmi; ResourceManager::get()->RegisterRGBController(rgb_controller); break; diff --git a/Controllers/GigabyteSuperIORGBController/RGBController_GigabyteSuperIORGB.cpp b/Controllers/GigabyteSuperIORGBController/RGBController_GigabyteSuperIORGB.cpp index 174116bf..0695adaf 100644 --- a/Controllers/GigabyteSuperIORGBController/RGBController_GigabyteSuperIORGB.cpp +++ b/Controllers/GigabyteSuperIORGBController/RGBController_GigabyteSuperIORGB.cpp @@ -87,46 +87,46 @@ RGBController_GigabyteSuperIORGB::RGBController_GigabyteSuperIORGB(GigabyteSuperIORGBController* controller_ptr) { - controller = controller_ptr; + controller = controller_ptr; - name = "Gigabyte SuperIO Compatible Motherboard"; - vendor = "Gigabyte"; - type = DEVICE_TYPE_MOTHERBOARD; - description = "Gigabyte SuperIO RGB Device"; + name = controller->GetDeviceName(); + vendor = "Gigabyte"; + type = DEVICE_TYPE_MOTHERBOARD; + description = "Gigabyte SuperIO RGB Device"; mode Direct; - Direct.name = "Direct"; - Direct.value = 0; - Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; - Direct.color_mode = MODE_COLORS_PER_LED; + Direct.name = "Direct"; + Direct.value = 0; + Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; + Direct.color_mode = MODE_COLORS_PER_LED; modes.push_back(Direct); mode Static; - Static.name = "Static"; - Static.value = GIGABYTE_MODE1_STATIC; - Static.flags = MODE_FLAG_HAS_PER_LED_COLOR; - Static.color_mode = MODE_COLORS_PER_LED; + Static.name = "Static"; + Static.value = GIGABYTE_MODE1_STATIC; + 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 = GIGABYTE_MODE1_RAINBOW; - Rainbow.flags = MODE_FLAG_HAS_PER_LED_COLOR; - Rainbow.color_mode = MODE_COLORS_PER_LED; + Rainbow.name = "Rainbow"; + Rainbow.value = GIGABYTE_MODE1_RAINBOW; + Rainbow.flags = MODE_FLAG_HAS_PER_LED_COLOR; + Rainbow.color_mode = MODE_COLORS_PER_LED; modes.push_back(Rainbow); mode Breathing; - Breathing.name = "Breathing"; - Breathing.value = GIGABYTE_MODE1_BREATHING; + Breathing.name = "Breathing"; + Breathing.value = GIGABYTE_MODE1_BREATHING; Breathing.flags = MODE_FLAG_HAS_PER_LED_COLOR; Breathing.color_mode = MODE_COLORS_PER_LED; modes.push_back(Breathing); mode Flashing; - Flashing.name = "Flashing"; - Flashing.value = GIGABYTE_MODE1_FLASHING; - Flashing.flags = MODE_FLAG_HAS_PER_LED_COLOR; - Flashing.color_mode = MODE_COLORS_PER_LED; + Flashing.name = "Flashing"; + Flashing.value = GIGABYTE_MODE1_FLASHING; + Flashing.flags = MODE_FLAG_HAS_PER_LED_COLOR; + Flashing.color_mode = MODE_COLORS_PER_LED; modes.push_back(Flashing); SetupZones(); @@ -149,7 +149,7 @@ void RGBController_GigabyteSuperIORGB::SetupZones() zones.push_back(gig_zone); led gig_led; - gig_led.name = "LED_C1"; + gig_led.name = "LED_C1"; leds.push_back(gig_led); SetupColors();