Skip to content

Commit ad2dcdb

Browse files
TheRogueZetaTheRogueZeta
authored andcommitted
Commit to enable mode 14 on some ENE DRAM firmware
1 parent 35aa664 commit ad2dcdb

File tree

3 files changed

+87
-65
lines changed

3 files changed

+87
-65
lines changed

Controllers/ENESMBusController/ENESMBusController.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,8 @@ std::string ENESMBusController::GetDeviceLocation()
187187

188188
const char * ENESMBusController::GetChannelName(unsigned int cfg_zone)
189189
{
190+
LOG_TRACE("[%s] Config table for zone %02d: %02d", device_name, cfg_zone, config_table[channel_cfg + cfg_zone]);
191+
190192
switch(config_table[channel_cfg + cfg_zone])
191193
{
192194
case (unsigned char)ENE_LED_CHANNEL_AUDIO:
@@ -211,6 +213,7 @@ const char * ENESMBusController::GetChannelName(unsigned int cfg_zone)
211213

212214
case (unsigned char)ENE_LED_CHANNEL_DRAM:
213215
case (unsigned char)ENE_LED_CHANNEL_DRAM_2:
216+
case (unsigned char)ENE_LED_CHANNEL_DRAM_3:
214217
return(ene_channels[5]);
215218
break;
216219

@@ -238,6 +241,7 @@ const char * ENESMBusController::GetChannelName(unsigned int cfg_zone)
238241

239242
unsigned int ENESMBusController::GetLEDCount(unsigned int cfg_zone)
240243
{
244+
LOG_TRACE("[%s] LED Count for zone %02d: %02d", device_name, cfg_zone, config_table[0x03 + cfg_zone]);
241245
return(config_table[0x03 + cfg_zone]);
242246
}
243247

Controllers/ENESMBusController/ENESMBusController.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ enum
5353
ENE_MODE_SPECTRUM_CYCLE_WAVE = 11, /* Wave effect mode */
5454
ENE_MODE_CHASE_RAINBOW_PULSE = 12, /* Chase with Rainbow Pulse effect mode*/
5555
ENE_MODE_RANDOM_FLICKER = 13, /* Random flicker effect mode */
56+
ENE_MODE_DOUBLE_FADE = 14, /* Rainbow fade to dual color */
5657
ENE_NUMBER_MODES /* Number of Aura modes */
5758
};
5859

@@ -74,6 +75,7 @@ enum
7475
enum
7576
{
7677
ENE_LED_CHANNEL_DRAM_2 = 0x05, /* DRAM LED channel */
78+
ENE_LED_CHANNEL_DRAM_3 = 0x0E, /* DRAM LED channel */
7779
ENE_LED_CHANNEL_CENTER_START = 0x82, /* Center zone first LED channel */
7880
ENE_LED_CHANNEL_CENTER = 0x83, /* Center zone LED channel */
7981
ENE_LED_CHANNEL_AUDIO = 0x84, /* Audio zone LED channel */
@@ -134,5 +136,4 @@ class ENESMBusController
134136
unsigned char channel_cfg;
135137
ENESMBusInterface* interface;
136138
ene_dev_id dev;
137-
138139
};

Controllers/ENESMBusController/RGBController_ENESMBus.cpp

Lines changed: 81 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
\*-----------------------------------------*/
88

99
#include "RGBController_ENESMBus.h"
10+
#include "LogManager.h"
1011
#include "ResourceManager.h"
1112

1213
/**------------------------------------------------------------------*\
@@ -65,99 +66,112 @@ RGBController_ENESMBus::RGBController_ENESMBus(ENESMBusController * controller_p
6566
description = "ENE SMBus Device";
6667

6768
mode Direct;
68-
Direct.name = "Direct";
69-
Direct.value = 0xFFFF;
70-
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
71-
Direct.color_mode = MODE_COLORS_PER_LED;
69+
Direct.name = "Direct";
70+
Direct.value = 0xFFFF;
71+
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
72+
Direct.color_mode = MODE_COLORS_PER_LED;
7273
modes.push_back(Direct);
7374

7475
mode Off;
75-
Off.name = "Off";
76-
Off.value = ENE_MODE_OFF;
77-
Off.flags = save_flag;
78-
Off.color_mode = MODE_COLORS_NONE;
76+
Off.name = "Off";
77+
Off.value = ENE_MODE_OFF;
78+
Off.flags = save_flag;
79+
Off.color_mode = MODE_COLORS_NONE;
7980
modes.push_back(Off);
8081

8182
mode Static;
82-
Static.name = "Static";
83-
Static.value = ENE_MODE_STATIC;
84-
Static.flags = MODE_FLAG_HAS_PER_LED_COLOR | save_flag;
85-
Static.color_mode = MODE_COLORS_PER_LED;
83+
Static.name = "Static";
84+
Static.value = ENE_MODE_STATIC;
85+
Static.flags = MODE_FLAG_HAS_PER_LED_COLOR | save_flag;
86+
Static.color_mode = MODE_COLORS_PER_LED;
8687
modes.push_back(Static);
8788

8889
mode Breathing;
89-
Breathing.name = "Breathing";
90-
Breathing.value = ENE_MODE_BREATHING;
91-
Breathing.flags = MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | save_flag;
92-
Breathing.color_mode = MODE_COLORS_PER_LED;
93-
Breathing.speed_min = ENE_SPEED_SLOWEST;
94-
Breathing.speed_max = ENE_SPEED_FASTEST;
95-
Breathing.speed = ENE_SPEED_NORMAL;
90+
Breathing.name = "Breathing";
91+
Breathing.value = ENE_MODE_BREATHING;
92+
Breathing.flags = MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | save_flag;
93+
Breathing.color_mode = MODE_COLORS_PER_LED;
94+
Breathing.speed_min = ENE_SPEED_SLOWEST;
95+
Breathing.speed_max = ENE_SPEED_FASTEST;
96+
Breathing.speed = ENE_SPEED_NORMAL;
9697
modes.push_back(Breathing);
9798

9899
mode Flashing;
99-
Flashing.name = "Flashing";
100-
Flashing.value = ENE_MODE_FLASHING;
101-
Flashing.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | save_flag;
102-
Flashing.color_mode = MODE_COLORS_PER_LED;
103-
Flashing.speed_min = ENE_SPEED_SLOWEST;
104-
Flashing.speed_max = ENE_SPEED_FASTEST;
105-
Flashing.speed = ENE_SPEED_NORMAL;
100+
Flashing.name = "Flashing";
101+
Flashing.value = ENE_MODE_FLASHING;
102+
Flashing.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | save_flag;
103+
Flashing.color_mode = MODE_COLORS_PER_LED;
104+
Flashing.speed_min = ENE_SPEED_SLOWEST;
105+
Flashing.speed_max = ENE_SPEED_FASTEST;
106+
Flashing.speed = ENE_SPEED_NORMAL;
106107
modes.push_back(Flashing);
107108

108109
mode SpectrumCycle;
109-
SpectrumCycle.name = "Spectrum Cycle";
110-
SpectrumCycle.value = ENE_MODE_SPECTRUM_CYCLE;
111-
SpectrumCycle.flags = MODE_FLAG_HAS_SPEED | save_flag;
112-
SpectrumCycle.color_mode = MODE_COLORS_NONE;
113-
SpectrumCycle.speed_min = ENE_SPEED_SLOWEST;
114-
SpectrumCycle.speed_max = ENE_SPEED_FASTEST;
115-
SpectrumCycle.speed = ENE_SPEED_NORMAL;
110+
SpectrumCycle.name = "Spectrum Cycle";
111+
SpectrumCycle.value = ENE_MODE_SPECTRUM_CYCLE;
112+
SpectrumCycle.flags = MODE_FLAG_HAS_SPEED | save_flag;
113+
SpectrumCycle.color_mode = MODE_COLORS_NONE;
114+
SpectrumCycle.speed_min = ENE_SPEED_SLOWEST;
115+
SpectrumCycle.speed_max = ENE_SPEED_FASTEST;
116+
SpectrumCycle.speed = ENE_SPEED_NORMAL;
116117
modes.push_back(SpectrumCycle);
117118

118119
mode Rainbow;
119-
Rainbow.name = "Rainbow";
120-
Rainbow.value = ENE_MODE_RAINBOW;
121-
Rainbow.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | save_flag;
122-
Rainbow.color_mode = MODE_COLORS_NONE;
123-
Rainbow.speed_min = ENE_SPEED_SLOWEST;
124-
Rainbow.speed_max = ENE_SPEED_FASTEST;
125-
Rainbow.speed = ENE_SPEED_NORMAL;
126-
Rainbow.direction = MODE_DIRECTION_LEFT;
120+
Rainbow.name = "Rainbow";
121+
Rainbow.value = ENE_MODE_RAINBOW;
122+
Rainbow.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | save_flag;
123+
Rainbow.color_mode = MODE_COLORS_NONE;
124+
Rainbow.speed_min = ENE_SPEED_SLOWEST;
125+
Rainbow.speed_max = ENE_SPEED_FASTEST;
126+
Rainbow.speed = ENE_SPEED_NORMAL;
127+
Rainbow.direction = MODE_DIRECTION_LEFT;
127128
modes.push_back(Rainbow);
128129

129130
mode ChaseFade;
130-
ChaseFade.name = "Chase Fade";
131-
ChaseFade.value = ENE_MODE_CHASE_FADE;
132-
ChaseFade.flags = MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | save_flag;
133-
ChaseFade.color_mode = MODE_COLORS_PER_LED;
134-
ChaseFade.speed_min = ENE_SPEED_SLOWEST;
135-
ChaseFade.speed_max = ENE_SPEED_FASTEST;
136-
ChaseFade.speed = ENE_SPEED_NORMAL;
137-
ChaseFade.direction = MODE_DIRECTION_LEFT;
131+
ChaseFade.name = "Chase Fade";
132+
ChaseFade.value = ENE_MODE_CHASE_FADE;
133+
ChaseFade.flags = MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | save_flag;
134+
ChaseFade.color_mode = MODE_COLORS_PER_LED;
135+
ChaseFade.speed_min = ENE_SPEED_SLOWEST;
136+
ChaseFade.speed_max = ENE_SPEED_FASTEST;
137+
ChaseFade.speed = ENE_SPEED_NORMAL;
138+
ChaseFade.direction = MODE_DIRECTION_LEFT;
138139
modes.push_back(ChaseFade);
139140

140141
mode Chase;
141-
Chase.name = "Chase";
142-
Chase.value = ENE_MODE_CHASE;
143-
Chase.flags = MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | save_flag;
144-
Chase.color_mode = MODE_COLORS_PER_LED;
145-
Chase.speed_min = ENE_SPEED_SLOWEST;
146-
Chase.speed_max = ENE_SPEED_FASTEST;
147-
Chase.speed = ENE_SPEED_NORMAL;
148-
ChaseFade.direction = MODE_DIRECTION_LEFT;
142+
Chase.name = "Chase";
143+
Chase.value = ENE_MODE_CHASE;
144+
Chase.flags = MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_DIRECTION_LR | save_flag;
145+
Chase.color_mode = MODE_COLORS_PER_LED;
146+
Chase.speed_min = ENE_SPEED_SLOWEST;
147+
Chase.speed_max = ENE_SPEED_FASTEST;
148+
Chase.speed = ENE_SPEED_NORMAL;
149+
ChaseFade.direction = MODE_DIRECTION_LEFT;
149150
modes.push_back(Chase);
150151

151152
mode RandomFlicker;
152-
RandomFlicker.name = "Random Flicker";
153-
RandomFlicker.value = ENE_MODE_RANDOM_FLICKER;
154-
RandomFlicker.flags = MODE_FLAG_HAS_SPEED | save_flag;
155-
RandomFlicker.color_mode = MODE_COLORS_NONE;
156-
RandomFlicker.speed_min = ENE_SPEED_SLOWEST;
157-
RandomFlicker.speed_max = ENE_SPEED_FASTEST;
158-
RandomFlicker.speed = ENE_SPEED_NORMAL;
153+
RandomFlicker.name = "Random Flicker";
154+
RandomFlicker.value = ENE_MODE_RANDOM_FLICKER;
155+
RandomFlicker.flags = MODE_FLAG_HAS_SPEED | save_flag;
156+
RandomFlicker.color_mode = MODE_COLORS_NONE;
157+
RandomFlicker.speed_min = ENE_SPEED_SLOWEST;
158+
RandomFlicker.speed_max = ENE_SPEED_FASTEST;
159+
RandomFlicker.speed = ENE_SPEED_NORMAL;
159160
modes.push_back(RandomFlicker);
160161

162+
if(version == "AUDA0-E6K5-0101")
163+
{
164+
mode DoubleFade;
165+
DoubleFade.name = "Double Fade";
166+
DoubleFade.value = ENE_MODE_DOUBLE_FADE;
167+
DoubleFade.flags = MODE_FLAG_HAS_SPEED;
168+
DoubleFade.color_mode = MODE_COLORS_NONE;
169+
DoubleFade.speed_min = ENE_SPEED_SLOWEST;
170+
DoubleFade.speed_max = ENE_SPEED_FASTEST;
171+
DoubleFade.speed = ENE_SPEED_NORMAL;
172+
modes.push_back(DoubleFade);
173+
}
174+
161175
SetupZones();
162176

163177
/*-------------------------------------------------*\
@@ -181,6 +195,8 @@ int RGBController_ENESMBus::GetDeviceMode()
181195
int speed = controller->ENERegisterRead(ENE_REG_SPEED);
182196
int direction = controller->ENERegisterRead(ENE_REG_DIRECTION);
183197

198+
LOG_TRACE("[%s] Retrieved ENE mode from module: %02d", name.c_str(), dev_mode);
199+
184200
if(controller->ENERegisterRead(ENE_REG_DIRECT))
185201
{
186202
dev_mode = 0xFFFF;
@@ -192,6 +208,7 @@ int RGBController_ENESMBus::GetDeviceMode()
192208
case ENE_MODE_RAINBOW:
193209
case ENE_MODE_SPECTRUM_CYCLE:
194210
case ENE_MODE_RANDOM_FLICKER:
211+
case ENE_MODE_DOUBLE_FADE:
195212
color_mode = MODE_COLORS_NONE;
196213
break;
197214

0 commit comments

Comments
 (0)