From 49f2709a01f6ea6230804c0787785b0f5569ca02 Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Thu, 6 May 2010 09:22:55 +0000 Subject: If dircache and database "load to ram" is enabled then get the id3 info from the database in the WPS playlist viewer for non buffered tracks git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25841 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/skin_engine/skin_display.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'apps/gui/skin_engine/skin_display.c') diff --git a/apps/gui/skin_engine/skin_display.c b/apps/gui/skin_engine/skin_display.c index 4d7b264efa..0d7824aaf6 100644 --- a/apps/gui/skin_engine/skin_display.c +++ b/apps/gui/skin_engine/skin_display.c @@ -40,6 +40,7 @@ #include "screen_access.h" #include "playlist.h" #include "audio.h" +#include "tagcache.h" #ifdef HAVE_LCD_BITMAP #include "peakmeter.h" @@ -198,10 +199,12 @@ static void draw_playlist_viewer_list(struct gui_wps *gwps, struct mp3entry *pid3; char buf[MAX_PATH*2], tempbuf[MAX_PATH]; + char *filename; gwps->display->set_viewport(viewer->vp); for(i=start_item; (i-start_item)id3; @@ -213,8 +216,15 @@ static void draw_playlist_viewer_list(struct gui_wps *gwps, #if CONFIG_CODEC == SWCODEC else if (i>cur_playlist_pos) { - if (!audio_peek_track(&pid3, i-cur_playlist_pos)) - pid3 = NULL; +#ifdef HAVE_TC_RAMCACHE + if (tagcache_fill_tags(&viewer->tempid3, filename)) + { + pid3 = &viewer->tempid3; + } + else +#endif + if (!audio_peek_track(&pid3, i-cur_playlist_pos)) + pid3 = NULL; } #endif else @@ -224,7 +234,6 @@ static void draw_playlist_viewer_list(struct gui_wps *gwps, int line = pid3 ? TRACK_HAS_INFO : TRACK_HAS_NO_INFO; int j = 0, cur_string = 0; - char *filename = playlist_peek(i-cur_playlist_pos); unsigned int line_len = 0; buf[0] = '\0'; while (j < viewer->lines[line].count && line_len < sizeof(buf)) -- cgit v1.2.3