Use 32-bit RGBColor type (COLORREF compatible) instead of discrete red, green, and blue channels in generic RGB interface
This commit is contained in:
parent
90b57e1846
commit
d60936b2e5
6 changed files with 27 additions and 9 deletions
|
|
@ -68,11 +68,13 @@ void OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkSetColorsAll()
|
|||
{
|
||||
CComboBox* controller_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE);
|
||||
|
||||
controllers[controller_box->GetCurSel()]->SetAllLEDs(
|
||||
RGBColor color = ToRGBColor(
|
||||
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R),
|
||||
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G),
|
||||
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B)
|
||||
);
|
||||
|
||||
controllers[controller_box->GetCurSel()]->SetAllLEDs(color);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,14 @@
|
|||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
typedef unsigned int RGBColor;
|
||||
|
||||
#define RGBGetRValue(rgb) (rgb & 0x000000FF)
|
||||
#define RGBGetGValue(rgb) ((rgb >> 8) & 0x000000FF)
|
||||
#define RGBGetBValue(rgb) ((rgb >> 16) & 0x000000FF)
|
||||
|
||||
#define ToRGBColor(r, g, b) ((b << 16) | (g << 8) | (r))
|
||||
|
||||
typedef struct
|
||||
{
|
||||
std::string name; /* LED name */
|
||||
|
|
@ -49,5 +57,5 @@ public:
|
|||
|
||||
virtual int GetMode() = 0;
|
||||
virtual void SetMode(int mode) = 0;
|
||||
virtual void SetAllLEDs(unsigned char red, unsigned char green, unsigned char blue) = 0;
|
||||
virtual void SetAllLEDs(RGBColor color) = 0;
|
||||
};
|
||||
|
|
@ -34,15 +34,19 @@ void RGBController_Aura::SetMode(int mode)
|
|||
}
|
||||
}
|
||||
|
||||
void RGBController_Aura::SetAllLEDs(unsigned char red, unsigned char green, unsigned char blue)
|
||||
void RGBController_Aura::SetAllLEDs(RGBColor color)
|
||||
{
|
||||
unsigned char red = RGBGetRValue(color);
|
||||
unsigned char grn = RGBGetGValue(color);
|
||||
unsigned char blu = RGBGetBValue(color);
|
||||
|
||||
if (GetMode() == 0)
|
||||
{
|
||||
aura->SetAllColorsDirect(red, green, blue);
|
||||
aura->SetAllColorsDirect(red, grn, blu);
|
||||
}
|
||||
else
|
||||
{
|
||||
aura->SetAllColorsEffect(red, green, blue);
|
||||
aura->SetAllColorsEffect(red, grn, blu);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ public:
|
|||
RGBController_Aura(AuraController* aura_ptr);
|
||||
int GetMode();
|
||||
void SetMode(int mode);
|
||||
void SetAllLEDs(unsigned char red, unsigned char green, unsigned char blue);
|
||||
void SetAllLEDs(RGBColor color);
|
||||
|
||||
private:
|
||||
AuraController* aura;
|
||||
|
|
|
|||
|
|
@ -19,9 +19,13 @@ void RGBController_Corsair::SetMode(int mode)
|
|||
corsair->SetMode(mode);
|
||||
}
|
||||
|
||||
void RGBController_Corsair::SetAllLEDs(unsigned char red, unsigned char green, unsigned char blue)
|
||||
void RGBController_Corsair::SetAllLEDs(RGBColor color)
|
||||
{
|
||||
corsair->SetAllColorsDirect(red, green, blue);
|
||||
unsigned char red = RGBGetRValue(color);
|
||||
unsigned char grn = RGBGetGValue(color);
|
||||
unsigned char blu = RGBGetBValue(color);
|
||||
|
||||
corsair->SetAllColorsDirect(red, grn, blu);
|
||||
}
|
||||
|
||||
RGBController_Corsair::RGBController_Corsair(CorsairController* corsair_ptr)
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ public:
|
|||
RGBController_Corsair(CorsairController* corsair_ptr);
|
||||
int GetMode();
|
||||
void SetMode(int mode);
|
||||
void SetAllLEDs(unsigned char red, unsigned char green, unsigned char blue);
|
||||
void SetAllLEDs(RGBColor color);
|
||||
|
||||
private:
|
||||
CorsairController* corsair;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue