diff --git a/OpenRGB.cpp b/OpenRGB.cpp index 2de00e114..d53f2915a 100644 --- a/OpenRGB.cpp +++ b/OpenRGB.cpp @@ -315,7 +315,7 @@ void DetectRGBControllers(void) DetectI2CBusses(); DetectAuraControllers(busses, rgb_controllers); - //DetectAuraGPUControllers(busses, rgb_controllers); + DetectAuraGPUControllers(busses, rgb_controllers); DetectCorsairControllers(busses, rgb_controllers); //DetectCorsairProControllers(busses, rgb_controllers); //DetectCrucialControllers(busses, rgb_controllers); diff --git a/OpenRGB.pro b/OpenRGB.pro index 614218838..6f4fdaa42 100644 --- a/OpenRGB.pro +++ b/OpenRGB.pro @@ -31,7 +31,7 @@ INCLUDEPATH += \ super_io/ \ Controllers/AMDWraithPrismController/ \ Controllers/AuraController/ \ -# Controllers/AuraGPUController/ \ + Controllers/AuraGPUController/ \ Controllers/CorsairController/ \ # Controllers/CorsairKeyboardController/ \ Controllers/CorsairLightingNodeController/ \ @@ -79,8 +79,8 @@ SOURCES += \ Controllers/AMDWraithPrismController/AMDWraithPrismControllerDetect.cpp \ Controllers/AuraController/AuraController.cpp \ Controllers/AuraController/AuraControllerDetect.cpp \ -# Controllers/AuraGPUController/AuraGPUController.cpp \ -# Controllers/AuraGPUController/AuraGPUControllerDetect.cpp \ + Controllers/AuraGPUController/AuraGPUController.cpp \ + Controllers/AuraGPUController/AuraGPUControllerDetect.cpp \ Controllers/CorsairController/CorsairController.cpp \ Controllers/CorsairController/CorsairControllerDetect.cpp \ # Controllers/CorsairKeyboardController/CorsairKeyboardController.cpp \ @@ -123,7 +123,7 @@ SOURCES += \ RGBController/E131ControllerDetect.cpp \ RGBController/RGBController_AMDWraithPrism.cpp \ RGBController/RGBController_Aura.cpp \ -# RGBController/RGBController_AuraGPU.cpp \ + RGBController/RGBController_AuraGPU.cpp \ RGBController/RGBController_Corsair.cpp \ # RGBController/RGBController_CorsairKeyboard.cpp \ RGBController/RGBController_CorsairLightingNode.cpp \ diff --git a/RGBController/RGBController_Aura.cpp b/RGBController/RGBController_Aura.cpp index fbd220207..f3086a617 100644 --- a/RGBController/RGBController_Aura.cpp +++ b/RGBController/RGBController_Aura.cpp @@ -300,6 +300,19 @@ void RGBController_Aura::SetupZones() } SetupColors(); + + /*---------------------------------------------------------*\ + | Initialize colors for each LED | + \*---------------------------------------------------------*/ + for(std::size_t led_idx = 0; led_idx < leds.size(); led_idx++) + { + unsigned int led = leds[led_idx].value; + unsigned char red = aura->GetLEDRed(led); + unsigned char grn = aura->GetLEDGreen(led); + unsigned char blu = aura->GetLEDBlue(led); + + colors[led_idx] = ToRGBColor(red, grn, blu); + } } void RGBController_Aura::ResizeZone(int /*zone*/, int /*new_size*/) diff --git a/RGBController/RGBController_AuraGPU.cpp b/RGBController/RGBController_AuraGPU.cpp index 3d4cd9229..3d7ee9f83 100644 --- a/RGBController/RGBController_AuraGPU.cpp +++ b/RGBController/RGBController_AuraGPU.cpp @@ -41,6 +41,102 @@ int RGBController_AuraGPU::GetDeviceMode() return(active_mode); } +RGBController_AuraGPU::RGBController_AuraGPU(AuraGPUController * aura_gpu_ptr) +{ + aura_gpu = aura_gpu_ptr; + + + name = aura_gpu->GetDeviceName(); + version = "0.00.1"; + location = aura_gpu->GetDeviceLocation(); + type = DEVICE_TYPE_GPU; + + mode Direct; + Direct.name = "Direct"; + Direct.value = AURA_GPU_MODE_DIRECT; + Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; + Direct.color_mode = MODE_COLORS_PER_LED; + modes.push_back(Direct); + + mode Off; + Off.name = "Off"; + Off.value = AURA_GPU_MODE_OFF; + Off.flags = 0; + Off.color_mode = MODE_COLORS_NONE; + modes.push_back(Off); + + mode Static; + Static.name = "Static"; + Static.value = AURA_GPU_MODE_STATIC; + Static.flags = MODE_FLAG_HAS_PER_LED_COLOR; + Static.color_mode = MODE_COLORS_PER_LED; + modes.push_back(Static); + + mode Breathing; + Breathing.name = "Breathing"; + Breathing.value = AURA_GPU_MODE_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 = AURA_GPU_MODE_FLASHING; + Flashing.flags = MODE_FLAG_HAS_PER_LED_COLOR; + Flashing.color_mode = MODE_COLORS_PER_LED; + modes.push_back(Flashing); + + mode Spectrum_Cycle; + Spectrum_Cycle.name = "Spectrum Cycle"; + Spectrum_Cycle.value = AURA_GPU_MODE_SPECTRUM_CYCLE; + Spectrum_Cycle.flags = 0; + Spectrum_Cycle.color_mode = MODE_COLORS_NONE; + modes.push_back(Spectrum_Cycle); + + SetupZones(); + + active_mode = GetDeviceMode(); +} + +void RGBController_AuraGPU::SetupZones() +{ + /*---------------------------------------------------------*\ + | Set up zone | + \*---------------------------------------------------------*/ + zone aura_gpu_zone; + aura_gpu_zone.name = "GPU"; + aura_gpu_zone.type = ZONE_TYPE_SINGLE; + aura_gpu_zone.leds_min = 1; + aura_gpu_zone.leds_max = 1; + aura_gpu_zone.leds_count = 1; + zones.push_back(aura_gpu_zone); + + /*---------------------------------------------------------*\ + | Set up LED | + \*---------------------------------------------------------*/ + led aura_gpu_led; + aura_gpu_led.name = "GPU"; + leds.push_back(aura_gpu_led); + + SetupColors(); + + /*---------------------------------------------------------*\ + | Initialize color | + \*---------------------------------------------------------*/ + unsigned char red = aura_gpu->GetLEDRed(); + unsigned char grn = aura_gpu->GetLEDGreen(); + unsigned char blu = aura_gpu->GetLEDBlue(); + + colors[0] = ToRGBColor(red, grn, blu); +} + +void RGBController_AuraGPU::ResizeZone(int /*zone*/, int /*new_size*/) +{ + /*---------------------------------------------------------*\ + | This device does not support resizing zones | + \*---------------------------------------------------------*/ +} + void RGBController_AuraGPU::UpdateLEDs() { for(std::size_t led = 0; led < colors.size(); led++) @@ -70,82 +166,6 @@ void RGBController_AuraGPU::UpdateSingleLED(int led) UpdateLEDs(); } -RGBController_AuraGPU::RGBController_AuraGPU(AuraGPUController * aura_gpu_ptr) -{ - aura_gpu = aura_gpu_ptr; - - - name = aura_gpu->GetDeviceName(); - version = "0.00.1"; - location = aura_gpu->GetDeviceLocation(); - type = DEVICE_TYPE_GPU; - - mode Direct; - Direct.name = "Direct"; - Direct.value = AURA_GPU_MODE_DIRECT; - Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR; - Direct.color_mode = MODE_COLORS_PER_LED; - modes.push_back(Direct); - - mode Off; - Off.name = "Off"; - Off.value = AURA_GPU_MODE_OFF; - Off.flags = 0; - Off.color_mode = MODE_COLORS_NONE; - modes.push_back(Off); - - mode Static; - Static.name = "Static"; - Static.value = AURA_GPU_MODE_STATIC; - Static.flags = MODE_FLAG_HAS_PER_LED_COLOR; - Static.color_mode = MODE_COLORS_PER_LED; - modes.push_back(Static); - - mode Breathing; - Breathing.name = "Breathing"; - Breathing.value = AURA_GPU_MODE_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 = AURA_GPU_MODE_FLASHING; - Flashing.flags = MODE_FLAG_HAS_PER_LED_COLOR; - Flashing.color_mode = MODE_COLORS_PER_LED; - modes.push_back(Flashing); - - mode Spectrum_Cycle; - Spectrum_Cycle.name = "Spectrum Cycle"; - Spectrum_Cycle.value = AURA_GPU_MODE_SPECTRUM_CYCLE; - Spectrum_Cycle.flags = 0; - Spectrum_Cycle.color_mode = MODE_COLORS_NONE; - modes.push_back(Spectrum_Cycle); - - colors.resize(1); - - led aura_gpu_led; - aura_gpu_led.name = "GPU"; - leds.push_back(aura_gpu_led); - - zone aura_gpu_zone; - aura_gpu_zone.name = "GPU"; - aura_gpu_zone.type = ZONE_TYPE_SINGLE; - - std::vector aura_gpu_zone_map; - aura_gpu_zone_map.push_back(0); - aura_gpu_zone.map.push_back(aura_gpu_zone_map); - zones.push_back(aura_gpu_zone); - - unsigned char red = aura_gpu->GetLEDRed(); - unsigned char grn = aura_gpu->GetLEDGreen(); - unsigned char blu = aura_gpu->GetLEDBlue(); - - colors[0] = ToRGBColor(red, grn, blu); - - active_mode = GetDeviceMode(); -} - void RGBController_AuraGPU::SetCustomMode() { active_mode = 0; @@ -173,4 +193,4 @@ void RGBController_AuraGPU::UpdateMode() } aura_gpu->SetMode(new_mode); -} \ No newline at end of file +} diff --git a/RGBController/RGBController_AuraGPU.h b/RGBController/RGBController_AuraGPU.h index a4546a27d..c1db6514c 100644 --- a/RGBController/RGBController_AuraGPU.h +++ b/RGBController/RGBController_AuraGPU.h @@ -15,6 +15,11 @@ class RGBController_AuraGPU : public RGBController { public: RGBController_AuraGPU(AuraGPUController* aura_gpu_ptr); + + void SetupZones(); + + void ResizeZone(int zone, int new_size); + void UpdateLEDs(); void UpdateZoneLEDs(int zone); void UpdateSingleLED(int led); @@ -26,4 +31,4 @@ private: AuraGPUController* aura_gpu; int GetDeviceMode(); -}; \ No newline at end of file +};