Add functions for setting single LED and all LEDs in a zone to a color, add zone dropdown to GUI
This commit is contained in:
parent
d60936b2e5
commit
7554e366f4
12 changed files with 121 additions and 12 deletions
|
|
@ -67,9 +67,9 @@ public:
|
|||
|
||||
void AuraUpdateDeviceName();
|
||||
|
||||
unsigned char AuraRegisterRead(aura_register reg);
|
||||
void AuraRegisterWrite(aura_register reg, unsigned char val);
|
||||
void AuraRegisterWriteBlock(aura_register reg, unsigned char * data, unsigned char sz);
|
||||
unsigned char AuraRegisterRead(aura_register reg);
|
||||
void AuraRegisterWrite(aura_register reg, unsigned char val);
|
||||
void AuraRegisterWriteBlock(aura_register reg, unsigned char * data, unsigned char sz);
|
||||
|
||||
private:
|
||||
char device_name[16];
|
||||
|
|
|
|||
|
|
@ -34,7 +34,16 @@ unsigned int CorsairController::GetLEDCount()
|
|||
return(led_count);
|
||||
}
|
||||
|
||||
void CorsairController::SetAllColorsDirect(unsigned char red, unsigned char green, unsigned char blue)
|
||||
void CorsairController::SetAllColors(unsigned char red, unsigned char green, unsigned char blue)
|
||||
{
|
||||
bus->i2c_smbus_write_byte_data(dev, CORSAIR_VENGEANCE_RGB_CMD_FADE_TIME, 0x00);
|
||||
bus->i2c_smbus_write_byte_data(dev, CORSAIR_VENGEANCE_RGB_CMD_RED_VAL, red);
|
||||
bus->i2c_smbus_write_byte_data(dev, CORSAIR_VENGEANCE_RGB_CMD_GREEN_VAL, green);
|
||||
bus->i2c_smbus_write_byte_data(dev, CORSAIR_VENGEANCE_RGB_CMD_BLUE_VAL, blue);
|
||||
bus->i2c_smbus_write_byte_data(dev, CORSAIR_VENGEANCE_RGB_CMD_MODE, CORSAIR_VENGEANCE_RGB_MODE_SINGLE);
|
||||
}
|
||||
|
||||
void CorsairController::SetLEDColor(unsigned int led, unsigned char red, unsigned char green, unsigned char blue)
|
||||
{
|
||||
bus->i2c_smbus_write_byte_data(dev, CORSAIR_VENGEANCE_RGB_CMD_FADE_TIME, 0x00);
|
||||
bus->i2c_smbus_write_byte_data(dev, CORSAIR_VENGEANCE_RGB_CMD_RED_VAL, red);
|
||||
|
|
|
|||
|
|
@ -43,7 +43,8 @@ public:
|
|||
unsigned int GetLEDCount();
|
||||
void SetMode(unsigned char mode);
|
||||
|
||||
void SetAllColorsDirect(unsigned char red, unsigned char green, unsigned char blue);
|
||||
void SetAllColors(unsigned char red, unsigned char green, unsigned char blue);
|
||||
void SetLEDColor(unsigned int led, unsigned char red, unsigned char green, unsigned char blue);
|
||||
|
||||
private:
|
||||
char device_name[32];
|
||||
|
|
|
|||
|
|
@ -22,17 +22,18 @@ void OpenAuraSDKDialog::DoDataExchange(CDataExchange* pDX)
|
|||
|
||||
BEGIN_MESSAGE_MAP(OpenAuraSDKDialog, CDialogEx)
|
||||
ON_BN_CLICKED(IDC_BUTTON_OPENAURASDK_I2CDETECT, &OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkI2cdetect)
|
||||
ON_BN_CLICKED(IDC_BUTTON_OPENAURASDK_SET_COLORS, &OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkSetColors)
|
||||
ON_CBN_CLOSEUP(IDC_COMBO_OPENAURASDK_DEVICE, &OpenAuraSDKDialog::OnCbnCloseupComboOpenaurasdkDevice)
|
||||
ON_BN_CLICKED(IDC_BUTTON_OPENAURASDK_SET_COLORS_ALL, &OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkSetColorsAll)
|
||||
ON_BN_CLICKED(IDC_BUTTON_OPENAURASDK_DUMP, &OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkDump)
|
||||
ON_CBN_CLOSEUP(IDC_COMBO_OPENAURASDK_MODE, &OpenAuraSDKDialog::OnCbnCloseupComboOpenaurasdkMode)
|
||||
ON_BN_CLICKED(IDC_BUTTON_OPENAURASDK_SET_ZONE, &OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkSetZone)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
BOOL OpenAuraSDKDialog::OnInitDialog()
|
||||
{
|
||||
CComboBox* controller_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE);
|
||||
CComboBox* mode_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_MODE);
|
||||
CComboBox* zone_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_ZONE);
|
||||
|
||||
for (int i = 0; i < controllers.size(); i++)
|
||||
{
|
||||
|
|
@ -48,6 +49,13 @@ BOOL OpenAuraSDKDialog::OnInitDialog()
|
|||
|
||||
mode_box->SetCurSel(0);
|
||||
|
||||
for (int i = 0; i < controllers[0]->zones.size(); i++)
|
||||
{
|
||||
mode_box->AddString(controllers[0]->zones[i].name.c_str());
|
||||
}
|
||||
|
||||
zone_box->SetCurSel(0);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -58,11 +66,6 @@ void OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkI2cdetect()
|
|||
dlg.DoModal();
|
||||
}
|
||||
|
||||
void OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkSetColors()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkSetColorsAll()
|
||||
{
|
||||
|
|
@ -82,6 +85,7 @@ void OpenAuraSDKDialog::OnCbnCloseupComboOpenaurasdkDevice()
|
|||
{
|
||||
CComboBox* controller_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE);
|
||||
CComboBox* mode_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_MODE);
|
||||
CComboBox* zone_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_ZONE);
|
||||
|
||||
mode_box->ResetContent();
|
||||
|
||||
|
|
@ -91,6 +95,15 @@ void OpenAuraSDKDialog::OnCbnCloseupComboOpenaurasdkDevice()
|
|||
}
|
||||
|
||||
mode_box->SetCurSel(controllers[controller_box->GetCurSel()]->GetMode());
|
||||
|
||||
zone_box->ResetContent();
|
||||
|
||||
for (int i = 0; i < controllers[0]->zones.size(); i++)
|
||||
{
|
||||
mode_box->AddString(controllers[0]->zones[i].name.c_str());
|
||||
}
|
||||
|
||||
zone_box->SetCurSel(0);
|
||||
}
|
||||
|
||||
void OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkDump()
|
||||
|
|
@ -106,3 +119,18 @@ void OpenAuraSDKDialog::OnCbnCloseupComboOpenaurasdkMode()
|
|||
|
||||
controllers[controller_box->GetCurSel()]->SetMode(mode_box->GetCurSel());
|
||||
}
|
||||
|
||||
|
||||
void OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkSetZone()
|
||||
{
|
||||
CComboBox* controller_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE);
|
||||
CComboBox* zone_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_ZONE);
|
||||
|
||||
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()]->SetAllZoneLEDs(zone_box->GetCurSel(), color);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ public:
|
|||
afx_msg void OnBnClickedButtonOpenaurasdkSetColorsAll();
|
||||
afx_msg void OnBnClickedButtonOpenaurasdkDump();
|
||||
afx_msg void OnCbnCloseupComboOpenaurasdkMode();
|
||||
afx_msg void OnBnClickedButtonOpenaurasdkSetZone();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -58,4 +58,6 @@ public:
|
|||
virtual int GetMode() = 0;
|
||||
virtual void SetMode(int mode) = 0;
|
||||
virtual void SetAllLEDs(RGBColor color) = 0;
|
||||
virtual void SetAllZoneLEDs(int zone, RGBColor color) = 0;
|
||||
virtual void SetLED(int led, RGBColor color) = 0;
|
||||
};
|
||||
|
|
@ -50,6 +50,44 @@ void RGBController_Aura::SetAllLEDs(RGBColor color)
|
|||
}
|
||||
}
|
||||
|
||||
void RGBController_Aura::SetAllZoneLEDs(int zone, RGBColor color)
|
||||
{
|
||||
unsigned char red = RGBGetRValue(color);
|
||||
unsigned char grn = RGBGetGValue(color);
|
||||
unsigned char blu = RGBGetBValue(color);
|
||||
|
||||
for (int x = 0; x < zones[zone].map.size(); x++)
|
||||
{
|
||||
for (int y = 0; y < zones[zone].map[x].size(); y++)
|
||||
{
|
||||
if (GetMode() == 0)
|
||||
{
|
||||
aura->SetLEDColorDirect(zones[zone].map[x][y], red, grn, blu);
|
||||
}
|
||||
else
|
||||
{
|
||||
aura->SetLEDColorEffect(zones[zone].map[x][y], red, grn, blu);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void RGBController_Aura::SetLED(int led, RGBColor color)
|
||||
{
|
||||
unsigned char red = RGBGetRValue(color);
|
||||
unsigned char grn = RGBGetGValue(color);
|
||||
unsigned char blu = RGBGetBValue(color);
|
||||
|
||||
if (GetMode() == 0)
|
||||
{
|
||||
aura->SetLEDColorDirect(led, red, grn, blu);
|
||||
}
|
||||
else
|
||||
{
|
||||
aura->SetLEDColorEffect(led, red, grn, blu);
|
||||
}
|
||||
}
|
||||
|
||||
RGBController_Aura::RGBController_Aura(AuraController * aura_ptr)
|
||||
{
|
||||
aura = aura_ptr;
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@ public:
|
|||
int GetMode();
|
||||
void SetMode(int mode);
|
||||
void SetAllLEDs(RGBColor color);
|
||||
void SetAllZoneLEDs(int zone, RGBColor color);
|
||||
void SetLED(int led, RGBColor color);
|
||||
|
||||
private:
|
||||
AuraController* aura;
|
||||
|
|
|
|||
|
|
@ -25,7 +25,31 @@ void RGBController_Corsair::SetAllLEDs(RGBColor color)
|
|||
unsigned char grn = RGBGetGValue(color);
|
||||
unsigned char blu = RGBGetBValue(color);
|
||||
|
||||
corsair->SetAllColorsDirect(red, grn, blu);
|
||||
corsair->SetAllColors(red, grn, blu);
|
||||
}
|
||||
|
||||
void RGBController_Corsair::SetAllZoneLEDs(int zone, RGBColor color)
|
||||
{
|
||||
unsigned char red = RGBGetRValue(color);
|
||||
unsigned char grn = RGBGetGValue(color);
|
||||
unsigned char blu = RGBGetBValue(color);
|
||||
|
||||
for (int x = 0; x < zones[zone].map.size(); x++)
|
||||
{
|
||||
for (int y = 0; y < zones[zone].map[x].size(); y++)
|
||||
{
|
||||
corsair->SetLEDColor(zones[zone].map[x][y], red, grn, blu);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void RGBController_Corsair::SetLED(int led, RGBColor color)
|
||||
{
|
||||
unsigned char red = RGBGetRValue(color);
|
||||
unsigned char grn = RGBGetGValue(color);
|
||||
unsigned char blu = RGBGetBValue(color);
|
||||
|
||||
corsair->SetLEDColor(led, red, grn, blu);
|
||||
}
|
||||
|
||||
RGBController_Corsair::RGBController_Corsair(CorsairController* corsair_ptr)
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@ public:
|
|||
int GetMode();
|
||||
void SetMode(int mode);
|
||||
void SetAllLEDs(RGBColor color);
|
||||
void SetAllZoneLEDs(int zone, RGBColor color);
|
||||
void SetLED(int led, RGBColor color);
|
||||
|
||||
private:
|
||||
CorsairController* corsair;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -39,8 +39,10 @@
|
|||
#define IDC_BUTTON_OPENAURASDK_DUMP 1033
|
||||
#define IDC_BUTTON_OPENAURASDK_SET_COLORS2 1034
|
||||
#define IDC_BUTTON_OPENAURASDK_SET_COLORS 1034
|
||||
#define IDC_BUTTON_OPENAURASDK_SET_ZONE 1034
|
||||
#define IDC_COMBO_OPENAURASDK_DEVICE2 1035
|
||||
#define IDC_COMBO_OPENAURASDK_MODE 1035
|
||||
#define IDC_COMBO_OPENAURASDK_ZONE 1036
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue