diff options
| author | Steve Bavin <pondlife@pondlife.me> | 2007-12-21 13:31:50 +0000 |
|---|---|---|
| committer | Steve Bavin <pondlife@pondlife.me> | 2007-12-21 13:31:50 +0000 |
| commit | de741cd534f74b9f74fa17f7a4c0741eaf5adea9 (patch) | |
| tree | fba28fbef3d266bda3797a84bd61033b2b9c0fcb /apps/tagtree.c | |
| parent | 88f79becd2a8c7348b1544ebd5dbf8873112e552 (diff) | |
| download | rockbox-de741cd534f74b9f74fa17f7a4c0741eaf5adea9.zip rockbox-de741cd534f74b9f74fa17f7a4c0741eaf5adea9.tar.gz rockbox-de741cd534f74b9f74fa17f7a4c0741eaf5adea9.tar.bz2 rockbox-de741cd534f74b9f74fa17f7a4c0741eaf5adea9.tar.xz | |
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
Diffstat (limited to 'apps/tagtree.c')
| -rw-r--r-- | apps/tagtree.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/apps/tagtree.c b/apps/tagtree.c index 8298fe2..d394491 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; |