From b76265cf7d62cd0da868f7ef7ce07b60e4135bd2 Mon Sep 17 00:00:00 2001 From: Chris Date: Sat, 26 Jun 2021 14:47:34 +1000 Subject: [PATCH] Convert mode from struct to class, add automatic initialization * To avoid filtering in the profile manager and to ensure that color_mode is set to MODE_COLORS_RANDOM correctly for HW that has the mode flags MODE_FLAG_HAS_RANDOM_COLOR | MODE_FLAG_HAS_PER_LED_COLOR The values for speed_min, speed_max, colors_min and colors_max NEED to be initialised to allow for a saved profile to load correctly in `ProfileManager::LoadDeviceFromListWithOptions` Commit amended for code style by Adam Honse --- RGBController/RGBController.cpp | 16 ++++++++++++++++ RGBController/RGBController.h | 13 ++++++++++--- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/RGBController/RGBController.cpp b/RGBController/RGBController.cpp index 565de6b6..d27b8e52 100644 --- a/RGBController/RGBController.cpp +++ b/RGBController/RGBController.cpp @@ -3,6 +3,22 @@ using namespace std::chrono_literals; +mode::mode() +{ + name = ""; + value = 0; + flags = 0; + speed_min = 0; + speed_max = 0; + colors_min = 1; + colors_max = 1; +} + +mode::~mode() +{ + colors.clear(); +} + RGBController::RGBController() { DeviceThreadRunning = true; diff --git a/RGBController/RGBController.h b/RGBController/RGBController.h index 0f621a34..ef8de91c 100644 --- a/RGBController/RGBController.h +++ b/RGBController/RGBController.h @@ -61,10 +61,11 @@ enum }; /*------------------------------------------------------------------*\ -| Mode Type | +| Mode Class | \*------------------------------------------------------------------*/ -typedef struct +class mode { +public: /*--------------------------------------------------------------*\ | Mode Information | \*--------------------------------------------------------------*/ @@ -84,7 +85,13 @@ typedef struct unsigned int color_mode; /* Mode color selection */ std::vector colors; /* mode-specific colors */ -} mode; + + /*--------------------------------------------------------------*\ + | Mode Constructor / Destructor | + \*--------------------------------------------------------------*/ + mode(); + ~mode(); +}; typedef struct {