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(); } + } }