From da01219ca2a6f36b9743d50dc14a4aef009a3b5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nils=20Wallm=C3=A9nius?= Date: Fri, 10 Oct 2008 21:19:56 +0000 Subject: [PATCH] Search In Playlist * Add a title to the list of search results. * Fix drawing of the statusbar. * Avoid splashing in every iteration of the search loop if no new hits, gives about 10x speedup on h300 when searching for a string that gives 30 hits in a playlist of 3000 tracks. * Boost cpu when searching, ~doubles the search speed. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18764 a1c6a512-1295-4272-9138-f99709370657 --- apps/lang/english.lang | 14 ++++++++++++++ apps/playlist_viewer.c | 41 ++++++++++++++++++++++++++--------------- 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/apps/lang/english.lang b/apps/lang/english.lang index 32cf24ae27..955a4572fa 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -12095,3 +12095,17 @@ recording_swcodec: "Mono mode" + + id: LANG_SEARCH_RESULTS + desc: in sound_settings + user: + + *: "Search Results" + + + *: "Search Results" + + + *: "Search Results" + + diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c index f2f7dfd5d1..2acc02abe4 100644 --- a/apps/playlist_viewer.c +++ b/apps/playlist_viewer.c @@ -782,48 +782,60 @@ bool search_playlist(void) char search_str[32] = ""; bool ret = false, exit = false; int i, playlist_count; - int found_indicies[MAX_PLAYLIST_ENTRIES],found_indicies_count = 0; + int found_indicies[MAX_PLAYLIST_ENTRIES]; + int found_indicies_count = 0, last_found_count = -1; int button; struct gui_synclist playlist_lists; struct playlist_track_info track; if (!playlist_viewer_init(&viewer, 0, false)) return ret; - if (kbd_input(search_str,sizeof(search_str)) == -1) + if (kbd_input(search_str, sizeof(search_str)) == -1) return ret; lcd_clear_display(); playlist_count = playlist_amount_ex(viewer.playlist); - for (i=0;(i