diff options
author | William Wilgus <wilgus.william@gmail.com> | 2022-04-08 17:31:43 -0400 |
---|---|---|
committer | William Wilgus <me.theuser@yahoo.com> | 2022-04-08 18:11:21 -0400 |
commit | bd444ebd0a6cb98faf7ca569c273f4ca860ab65d (patch) | |
tree | 0a1cce22bf09a1158686bb98e3e3973d4f23bdc4 /apps/recorder | |
parent | 132034346f12d9ce5fc7e7d88b517752264e2d78 (diff) | |
download | rockbox-bd444ebd0a6cb98faf7ca569c273f4ca860ab65d.tar.gz rockbox-bd444ebd0a6cb98faf7ca569c273f4ca860ab65d.zip |
BUGFIX keyboard.c make vp alloc static
don't stop playback to alloc viewports for the keyboard
For the moment it doesn't make much difference
each vp takes about 40 bytes (double that in the sim?)
so not the end of the world 120 extra bytes
Change-Id: I482d7e3061cf9fb8065dc28bf62a6f830770f3c7
Diffstat (limited to 'apps/recorder')
-rw-r--r-- | apps/recorder/keyboard.c | 28 |
1 files changed, 5 insertions, 23 deletions
diff --git a/apps/recorder/keyboard.c b/apps/recorder/keyboard.c index f06bd9bf7f..9ab44c0c6a 100644 --- a/apps/recorder/keyboard.c +++ b/apps/recorder/keyboard.c | |||
@@ -79,8 +79,6 @@ | |||
79 | #define CHANGED_CURSOR 2 | 79 | #define CHANGED_CURSOR 2 |
80 | #define CHANGED_TEXT 3 | 80 | #define CHANGED_TEXT 3 |
81 | 81 | ||
82 | static int kbd_vpbuf_handle[NB_SCREENS] = {0}; | ||
83 | |||
84 | enum ekbd_viewports | 82 | enum ekbd_viewports |
85 | { | 83 | { |
86 | eKBD_VP_TEXT = 0, | 84 | eKBD_VP_TEXT = 0, |
@@ -195,35 +193,20 @@ static void keyboard_layout(struct viewport *kbd_vp, | |||
195 | 193 | ||
196 | static int kbd_create_viewports(struct keyboard_parameters * kbd_param) | 194 | static int kbd_create_viewports(struct keyboard_parameters * kbd_param) |
197 | { | 195 | { |
198 | struct viewport *vp; | 196 | static struct viewport viewports[NB_SCREENS][eKBD_COUNT_VP_COUNT]; |
199 | size_t bufsz = (sizeof(struct viewport) * 3); /* different for remote??*/ | 197 | int i; |
200 | int i, h; | ||
201 | FOR_NB_SCREENS(l) | 198 | FOR_NB_SCREENS(l) |
202 | { | 199 | { |
203 | h = core_alloc_ex("kbd vp", bufsz, &buflib_ops_locked); | 200 | kbd_param[l].kbd_viewports = viewports[l]; |
204 | if (h <= 0) | ||
205 | return h; | ||
206 | kbd_vpbuf_handle[l] = h; | ||
207 | kbd_param[l].kbd_viewports = ((struct viewport *) core_get_data(h)); | ||
208 | for (i = 0; i < eKBD_COUNT_VP_COUNT; i++) | 201 | for (i = 0; i < eKBD_COUNT_VP_COUNT; i++) |
209 | { | 202 | { |
210 | vp = &kbd_param[l].kbd_viewports[i]; | 203 | struct viewport *vp = &kbd_param[l].kbd_viewports[i]; |
211 | viewport_set_defaults(vp, l); | 204 | viewport_set_defaults(vp, l); |
212 | vp->font = FONT_UI; | 205 | vp->font = FONT_UI; |
213 | } | 206 | } |
214 | } | 207 | } |
215 | return bufsz; | ||
216 | } | ||
217 | 208 | ||
218 | static void kbd_destroy_viewports(void) | 209 | return sizeof(viewports); |
219 | { | ||
220 | FOR_NB_SCREENS(l) | ||
221 | { | ||
222 | if (kbd_vpbuf_handle[l] > 0) /* free old buffer */ | ||
223 | { | ||
224 | kbd_vpbuf_handle[l] = core_free(kbd_vpbuf_handle[l]); | ||
225 | } | ||
226 | } | ||
227 | } | 210 | } |
228 | 211 | ||
229 | /* Loads a custom keyboard into memory | 212 | /* Loads a custom keyboard into memory |
@@ -802,7 +785,6 @@ cleanup: | |||
802 | screens[l].setfont(FONT_UI); | 785 | screens[l].setfont(FONT_UI); |
803 | viewportmanager_theme_undo(l, false); | 786 | viewportmanager_theme_undo(l, false); |
804 | } | 787 | } |
805 | kbd_destroy_viewports(); | ||
806 | return ret; | 788 | return ret; |
807 | } | 789 | } |
808 | static void kbd_calc_pm_params(struct keyboard_parameters *pm, | 790 | static void kbd_calc_pm_params(struct keyboard_parameters *pm, |