diff options
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/lang/english.lang | 15 | ||||
| -rw-r--r-- | apps/tagtree.c | 18 |
2 files changed, 30 insertions, 3 deletions
diff --git a/apps/lang/english.lang b/apps/lang/english.lang index 2589576..2eadfc4 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -11512,4 +11512,17 @@ ipodvideo: "Treble Cutoff" </voice> </phrase> - +<phrase> + id: LANG_TAGNAVI_RANDOM + desc: "<Random>" entry in tag browser + user: + <source> + *: "<Random>" + </source> + <dest> + *: "<Random>" + </dest> + <voice> + *: "Random" + </voice> +</phrase> 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; |