diff options
author | William Wilgus <wilgus.william@gmail.com> | 2022-11-13 21:32:59 -0500 |
---|---|---|
committer | William Wilgus <wilgus.william@gmail.com> | 2022-11-20 13:57:09 -0500 |
commit | 0661784469c7e903528c1820f94a67c6de69a77f (patch) | |
tree | 616111a7ba5bbae9985d157ed3bebcc8317a4f25 | |
parent | b7603adc644a0bdf76f3045e69728ca863dc9791 (diff) | |
download | rockbox-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.c | 6 | ||||
-rw-r--r-- | apps/menus/sound_menu.c | 18 | ||||
-rw-r--r-- | apps/settings.c | 22 | ||||
-rw-r--r-- | apps/settings_list.c | 10 | ||||
-rw-r--r-- | apps/settings_list.h | 5 |
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) | |||
154 | static const struct int_setting gain_int_setting = { | 154 | static 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 = { | |||
164 | static const struct int_setting q_int_setting = { | 164 | static 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 = { | |||
174 | static const struct int_setting cutoff_int_setting = { | 174 | static 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 | ||
70 | struct int_setting { | 70 | struct 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 | }; |