summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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,