Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b782a63ed5 | ||
|
|
31446d18b4 | ||
|
|
3a249382fb | ||
|
|
1e650d8f85 |
No files matched your search
@@ -9,6 +9,101 @@
|
|||||||
|
|
||||||
#include "AuraController.h"
|
#include "AuraController.h"
|
||||||
|
|
||||||
|
AuraController::AuraController(i2c_smbus_interface* bus, aura_dev_id dev)
|
||||||
|
{
|
||||||
|
this->bus = bus;
|
||||||
|
this->dev = dev;
|
||||||
|
|
||||||
|
AuraUpdateDeviceName();
|
||||||
|
|
||||||
|
led_count = 5; //temporary, some controllers have more channels
|
||||||
|
}
|
||||||
|
|
||||||
|
AuraController::~AuraController()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
char * AuraController::GetDeviceName()
|
||||||
|
{
|
||||||
|
return(device_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned int AuraController::GetLEDCount()
|
||||||
|
{
|
||||||
|
return(led_count);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AuraController::SetAllColorsDirect(unsigned char red, unsigned char green, unsigned char blue)
|
||||||
|
{
|
||||||
|
unsigned char* colors = new unsigned char[led_count * 3];
|
||||||
|
|
||||||
|
for (int i = 0; i < (led_count * 3); i += 3)
|
||||||
|
{
|
||||||
|
colors[i + 0] = red;
|
||||||
|
colors[i + 1] = blue;
|
||||||
|
colors[i + 2] = green;
|
||||||
|
}
|
||||||
|
|
||||||
|
AuraRegisterWriteBlock(AURA_REG_COLORS_DIRECT, colors, led_count * 3);
|
||||||
|
|
||||||
|
delete colors;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AuraController::SetAllColorsEffect(unsigned char red, unsigned char green, unsigned char blue)
|
||||||
|
{
|
||||||
|
unsigned char* colors = new unsigned char[led_count * 3];
|
||||||
|
|
||||||
|
for (int i = 0; i < (led_count * 3); i += 3)
|
||||||
|
{
|
||||||
|
colors[i + 0] = red;
|
||||||
|
colors[i + 1] = blue;
|
||||||
|
colors[i + 2] = green;
|
||||||
|
}
|
||||||
|
|
||||||
|
AuraRegisterWriteBlock(AURA_REG_COLORS_EFFECT, colors, led_count * 3);
|
||||||
|
|
||||||
|
AuraRegisterWrite(AURA_REG_APPLY, AURA_APPLY_VAL);
|
||||||
|
|
||||||
|
delete colors;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AuraController::SetDirect(unsigned char direct)
|
||||||
|
{
|
||||||
|
AuraRegisterWrite(AURA_REG_DIRECT, direct);
|
||||||
|
AuraRegisterWrite(AURA_REG_APPLY, AURA_APPLY_VAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AuraController::SetLEDColorDirect(unsigned int led, unsigned char red, unsigned char green, unsigned char blue)
|
||||||
|
{
|
||||||
|
unsigned char colors[3] = { red, blue, green };
|
||||||
|
|
||||||
|
AuraRegisterWriteBlock(AURA_REG_COLORS_DIRECT + ( 3 * led ), colors, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AuraController::SetLEDColorEffect(unsigned int led, unsigned char red, unsigned char green, unsigned char blue)
|
||||||
|
{
|
||||||
|
unsigned char colors[3] = { red, blue, green };
|
||||||
|
|
||||||
|
AuraRegisterWriteBlock(AURA_REG_COLORS_EFFECT + (3 * led), colors, 3);
|
||||||
|
|
||||||
|
AuraRegisterWrite(AURA_REG_APPLY, AURA_APPLY_VAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AuraController::SetMode(unsigned char mode)
|
||||||
|
{
|
||||||
|
AuraRegisterWrite(AURA_REG_MODE, mode);
|
||||||
|
AuraRegisterWrite(AURA_REG_APPLY, AURA_APPLY_VAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AuraController::AuraUpdateDeviceName()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < 16; i++)
|
||||||
|
{
|
||||||
|
device_name[i] = AuraRegisterRead(AURA_REG_DEVICE_NAME + i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
unsigned char AuraController::AuraRegisterRead(aura_register reg)
|
unsigned char AuraController::AuraRegisterRead(aura_register reg)
|
||||||
{
|
{
|
||||||
//Write Aura register
|
//Write Aura register
|
||||||
@@ -31,7 +126,7 @@ void AuraController::AuraRegisterWrite(aura_register reg, unsigned char val)
|
|||||||
|
|
||||||
void AuraController::AuraRegisterWriteBlock(aura_register reg, unsigned char * data, unsigned char sz)
|
void AuraController::AuraRegisterWriteBlock(aura_register reg, unsigned char * data, unsigned char sz)
|
||||||
{
|
{
|
||||||
//Write Aura register (0x8000 for colors)
|
//Write Aura register
|
||||||
bus->i2c_smbus_write_word_data(dev, 0x00, ((reg << 8) & 0xFF00) | ((reg >> 8) & 0x00FF));
|
bus->i2c_smbus_write_word_data(dev, 0x00, ((reg << 8) & 0xFF00) | ((reg >> 8) & 0x00FF));
|
||||||
|
|
||||||
//Write Aura block data
|
//Write Aura block data
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ typedef unsigned short aura_register;
|
|||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
AURA_REG_DEVICE_NAME = 0x1000, /* Device String 16 bytes */
|
||||||
AURA_REG_COLORS_DIRECT = 0x8000, /* Colors for Direct Mode 15 bytes */
|
AURA_REG_COLORS_DIRECT = 0x8000, /* Colors for Direct Mode 15 bytes */
|
||||||
AURA_REG_COLORS_EFFECT = 0x8010, /* Colors for Internal Effects 15 bytes */
|
AURA_REG_COLORS_EFFECT = 0x8010, /* Colors for Internal Effects 15 bytes */
|
||||||
AURA_REG_DIRECT = 0x8020, /* "Direct Access" Selection Register */
|
AURA_REG_DIRECT = 0x8020, /* "Direct Access" Selection Register */
|
||||||
@@ -29,17 +30,17 @@ enum
|
|||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
AURA_MODE_OFF = 0, /* OFF mode */
|
AURA_MODE_OFF = 0, /* OFF mode */
|
||||||
AURA_MODE_STATIC = 1, /* Static color mode */
|
AURA_MODE_STATIC = 1, /* Static color mode */
|
||||||
AURA_MODE_BREATHING = 2, /* Breathing effect mode */
|
AURA_MODE_BREATHING = 2, /* Breathing effect mode */
|
||||||
AURA_MODE_FLASHING = 3, /* Flashing effect mode */
|
AURA_MODE_FLASHING = 3, /* Flashing effect mode */
|
||||||
AURA_MODE_SPECTRUM_CYCLE = 4, /* Spectrum Cycle mode */
|
AURA_MODE_SPECTRUM_CYCLE = 4, /* Spectrum Cycle mode */
|
||||||
AURA_MODE_RAINBOW = 5, /* Rainbow effect mode */
|
AURA_MODE_RAINBOW = 5, /* Rainbow effect mode */
|
||||||
AURA_MODE_SPECTRUM_CYCLE_BREATHING = 6, /* Rainbow Breathing effect mode */
|
AURA_MODE_SPECTRUM_CYCLE_BREATHING = 6, /* Rainbow Breathing effect mode */
|
||||||
AURA_MODE_CHASE_FADE = 7, /* Chase with Fade effect mode */
|
AURA_MODE_CHASE_FADE = 7, /* Chase with Fade effect mode */
|
||||||
AURA_MODE_SPECTRUM_CYCLE_CHASE_FADE = 8, /* Chase with Fade, Rainbow effect mode */
|
AURA_MODE_SPECTRUM_CYCLE_CHASE_FADE = 8, /* Chase with Fade, Rainbow effect mode */
|
||||||
AURA_MODE_CHASE = 9, /* Chase effect mode */
|
AURA_MODE_CHASE = 9, /* Chase effect mode */
|
||||||
AURA_MODE_SPECTRUM_CYCLE_CHASE = 10, /* Chase with Rainbow effect mode */
|
AURA_MODE_SPECTRUM_CYCLE_CHASE = 10, /* Chase with Rainbow effect mode */
|
||||||
AURA_MODE_SPECTRUM_CYCLE_WAVE = 11, /* Wave effect mode */
|
AURA_MODE_SPECTRUM_CYCLE_WAVE = 11, /* Wave effect mode */
|
||||||
AURA_MODE_CHASE_RAINBOW_PULSE = 12, /* Chase with Rainbow Pulse effect mode*/
|
AURA_MODE_CHASE_RAINBOW_PULSE = 12, /* Chase with Rainbow Pulse effect mode*/
|
||||||
AURA_MODE_RANDOM_FLICKER = 13, /* Random flicker effect mode */
|
AURA_MODE_RANDOM_FLICKER = 13, /* Random flicker effect mode */
|
||||||
@@ -48,13 +49,29 @@ enum
|
|||||||
class AuraController
|
class AuraController
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
AuraController(i2c_smbus_interface* bus, aura_dev_id dev);
|
||||||
|
~AuraController();
|
||||||
|
|
||||||
|
char* GetDeviceName();
|
||||||
|
unsigned int GetLEDCount();
|
||||||
|
void SetAllColorsDirect(unsigned char red, unsigned char green, unsigned char blue);
|
||||||
|
void SetAllColorsEffect(unsigned char red, unsigned char green, unsigned char blue);
|
||||||
|
void SetDirect(unsigned char direct);
|
||||||
|
void SetLEDColorDirect(unsigned int led, unsigned char red, unsigned char green, unsigned char blue);
|
||||||
|
void SetLEDColorEffect(unsigned int led, unsigned char red, unsigned char green, unsigned char blue);
|
||||||
|
void SetMode(unsigned char mode);
|
||||||
|
|
||||||
|
void AuraUpdateDeviceName();
|
||||||
|
|
||||||
unsigned char AuraRegisterRead(aura_register reg);
|
unsigned char AuraRegisterRead(aura_register reg);
|
||||||
void AuraRegisterWrite(aura_register reg, unsigned char val);
|
void AuraRegisterWrite(aura_register reg, unsigned char val);
|
||||||
void AuraRegisterWriteBlock(aura_register reg, unsigned char * data, unsigned char sz);
|
void AuraRegisterWriteBlock(aura_register reg, unsigned char * data, unsigned char sz);
|
||||||
i2c_smbus_interface * bus;
|
|
||||||
aura_dev_id dev;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
char device_name[16];
|
||||||
|
unsigned int led_count;
|
||||||
|
i2c_smbus_interface * bus;
|
||||||
|
aura_dev_id dev;
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
#include "I2CDetectDialog.h"
|
||||||
|
#include "OpenAuraSDK.h"
|
||||||
|
|
||||||
|
IMPLEMENT_DYNAMIC(I2CDetectDialog, CDialogEx)
|
||||||
|
|
||||||
|
I2CDetectDialog::I2CDetectDialog(std::vector<i2c_smbus_interface *>& bus, CWnd* pParent)
|
||||||
|
: CDialogEx(IDD_DIALOG_I2C_DETECT, pParent), busses(bus)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
I2CDetectDialog::~I2CDetectDialog()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void I2CDetectDialog::DoDataExchange(CDataExchange* pDX)
|
||||||
|
{
|
||||||
|
CDialogEx::DoDataExchange(pDX);
|
||||||
|
}
|
||||||
|
|
||||||
|
BEGIN_MESSAGE_MAP(I2CDetectDialog, CDialogEx)
|
||||||
|
ON_BN_CLICKED(IDC_BUTTON_I2C_DETECT, &I2CDetectDialog::OnBnClickedButtonI2cDetect)
|
||||||
|
END_MESSAGE_MAP()
|
||||||
|
|
||||||
|
BOOL I2CDetectDialog::OnInitDialog()
|
||||||
|
{
|
||||||
|
CComboBox* i2c_bus_box = (CComboBox*)GetDlgItem(IDC_COMBO_I2C_BUS);
|
||||||
|
for (int i = 0; i < busses.size(); i++)
|
||||||
|
{
|
||||||
|
i2c_bus_box->AddString(busses[i]->device_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
i2c_bus_box->SetCurSel(0);
|
||||||
|
|
||||||
|
CFont* myFont = new CFont();
|
||||||
|
myFont->CreateFontA(16, 0, 0, 0, FW_DONTCARE, false, false, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, _T("Consolas"));
|
||||||
|
|
||||||
|
CEdit* edit = (CEdit*)GetDlgItem(IDC_EDIT_I2C_DETECT);
|
||||||
|
edit->SetFont(myFont);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void I2CDetectDialog::OnBnClickedButtonI2cDetect()
|
||||||
|
{
|
||||||
|
i2c_smbus_interface* bus = busses[((CComboBox*)GetDlgItem(IDC_COMBO_I2C_BUS))->GetCurSel()];
|
||||||
|
|
||||||
|
SetDlgItemText(IDC_EDIT_I2C_DETECT, DetectI2C(bus, MODE_QUICK).c_str());
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#ifndef I2CDETECT_DIALOG_H
|
||||||
|
#define I2CDETECT_DIALOG_H
|
||||||
|
|
||||||
|
#include <afxdialogex.h>
|
||||||
|
#include <vector>
|
||||||
|
#include "i2c_smbus.h"
|
||||||
|
#include "resource.h"
|
||||||
|
|
||||||
|
class I2CDetectDialog : public CDialogEx
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC(I2CDetectDialog)
|
||||||
|
|
||||||
|
public:
|
||||||
|
I2CDetectDialog(std::vector<i2c_smbus_interface *>& bus, CWnd* pParent = NULL);
|
||||||
|
virtual ~I2CDetectDialog();
|
||||||
|
virtual BOOL OnInitDialog();
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
protected:
|
||||||
|
std::vector<i2c_smbus_interface *>& busses;
|
||||||
|
virtual void DoDataExchange(CDataExchange* pDX);
|
||||||
|
DECLARE_MESSAGE_MAP()
|
||||||
|
public:
|
||||||
|
afx_msg void OnBnClickedButtonI2cDetect();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
+77
-64
@@ -11,6 +11,9 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <tchar.h>
|
||||||
|
#include "OpenAuraSDKDialog.h"
|
||||||
|
#include "I2CDetectDialog.h"
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
|
||||||
@@ -67,11 +70,15 @@ void DetectI2CBusses()
|
|||||||
if (i["Manufacturer"].find("Advanced Micro Devices, Inc") != std::string::npos)
|
if (i["Manufacturer"].find("Advanced Micro Devices, Inc") != std::string::npos)
|
||||||
{
|
{
|
||||||
bus = new i2c_smbus_piix4();
|
bus = new i2c_smbus_piix4();
|
||||||
|
strcpy(bus->device_name, i["Description"].c_str());
|
||||||
|
strcat(bus->device_name, " at 0x0B00");
|
||||||
((i2c_smbus_piix4 *)bus)->piix4_smba = 0x0B00;
|
((i2c_smbus_piix4 *)bus)->piix4_smba = 0x0B00;
|
||||||
busses.push_back(bus);
|
busses.push_back(bus);
|
||||||
|
|
||||||
bus = new i2c_smbus_piix4();
|
bus = new i2c_smbus_piix4();
|
||||||
((i2c_smbus_piix4 *)bus)->piix4_smba = 0x0B20;
|
((i2c_smbus_piix4 *)bus)->piix4_smba = 0x0B20;
|
||||||
|
strcpy(bus->device_name, i["Description"].c_str());
|
||||||
|
strcat(bus->device_name, " at 0x0B20");
|
||||||
busses.push_back(bus);
|
busses.push_back(bus);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,6 +106,7 @@ void DetectI2CBusses()
|
|||||||
unsigned int IORangeStart = std::stoi(matches[1].str());
|
unsigned int IORangeStart = std::stoi(matches[1].str());
|
||||||
|
|
||||||
bus = new i2c_smbus_i801();
|
bus = new i2c_smbus_i801();
|
||||||
|
strcpy(bus->device_name, i["Description"].c_str());
|
||||||
((i2c_smbus_i801 *)bus)->i801_smba = IORangeStart;
|
((i2c_smbus_i801 *)bus)->i801_smba = IORangeStart;
|
||||||
busses.push_back(bus);
|
busses.push_back(bus);
|
||||||
}
|
}
|
||||||
@@ -189,27 +197,63 @@ void DetectI2CBusses()
|
|||||||
|
|
||||||
/******************************************************************************************\
|
/******************************************************************************************\
|
||||||
* *
|
* *
|
||||||
* CreateAuraDevice *
|
* DetectAuraControllers *
|
||||||
* *
|
* *
|
||||||
* Enumerates an ASUS Aura compatibler I2C device with the given address on the given *
|
* Detect Aura controllers on the enumerated I2C busses. Searches for Aura-enabled *
|
||||||
* bus *
|
* RAM at 0x77 and tries to initialize their slot addresses, then searches for them *
|
||||||
|
* at their correct initialized addresses. Also looks for motherboard controller at *
|
||||||
|
* address 0x4E. *
|
||||||
* *
|
* *
|
||||||
* bus - pointer to i2c_smbus_interface where Aura device is connected *
|
* bus - pointer to i2c_smbus_interface where Aura device is connected *
|
||||||
* dev - I2C address of Aura device *
|
* dev - I2C address of Aura device *
|
||||||
* *
|
* *
|
||||||
\******************************************************************************************/
|
\******************************************************************************************/
|
||||||
|
|
||||||
AuraController * CreateAuraDevice(i2c_smbus_interface * bus, aura_dev_id dev)
|
void DetectAuraControllers()
|
||||||
{
|
{
|
||||||
AuraController * aura;
|
AuraController* new_controller;
|
||||||
|
|
||||||
aura = new AuraController();
|
for (unsigned int bus = 0; bus < busses.size(); bus++)
|
||||||
aura->bus = bus;
|
{
|
||||||
aura->dev = dev;
|
// Remap Aura-enabled RAM modules on 0x77
|
||||||
|
for (unsigned int slot = 0; slot < 8; slot++)
|
||||||
|
{
|
||||||
|
int res = busses[bus]->i2c_smbus_write_quick(0x77, I2C_SMBUS_WRITE);
|
||||||
|
|
||||||
return(aura);
|
if (res < 0)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
} /* CreateAuraDevice() */
|
AuraController temp_controller(busses[bus], 0x77);
|
||||||
|
|
||||||
|
temp_controller.AuraRegisterWrite(AURA_REG_SLOT_INDEX, slot);
|
||||||
|
temp_controller.AuraRegisterWrite(AURA_REG_I2C_ADDRESS, 0xE0 + (slot << 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add Aura-enabled controllers at their remapped addresses
|
||||||
|
for (unsigned int slot = 0; slot < 8; slot++)
|
||||||
|
{
|
||||||
|
int res = busses[bus]->i2c_smbus_write_quick(0x70 + slot, I2C_SMBUS_WRITE);
|
||||||
|
|
||||||
|
if (res >= 0)
|
||||||
|
{
|
||||||
|
new_controller = new AuraController(busses[bus], 0x70 + slot);
|
||||||
|
controllers.push_back(new_controller);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check for Aura controller at 0x4E
|
||||||
|
int res = busses[bus]->i2c_smbus_write_quick(0x4E, I2C_SMBUS_WRITE);
|
||||||
|
|
||||||
|
if (res >= 0)
|
||||||
|
{
|
||||||
|
new_controller = new AuraController(busses[bus], 0x4E);
|
||||||
|
controllers.push_back(new_controller);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} /* DetectAuraControllers() */
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************************\
|
/******************************************************************************************\
|
||||||
@@ -230,19 +274,23 @@ AuraController * CreateAuraDevice(i2c_smbus_interface * bus, aura_dev_id dev)
|
|||||||
#define MODE_READ 2
|
#define MODE_READ 2
|
||||||
#define MODE_FUNC 3
|
#define MODE_FUNC 3
|
||||||
|
|
||||||
void DetectI2C(i2c_smbus_interface * bus, int mode)
|
std::string DetectI2C(i2c_smbus_interface * bus, int mode)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
int res;
|
int res;
|
||||||
int slave_addr;
|
int slave_addr;
|
||||||
|
char line[128];
|
||||||
|
std::string text;
|
||||||
|
|
||||||
freopen("i2cdetect.txt", "a", stdout);
|
freopen("i2cdetect.txt", "a", stdout);
|
||||||
|
|
||||||
printf(" 0 1 2 3 4 5 6 7 8 9 a b c d e f\r\n");
|
sprintf(line, " 0 1 2 3 4 5 6 7 8 9 a b c d e f\r\n");
|
||||||
|
text.append(line);
|
||||||
|
|
||||||
for (i = 0; i < 128; i += 16)
|
for (i = 0; i < 128; i += 16)
|
||||||
{
|
{
|
||||||
printf("%02x: ", i);
|
sprintf(line, "%02x: ", i);
|
||||||
|
text.append(line);
|
||||||
|
|
||||||
for (j = 0; j < 16; j++)
|
for (j = 0; j < 16; j++)
|
||||||
{
|
{
|
||||||
@@ -269,16 +317,21 @@ void DetectI2C(i2c_smbus_interface * bus, int mode)
|
|||||||
|
|
||||||
if (res < 0)
|
if (res < 0)
|
||||||
{
|
{
|
||||||
printf("-- ");
|
sprintf(line, "-- ");
|
||||||
|
text.append(line);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("%02x ", i + j);
|
sprintf(line, "%02x ", i + j);
|
||||||
|
text.append(line);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("\r\n");
|
sprintf(line, "\r\n");
|
||||||
|
text.append(line);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return text;
|
||||||
|
|
||||||
} /* DetectI2C() */
|
} /* DetectI2C() */
|
||||||
|
|
||||||
|
|
||||||
@@ -294,13 +347,13 @@ void DumpAuraRegisters(AuraController * controller)
|
|||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
int start = 0x8000;
|
int start = 0x0000;
|
||||||
|
|
||||||
freopen("auradump.txt", "a", stdout);
|
freopen("auradump.txt", "a", stdout);
|
||||||
|
|
||||||
printf(" 0 1 2 3 4 5 6 7 8 9 a b c d e f\r\n");
|
printf(" 0 1 2 3 4 5 6 7 8 9 a b c d e f\r\n");
|
||||||
|
|
||||||
for (i = 0; i < 512; i += 16)
|
for (i = 0; i < 0xFFFF; i += 16)
|
||||||
{
|
{
|
||||||
printf("%04x: ", i + start);
|
printf("%04x: ", i + start);
|
||||||
|
|
||||||
@@ -327,63 +380,22 @@ void DumpAuraRegisters(AuraController * controller)
|
|||||||
* *
|
* *
|
||||||
\******************************************************************************************/
|
\******************************************************************************************/
|
||||||
|
|
||||||
#ifdef WIN32
|
|
||||||
INT WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, INT nCmdShow)
|
|
||||||
#else /* WIN32 */
|
|
||||||
int main()
|
int main()
|
||||||
#endif /* WIN32 */
|
|
||||||
{
|
{
|
||||||
// Colors Array R B G
|
// Colors Array R B G
|
||||||
unsigned char colors[15] = { 255, 0, 0,
|
unsigned char colors[15] = { 255, 0, 0,
|
||||||
0, 255, 0,
|
0, 255, 0,
|
||||||
0, 0, 255,
|
0, 0, 255,
|
||||||
255, 0, 255,
|
255, 0, 255,
|
||||||
0, 255, 255 };
|
255, 255, 255 };
|
||||||
DetectI2CBusses();
|
DetectI2CBusses();
|
||||||
|
|
||||||
for (unsigned int bus = 0; bus < busses.size(); bus++)
|
DetectAuraControllers();
|
||||||
{
|
|
||||||
// Remap Aura-enabled RAM modules on 0x77
|
|
||||||
for (unsigned int slot = 0; slot < 8; slot++)
|
|
||||||
{
|
|
||||||
int res = busses[bus]->i2c_smbus_write_quick(0x77, I2C_SMBUS_WRITE);
|
|
||||||
|
|
||||||
if (res < 0)
|
OpenAuraSDKDialog dlg(busses, controllers);
|
||||||
{
|
dlg.DoModal();
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
AuraController * temp_controller = CreateAuraDevice(busses[bus], 0x77);
|
/*for (unsigned int i = 0; i < controllers.size(); i++)
|
||||||
|
|
||||||
temp_controller->AuraRegisterWrite(AURA_REG_SLOT_INDEX, slot);
|
|
||||||
temp_controller->AuraRegisterWrite(AURA_REG_I2C_ADDRESS, 0xE0 + ( slot << 1 ) );
|
|
||||||
|
|
||||||
delete temp_controller;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add Aura-enabled controllers at their remapped addresses
|
|
||||||
for (unsigned int slot = 0; slot < 8; slot++)
|
|
||||||
{
|
|
||||||
int res = busses[bus]->i2c_smbus_write_quick(0x70 + slot, I2C_SMBUS_WRITE);
|
|
||||||
|
|
||||||
if (res >= 0)
|
|
||||||
{
|
|
||||||
AuraController * new_controller = CreateAuraDevice(busses[bus], 0x70 + slot);
|
|
||||||
controllers.push_back(new_controller);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check for Aura controller at 0x4E
|
|
||||||
int res = busses[bus]->i2c_smbus_write_quick(0x4E, I2C_SMBUS_WRITE);
|
|
||||||
|
|
||||||
if (res >= 0)
|
|
||||||
{
|
|
||||||
AuraController * new_controller = CreateAuraDevice(busses[bus], 0x4E);
|
|
||||||
controllers.push_back(new_controller);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (unsigned int i = 0; i < controllers.size(); i++)
|
|
||||||
{
|
{
|
||||||
controllers[i]->AuraRegisterWrite(AURA_REG_DIRECT, 1);
|
controllers[i]->AuraRegisterWrite(AURA_REG_DIRECT, 1);
|
||||||
controllers[i]->AuraRegisterWrite(AURA_REG_APPLY, AURA_APPLY_VAL);
|
controllers[i]->AuraRegisterWrite(AURA_REG_APPLY, AURA_APPLY_VAL);
|
||||||
@@ -394,5 +406,6 @@ int main()
|
|||||||
controllers[i]->AuraRegisterWriteBlock(AURA_REG_COLORS_DIRECT, colors, 15);
|
controllers[i]->AuraRegisterWriteBlock(AURA_REG_COLORS_DIRECT, colors, 15);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DumpAuraRegisters(controllers[4]);*/
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
#include <string>
|
||||||
|
#include "i2c_smbus.h"
|
||||||
|
|
||||||
|
#define MODE_AUTO 0
|
||||||
|
#define MODE_QUICK 1
|
||||||
|
#define MODE_READ 2
|
||||||
|
#define MODE_FUNC 3
|
||||||
|
|
||||||
|
std::string DetectI2C(i2c_smbus_interface * bus, int mode);
|
||||||
@@ -31,6 +31,7 @@
|
|||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<UseOfMfc>Dynamic</UseOfMfc>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
@@ -38,12 +39,14 @@
|
|||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<UseOfMfc>Dynamic</UseOfMfc>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<UseOfMfc>Dynamic</UseOfMfc>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
@@ -51,6 +54,7 @@
|
|||||||
<PlatformToolset>v141</PlatformToolset>
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
<UseOfMfc>Dynamic</UseOfMfc>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
@@ -92,15 +96,16 @@
|
|||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS;_AFXDLL</PreprocessorDefinitions>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
<AdditionalIncludeDirectories>..\dependencies\inpout32_1501\Win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\dependencies\inpout32_1501\Win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<PrecompiledHeaderFile />
|
<PrecompiledHeaderFile />
|
||||||
<PrecompiledHeaderOutputFile />
|
<PrecompiledHeaderOutputFile />
|
||||||
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalLibraryDirectories>..\dependencies\inpout32_1501\Win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>..\dependencies\inpout32_1501\Win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
@@ -111,14 +116,15 @@
|
|||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS;_AFXDLL</PreprocessorDefinitions>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
<PrecompiledHeaderFile />
|
<PrecompiledHeaderFile />
|
||||||
<PrecompiledHeaderOutputFile />
|
<PrecompiledHeaderOutputFile />
|
||||||
<AdditionalIncludeDirectories>..\dependencies\inpout32_1501\Win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\dependencies\inpout32_1501\Win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalLibraryDirectories>..\dependencies\inpout32_1501\Win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>..\dependencies\inpout32_1501\Win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
@@ -131,15 +137,16 @@
|
|||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS;_AFXDLL</PreprocessorDefinitions>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
<AdditionalIncludeDirectories>..\dependencies\inpout32_1501\Win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\dependencies\inpout32_1501\Win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<PrecompiledHeaderFile />
|
<PrecompiledHeaderFile />
|
||||||
<PrecompiledHeaderOutputFile />
|
<PrecompiledHeaderOutputFile />
|
||||||
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
@@ -154,14 +161,15 @@
|
|||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<SDLCheck>true</SDLCheck>
|
<SDLCheck>true</SDLCheck>
|
||||||
<PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS;_AFXDLL</PreprocessorDefinitions>
|
||||||
<ConformanceMode>true</ConformanceMode>
|
<ConformanceMode>true</ConformanceMode>
|
||||||
<PrecompiledHeaderFile />
|
<PrecompiledHeaderFile />
|
||||||
<PrecompiledHeaderOutputFile />
|
<PrecompiledHeaderOutputFile />
|
||||||
<AdditionalIncludeDirectories>..\dependencies\inpout32_1501\Win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\dependencies\inpout32_1501\Win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
@@ -170,21 +178,29 @@
|
|||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="AuraController.h" />
|
<ClInclude Include="AuraController.h" />
|
||||||
|
<ClInclude Include="I2CDetectDialog.h" />
|
||||||
<ClInclude Include="i2c_smbus.h" />
|
<ClInclude Include="i2c_smbus.h" />
|
||||||
<ClInclude Include="i2c_smbus_i801.h" />
|
<ClInclude Include="i2c_smbus_i801.h" />
|
||||||
<ClInclude Include="i2c_smbus_piix4.h" />
|
<ClInclude Include="i2c_smbus_piix4.h" />
|
||||||
<ClInclude Include="wmi.h" />
|
|
||||||
<ClInclude Include="OpenAuraSDK.h" />
|
<ClInclude Include="OpenAuraSDK.h" />
|
||||||
|
<ClInclude Include="OpenAuraSDKDialog.h" />
|
||||||
|
<ClInclude Include="resource.h" />
|
||||||
|
<ClInclude Include="wmi.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="AuraController.cpp" />
|
<ClCompile Include="AuraController.cpp" />
|
||||||
<ClCompile Include="dllmain.cpp" />
|
<ClCompile Include="dllmain.cpp" />
|
||||||
|
<ClCompile Include="I2CDetectDialog.cpp" />
|
||||||
<ClCompile Include="i2c_smbus.cpp" />
|
<ClCompile Include="i2c_smbus.cpp" />
|
||||||
<ClCompile Include="i2c_smbus_i801.cpp" />
|
<ClCompile Include="i2c_smbus_i801.cpp" />
|
||||||
<ClCompile Include="i2c_smbus_piix4.cpp" />
|
<ClCompile Include="i2c_smbus_piix4.cpp" />
|
||||||
|
<ClCompile Include="OpenAuraSDKDialog.cpp" />
|
||||||
<ClCompile Include="wmi.cpp" />
|
<ClCompile Include="wmi.cpp" />
|
||||||
<ClCompile Include="OpenAuraSDK.cpp" />
|
<ClCompile Include="OpenAuraSDK.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ResourceCompile Include="Resource.rc" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
|
|||||||
@@ -24,15 +24,24 @@
|
|||||||
<ClInclude Include="AuraController.h">
|
<ClInclude Include="AuraController.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="OpenAuraSDK.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="i2c_smbus_i801.h">
|
<ClInclude Include="i2c_smbus_i801.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="wmi.h">
|
<ClInclude Include="wmi.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="resource.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="OpenAuraSDKDialog.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="OpenAuraSDK.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="I2CDetectDialog.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="OpenAuraSDK.cpp">
|
<ClCompile Include="OpenAuraSDK.cpp">
|
||||||
@@ -56,5 +65,16 @@
|
|||||||
<ClCompile Include="wmi.cpp">
|
<ClCompile Include="wmi.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="OpenAuraSDKDialog.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="I2CDetectDialog.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ResourceCompile Include="Resource.rc">
|
||||||
|
<Filter>Resource Files</Filter>
|
||||||
|
</ResourceCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -0,0 +1,428 @@
|
|||||||
|
#include "OpenAuraSDKDialog.h"
|
||||||
|
#include "OpenAuraSDK.h"
|
||||||
|
#include "I2CDetectDialog.h"
|
||||||
|
|
||||||
|
IMPLEMENT_DYNAMIC(OpenAuraSDKDialog, CDialogEx)
|
||||||
|
|
||||||
|
OpenAuraSDKDialog::OpenAuraSDKDialog(std::vector<i2c_smbus_interface *>& bus, std::vector<AuraController *>& control, CWnd* pParent)
|
||||||
|
: CDialogEx(IDD_DIALOG_OPENAURASDK, pParent), busses(bus), controllers (control)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
OpenAuraSDKDialog::~OpenAuraSDKDialog()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenAuraSDKDialog::DoDataExchange(CDataExchange* pDX)
|
||||||
|
{
|
||||||
|
CDialogEx::DoDataExchange(pDX);
|
||||||
|
}
|
||||||
|
|
||||||
|
BEGIN_MESSAGE_MAP(OpenAuraSDKDialog, CDialogEx)
|
||||||
|
ON_BN_CLICKED(IDC_BUTTON_OPENAURASDK_I2CDETECT, &OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkI2cdetect)
|
||||||
|
ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_DIRECT_MODE, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkDirectMode)
|
||||||
|
ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_EFFECT_MODE, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectMode)
|
||||||
|
ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_EFFECT_OFF, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectOff)
|
||||||
|
ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_EFFECT_STATIC, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectStatic)
|
||||||
|
ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_EFFECT_BREATHING, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectBreathing)
|
||||||
|
ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_EFFECT_FLASHING, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectFlashing)
|
||||||
|
ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_EFFECT_SPECTRUM_CYCLE, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectSpectrumCycle)
|
||||||
|
ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_EFFECT_RAINBOW, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectRainbow)
|
||||||
|
ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_BREATHING_SPECTRUM, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkBreathingSpectrum)
|
||||||
|
ON_BN_CLICKED(IDC_RADIO_OPENAURASDK_EFFECT_CHASE_FADE, &OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectChaseFade)
|
||||||
|
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)
|
||||||
|
END_MESSAGE_MAP()
|
||||||
|
|
||||||
|
BOOL OpenAuraSDKDialog::OnInitDialog()
|
||||||
|
{
|
||||||
|
CComboBox* aura_device_box = (CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE);
|
||||||
|
|
||||||
|
aura_device_box->AddString("All Devices");
|
||||||
|
|
||||||
|
for (int i = 0; i < controllers.size(); i++)
|
||||||
|
{
|
||||||
|
aura_device_box->AddString(controllers[i]->GetDeviceName());
|
||||||
|
}
|
||||||
|
|
||||||
|
aura_device_box->SetCurSel(0);
|
||||||
|
|
||||||
|
CFont* myFont = new CFont();
|
||||||
|
myFont->CreateFontA(16, 0, 0, 0, FW_DONTCARE, false, false, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, _T("Consolas"));
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkI2cdetect()
|
||||||
|
{
|
||||||
|
I2CDetectDialog dlg(busses);
|
||||||
|
dlg.DoModal();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkDirectMode()
|
||||||
|
{
|
||||||
|
unsigned int aura_device = ((CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE))->GetCurSel();
|
||||||
|
if ( aura_device == 0)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < controllers.size(); i++)
|
||||||
|
{
|
||||||
|
controllers[i]->SetDirect(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
controllers[aura_device - 1]->SetDirect(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectMode()
|
||||||
|
{
|
||||||
|
unsigned int aura_device = ((CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE))->GetCurSel();
|
||||||
|
if (aura_device == 0)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < controllers.size(); i++)
|
||||||
|
{
|
||||||
|
controllers[i]->SetDirect(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
controllers[aura_device - 1]->SetDirect(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OpenAuraSDKDialog::setMode(unsigned char mode_val)
|
||||||
|
{
|
||||||
|
unsigned int aura_device = ((CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE))->GetCurSel();
|
||||||
|
if (aura_device == 0)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < controllers.size(); i++)
|
||||||
|
{
|
||||||
|
controllers[i]->SetMode(mode_val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
controllers[aura_device - 1]->SetMode(mode_val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectOff()
|
||||||
|
{
|
||||||
|
setMode(AURA_MODE_OFF);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectStatic()
|
||||||
|
{
|
||||||
|
setMode(AURA_MODE_STATIC);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectBreathing()
|
||||||
|
{
|
||||||
|
setMode(AURA_MODE_BREATHING);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectFlashing()
|
||||||
|
{
|
||||||
|
setMode(AURA_MODE_FLASHING);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectSpectrumCycle()
|
||||||
|
{
|
||||||
|
setMode(AURA_MODE_SPECTRUM_CYCLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectRainbow()
|
||||||
|
{
|
||||||
|
setMode(AURA_MODE_RAINBOW);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkBreathingSpectrum()
|
||||||
|
{
|
||||||
|
setMode(AURA_MODE_SPECTRUM_CYCLE_BREATHING);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OpenAuraSDKDialog::OnBnClickedRadioOpenaurasdkEffectChaseFade()
|
||||||
|
{
|
||||||
|
setMode(AURA_MODE_CHASE_FADE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkSetColors()
|
||||||
|
{
|
||||||
|
unsigned int aura_device = ((CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE))->GetCurSel();
|
||||||
|
|
||||||
|
if (aura_device == 0)
|
||||||
|
{
|
||||||
|
unsigned char direct = ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_DIRECT_MODE))->GetCheck();
|
||||||
|
|
||||||
|
if (direct == 0)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < controllers.size(); i++)
|
||||||
|
{
|
||||||
|
controllers[i]->SetLEDColorEffect( 0,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B) );
|
||||||
|
controllers[i]->SetLEDColorEffect( 1,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_B) );
|
||||||
|
controllers[i]->SetLEDColorEffect( 2,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_B) );
|
||||||
|
controllers[i]->SetLEDColorEffect( 3,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_B) );
|
||||||
|
controllers[i]->SetLEDColorEffect( 4,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_B) );
|
||||||
|
|
||||||
|
controllers[i]->SetDirect(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (int i = 0; i < controllers.size(); i++)
|
||||||
|
{
|
||||||
|
controllers[i]->SetLEDColorDirect( 0,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B) );
|
||||||
|
controllers[i]->SetLEDColorDirect( 1,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_B) );
|
||||||
|
controllers[i]->SetLEDColorDirect( 2,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_B) );
|
||||||
|
controllers[i]->SetLEDColorDirect( 3,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_B) );
|
||||||
|
controllers[i]->SetLEDColorDirect( 4,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_B) );
|
||||||
|
|
||||||
|
controllers[i]->SetDirect(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
unsigned char direct = controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_DIRECT);
|
||||||
|
|
||||||
|
if (direct == 0)
|
||||||
|
{
|
||||||
|
controllers[aura_device - 1]->SetLEDColorEffect( 0,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B) );
|
||||||
|
controllers[aura_device - 1]->SetLEDColorEffect( 1,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_B) );
|
||||||
|
controllers[aura_device - 1]->SetLEDColorEffect( 2,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_B) );
|
||||||
|
controllers[aura_device - 1]->SetLEDColorEffect( 3,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_B) );
|
||||||
|
controllers[aura_device - 1]->SetLEDColorEffect( 4,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_B) );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
controllers[aura_device - 1]->SetLEDColorDirect( 0,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B) );
|
||||||
|
controllers[aura_device - 1]->SetLEDColorDirect( 1,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_B) );
|
||||||
|
controllers[aura_device - 1]->SetLEDColorDirect( 2,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_B) );
|
||||||
|
controllers[aura_device - 1]->SetLEDColorDirect( 3,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_B) );
|
||||||
|
controllers[aura_device - 1]->SetLEDColorDirect( 4,
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_B) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OpenAuraSDKDialog::OnBnClickedButtonOpenaurasdkSetColorsAll()
|
||||||
|
{
|
||||||
|
unsigned int aura_device = ((CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE))->GetCurSel();
|
||||||
|
|
||||||
|
if (aura_device == 0)
|
||||||
|
{
|
||||||
|
unsigned char direct = ((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_DIRECT_MODE))->GetCheck();
|
||||||
|
|
||||||
|
if (direct == 0)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < controllers.size(); i++)
|
||||||
|
{
|
||||||
|
controllers[i]->SetAllColorsEffect(GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B));
|
||||||
|
|
||||||
|
controllers[i]->SetDirect(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (int i = 0; i < controllers.size(); i++)
|
||||||
|
{
|
||||||
|
controllers[i]->SetAllColorsDirect(GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B));
|
||||||
|
|
||||||
|
controllers[i]->SetDirect(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
unsigned char direct = controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_DIRECT);
|
||||||
|
|
||||||
|
if (direct == 0)
|
||||||
|
{
|
||||||
|
controllers[aura_device - 1]->SetAllColorsEffect(GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
controllers[aura_device - 1]->SetAllColorsDirect(GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G),
|
||||||
|
GetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OpenAuraSDKDialog::OnCbnCloseupComboOpenaurasdkDevice()
|
||||||
|
{
|
||||||
|
unsigned int aura_device = ((CComboBox*)GetDlgItem(IDC_COMBO_OPENAURASDK_DEVICE))->GetCurSel();
|
||||||
|
if (aura_device == 0)
|
||||||
|
{
|
||||||
|
/*((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_DIRECT_MODE))->SetCheck(false);
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_MODE))->SetCheck(false);
|
||||||
|
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_OFF))->SetCheck(false);
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_STATIC))->SetCheck(false);
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_BREATHING))->SetCheck(false);
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_FLASHING))->SetCheck(false);
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_SPECTRUM_CYCLE))->SetCheck(false);
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_RAINBOW))->SetCheck(false);
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_BREATHING_SPECTRUM))->SetCheck(false);
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_CHASE_FADE))->SetCheck(false);
|
||||||
|
|
||||||
|
SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_0_R, "");
|
||||||
|
SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_0_G, "");
|
||||||
|
SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_0_B, "");
|
||||||
|
SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_1_R, "");
|
||||||
|
SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_1_G, "");
|
||||||
|
SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_1_B, "");
|
||||||
|
SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_2_R, "");
|
||||||
|
SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_2_G, "");
|
||||||
|
SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_2_B, "");
|
||||||
|
SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_3_R, "");
|
||||||
|
SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_3_G, "");
|
||||||
|
SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_3_B, "");
|
||||||
|
SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_4_R, "");
|
||||||
|
SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_4_G, "");
|
||||||
|
SetDlgItemText(IDC_EDIT_OPENAURASDK_LED_4_B, "");*/
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
unsigned char direct = controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_DIRECT);
|
||||||
|
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_DIRECT_MODE))->SetCheck(direct != 0);
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_MODE))->SetCheck(direct == 0);
|
||||||
|
|
||||||
|
unsigned char mode = controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_MODE);
|
||||||
|
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_OFF))->SetCheck(mode == AURA_MODE_OFF);
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_STATIC))->SetCheck(mode == AURA_MODE_STATIC);
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_BREATHING))->SetCheck(mode == AURA_MODE_BREATHING);
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_FLASHING))->SetCheck(mode == AURA_MODE_FLASHING);
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_SPECTRUM_CYCLE))->SetCheck(mode == AURA_MODE_SPECTRUM_CYCLE);
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_RAINBOW))->SetCheck(mode == AURA_MODE_RAINBOW);
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_BREATHING_SPECTRUM))->SetCheck(mode == AURA_MODE_SPECTRUM_CYCLE_BREATHING);
|
||||||
|
((CButton*)GetDlgItem(IDC_RADIO_OPENAURASDK_EFFECT_CHASE_FADE))->SetCheck(mode == AURA_MODE_CHASE_FADE);
|
||||||
|
|
||||||
|
if (direct == 0)
|
||||||
|
{
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 0));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 2));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 1));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 3));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 5));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 4));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 6));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 8));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 7));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 9));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 11));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 10));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 12));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 14));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_EFFECT + 13));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 0));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 2));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_0_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 1));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 3));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 5));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_1_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 4));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 6));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 8));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_2_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 7));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 9));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 11));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_3_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 10));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_R, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 12));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_G, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 14));
|
||||||
|
SetDlgItemInt(IDC_EDIT_OPENAURASDK_LED_4_B, controllers[aura_device - 1]->AuraRegisterRead(AURA_REG_COLORS_DIRECT + 13));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
#ifndef OPENAURASDK_DIALOG_H
|
||||||
|
#define OPENAURASDK_DIALOG_H
|
||||||
|
|
||||||
|
#include <afxdialogex.h>
|
||||||
|
#include <vector>
|
||||||
|
#include "i2c_smbus.h"
|
||||||
|
#include "AuraController.h"
|
||||||
|
#include "resource.h"
|
||||||
|
|
||||||
|
class OpenAuraSDKDialog : public CDialogEx
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC(OpenAuraSDKDialog)
|
||||||
|
|
||||||
|
public:
|
||||||
|
OpenAuraSDKDialog(std::vector<i2c_smbus_interface *>& bus, std::vector<AuraController *>& control, CWnd* pParent = NULL);
|
||||||
|
virtual ~OpenAuraSDKDialog();
|
||||||
|
virtual BOOL OnInitDialog();
|
||||||
|
|
||||||
|
private:
|
||||||
|
void setMode(unsigned char mode_val);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
std::vector<i2c_smbus_interface *>& busses;
|
||||||
|
std::vector<AuraController *>& controllers;
|
||||||
|
virtual void DoDataExchange(CDataExchange* pDX);
|
||||||
|
DECLARE_MESSAGE_MAP()
|
||||||
|
|
||||||
|
public:
|
||||||
|
afx_msg void OnBnClickedButtonOpenaurasdkI2cdetect();
|
||||||
|
afx_msg void OnBnClickedRadioOpenaurasdkDirectMode();
|
||||||
|
afx_msg void OnBnClickedRadioOpenaurasdkEffectMode();
|
||||||
|
afx_msg void OnBnClickedRadioOpenaurasdkEffectOff();
|
||||||
|
afx_msg void OnBnClickedRadioOpenaurasdkEffectStatic();
|
||||||
|
afx_msg void OnBnClickedRadioOpenaurasdkEffectBreathing();
|
||||||
|
afx_msg void OnBnClickedRadioOpenaurasdkEffectFlashing();
|
||||||
|
afx_msg void OnBnClickedRadioOpenaurasdkEffectSpectrumCycle();
|
||||||
|
afx_msg void OnBnClickedRadioOpenaurasdkEffectRainbow();
|
||||||
|
afx_msg void OnBnClickedRadioOpenaurasdkBreathingSpectrum();
|
||||||
|
afx_msg void OnBnClickedRadioOpenaurasdkEffectChaseFade();
|
||||||
|
afx_msg void OnBnClickedButtonOpenaurasdkSetColors();
|
||||||
|
afx_msg void OnCbnCloseupComboOpenaurasdkDevice();
|
||||||
|
afx_msg void OnBnClickedButtonOpenaurasdkSetColorsAll();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
Binary file not shown.
@@ -0,0 +1,50 @@
|
|||||||
|
//{{NO_DEPENDENCIES}}
|
||||||
|
// Microsoft Visual C++ generated include file.
|
||||||
|
// Used by Resource.rc
|
||||||
|
//
|
||||||
|
#define IDD_DIALOG_I2C_DETECT 101
|
||||||
|
#define IDD_DIALOG_OPENAURASDK 103
|
||||||
|
#define IDC_COMBO_I2C_BUS 1001
|
||||||
|
#define IDC_BUTTON_I2C_DETECT 1002
|
||||||
|
#define IDC_EDIT_I2C_DETECT 1003
|
||||||
|
#define IDC_BUTTON_OPENAURASDK_I2CDETECT 1004
|
||||||
|
#define IDC_RADIO_OPENAURASDK_DIRECT_MODE 1006
|
||||||
|
#define IDC_RADIO_OPENAURASDK_EFFECT_MODE 1007
|
||||||
|
#define IDC_RADIO_OPENAURASDK_EFFECT_STATIC 1008
|
||||||
|
#define IDC_RADIO_OPENAURASDK_EFFECT_OFF 1009
|
||||||
|
#define IDC_RADIO_OPENAURASDK_EFFECT_BREATHING 1010
|
||||||
|
#define IDC_RADIO_OPENAURASDK_EFFECT_FLASHING 1011
|
||||||
|
#define IDC_RADIO_OPENAURASDK_EFFECT_SPECTRUM_CYCLE 1012
|
||||||
|
#define IDC_RADIO_OPENAURASDK_EFFECT_RAINBOW 1013
|
||||||
|
#define IDC_RADIO_OPENAURASDK_BREATHING_SPECTRUM 1014
|
||||||
|
#define IDC_RADIO_OPENAURASDK_EFFECT_CHASE_FADE 1015
|
||||||
|
#define IDC_EDIT_OPENAURASDK_LED_0_R 1016
|
||||||
|
#define IDC_EDIT_OPENAURASDK_LED_0_G 1017
|
||||||
|
#define IDC_EDIT_OPENAURASDK_LED_0_B 1018
|
||||||
|
#define IDC_BUTTON_OPENAURASDK_SET_COLORS_ALL 1019
|
||||||
|
#define IDC_COMBO_OPENAURASDK_DEVICE 1020
|
||||||
|
#define IDC_EDIT_OPENAURASDK_LED_1_R 1021
|
||||||
|
#define IDC_EDIT_OPENAURASDK_LED_1_G 1022
|
||||||
|
#define IDC_EDIT_OPENAURASDK_LED_1_B 1023
|
||||||
|
#define IDC_EDIT_OPENAURASDK_LED_2_R 1024
|
||||||
|
#define IDC_EDIT_OPENAURASDK_LED_2_G 1025
|
||||||
|
#define IDC_EDIT_OPENAURASDK_LED_2_B 1026
|
||||||
|
#define IDC_EDIT_OPENAURASDK_LED_3_R 1027
|
||||||
|
#define IDC_EDIT_OPENAURASDK_LED_3_G 1028
|
||||||
|
#define IDC_EDIT_OPENAURASDK_LED_3_B 1029
|
||||||
|
#define IDC_EDIT_OPENAURASDK_LED_4_R 1030
|
||||||
|
#define IDC_EDIT_OPENAURASDK_LED_4_G 1031
|
||||||
|
#define IDC_EDIT_OPENAURASDK_LED_4_B 1032
|
||||||
|
#define IDC_BUTTON_OPENAURASDK_SET_COLORS2 1034
|
||||||
|
#define IDC_BUTTON_OPENAURASDK_SET_COLORS 1034
|
||||||
|
|
||||||
|
// Next default values for new objects
|
||||||
|
//
|
||||||
|
#ifdef APSTUDIO_INVOKED
|
||||||
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
|
#define _APS_NEXT_RESOURCE_VALUE 105
|
||||||
|
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||||
|
#define _APS_NEXT_CONTROL_VALUE 1021
|
||||||
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
Reference in new issue
Block a user