diff --git a/OpenAuraSDK/OpenAuraSDK.cpp b/OpenAuraSDK/OpenAuraSDK.cpp index fba2f327..e3b1ec8a 100644 --- a/OpenAuraSDK/OpenAuraSDK.cpp +++ b/OpenAuraSDK/OpenAuraSDK.cpp @@ -12,6 +12,7 @@ #include "RGBController_Aura.h" #include "RGBController_Corsair.h" #include "RGBController_OpenRazer.h" +#include "RGBController_AorusGPU.h" #include "i2c_smbus.h" #include #include @@ -686,6 +687,13 @@ int main(int argc, char *argv[]) rgb_controllers.push_back(razer_rgb); #endif + //This is for testing Aorus GPU +#if 0 + RGBController_AorusGPU* aorus_rgb = new RGBController_AorusGPU(); + + rgb_controllers.push_back(aorus_rgb); +#endif + #if WIN32 OpenAuraSDKDialog dlg(busses, rgb_controllers); dlg.DoModal(); diff --git a/OpenAuraSDK/OpenAuraSDK.vcxproj b/OpenAuraSDK/OpenAuraSDK.vcxproj index 09b79d58..77c2d318 100644 --- a/OpenAuraSDK/OpenAuraSDK.vcxproj +++ b/OpenAuraSDK/OpenAuraSDK.vcxproj @@ -188,6 +188,7 @@ + @@ -202,6 +203,7 @@ + diff --git a/OpenAuraSDK/OpenAuraSDK.vcxproj.filters b/OpenAuraSDK/OpenAuraSDK.vcxproj.filters index bcd1412d..0ec446ef 100644 --- a/OpenAuraSDK/OpenAuraSDK.vcxproj.filters +++ b/OpenAuraSDK/OpenAuraSDK.vcxproj.filters @@ -57,6 +57,9 @@ Header Files + + Header Files + @@ -98,6 +101,9 @@ Source Files + + Source Files + diff --git a/OpenAuraSDK/RGBController_AorusGPU.cpp b/OpenAuraSDK/RGBController_AorusGPU.cpp new file mode 100644 index 00000000..fa066e31 --- /dev/null +++ b/OpenAuraSDK/RGBController_AorusGPU.cpp @@ -0,0 +1,87 @@ +/*-----------------------------------------*\ +| RGBController_AorusGPU.cpp | +| | +| Generic RGB Interface for OpenAuraSDK | +| Aorus GPU | +| | +| Adam Honse (CalcProgrammer1) 6/17/2019 | +\*-----------------------------------------*/ + +#include "RGBController_AorusGPU.h" + +#include + +static HMODULE handle; +static unsigned char data[] = { 0x8E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00 }; + +int RGBController_AorusGPU::GetMode() +{ + return(0); +} + +void RGBController_AorusGPU::SetMode(int mode) +{ + +} + +void RGBController_AorusGPU::SetAllLEDs(RGBColor color) +{ + data[9] = RGBGetRValue(color); + data[10] = RGBGetGValue(color); + data[11] = RGBGetBValue(color); + + GvWriteI2C(0x00000000, data, 0x00000000); +} + +void RGBController_AorusGPU::SetAllZoneLEDs(int zone, RGBColor color) +{ + data[9] = RGBGetRValue(color); + data[10] = RGBGetGValue(color); + data[11] = RGBGetBValue(color); + + GvWriteI2C(0x00000000, data, 0x00000000); +} + +void RGBController_AorusGPU::SetLED(int led, RGBColor color) +{ + data[9] = RGBGetRValue(color); + data[10] = RGBGetGValue(color); + data[11] = RGBGetBValue(color); + + GvWriteI2C(0x00000000, data, 0x00000000); +} + +RGBController_AorusGPU::RGBController_AorusGPU() +{ + name = "Aorus GPU"; + + handle = LoadLibrary("GvDisplay.dll"); + + GvWriteI2C = (_GvWriteI2C)GetProcAddress(handle, "GvWriteI2C"); + GvFreeDispLib = (_GvFreeDispLib)GetProcAddress(handle, "GvFreeDispLib"); + GvInitDispLib = (_GvInitDispLib)GetProcAddress(handle, "GvInitDispLib"); + + GvFreeDispLib(); + GvInitDispLib(); + + mode aorus_mode; + aorus_mode.name = "Static"; + modes.push_back(aorus_mode); + + led aorus_led; + aorus_led.name = "GPU LED"; + leds.push_back(aorus_led); + + zone aorus_zone; + aorus_zone.name = "GPU LED"; + std::vector aorus_zone_map; + aorus_zone_map.push_back(0); + aorus_zone.map.push_back(aorus_zone_map); + zones.push_back(aorus_zone); +} \ No newline at end of file diff --git a/OpenAuraSDK/RGBController_AorusGPU.h b/OpenAuraSDK/RGBController_AorusGPU.h new file mode 100644 index 00000000..d303e12e --- /dev/null +++ b/OpenAuraSDK/RGBController_AorusGPU.h @@ -0,0 +1,32 @@ +/*-----------------------------------------*\ +| RGBController_AorusGPU.h | +| | +| Generic RGB Interface for OpenAuraSDK | +| Aorus GPU | +| | +| Adam Honse (CalcProgrammer1) 6/17/2019 | +\*-----------------------------------------*/ + +#pragma once +#include "RGBController.h" + +typedef unsigned int uint32; +typedef uint32(*_GvWriteI2C)(uint32, void*, uint32); +typedef void (*_GvFreeDispLib)(); +typedef void (*_GvInitDispLib)(); + +class RGBController_AorusGPU : public RGBController +{ +public: + RGBController_AorusGPU(); + int GetMode(); + void SetMode(int mode); + void SetAllLEDs(RGBColor color); + void SetAllZoneLEDs(int zone, RGBColor color); + void SetLED(int led, RGBColor color); + +private: + _GvWriteI2C GvWriteI2C; + _GvFreeDispLib GvFreeDispLib; + _GvInitDispLib GvInitDispLib; +}; \ No newline at end of file