summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Wilgus <wilgus.william@gmail.com>2022-11-13 21:32:59 -0500
committerWilliam Wilgus <wilgus.william@gmail.com>2022-11-20 13:57:09 -0500
commit0661784469c7e903528c1820f94a67c6de69a77f (patch)
tree616111a7ba5bbae9985d157ed3bebcc8317a4f25
parentb7603adc644a0bdf76f3045e69728ca863dc9791 (diff)
downloadrockbox-0661784469c7e903528c1820f94a67c6de69a77f.tar.gz
rockbox-0661784469c7e903528c1820f94a67c6de69a77f.zip
make int_setting step & unit int16_t
since int_setting is the largest struct in the union of settings saving 32 bytes adds up over every setting frees ~200 bytes Change-Id: Id4722262e40db3021c740e138fe7352be10e2c70
-rw-r--r--apps/menus/eq_menu.c6
-rw-r--r--apps/menus/sound_menu.c18
-rw-r--r--apps/settings.c22
-rw-r--r--apps/settings_list.c10
-rw-r--r--apps/settings_list.h5
5 files changed, 38 insertions, 23 deletions
diff --git a/apps/menus/eq_menu.c b/apps/menus/eq_menu.c
index a0b00644ec..fd9f484047 100644
--- a/apps/menus/eq_menu.c
+++ b/apps/menus/eq_menu.c
@@ -154,9 +154,9 @@ static int32_t get_dec_talkid(int value, int unit)
154static const struct int_setting gain_int_setting = { 154static const struct int_setting gain_int_setting = {
155 .option_callback = NULL, 155 .option_callback = NULL,
156 .unit = UNIT_DB, 156 .unit = UNIT_DB,
157 .step = EQ_GAIN_STEP,
157 .min = EQ_GAIN_MIN, 158 .min = EQ_GAIN_MIN,
158 .max = EQ_GAIN_MAX, 159 .max = EQ_GAIN_MAX,
159 .step = EQ_GAIN_STEP,
160 .formatter = db_format, 160 .formatter = db_format,
161 .get_talk_id = get_dec_talkid, 161 .get_talk_id = get_dec_talkid,
162}; 162};
@@ -164,9 +164,9 @@ static const struct int_setting gain_int_setting = {
164static const struct int_setting q_int_setting = { 164static const struct int_setting q_int_setting = {
165 .option_callback = NULL, 165 .option_callback = NULL,
166 .unit = UNIT_INT, 166 .unit = UNIT_INT,
167 .step = EQ_Q_STEP,
167 .min = EQ_Q_MIN, 168 .min = EQ_Q_MIN,
168 .max = EQ_Q_MAX, 169 .max = EQ_Q_MAX,
169 .step = EQ_Q_STEP,
170 .formatter = eq_q_format, 170 .formatter = eq_q_format,
171 .get_talk_id = get_dec_talkid, 171 .get_talk_id = get_dec_talkid,
172}; 172};
@@ -174,9 +174,9 @@ static const struct int_setting q_int_setting = {
174static const struct int_setting cutoff_int_setting = { 174static const struct int_setting cutoff_int_setting = {
175 .option_callback = NULL, 175 .option_callback = NULL,
176 .unit = UNIT_HERTZ, 176 .unit = UNIT_HERTZ,
177 .step = EQ_CUTOFF_STEP,
177 .min = EQ_CUTOFF_MIN, 178 .min = EQ_CUTOFF_MIN,
178 .max = EQ_CUTOFF_MAX, 179 .max = EQ_CUTOFF_MAX,
179 .step = EQ_CUTOFF_STEP,
180 .formatter = NULL, 180 .formatter = NULL,
181 .get_talk_id = NULL, 181 .get_talk_id = NULL,
182}; 182};
diff --git a/apps/menus/sound_menu.c b/apps/menus/sound_menu.c
index 6d7ef270cb..d72e3c7fa7 100644
--- a/apps/menus/sound_menu.c
+++ b/apps/menus/sound_menu.c
@@ -54,13 +54,17 @@ static int volume_limit_callback(int action,
54 (void)this_list; 54 (void)this_list;
55 55
56 static struct int_setting volume_limit_int_setting; 56 static struct int_setting volume_limit_int_setting;
57 volume_limit_int_setting.option_callback = NULL; 57
58 volume_limit_int_setting.unit = UNIT_DB; 58 volume_limit_int_setting = (struct int_setting)
59 volume_limit_int_setting.min = sound_min(SOUND_VOLUME); 59 {
60 volume_limit_int_setting.max = sound_max(SOUND_VOLUME); 60 .option_callback = NULL,
61 volume_limit_int_setting.step = sound_steps(SOUND_VOLUME); 61 .unit = UNIT_DB,
62 volume_limit_int_setting.formatter = vol_limit_format; 62 .step = sound_steps(SOUND_VOLUME),
63 volume_limit_int_setting.get_talk_id = NULL; 63 .min = sound_min(SOUND_VOLUME),
64 .max = sound_max(SOUND_VOLUME),
65 .formatter = vol_limit_format,
66 .get_talk_id = NULL
67 };
64 68
65 struct settings_list setting; 69 struct settings_list setting;
66 setting.flags = F_BANFROMQS|F_INT_SETTING|F_T_INT|F_NO_WRAP; 70 setting.flags = F_BANFROMQS|F_INT_SETTING|F_T_INT|F_NO_WRAP;
diff --git a/apps/settings.c b/apps/settings.c
index 7c4dc4d124..3d2c463cdd 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -1180,9 +1180,14 @@ bool set_int_ex(const unsigned char* string,
1180{ 1180{
1181 (void)unit; 1181 (void)unit;
1182 struct settings_list item; 1182 struct settings_list item;
1183 struct int_setting data = { 1183 const struct int_setting data = {
1184 function, voice_unit, min, max, step, 1184 .option_callback = function,
1185 formatter, get_talk_id 1185 .unit = voice_unit,
1186 .step = step,
1187 .min = min,
1188 .max = max,
1189 .formatter = formatter,
1190 .get_talk_id = get_talk_id,
1186 }; 1191 };
1187 item.int_setting = &data; 1192 item.int_setting = &data;
1188 item.flags = F_INT_SETTING|F_T_INT; 1193 item.flags = F_INT_SETTING|F_T_INT;
@@ -1212,9 +1217,14 @@ bool set_option(const char* string, const void* variable, enum optiontype type,
1212{ 1217{
1213 int temp; 1218 int temp;
1214 struct settings_list item; 1219 struct settings_list item;
1215 struct int_setting data = { 1220 const struct int_setting data = {
1216 function, UNIT_INT, 0, numoptions-1, 1, 1221 .option_callback = function,
1217 set_option_formatter, set_option_get_talk_id 1222 .unit = UNIT_INT,
1223 .step = 1,
1224 .min = 0,
1225 .max = numoptions-1,
1226 .formatter = set_option_formatter,
1227 .get_talk_id = set_option_get_talk_id
1218 }; 1228 };
1219 memset(&item, 0, sizeof(struct settings_list)); 1229 memset(&item, 0, sizeof(struct settings_list));
1220 set_option_options = options; 1230 set_option_options = options;
diff --git a/apps/settings_list.c b/apps/settings_list.c
index f733ee4f69..5449ade728 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -167,19 +167,19 @@
167 {flags|F_INT_SETTING|F_T_INT, &global_settings.var, \ 167 {flags|F_INT_SETTING|F_T_INT, &global_settings.var, \
168 lang_id, INT(default), name, cfg_vals, \ 168 lang_id, INT(default), name, cfg_vals, \
169 {.int_setting = (struct int_setting[]){ \ 169 {.int_setting = (struct int_setting[]){ \
170 {cb, unit, min, max, step, formatter, get_talk_id}}}} 170 {cb, unit, step, min, max, formatter, get_talk_id}}}}
171#define INT_SETTING(flags, var, lang_id, default, name, \ 171#define INT_SETTING(flags, var, lang_id, default, name, \
172 unit, min, max, step, formatter, get_talk_id, cb) \ 172 unit, step, min, max, formatter, get_talk_id, cb) \
173 {flags|F_INT_SETTING|F_T_INT, &global_settings.var, \ 173 {flags|F_INT_SETTING|F_T_INT, &global_settings.var, \
174 lang_id, INT(default), name, NULL, \ 174 lang_id, INT(default), name, NULL, \
175 {.int_setting = (struct int_setting[]){ \ 175 {.int_setting = (struct int_setting[]){ \
176 {cb, unit, min, max, step, formatter, get_talk_id}}}} 176 {cb, unit, step, min, max, formatter, get_talk_id}}}}
177#define INT_SETTING_NOWRAP(flags, var, lang_id, default, name, \ 177#define INT_SETTING_NOWRAP(flags, var, lang_id, default, name, \
178 unit, min, max, step, formatter, get_talk_id, cb) \ 178 unit, step, min, max, formatter, get_talk_id, cb) \
179 {flags|F_INT_SETTING|F_T_INT|F_NO_WRAP, &global_settings.var, \ 179 {flags|F_INT_SETTING|F_T_INT|F_NO_WRAP, &global_settings.var, \
180 lang_id, INT(default), name, NULL, \ 180 lang_id, INT(default), name, NULL, \
181 {.int_setting = (struct int_setting[]){ \ 181 {.int_setting = (struct int_setting[]){ \
182 {cb, unit, min, max, step, formatter, get_talk_id}}}} 182 {cb, unit, step, min, max, formatter, get_talk_id}}}}
183 183
184#define TABLE_SETTING(flags, var, lang_id, default, name, cfg_vals, \ 184#define TABLE_SETTING(flags, var, lang_id, default, name, cfg_vals, \
185 unit, formatter, get_talk_id, cb, count, ...) \ 185 unit, formatter, get_talk_id, cb, count, ...) \
diff --git a/apps/settings_list.h b/apps/settings_list.h
index 36c4d8062f..d4862874d5 100644
--- a/apps/settings_list.h
+++ b/apps/settings_list.h
@@ -69,10 +69,11 @@ struct filename_setting {
69 69
70struct int_setting { 70struct int_setting {
71 void (*option_callback)(int); 71 void (*option_callback)(int);
72 int unit; 72 int16_t unit;
73 int16_t step;
73 int min; 74 int min;
74 int max; 75 int max;
75 int step; 76
76 const char* (*formatter)(char*, size_t, int, const char*); 77 const char* (*formatter)(char*, size_t, int, const char*);
77 int32_t (*get_talk_id)(int, int); 78 int32_t (*get_talk_id)(int, int);
78}; 79};