summaryrefslogtreecommitdiff
path: root/apps/gui/skin_engine/skin_engine.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/skin_engine/skin_engine.c')
-rw-r--r--apps/gui/skin_engine/skin_engine.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/apps/gui/skin_engine/skin_engine.c b/apps/gui/skin_engine/skin_engine.c
index 8ba76e5739..a3ad85fd6e 100644
--- a/apps/gui/skin_engine/skin_engine.c
+++ b/apps/gui/skin_engine/skin_engine.c
@@ -34,9 +34,11 @@
34#if CONFIG_TUNER 34#if CONFIG_TUNER
35#include "radio.h" 35#include "radio.h"
36#endif 36#endif
37#include "gui/list.h"
37#include "skin_engine.h" 38#include "skin_engine.h"
38#include "skin_buffer.h" 39#include "skin_buffer.h"
39#include "statusbar-skinned.h" 40#include "statusbar-skinned.h"
41#include "wps_internals.h"
40 42
41#define FAILSAFENAME "rockbox_failsafe" 43#define FAILSAFENAME "rockbox_failsafe"
42 44
@@ -334,3 +336,56 @@ void skin_request_full_update(enum skinnable_screens skin)
334 FOR_NB_SCREENS(i) 336 FOR_NB_SCREENS(i)
335 skins[skin][i].needs_full_update = true; 337 skins[skin][i].needs_full_update = true;
336} 338}
339
340bool dbg_skin_engine(void)
341{
342 struct simplelist_info info;
343 int i, total = 0;
344#if defined(HAVE_BACKDROP_IMAGE)
345 int ref_count;
346 char *path;
347 size_t bytes;
348 int path_prefix_len = strlen(ROCKBOX_DIR "/wps/");
349#endif
350 simplelist_info_init(&info, "Skin engine usage", 0, NULL);
351 simplelist_set_line_count(0);
352 FOR_NB_SCREENS(j) {
353#if NB_SCREENS > 1
354 simplelist_addline("%s display:",
355 j == 0 ? "Main" : "Remote");
356#endif
357 for (i = 0; i < skin_get_num_skins(); i++) {
358 struct skin_stats *stats = skin_get_stats(i, j);
359 if (stats->buflib_handles)
360 {
361 simplelist_addline("Skin ID: %d, %d allocations",
362 i, stats->buflib_handles);
363 simplelist_addline("\tskin: %d bytes",
364 stats->tree_size);
365 simplelist_addline("\tImages: %d bytes",
366 stats->images_size);
367 simplelist_addline("\tTotal: %d bytes",
368 stats->tree_size + stats->images_size);
369 total += stats->tree_size + stats->images_size;
370 }
371 }
372 }
373 simplelist_addline("Skin total usage: %d bytes", total);
374#if defined(HAVE_BACKDROP_IMAGE)
375 simplelist_addline("Backdrop Images:");
376 i = 0;
377 while (skin_backdrop_get_debug(i++, &path, &ref_count, &bytes)) {
378 if (ref_count > 0) {
379
380 if (!strncasecmp(path, ROCKBOX_DIR "/wps/", path_prefix_len))
381 path += path_prefix_len;
382 simplelist_addline("%s", path);
383 simplelist_addline("\tref_count: %d", ref_count);
384 simplelist_addline("\tsize: %d", bytes);
385 total += bytes;
386 }
387 }
388 simplelist_addline("Total usage: %d bytes", total);
389#endif
390 return simplelist_show_list(&info);
391}