forked from len0rd/rockbox
wps skin_parser free up skin ram with int16_t
change ints to int16_t especially image and rect sizes ditto font_ids frees ~250 bytes in cabbie Change-Id: I271be05a26e2090f6e1b11d809afd1c4bee32803
This commit is contained in:
parent
ea5ca58dc6
commit
727d2ab749
2 changed files with 40 additions and 42 deletions
|
|
@ -1974,7 +1974,7 @@ void skin_data_free_buflib_allocs(struct wps_data *wps_data)
|
|||
goto abort;
|
||||
|
||||
struct skin_token_list *list = SKINOFFSETTOPTR(skin_buffer, wps_data->images);
|
||||
int *font_ids = SKINOFFSETTOPTR(skin_buffer, wps_data->font_ids);
|
||||
int16_t *font_ids = SKINOFFSETTOPTR(skin_buffer, wps_data->font_ids);
|
||||
while (list)
|
||||
{
|
||||
struct wps_token *token = SKINOFFSETTOPTR(skin_buffer, list->token);
|
||||
|
|
@ -2192,7 +2192,7 @@ static bool load_skin_bitmaps(struct wps_data *wps_data, char *bmpdir)
|
|||
static bool skin_load_fonts(struct wps_data *data)
|
||||
{
|
||||
/* don't spit out after the first failue to aid debugging */
|
||||
int id_array[MAXUSERFONTS];
|
||||
int16_t id_array[MAXUSERFONTS];
|
||||
int font_count = 0;
|
||||
bool success = true;
|
||||
struct skin_element *vp_list;
|
||||
|
|
@ -2262,7 +2262,7 @@ static bool skin_load_fonts(struct wps_data *data)
|
|||
}
|
||||
if (font_count)
|
||||
{
|
||||
int *font_ids = skin_buffer_alloc(font_count * sizeof(int));
|
||||
int16_t *font_ids = skin_buffer_alloc(font_count * sizeof(font_ids[0]));
|
||||
if (!success || font_ids == NULL)
|
||||
{
|
||||
while (font_count > 0)
|
||||
|
|
@ -2273,7 +2273,7 @@ static bool skin_load_fonts(struct wps_data *data)
|
|||
data->font_ids = PTRTOSKINOFFSET(skin_buffer, NULL);
|
||||
return false;
|
||||
}
|
||||
memcpy(font_ids, id_array, sizeof(int)*font_count);
|
||||
memcpy(font_ids, id_array, sizeof(font_ids[0])*font_count);
|
||||
data->font_count = font_count;
|
||||
data->font_ids = PTRTOSKINOFFSET(skin_buffer, font_ids);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,10 +96,10 @@ struct skin_token_list {
|
|||
};
|
||||
|
||||
struct gui_img {
|
||||
short int x; /* x-pos */
|
||||
short int y; /* y-pos */
|
||||
short int num_subimages; /* number of sub-images */
|
||||
short int subimage_height; /* height of each sub-image */
|
||||
int16_t x; /* x-pos */
|
||||
int16_t y; /* y-pos */
|
||||
int16_t num_subimages; /* number of sub-images */
|
||||
int16_t subimage_height; /* height of each sub-image */
|
||||
struct bitmap bm;
|
||||
int buflib_handle;
|
||||
OFFSETTYPE(char*) label;
|
||||
|
|
@ -112,9 +112,9 @@ struct gui_img {
|
|||
|
||||
struct image_display {
|
||||
OFFSETTYPE(char*) label;
|
||||
int subimage;
|
||||
OFFSETTYPE(struct wps_token*) token; /* the token to get the subimage number from */
|
||||
int offset; /* offset into the bitmap strip to start */
|
||||
int16_t subimage;
|
||||
int16_t offset; /* offset into the bitmap strip to start */
|
||||
};
|
||||
|
||||
struct progressbar {
|
||||
|
|
@ -123,13 +123,13 @@ struct progressbar {
|
|||
bool horizontal;
|
||||
char setting_offset;
|
||||
/* regular pb */
|
||||
short x;
|
||||
int16_t x;
|
||||
/* >=0: explicitly set in the tag -> y-coord within the viewport
|
||||
<0 : not set in the tag -> negated 1-based line number within
|
||||
the viewport. y-coord will be computed based on the font height */
|
||||
short y;
|
||||
short width;
|
||||
short height;
|
||||
int16_t y;
|
||||
int16_t width;
|
||||
int16_t height;
|
||||
|
||||
OFFSETTYPE(struct gui_img *) image;
|
||||
bool invert_fill_direction;
|
||||
|
|
@ -143,10 +143,10 @@ struct progressbar {
|
|||
};
|
||||
|
||||
struct draw_rectangle {
|
||||
int x;
|
||||
int y;
|
||||
int width;
|
||||
int height;
|
||||
int16_t x;
|
||||
int16_t y;
|
||||
int16_t width;
|
||||
int16_t height;
|
||||
unsigned start_colour;
|
||||
unsigned end_colour;
|
||||
};
|
||||
|
|
@ -191,7 +191,7 @@ struct skin_viewport {
|
|||
struct viewport vp; /* The LCD viewport struct */
|
||||
struct frame_buffer_t framebuf; /* holds reference to current framebuffer */
|
||||
OFFSETTYPE(char*) label;
|
||||
int parsed_fontid;
|
||||
int16_t parsed_fontid;
|
||||
char hidden_flags;
|
||||
bool is_infovp;
|
||||
#if (LCD_DEPTH > 1) || (defined(HAVE_REMOTE_LCD) && (LCD_REMOTE_DEPTH > 1))
|
||||
|
|
@ -210,12 +210,12 @@ struct viewport_colour {
|
|||
struct touchregion {
|
||||
OFFSETTYPE(char*) label; /* label to identify this region */
|
||||
OFFSETTYPE(struct skin_viewport*) wvp;/* The viewport this region is in */
|
||||
short int x; /* x-pos */
|
||||
short int y; /* y-pos */
|
||||
short int width; /* width */
|
||||
short int height; /* height */
|
||||
short int wpad; /* padding to width */
|
||||
short int hpad; /* padding to height */
|
||||
int16_t x; /* x-pos */
|
||||
int16_t y; /* y-pos */
|
||||
int16_t width; /* width */
|
||||
int16_t height; /* height */
|
||||
int16_t wpad; /* padding to width */
|
||||
int16_t hpad; /* padding to height */
|
||||
bool reverse_bar; /* if true 0% is the left or top */
|
||||
bool allow_while_locked;
|
||||
bool armed; /* A region is armed on press. Only armed regions are triggered
|
||||
|
|
@ -241,8 +241,6 @@ struct touchregion {
|
|||
OFFSETTYPE(struct progressbar*) bar;
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct touchregion_lastpress {
|
||||
OFFSETTYPE(struct touchregion *) region;
|
||||
long timeout;
|
||||
|
|
@ -271,10 +269,10 @@ struct playlistviewer {
|
|||
|
||||
struct skin_albumart {
|
||||
/* Album art support */
|
||||
int x;
|
||||
int y;
|
||||
int width;
|
||||
int height;
|
||||
int16_t x;
|
||||
int16_t y;
|
||||
int16_t width;
|
||||
int16_t height;
|
||||
|
||||
unsigned char xalign; /* WPS_ALBUMART_ALIGN_LEFT, _CENTER, _RIGHT */
|
||||
unsigned char yalign; /* WPS_ALBUMART_ALIGN_TOP, _CENTER, _BOTTOM */
|
||||
|
|
@ -314,24 +312,24 @@ struct logical_if {
|
|||
};
|
||||
|
||||
struct substring {
|
||||
int start;
|
||||
int length;
|
||||
int16_t start;
|
||||
int16_t length;
|
||||
bool expect_number;
|
||||
OFFSETTYPE(struct wps_token *) token;
|
||||
};
|
||||
|
||||
struct listitem {
|
||||
bool wrap;
|
||||
short offset;
|
||||
int16_t offset;
|
||||
};
|
||||
|
||||
struct listitem_viewport_cfg {
|
||||
struct wps_data *data;
|
||||
OFFSETTYPE(char *) label;
|
||||
int width;
|
||||
int height;
|
||||
int xmargin;
|
||||
int ymargin;
|
||||
int16_t width;
|
||||
int16_t height;
|
||||
int16_t xmargin;
|
||||
int16_t ymargin;
|
||||
bool tile;
|
||||
struct skin_viewport selected_item_vp;
|
||||
};
|
||||
|
|
@ -363,10 +361,10 @@ struct wps_data
|
|||
|
||||
OFFSETTYPE(struct skin_element *) tree;
|
||||
OFFSETTYPE(struct skin_token_list *) images;
|
||||
OFFSETTYPE(int *) font_ids;
|
||||
int font_count;
|
||||
OFFSETTYPE(int16_t *) font_ids;
|
||||
int16_t font_count;
|
||||
#ifdef HAVE_BACKDROP_IMAGE
|
||||
int backdrop_id;
|
||||
int16_t backdrop_id;
|
||||
bool use_extra_framebuffer;
|
||||
#endif
|
||||
|
||||
|
|
@ -379,7 +377,7 @@ struct wps_data
|
|||
int playback_aa_slot;
|
||||
/* copy of albumart to survive skin resets, used to check if albumart
|
||||
* dimensions changed on skin change */
|
||||
short last_albumart_width, last_albumart_height;
|
||||
int16_t last_albumart_width, last_albumart_height;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SKIN_VARIABLES
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue