diff options
-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, |