From de741cd534f74b9f74fa17f7a4c0741eaf5adea9 Mon Sep 17 00:00:00 2001 From: Steve Bavin Date: Fri, 21 Dec 2007 13:31:50 +0000 Subject: FS#6960 - Add random selection option to database, by Mark Reiche. This satisfies FS#6915. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15957 a1c6a512-1295-4272-9138-f99709370657 --- apps/tagtree.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'apps/tagtree.c') diff --git a/apps/tagtree.c b/apps/tagtree.c index 8298fe24ae..d394491960 100644 --- a/apps/tagtree.c +++ b/apps/tagtree.c @@ -1136,7 +1136,15 @@ static int retrieve_entries(struct tree_context *c, struct tagcache_search *tcs, dptr++; current_entry_count++; } - special_entry_count++; + if (offset <= 1) + { + dptr->newtable = navibrowse; + dptr->name = str(LANG_TAGNAVI_RANDOM); + dptr->extraseek = -1; + dptr++; + current_entry_count++; + } + special_entry_count+=2; } total_count += special_entry_count; @@ -1374,8 +1382,14 @@ int tagtree_enter(struct tree_context* c) dptr = tagtree_get_entry(c, c->selected_item); c->dirfull = false; + seek = dptr->extraseek; + if (seek == -1) + { + srand(current_tick); + dptr = (tagtree_get_entry(c, 2+(rand() % (c->filesindir-2)))); + seek = dptr->extraseek; + } newextra = dptr->newtable; - seek = dptr->extraseek; if (c->dirlevel >= MAX_DIR_LEVELS) return 0; -- cgit v1.2.3