summaryrefslogtreecommitdiff
path: root/apps/recorder
diff options
context:
space:
mode:
authorWilliam Wilgus <wilgus.william@gmail.com>2022-04-08 17:31:43 -0400
committerWilliam Wilgus <me.theuser@yahoo.com>2022-04-08 18:11:21 -0400
commitbd444ebd0a6cb98faf7ca569c273f4ca860ab65d (patch)
tree0a1cce22bf09a1158686bb98e3e3973d4f23bdc4 /apps/recorder
parent132034346f12d9ce5fc7e7d88b517752264e2d78 (diff)
downloadrockbox-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.c28
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
82static int kbd_vpbuf_handle[NB_SCREENS] = {0};
83
84enum ekbd_viewports 82enum 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
196static int kbd_create_viewports(struct keyboard_parameters * kbd_param) 194static 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
218static 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}
808static void kbd_calc_pm_params(struct keyboard_parameters *pm, 790static void kbd_calc_pm_params(struct keyboard_parameters *pm,