summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorExplorer09 <explorer09@gmail.com>2024-04-18 21:08:54 +0800
committerBenBE <BenBE@geshi.org>2024-04-20 19:36:00 +0200
commitfaaf6dd25e064f4e6e73061b15547b965b353ae5 (patch)
tree28f8e3a6e958302a29f75999039675264b9d5163
parent52486dbc0f056c37b8cc81bf2f8c2830d77c7d52 (diff)
Obsolete the CUSTOM_METERMODE use in default mode
The use of CUSTOM_METERMODE value in meter default mode was a bad design. There are no meter that really has a "custom" mode to work with and currently that value serves as a useless placeholder that hides the real default mode for a meter. Replace CUSTOM_METERMODE in `defaultMode` of all meters with the real intended default modes. Currently only CPU meters and MemorySwapMeter used this, and their real defaults are BAR_METERMODE. In Meter_setMode(), remove the special treatment of `defaultMode == CUSTOM_METERMODE`, Meter_setMode() still calls the `updateMode` function for custom treatment when it's present for a meter class. As CUSTOM_METERMODE is obsolete from `defaultMode`, the init functions of CPU meters and MemorySwapMeter need to be adjusted to avoid incomplete initialization (Meter.draw function bring NULL). Signed-off-by: Kang-Che Sung <explorer09@gmail.com>
-rw-r--r--CPUMeter.c28
-rw-r--r--MemorySwapMeter.c6
-rw-r--r--Meter.c7
-rw-r--r--Meter.h1
4 files changed, 22 insertions, 20 deletions
diff --git a/CPUMeter.c b/CPUMeter.c
index afcddeb1..93cf099e 100644
--- a/CPUMeter.c
+++ b/CPUMeter.c
@@ -251,8 +251,10 @@ static void CPUMeterCommonInit(Meter* this, int ncol) {
Meter_init(meters[i]);
}
- if (this->mode == 0)
+ if (this->mode == 0) {
this->mode = BAR_METERMODE;
+ this->draw = Meter_drawFn(this);
+ }
int h = Meter_modes[this->mode]->h;
this->h = h * ((count + ncol - 1) / ncol);
@@ -380,7 +382,7 @@ const MeterClass AllCPUsMeter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
- .defaultMode = CUSTOM_METERMODE,
+ .defaultMode = BAR_METERMODE,
.total = 100.0,
.attributes = CPUMeter_attributes,
.name = "AllCPUs",
@@ -400,7 +402,7 @@ const MeterClass AllCPUs2Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
- .defaultMode = CUSTOM_METERMODE,
+ .defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
@@ -421,7 +423,7 @@ const MeterClass LeftCPUsMeter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
- .defaultMode = CUSTOM_METERMODE,
+ .defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
@@ -442,7 +444,7 @@ const MeterClass RightCPUsMeter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
- .defaultMode = CUSTOM_METERMODE,
+ .defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
@@ -463,7 +465,7 @@ const MeterClass LeftCPUs2Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
- .defaultMode = CUSTOM_METERMODE,
+ .defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
@@ -484,7 +486,7 @@ const MeterClass RightCPUs2Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
- .defaultMode = CUSTOM_METERMODE,
+ .defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
@@ -505,7 +507,7 @@ const MeterClass AllCPUs4Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
- .defaultMode = CUSTOM_METERMODE,
+ .defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
@@ -526,7 +528,7 @@ const MeterClass LeftCPUs4Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
- .defaultMode = CUSTOM_METERMODE,
+ .defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
@@ -547,7 +549,7 @@ const MeterClass RightCPUs4Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
- .defaultMode = CUSTOM_METERMODE,
+ .defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
@@ -568,7 +570,7 @@ const MeterClass AllCPUs8Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
- .defaultMode = CUSTOM_METERMODE,
+ .defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
@@ -589,7 +591,7 @@ const MeterClass LeftCPUs8Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
- .defaultMode = CUSTOM_METERMODE,
+ .defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
@@ -610,7 +612,7 @@ const MeterClass RightCPUs8Meter_class = {
.display = CPUMeter_display
},
.updateValues = AllCPUsMeter_updateValues,
- .defaultMode = CUSTOM_METERMODE,
+ .defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.total = 100.0,
.attributes = CPUMeter_attributes,
diff --git a/MemorySwapMeter.c b/MemorySwapMeter.c
index 82eddee2..6aea784f 100644
--- a/MemorySwapMeter.c
+++ b/MemorySwapMeter.c
@@ -65,8 +65,10 @@ static void MemorySwapMeter_init(Meter* this) {
if (Meter_initFn(data->swapMeter))
Meter_init(data->swapMeter);
- if (this->mode == 0)
+ if (this->mode == 0) {
this->mode = BAR_METERMODE;
+ this->draw = Meter_drawFn(this);
+ }
this->h = MAXIMUM(Meter_modes[data->memoryMeter->mode]->h, Meter_modes[data->swapMeter->mode]->h);
}
@@ -97,7 +99,7 @@ const MeterClass MemorySwapMeter_class = {
.delete = Meter_delete,
},
.updateValues = MemorySwapMeter_updateValues,
- .defaultMode = CUSTOM_METERMODE,
+ .defaultMode = BAR_METERMODE,
.isMultiColumn = true,
.name = "MemorySwap",
.uiName = "Memory & Swap",
diff --git a/Meter.c b/Meter.c
index 938b907b..1fc7e9db 100644
--- a/Meter.c
+++ b/Meter.c
@@ -122,11 +122,10 @@ void Meter_setMode(Meter* this, int modeIndex) {
}
assert(modeIndex < LAST_METERMODE);
- if (Meter_defaultMode(this) == CUSTOM_METERMODE) {
+ if (Meter_updateModeFn(this)) {
+ assert(Meter_drawFn(this));
this->draw = Meter_drawFn(this);
- if (Meter_updateModeFn(this)) {
- Meter_updateMode(this, modeIndex);
- }
+ Meter_updateMode(this, modeIndex);
} else {
assert(modeIndex >= 1);
free(this->drawData.values);
diff --git a/Meter.h b/Meter.h
index 17d77f3e..ce474da0 100644
--- a/Meter.h
+++ b/Meter.h
@@ -87,7 +87,6 @@ typedef struct MeterClass_ {
#define Meter_getUiName(this_,n_,l_) As_Meter(this_)->getUiName((const Meter*)(this_),n_,l_)
#define Meter_getCaptionFn(this_) As_Meter(this_)->getCaption
#define Meter_getCaption(this_) (Meter_getCaptionFn(this_) ? As_Meter(this_)->getCaption((const Meter*)(this_)) : (this_)->caption)
-#define Meter_defaultMode(this_) As_Meter(this_)->defaultMode
#define Meter_attributes(this_) As_Meter(this_)->attributes
#define Meter_name(this_) As_Meter(this_)->name
#define Meter_uiName(this_) As_Meter(this_)->uiName

© 2014-2024 Faster IT GmbH | imprint | privacy policy