diff --git a/KeyboardVisualizer.pro.user b/KeyboardVisualizer.pro.user
new file mode 100644
index 0000000..56aa04e
--- /dev/null
+++ b/KeyboardVisualizer.pro.user
@@ -0,0 +1,265 @@
+
+
+
+
+
+ EnvironmentId
+ {00b2529d-84f8-4437-a987-d2e713fa8636}
+
+
+ ProjectExplorer.Project.ActiveTarget
+ 0
+
+
+ ProjectExplorer.Project.EditorSettings
+
+ true
+ false
+ true
+
+ Cpp
+
+ CppGlobal
+
+
+
+ QmlJS
+
+ QmlJSGlobal
+
+
+ 2
+ UTF-8
+ false
+ 4
+ false
+ 80
+ true
+ true
+ 1
+ false
+ true
+ false
+ 0
+ true
+ true
+ 0
+ 8
+ true
+ false
+ 1
+ true
+ true
+ true
+ *.md, *.MD, Makefile
+ false
+ true
+
+
+
+ ProjectExplorer.Project.PluginSettings
+
+
+ true
+ false
+ true
+ true
+ true
+ true
+
+
+ 0
+ true
+
+ true
+ true
+ Builtin.DefaultTidyAndClazy
+ 12
+
+
+
+ true
+
+
+ true
+
+
+
+
+ ProjectExplorer.Project.Target.0
+
+ Desktop
+ Desktop (x86-windows-msvc2022-pe-64bit)
+ Desktop (x86-windows-msvc2022-pe-64bit)
+ {df7d7e32-201c-4f49-ba87-478396581166}
+ 1
+ 0
+ 0
+
+ 0
+ C:\Users\Truncated\Desktop\build-KeyboardVisualizer-Desktop_x86_windows_msvc2022_pe_64bit-Debug
+ C:/Users/Truncated/Desktop/build-KeyboardVisualizer-Desktop_x86_windows_msvc2022_pe_64bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Build
+ Build
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Clean
+ Clean
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+ false
+
+ Debug
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+
+
+ C:\Users\Truncated\Desktop\build-KeyboardVisualizer-Desktop_x86_windows_msvc2022_pe_64bit-Release
+ C:/Users/Truncated/Desktop/build-KeyboardVisualizer-Desktop_x86_windows_msvc2022_pe_64bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Build
+ Build
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Clean
+ Clean
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+ false
+
+ Release
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+
+
+ 0
+ C:\Users\Truncated\Desktop\build-KeyboardVisualizer-Desktop_x86_windows_msvc2022_pe_64bit-Profile
+ C:/Users/Truncated/Desktop/build-KeyboardVisualizer-Desktop_x86_windows_msvc2022_pe_64bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Build
+ Build
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Clean
+ Clean
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+ false
+
+ Profile
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Deploy
+ Deploy
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ true
+ true
+ true
+
+ 2
+
+ Qt4ProjectManager.Qt4RunConfiguration:C:/Users/Truncated/Desktop/KeyboardVisualizer-git/KeyboardVisualizer.pro
+ C:/Users/Truncated/Desktop/KeyboardVisualizer-git/KeyboardVisualizer.pro
+ false
+ true
+ true
+ false
+ true
+ C:/Users/Truncated/Desktop/build-KeyboardVisualizer-Desktop_x86_windows_msvc2022_pe_64bit-Release
+
+ 1
+
+
+
+ ProjectExplorer.Project.TargetCount
+ 1
+
+
+ ProjectExplorer.Project.Updater.FileVersion
+ 22
+
+
+ Version
+ 22
+
+
diff --git a/KeyboardVisualizerCommon/Visualizer.cpp b/KeyboardVisualizerCommon/Visualizer.cpp
index 4f8a15a..d15873c 100644
--- a/KeyboardVisualizerCommon/Visualizer.cpp
+++ b/KeyboardVisualizerCommon/Visualizer.cpp
@@ -247,6 +247,8 @@ void Visualizer::Initialize()
frgd_mode = VISUALIZER_PATTERN_STATIC_GREEN_YELLOW_RED;
single_color_mode = VISUALIZER_SINGLE_COLOR_FOLLOW_FOREGROUND;
reactive_bkgd = false;
+ start_from_bot_inv = false;
+ start_from_bottom = false;
audio_device_idx = 0;
filter_constant = 1.0f;
@@ -378,6 +380,14 @@ void Visualizer::SaveSettings()
snprintf(out_str, 1024, "silent_bkgd=%d\r\n", silent_bkgd);
outfile.write(out_str, strlen(out_str));
+ //Save Silent Background Flag
+ snprintf(out_str, 1024, "start_from_bottom=%d\r\n", start_from_bottom);
+ outfile.write(out_str, strlen(out_str));
+
+ //Save Silent Background Flag
+ snprintf(out_str, 1024, "start_from_bot_inv=%d\r\n", start_from_bot_inv);
+ outfile.write(out_str, strlen(out_str));
+
//Save Background Timeout
snprintf(out_str, 1024, "background_timeout=%d\r\n", background_timeout);
outfile.write(out_str, strlen(out_str));
@@ -441,6 +451,8 @@ void Visualizer::SendSettings()
settings.frgd_mode = frgd_mode;
settings.reactive_bkgd = reactive_bkgd;
settings.silent_bkgd = silent_bkgd;
+ settings.start_from_bot_inv = start_from_bot_inv;
+ settings.start_from_bottom = start_from_bottom;
settings.background_timeout = background_timeout;
port->tcp_write((char *)&settings, sizeof(settings));
}
@@ -653,9 +665,11 @@ void Visualizer::Update()
fft[i] = sum / (2 * avg_size + 1);
}
}
+
for(int i = 0; i < 256; i++)
{
- fft_fltr[i] = fft_fltr[i] + (filter_constant * (fft[i] - fft_fltr[i]));
+ float current = fft[i];
+ fft_fltr[i] = fft_fltr[i] + (filter_constant * (current - fft_fltr[i]));
}
}
@@ -891,84 +905,6 @@ void Visualizer::DrawPattern(VISUALIZER_PATTERN pattern, int bright, vis_pixels
{
switch (pattern)
{
- case VISUALIZER_PATTERN_SOLID_BLACK:
- DrawSolidColor(bright, 0x00000000, pixels);
- break;
-
- case VISUALIZER_PATTERN_SOLID_WHITE:
- DrawSolidColor(bright, 0x00FFFFFF, pixels);
- break;
-
- case VISUALIZER_PATTERN_SOLID_RED:
- DrawSolidColor(bright, 0x000000FF, pixels);
- break;
-
- case VISUALIZER_PATTERN_SOLID_ORANGE:
- DrawSolidColor(bright, 0x000040FF, pixels);
- break;
-
- case VISUALIZER_PATTERN_SOLID_YELLOW:
- DrawSolidColor(bright, 0x0000FFFF, pixels);
- break;
-
- case VISUALIZER_PATTERN_SOLID_GREEN:
- DrawSolidColor(bright, 0x0000FF00, pixels);
- break;
-
- case VISUALIZER_PATTERN_SOLID_CYAN:
- DrawSolidColor(bright, 0x00FFFF00, pixels);
- break;
-
- case VISUALIZER_PATTERN_SOLID_BLUE:
- DrawSolidColor(bright, 0x00FF0000, pixels);
- break;
-
- case VISUALIZER_PATTERN_SOLID_PURPLE:
- DrawSolidColor(bright, 0x00FF0040, pixels);
- break;
-
- case VISUALIZER_PATTERN_STATIC_GREEN_YELLOW_RED:
- {
- RGBColor colors[] = { 0x0000FF00, 0x0000FFFF, 0x000000FF };
- DrawHorizontalBars(bright, colors, 3, pixels);
- }
- break;
-
- case VISUALIZER_PATTERN_STATIC_GREEN_WHITE_RED:
- {
- RGBColor colors[] = { 0x0000FF00, 0x00FFFFFF, 0x000000FF };
- DrawHorizontalBars(bright, colors, 3, pixels);
- }
- break;
-
- case VISUALIZER_PATTERN_STATIC_BLUE_CYAN_WHITE:
- {
- RGBColor colors[] = { 0x00FF0000, 0x00FFFF00, 0x00FFFFFF };
- DrawHorizontalBars(bright, colors, 3, pixels);
- }
- break;
-
- case VISUALIZER_PATTERN_STATIC_RED_WHITE_BLUE:
- {
- RGBColor colors[] = { 0x000000FF, 0x00FFFFFF, 0x00FF0000 };
- DrawHorizontalBars(bright, colors, 3, pixels);
- }
- break;
-
- case VISUALIZER_PATTERN_STATIC_RAINBOW:
- {
- RGBColor colors[] = { 0x000000FF, 0x0000FFFF, 0x0000FF00, 0x00FFFF00, 0x00FF0000, 0x00FF00FF };
- DrawHorizontalBars(bright, colors, 6, pixels);
- }
- break;
-
- case VISUALIZER_PATTERN_STATIC_RAINBOW_INVERSE:
- {
- RGBColor colors[] = { 0x00FF00FF, 0x00FF0000, 0x00FFFF00, 0x0000FF00, 0x0000FFFF, 0x000000FF };
- DrawHorizontalBars(bright, colors, 6, pixels);
- }
- break;
-
case VISUALIZER_PATTERN_ANIM_RAINBOW_SINUSOIDAL:
DrawRainbowSinusoidal(bright, bkgd_step, pixels);
break;
@@ -992,6 +928,24 @@ void Visualizer::DrawPattern(VISUALIZER_PATTERN pattern, int bright, vis_pixels
case VISUALIZER_PATTERN_ANIM_SINUSOIDAL_CYCLE:
DrawSinusoidalCycle(bright, bkgd_step, pixels);
break;
+ default:
+ if(pattern <= VISUALIZER_SINGLE_COLOR_PURPLE)
+ DrawSolidColor(bright, colors[pattern], pixels);
+ else
+ {
+ std::vector> colors=
+ {
+ { 0x0000FF00, 0x0000FFFF, 0x000000FF },
+ { 0x0000FF00, 0x00FFFFFF, 0x000000FF },
+ { 0x00FF0000, 0x00FFFF00, 0x00FFFFFF },
+ { 0x000000FF, 0x00FFFFFF, 0x00FF0000 },
+ { 0x000000FF, 0x0000FFFF, 0x0000FF00, 0x00FFFF00, 0x00FF0000, 0x00FF00FF },
+ { 0x00FF00FF, 0x00FF0000, 0x00FFFF00, 0x0000FF00, 0x0000FFFF, 0x000000FF }
+ };
+ std::vector& current = colors[pattern-VISUALIZER_PATTERN_STATIC_GREEN_YELLOW_RED];
+ DrawHorizontalBars(bright, (RGBColor*)current.data(), current.size(), pixels);
+ }
+ break;
}
}
@@ -1082,6 +1036,8 @@ void Visualizer::NetUpdateThreadFunction()
frgd_mode = ((settings_pkt_type *)buf)->frgd_mode;
reactive_bkgd = ((settings_pkt_type *)buf)->reactive_bkgd;
silent_bkgd = ((settings_pkt_type *)buf)->silent_bkgd;
+ start_from_bottom = ((settings_pkt_type *)buf)->start_from_bottom;
+ start_from_bot_inv = ((settings_pkt_type *)buf)->start_from_bot_inv;
background_timeout = ((settings_pkt_type *)buf)->background_timeout;
SetNormalization(nrml_ofst, nrml_scl);
@@ -1200,74 +1156,29 @@ void Visualizer::VisThreadFunction()
//Draw Bar Graph Foreground
if (y == ROW_IDX_BAR_GRAPH)
{
- if (x < 128)
- {
- if ((fft_fltr[5] - 0.05f) >((1 / 128.0f)*(127-x)))
- {
- if (shutdown_flag == true)
- {
- int in_color = pixels_fg.pixels[y][x];
- pixels_render->pixels[y][x] = RGB(((brightness * GetRValue(in_color))), ((brightness * GetGValue(in_color))), ((brightness * GetBValue(in_color))));
- }
- else
- {
- pixels_render->pixels[y][x] = pixels_fg.pixels[y][x];
- }
- }
- else
+
+ bool A = start_from_bottom;
+ bool B = fft_fltr[5] > (start_from_bot_inv ? 256 - x : x) / 256.0f;
+ bool C = x < 128;
+ bool D = fft_fltr[5] - 0.05f > 1 / 128.0f*(127-x);
+ bool E = fft_fltr[5] - 0.05f > 1 / 128.0f*(x-128);
+
+ if([&]() -> bool { if(A) return B; if(C) return D; return E; }())
+ if (shutdown_flag == true)
{
- if (reactive_bkgd || silent_bkgd)
- {
- if (!silent_bkgd || ((background_timer >= background_timeout) && (background_timeout > 0)))
- {
- int in_color = pixels_bg.pixels[y][x];
- pixels_render->pixels[y][x] = RGB(((brightness * GetRValue(in_color))), ((brightness * GetGValue(in_color))), ((brightness * GetBValue(in_color))));
- }
- else
- {
- pixels_render->pixels[y][x] = RGB(0, 0, 0);
- }
- }
- else
- {
- pixels_render->pixels[y][x] = pixels_bg.pixels[y][x];
- }
+ int in_color = pixels_fg.pixels[y][x];
+ pixels_render->pixels[y][x] = RGB(((brightness * GetRValue(in_color))), ((brightness * GetGValue(in_color))), ((brightness * GetBValue(in_color))));
}
- }
- else
- {
- if ((fft_fltr[5] - 0.05f) >((1 / 128.0f)*((x-128))))
+ else pixels_render->pixels[y][x] = pixels_fg.pixels[y][x];
+ else if (reactive_bkgd || silent_bkgd)
+ if (!silent_bkgd || ((background_timer >= background_timeout) && (background_timeout > 0)))
{
- if (shutdown_flag == true)
- {
- int in_color = pixels_fg.pixels[y][x];
- pixels_render->pixels[y][x] = RGB(((brightness * GetRValue(in_color))), ((brightness * GetGValue(in_color))), ((brightness * GetBValue(in_color))));
- }
- else
- {
- pixels_render->pixels[y][x] = pixels_fg.pixels[y][x];
- }
+ int in_color = pixels_bg.pixels[y][x];
+ pixels_render->pixels[y][x] = RGB(((brightness * GetRValue(in_color))), ((brightness * GetGValue(in_color))), ((brightness * GetBValue(in_color))));
}
else
- {
- if (reactive_bkgd || silent_bkgd)
- {
- if (!silent_bkgd || (background_timer >= background_timeout))
- {
- int in_color = pixels_bg.pixels[y][x];
- pixels_render->pixels[y][x] = RGB(((brightness * GetRValue(in_color))), ((brightness * GetGValue(in_color))), ((brightness * GetBValue(in_color))));
- }
- else
- {
- pixels_render->pixels[y][x] = RGB(0, 0, 0);
- }
- }
- else
- {
- pixels_render->pixels[y][x] = pixels_bg.pixels[y][x];
- }
- }
- }
+ pixels_render->pixels[y][x] = RGB(0, 0, 0);
+ else pixels_render->pixels[y][x] = pixels_bg.pixels[y][x];
}
}
}
@@ -1280,69 +1191,21 @@ void Visualizer::VisThreadFunction()
if ((background_timeout <= 0 ) || (background_timer < background_timeout))
{
//Draw brightness based visualizer for single LED devices
- switch (single_color_mode)
+ if(single_color_mode <= VISUALIZER_SINGLE_COLOR_PURPLE)
+ DrawSingleColorStatic(brightness, colors[single_color_mode], pixels_render);
+ else if(single_color_mode != VISUALIZER_SINGLE_COLOR_BACKGROUND)
{
- case VISUALIZER_SINGLE_COLOR_BLACK:
- DrawSingleColorStatic(brightness, 0x00000000, pixels_render);
- break;
-
- case VISUALIZER_SINGLE_COLOR_WHITE:
- DrawSingleColorStatic(brightness, 0x00FFFFFF, pixels_render);
- break;
-
- case VISUALIZER_SINGLE_COLOR_RED:
- DrawSingleColorStatic(brightness, 0x000000FF, pixels_render);
- break;
-
- case VISUALIZER_SINGLE_COLOR_ORANGE:
- DrawSingleColorStatic(brightness, 0x000080FF, pixels_render);
- break;
-
- case VISUALIZER_SINGLE_COLOR_YELLOW:
- DrawSingleColorStatic(brightness, 0x0000FFFF, pixels_render);
- break;
-
- case VISUALIZER_SINGLE_COLOR_GREEN:
- DrawSingleColorStatic(brightness, 0x0000FF00, pixels_render);
- break;
-
- case VISUALIZER_SINGLE_COLOR_CYAN:
- DrawSingleColorStatic(brightness, 0x00FFFF00, pixels_render);
- break;
-
- case VISUALIZER_SINGLE_COLOR_BLUE:
- DrawSingleColorStatic(brightness, 0x00FF0000, pixels_render);
- break;
-
- case VISUALIZER_SINGLE_COLOR_PURPLE:
- DrawSingleColorStatic(brightness, 0x00FF00FF, pixels_render);
- break;
-
- case VISUALIZER_SINGLE_COLOR_BACKGROUND:
- //Intentionally do nothing, leave the background unmodified
- break;
-
- case VISUALIZER_SINGLE_COLOR_FOLLOW_BACKGROUND:
- DrawSingleColorBackground(brightness, &pixels_bg, pixels_render);
- break;
-
- case VISUALIZER_SINGLE_COLOR_FOLLOW_FOREGROUND:
- DrawSingleColorForeground(brightness, &pixels_fg, pixels_render);
- break;
+ if(single_color_mode == VISUALIZER_SINGLE_COLOR_FOLLOW_BACKGROUND)
+ DrawSingleColorBackground(brightness, &pixels_bg, pixels_render);
+ else
+ DrawSingleColorForeground(brightness, &pixels_fg, pixels_render);
}
}
+
//Swap buffers
- if (pixels_render == &pixels_vs1)
- {
- pixels_render = &pixels_vs2;
- pixels_out = &pixels_vs1;
- }
- else
- {
- pixels_render = &pixels_vs1;
- pixels_out = &pixels_vs2;
- }
+ pixels_render = (pixels_render == &pixels_vs1) ? &pixels_vs2 : &pixels_vs1;
+ pixels_out = (pixels_out == &pixels_vs1) ? &pixels_vs2 : &pixels_vs1;
//Increment background step
bkgd_step = bkgd_step += (anim_speed / 100.0f);
@@ -1797,6 +1660,7 @@ void Visualizer::LEDUpdateThreadFunction()
break;
case ZONE_TYPE_LINEAR:
+
for (int x = 0; x < x_count; x++)
{
controller->zones[zone_idx].colors[x] = pixels_out->pixels[ROW_IDX_BAR_GRAPH][zone_index_map->x_index[x]];
diff --git a/KeyboardVisualizerCommon/Visualizer.h b/KeyboardVisualizerCommon/Visualizer.h
index 2087ba3..ff6a99e 100644
--- a/KeyboardVisualizerCommon/Visualizer.h
+++ b/KeyboardVisualizerCommon/Visualizer.h
@@ -72,6 +72,8 @@ typedef struct
int frgd_mode;
bool reactive_bkgd;
bool silent_bkgd;
+ bool start_from_bottom;
+ bool start_from_bot_inv;
unsigned int background_timeout;
} settings_pkt_type;
@@ -199,6 +201,8 @@ class Visualizer
int bkgd_mode;
bool reactive_bkgd;
bool silent_bkgd;
+ bool start_from_bottom;
+ bool start_from_bot_inv;
unsigned int background_timeout;
unsigned int background_timer;
diff --git a/KeyboardVisualizerCommon/VisualizerDefines.h b/KeyboardVisualizerCommon/VisualizerDefines.h
index c90dbbf..9ca45d1 100644
--- a/KeyboardVisualizerCommon/VisualizerDefines.h
+++ b/KeyboardVisualizerCommon/VisualizerDefines.h
@@ -120,6 +120,8 @@ enum
VISUALIZER_NUM_SINGLE_COLOR
};
+constexpr int colors[] = {0x00000000, 0x00FFFFFF, 0x000000FF, 0x000080FF, 0x0000FFFF, 0x0000FF00, 0x00FFFF00, 0x00FF0000, 0x00FF00FF};
+
const char * const visualizer_single_color_labels[VISUALIZER_NUM_SINGLE_COLOR] =
{
"Black",
diff --git a/KeyboardVisualizerQT/KeyboardVisDlg.cpp b/KeyboardVisualizerQT/KeyboardVisDlg.cpp
index 1f83eac..e9af7e9 100644
--- a/KeyboardVisualizerQT/KeyboardVisDlg.cpp
+++ b/KeyboardVisualizerQT/KeyboardVisDlg.cpp
@@ -5,6 +5,7 @@
#include
#include
+#include
Visualizer* vis_ptr;
boolean startminimized;
@@ -73,6 +74,33 @@ void KeyboardVisDlg::show_hide()
}
}
+void Ui::KeyboardVisDlg::on_checkBox_Start_From_Bottom_clicked(bool checked)
+{
+ vis_ptr->start_from_bottom = checked;
+
+ if (vis_ptr->start_from_bot_inv == true)
+ {
+ vis_ptr->start_from_bot_inv = false;
+ ui->checkBox_InvSFB->setChecked(false);
+ }
+
+ vis_ptr->OnSettingsChanged();
+}
+
+void Ui::KeyboardVisDlg::on_checkBox_InvSFB_clicked(bool checked)
+{
+ vis_ptr->start_from_bot_inv = checked;
+
+ if (vis_ptr->start_from_bottom == false)
+ {
+ vis_ptr->start_from_bot_inv = false;
+ ui->checkBox_InvSFB->setChecked(false);
+ }
+
+ vis_ptr->OnSettingsChanged();
+}
+
+
void KeyboardVisDlg::update()
{
if (startminimized && firstrun)
@@ -136,6 +164,8 @@ void KeyboardVisDlg::update()
ui->checkBox_Reactive_Background->setChecked(vis_ptr->reactive_bkgd);
ui->checkBox_Silent_Background->setChecked(vis_ptr->silent_bkgd);
+ ui->checkBox_Start_From_Bottom->setChecked(vis_ptr->start_from_bottom);
+ ui->checkBox_InvSFB->setChecked(vis_ptr->start_from_bot_inv);
}
}
@@ -205,6 +235,8 @@ void KeyboardVisDlg::SetVisualizer(Visualizer* v)
ui->checkBox_Reactive_Background->setChecked(vis_ptr->reactive_bkgd);
ui->checkBox_Silent_Background->setChecked(vis_ptr->silent_bkgd);
+ ui->checkBox_Start_From_Bottom->setChecked(vis_ptr->start_from_bottom);
+ ui->checkBox_InvSFB->setChecked(vis_ptr->start_from_bot_inv);
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
@@ -365,6 +397,7 @@ void Ui::KeyboardVisDlg::on_lineEdit_Background_Timeout_textChanged(const QStrin
vis_ptr->OnSettingsChanged();
}
+
class NetworkClientPointer : public QObject
{
public:
@@ -508,3 +541,4 @@ void Ui::KeyboardVisDlg::on_button_Connect_clicked()
NetworkClient * new_client = vis_ptr->OpenRGBConnect(ip.c_str(), port);
}
+
diff --git a/KeyboardVisualizerQT/KeyboardVisDlg.h b/KeyboardVisualizerQT/KeyboardVisDlg.h
index d1c02b8..a70ec27 100644
--- a/KeyboardVisualizerQT/KeyboardVisDlg.h
+++ b/KeyboardVisualizerQT/KeyboardVisDlg.h
@@ -78,6 +78,10 @@ private slots:
void on_button_Enabled_clicked(QObject *);
+ void on_checkBox_Start_From_Bottom_clicked(bool checked);
+
+ void on_checkBox_InvSFB_clicked(bool checked);
+
private:
Ui::KeyboardVisualizerDlg *ui;
QSystemTrayIcon* trayIcon;
diff --git a/KeyboardVisualizerQT/keyboardvisualizer.ui b/KeyboardVisualizerQT/keyboardvisualizer.ui
index a79295b..b22758c 100644
--- a/KeyboardVisualizerQT/keyboardvisualizer.ui
+++ b/KeyboardVisualizerQT/keyboardvisualizer.ui
@@ -7,7 +7,7 @@
0
0
600
- 600
+ 655
@@ -15,6 +15,16 @@
+ -
+
+
+ -
+
+
+ Foreground Mode
+
+
+
-
@@ -22,106 +32,73 @@
- -
-
-
-
- 0
- 0
-
-
-
-
- 256
- 64
-
-
-
-
- 256
- 64
-
-
-
- Qt::ScrollBarAlwaysOff
-
-
- Qt::ScrollBarAlwaysOff
-
-
- false
+
-
+
+
+ -
+
+
+ Decay (% per step)
- -
-
-
- -
-
+
-
+
+
+ Delay (ms)
+
+
- -
-
+
-
+
- -
-
-
- QComboBox::AdjustToMinimumContentsLength
+
-
+
+
+ IP:
- -
-
+
-
+
- Visualization Preview
+ Port
- -
-
+
-
+
- -
-
+
-
+
- Normalization Offset
+ Average Mode
- -
-
-
- -
-
+
-
+
- Average Size
+ Background Mode
- -
-
-
-
- 1
-
-
-
+
-
+
- -
-
+
-
+
- Save Settings
+ Visualization Preview
- -
-
-
- QComboBox::AdjustToMinimumContentsLength
-
-
+
-
+
-
@@ -130,144 +107,181 @@
- -
-
+
-
+
- Delay (ms)
+ Background Brightness
- -
-
-
-
-
+
-
+
+
+
+ 1
+
+
- -
-
+
-
+
+
+ -
+
- Background Brightness
+ Background Timeout
- -
-
+
-
+
- Background Mode
+ Audio Device
- -
-
+
-
+
- Decay (% per step)
+ Reactive Background
- -
-
-
- -
-
+
-
+
- Silent Background
+ Amplitude (%)
- -
-
+
-
+
- -
-
+
-
+
+
+ -
+
- Reactive Background
+ Connect
- -
-
-
- QComboBox::AdjustToMinimumContentsLength
+
-
+
+
+ Filter Constant
- -
-
+
-
+
+
+ -
+
- Audio Device
+ Silent Background
- -
-
-
- QComboBox::AdjustToMinimumContentsLength
+
-
+
+
+
+ 0
+ 0
+
-
-
- -
-
-
- QComboBox::AdjustToMinimumContentsLength
+
+
+ 256
+ 64
+
+
+
+
+ 256
+ 64
+
+
+
+ Qt::ScrollBarAlwaysOff
+
+
+ Qt::ScrollBarAlwaysOff
+
+
+ false
- -
-
+
-
+
+
+ -
+
+
+ -
+
+
+ -
+
- Background Timeout
+ Single Color Mode
- -
-
+
-
+
- Filter Constant
+ Normalization Offset
- -
-
-
- -
-
+
-
+
- Average Mode
+
- -
-
-
- -
-
-
- QComboBox::AdjustToMinimumContentsLength
+
-
+
+
+
- -
-
+
-
+
- IP:
+ Average Size
- -
-
+
-
+
- Amplitude (%)
+ https://gitlab.com/CalcProgrammer1/KeyboardVisualizer
- -
-
+
-
+
+
+ -
+
- Single Color Mode
+ Start From Bottom
+ -
+
+
+ -
+
+
-
@@ -275,43 +289,33 @@
- -
-
-
-
- -
-
-
- -
-
-
- Foreground Mode
-
-
+
-
+
- -
-
+
-
+
- -
-
+
-
+
- Port
+ Save Settings
- -
-
+
-
+
- Connect
+ Inverse Start From Bot
- -
-
+
-
+
- https://gitlab.com/CalcProgrammer1/KeyboardVisualizer
+
diff --git a/KeyboardVisualizerQT/main.cpp b/KeyboardVisualizerQT/main.cpp
index 3f868ee..b4c5bc7 100644
--- a/KeyboardVisualizerQT/main.cpp
+++ b/KeyboardVisualizerQT/main.cpp
@@ -144,6 +144,16 @@ void parse_argument_string(char * argument, char * value)
vis.reactive_bkgd = false;
}
}
+ else if (strcmp(argument, "start_from_bot_inv") == 0)
+ {
+ vis.start_from_bot_inv = atoi(value);
+ }
+ else if (strcmp(argument, "start_from_bottom") == 0)
+ {
+ std::cout<< value;
+ vis.start_from_bottom = atoi(value);
+ std::cout<< " " << vis.start_from_bottom << std::endl;
+ }
else if (strcmp(argument, "background_timeout") == 0)
{
vis.background_timeout = atoi(value);
@@ -154,6 +164,7 @@ void parse_argument_string(char * argument, char * value)
vis.audio_device_idx = atoi(value);
vis.ChangeAudioDevice();
}
+
}
}